- 相關(guān)推薦
2012年3月全國計算機等級考試二級C語言上機題庫(20~30套)
考試頻道小編收集整理計算機等級考試資料,免費提供給大家交流參考。
第二十一套
1. 程序填空
給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,將所有串長超過k的字符串右邊的字符刪去,只保留左邊的k個字符。ss所指字符串?dāng)?shù)組中共有N個字符串,且串小于M。
第一處 void fun(char (*ss)[M], int k)
第二處 while (i
第三處 ss[i][k]=0;i++;}
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:根據(jù)以下公式求π值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸入0.0005時,應(yīng)當(dāng)輸出Pi=30140578.。
/**found**/
t=1;
/**found**/
return(2*s);
3. 程序設(shè)計
假定輸入字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:將字符串的前導(dǎo)*號不得多于n個;若多于n個,則刪除多余的*號;若少于或等于n個,則什么也不做,字符串中間和尾部的*號不刪除。函數(shù)fun中給出的語句僅供參考。
void fun(char*a,int n)
{
int i=0,k=0;
while(a[k]= =’*’)k++;
if(k>n)
{
i=n;j=k;
for(;a[j]!=0;j++)
a[i++]=a[j];
a[i]=0;
}}
第二十二套
1. 程序填空
給定程序中,函數(shù)fun的功能是:a所指4×3矩陣中第k行的元素與第0行元素交換。例如:有下列矩陣
1 2 3
4 5 6
7 8 9
10 11 12
若k為2,程序執(zhí)行結(jié)果為
7 8 9
4 5 6
1 2 3
10 11 12
第一處 void fun(int (*a)[N],int k)
第二處 for(i=0;i
第三處 a[0][i]=a[k][i];
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符串按ASCII碼升序排序后輸出。例如,若輸入edcba,則應(yīng)輸出:abcde。
/**found**/
for(i=strlen(t)-1;i;i--)
/**found**/
if(t[j]>t[j+1])
3. 程序設(shè)計
請編寫函數(shù)fun,函數(shù)的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。
void fun(char *ss)
{
char *p=ss;
inr i=0;
while(*p){
if((i%2)&&(*p>=’a’ &&*p<=’z’))
*p-=32;
p++;
i++;
}
}
第二十三套
1. 程序填空
給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時函數(shù)的返回值是1,失敗是返回值是0.在復(fù)制的過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)源文件名放在變量sfname中,目標(biāo)文件放在變量tfname中。
第一處
if((fs=fopen(source,”r”))==NULL)
第二處 while(!feof(fs))
第三處 fputc(ch,ft);
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:將長整型中每一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。
/**found**/
if(d%2==0)
/**found**/
s/=10;
3. 程序設(shè)計
函數(shù)fun的功能是:將兩位正整數(shù)a、b合并形成一個新的整數(shù)放在c中。合并的方式是:將a中的十位和個位依次放在變量c的十位和千位上,b中的十位和個位數(shù)依次放在變量c的百位和個位上。
void fun(int a,int b,long*c)
{
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
第二十四套
1. 程序填空
程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和三門課的成績。函數(shù)fun的功能是將形參a所指結(jié)構(gòu)體變量中的數(shù)據(jù)賦給函數(shù)中的結(jié)構(gòu)體變量b,并修改b中的學(xué)號和姓名,最后輸出修改后的數(shù)據(jù)。
第一處 b=a;
第二處 strcpy(b.name,”LiSi”)
第三處 for (i=0;i<3;i++)
printf(“%6.2f”,b.score[i]);
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:從s所指字符串中刪除所有小寫字母c。請改正程序中的錯誤,使它能計算出正確的結(jié)果。
/**found**/
s[j++]=s[i];
/**found**/
s[j]=’\0’;
3. 程序設(shè)計
假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:將字符串的前導(dǎo)*號全部移到字符串的尾部。函數(shù)fun中給出的函數(shù)僅供參考。
void fun(char *a)
{ char *p,*q;
int n=0;
p=a;
while(*p==’*’)
{n++;p++;}
q=a;
while(*p){
*q=*p;
p++;q++;
}
for(;n>0;n--)
*q++=’*’;
*q=’\0’;
}
第二十五套
1. 程序填空
用篩選法可得到2—n(n<10000)之間的所有素數(shù),方法是:首先從素數(shù)2開始,將所有2的倍數(shù)的數(shù)從數(shù)表中刪去(把數(shù)表中相應(yīng)位置的值置成0);接著從數(shù)表中找下一個非0數(shù),并從數(shù)表中刪去該數(shù)的所有倍數(shù),依此類推,直到所找的下一個數(shù)等于n為止。這樣會得到一個序列:2、3、5、7、11、13、17、19、23……函數(shù)fun用篩選法找出所有小于等于n的素數(shù),并統(tǒng)計素數(shù)的個數(shù)作為函數(shù)值返回。
第一處 for(j=a[i]*2;j<=n;j+=a[i])
第二處 while(a[i]= =0)
第三處 if(a[i]!=0)
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:為一個偶數(shù)尋找兩個素數(shù),這兩個素數(shù)之和等于該偶數(shù),并將這兩個素數(shù)通過形參指針傳回主函數(shù)。
/**found**/
y=1;
/**foune**/
d=a-i;
3. 程序設(shè)計
請編寫函數(shù)fun,它的功能是:計算并輸出n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒數(shù)之和。
double fun(int n)
{
int i;
double sum=0.0;
for(i=1;i
if(i%5= =0||i%9==0)
sum+=1.0/i;
return sum;
}
第二十六套
1. 程序填空
給定程序中,函數(shù)fun的功能是建立一個N×N的矩陣。矩陣元素的構(gòu)成規(guī)律是:最外層元素的值全部是1;從外向內(nèi)第二層元素的值全部為2;第三層元素的值全部是3,…依此類推。
第一處void fun(int(*a)[N])
第二處for(j=i;j
第二處a[k][i]=a[k][N-i-1]=i+1;
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:將十進制正整數(shù)m轉(zhuǎn)換成k(2<=k
<=9)進制數(shù),并按高位到低位順序輸出。
/**found**/
aa[i]=m%k;
/**found**/
printf(“%d”,aa[i-1]);
3. 程序設(shè)計
編寫一個函數(shù),從num個字符串中找出最長的一個字符串,并通過形參指針max傳回該串地址。(注意:主函數(shù)中用****作為結(jié)束輸入的標(biāo)志,函數(shù)fun中給出的語句僅供參考)。
fun(char (*a)[81],int num,char **max)
{
int i,k=0,maxlen;
maxlen=strlen(a[k]);
for(i=1;i
{
if(strlen(a[i])>maxlen)
{maxlen=strlen(a[i]);
k=i;
}
}
*max=a[k];
}
第二十七套
1. 程序填空
函數(shù)fun的功能是計算f(x)=1+x-2/2!+3/3!-4/4!+……的前n項和。若x=2.5,n=15時,函數(shù)值為1.917914。
第一處 f=1;
第二處 t*=(-1)*x/i;
第三處 f+=t;
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:從三個紅球,5個白球,6個黑球中任意取出8個作為一組,進行輸出。在沒組中,可以沒有黑球,但必須要有紅球和白球。組合數(shù)作為函數(shù)值返回。正確的組合數(shù)應(yīng)該是15.程序中i的值代表紅球數(shù),j代表白球數(shù),k代表黑球數(shù)。
/**found**/
for(i=1;i<=3;i++)
/**found**/
if(k>=0&&k<=6)
3. 程序設(shè)計
請編寫函數(shù)fun,它的功能是:計算并輸出下列多項式的值:sn=1+1/1!+1/2!+1/3!+1/4!+……1/n!。例如:在主函數(shù)中從鍵盤給n輸入15,則輸出為:s=2.718282。注意:要求n的值大于1但不大于100。
double fun(int n)
{
double s=1’
long t=1;
int i;
for(i=1;i<=n;i++){
t=t*i;
s+=1.0/t;}
return s;
}
第二十八套
1. 程序填空
給定程序中,函數(shù)fun的功能是:計算N*N矩陣的主對角線元素和方向?qū)蔷元素之和,并作為函數(shù)值返回。注意:要求先累加主對角線元素中的值,然后累加反響對角線元素的值。
第一處 sum=0;
第二處 sum+=t[i][i];
第三處 sum+=t[i][n-i-1];
2. 程序修改
給定程序MODI1.C中函數(shù)fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一個根,并要求絕對誤差不超過0.001。
/**found**/
double r;
/**found**/
while(fabs(n-m)>0.001)
3. 程序設(shè)計
假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了字符串前導(dǎo)和尾部的*號之外,將串中其他*號全部刪除。形參h已指向字符串中的第一個字母,形參p已指向字符串中最后一個字母。在編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。
void fun(char *a,char *h,char *p)
{
int j=0;
char *q=a;
while(*q&&q
while(*h&&*p&&h
{
if(*h!=’*’)a[j++]=*h;
h++;
}
while(*p)a[j++]=*p++;
a[j]=0;
}
第二十九套
1. 程序填空
給定程序中,函數(shù)fun的功能是:有N*N矩陣,將矩陣的外圍元素順時針旋轉(zhuǎn)。操作的順序是:首先將第一行元素的值存入臨時數(shù)組r,然后使第一列成為第一行,最后一行成為第一列,最后一列成為第一行,臨時數(shù)組中和元素成為最后一列。
第一處 t[0][N-j-1]=t[j][0];
第二處 for(j=N-1;j>=0;j--)
第三處 t[j][N-1]=r[j];
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:計算s=f(-n)+f(-n+1)+……+f(0)+f(1)+f(2)+……f(n)的值。例如,當(dāng)n為5時,函數(shù)值應(yīng)該是:10.407143。
/**found**/
double f(double x)
/**found**/
return s;
3. 程序設(shè)計
編寫一個函數(shù)fun,它的功能是計算:s=根號下(ln(1)+ln(2)+ln(3)+……ln(m))S作為函數(shù)返回,在C語言中可以調(diào)用log(n)求ln(n)。log函數(shù)引用說明是:Double log(double x)例如,若m的值為:20,fun函數(shù)值為:60506583。
double fun(int m)
{
double s=0.0;
int i;
for(i=0;i<=m;i++)
s+=log(1.0*i);
s=sqrt(s);
return s;
}
第三十套
1. 程序填空
函數(shù)fun的功能是:反形參a所指數(shù)組中的奇數(shù)按原順序依次存放到a[0]、a[1]、a
[2]……中,把偶數(shù)從數(shù)組中刪除,奇數(shù)個數(shù)通過函數(shù)值返回。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7,刪除偶數(shù)后a所指數(shù)組中的數(shù)據(jù)為:9、1、3、5、7,返回值為5。
第一處 if(a[i]%2==1)
第二處 j++;
第三處 return j;
2. 程序修改
給定程序MODI1.C中函數(shù)fun的功能是:求出兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。
/**found**/
t=a;a=b;b=t;
/**found**/
return (b);
3. 程序設(shè)計
假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:刪除字符串中所有的*號。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
void fun(char *a)
{
int j=0;
char *p=a;
while(*p){
if(*p!=’*’)
a[j++]=*p;
p++;
}
a[j]=0;
}
【3月全國計算機等級考試二級C語言上機題庫20~30套】相關(guān)文章:
2024二級c語言上機題庫04-18
全國計算機等級考試二級C語言06-27
全國計算機等級考試二級C語言試題二09-18
全國計算機二級《C語言》考試題庫與答案06-29
全國計算機等級考試二級C語言筆試第二套10-19
計算機等級考試二級C語言真題09-26
計算機二級C語言考試上機考試題及答案10-29
全國計算機二級《C++》上機試題及答案08-15
全國計算機等級考試上機應(yīng)試技巧201707-22
2016年計算機二級C語言上機考試技巧05-31