2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)(共50套)_第1頁(yè)
2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)(共50套)_第2頁(yè)
2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)(共50套)_第3頁(yè)
2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)(共50套)_第4頁(yè)
2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)(共50套)_第5頁(yè)
已閱讀5頁(yè),還剩182頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2020年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上

機(jī)精選題庫(kù)(共50套)

第1套題

一、填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:計(jì)算每個(gè)學(xué)生科目的平

均分,并把結(jié)果保存在數(shù)組bb中。

例如,當(dāng)

score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77

}}時(shí),三個(gè)學(xué)生的平均分為:74.791.369.1o

僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的

其他任何內(nèi)容。

#include<stdio.h>

#defineN3

#defineM5

main()

(

inti,j;

staticfloatscore[N][M]=

{78.5,84,83,65,63},

{88,91.5,89,93,95},

{72.5,65,56,75,77)

);

floatbb[N];

for(i=0;i<N;i++)

1—;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

2―;

bb[i]/=M;

}

for(i=0;i<N;i++)

printf("\nstudent%d\taverage=%5.If,i+1,bb[ij);

二、改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:根據(jù)整型行參,計(jì)算

如下公式的值。

1111

--------+----------------+---------+???+---------

100x100200x200300x300mxm

例如,若m=2若0,則應(yīng)該輸出:0.0001600

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

#include<conio.h>

#include<stdio.h>

/********found********/

fun(intm)

(

doubley=0,d;

inti;

/**************/

for(i=100,i<=m,i+=100)

(

d=(double)i*(double)i;

y+=1.0/d;

)

return(y);

)

main()

|

intn=2000;

printf("\nTheresultis%lf\n",fun(n));

)

三、編程題

請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計(jì)個(gè)年齡段的人數(shù)。N

個(gè)年齡通過(guò)調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函

數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)

放在d川中,把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,

把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)

中輸出。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun

的花括號(hào)中填入所編寫的若干語(yǔ)句。

#include<stdio.h>

#defineN50

#defineM11

voidfun(int*a,int*b)

doublernd()

(

statict=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);

)

main()

intage[N],i,d[M];

FILE*out;

for(i=0;i<N;i++)

age[i]=(int)(115*md());

printf("Theoriginaldata:\n");

for(i=0;i<N;i++)

printf((i+l)%10==0?"%4d\n":"%4d",age[i]);

printf("\n\n");

fun(age,d);

out=fopen("out.dat","w");

for(i=0;i<10;i++)

(

printf("%4d—%4d:%4d\n",i*10,i*10+9,d[i]);

fprintf(out,"%4d—%4d:%4d\n",i*10,i*l0+9,d[i]);

)

printf("Over100:%4d\n",d[10]);

fprintf(out,"Over100:%4d\n",d[10]);

fclose(out);

)

答案:

一、1、bb[i]=O或*(bb+i)=O

2、bb[i]+=score[i][j]或bb[i]=b[i]+score[i][j]或

bb[i]=score[i]fj]+bb[i]

二、1、fun(intm)應(yīng)改為doublefun(intm)

2、for(i=100,i<=m,i+=100)應(yīng)改為for(i=100;i<=m;i+=100)

、

voidfun(int*a,int*b)

|

inti,j;

for(j=0;j<M;j++)

b[j]=O;

for(i=0;i<N;i++)

if(a[i]>=0&&a[i]<=9)

b[0]+=l;

elseif(a[i]>=10&&a[i]<=19)

b[l]+=l;

elseif(a[i>=20&&a[i]<=29)

b⑵+=1;

elseif(a[i]>=30&&a[i]<=39)

b[3]+=l;

elseif(a[i>=40&&a[i]<=49])

b[4]+=l;

elseif(a[i]>=50&&a[i]<=59)

b[5]+=l;

elseif(a[i]>=60&&a[i]<=69)

b[6]+=l;

elseif(a[i]>=70&&a[i]<=79)

b[7]+=l;

elseif(a[i]>=80&&a[i]<=89)

b[8]+=l;

elseif(a[i]>=90&&a[i]<=99)

b[9]+=l;

else

b[10]+=l;

第2套

:填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤輸入一組字符串,以'*'

結(jié)束輸入,并顯示出這個(gè)字符串。

例如,輸入abcdef*,結(jié)果顯示abcdef。

僅在橫線上添入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其他

任何內(nèi)容。

ttinclude<stdio.h>

ttdefineN80

main()

(

inti=-1,j=0;

charstr[N];

printf(z,\nInputastring\n");

do

i++;

scanf(_1_);

}while(_2_);

printf(,z\n*******displaythestring*******;

while(j<i)

(

printf(_3_);

j++;

)

)

答案:⑴“%c”,&str[i]

(2)str[i]!=,*'

(3)"%c",str[j]

改錯(cuò)題:

下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出high以內(nèi)最大的

10個(gè)素?cái)?shù)之和。High由主函數(shù)傳給fun函數(shù)。若high的值為100,

則函數(shù)的值為732。

ftinclude<conio.h>

ftinclude<stdio.h>

ftinclude<math.h>

intfun(inthigh)

(

intsum=0,n=0,j,yes;

while((high>=2)&&(n<10))

{

yes=1;

for(j=2;j<=high/2;j++)

/********found********/

if(high%j==0)

{

yes=0;

break

)

if(yes)

(

sum+=high;

n++;

}

high—;

)

returnsum;

)

main()

(

printf("%d\n”,fun(100));

}

答案:break改為break;

程序設(shè)計(jì):

請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)

數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由

小寫字母組成,單詞之間由若干個(gè)空格隔開(kāi),一行的開(kāi)始和結(jié)束都沒(méi)

有空格。

#include<stdio.h>

#include<string.h>

#defineN80

intfun(char*s)

{

}

main()

(

charline[N];

intnum=0;

FILE*out;

char*test[]={"HelloWorld!“Thisisatest

string.z,,"ab","cdefg,sf1"};

printf("Enterastring:\n");

gets(line);

num=fun(line);

printf("Thenumberofwordis:%d\n\n",num);

out=fopen("out.dat","w");

for(num=0;num<4;num++)

printf(out,"%d\n”,fun(test[num]));

fclose(out);

第3套

第一題:

已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已

存入a結(jié)構(gòu)體中,給定程序的功能是找出成績(jī)最低的學(xué)生記錄,通過(guò)

形參返回函數(shù)。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函

數(shù)的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。

#include<stdio.h>

#include<string.h>

#defineN10

typedefstructss

(

charnum[10];

ints;

}STU;

fun(STUa[],STU*s)

(

stuh;

inti;

h=a[0];

for(i=l;i<N;i++)

if(a[i].s<h.s)

h=a[i];

*s=_h;

}

main()

(

STUa[N]=

(

{"AOI",81},{"A02",89},{"A03",66},{"A04",87},

{"A05",77},{"A06",90},{"A07",79},{"A08",61},

{"A09",80},{"A10",71}

},m;

inti;

printf("*****Theoriginaldata*****\n");

for(i=0;i<N;i++)

printf("No=%sMark=%d\n",a[i].num,a[i].s);

fun(a,&m);

printf("*****THERESULT*****\n)

printf("Thelowest:%s,%d\n",m.num,m.s);

)

第二題:

下列給定程序中,函數(shù)fun的功能是:將字符串p中的所有

字符復(fù)制到字符串b中,要求每復(fù)制三個(gè)字符之后插入一個(gè)空格。例

如,在調(diào)用fun函數(shù)之前給字符串a(chǎn)輸入ABCDEFGHIJK,調(diào)用函數(shù)

之后,字符串之后,字符串b中的內(nèi)容則為ABCDEFGHIJK。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程

序的結(jié)構(gòu)!

#include<stdio.h>

voidfun(char*p,char*b)

(

inti,k=0;

while(*p)

(

/********^)und********/

i=0;

/********found********/

while(i<3&&*p)

|

b[k]=*p;

k++;

P++;

i++;

)

/********^Qund********/

if(*p)

bfk++l='

)

b[k]='\0';

)

main()

(

chara[80],b[80];

printf("Enterastring:");

gets(a);

printf("Theoriginalstring:");

puts(a);

fun(a,b);

printf("\nThestringafterinsertspace:");

puts(b);

printf("\n\n");

)

第三題:

請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:計(jì)算并輸出給定整數(shù)n的

所有因子(不包括1與自身)之和。規(guī)定n的值不大于1000。

例如,若主函數(shù)從鍵盤給n輸入的值為856,則輸出為

sum=763o

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)

fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

#include<stdio.h>

intfun(intn)

main()

(

intn,sum;

FILE*out;

printf("Inputn:");

scanf("%d",&n);

sum=fun(n);

printf("sum=%d\n",sum);

out=fopen("out.dat","w");

fprintf(out,"%d\n",fun(123));

fprintf(out,"%d\n",fun(456));

fprintf(out,"%d\n",fun(789));

fprintf(out,"%d\n",fun(147));

fprintf(out,"%d",fun(258));

fclose(out);

)

intfun(intn)

(

ints=0,i;

for(i=2;i<=n-l;i++)

if(n%i==0)

s+=i;

returns;

第4套

填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:把字符串strl中的非空格字符拷貝

到字符串str2中.

例如,若strl=,,nicetomeetyou!”,則str2=,,nicetomeetyou!

僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其他任

何內(nèi)容.

#include<stdio.h>

#defineN80

main()

(

staticcharstrl[N]="nicetomeetyou!";

charstr2[N];

inti=0,j=0;

printfn******str]******\n

puts(strl);

while(strl[i])

(

if(—1—)

str2[j++]=strl[i];

—2—;

)

printf(*****str2******\n

for(i=0;i<j;i++)

printf("%c",str2[i]);

)

改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:將大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母

之后的第五個(gè)字母;若小寫字母為v?z,使小寫字母的值減21.轉(zhuǎn)換后的

小寫字母作為函數(shù)值返回例如,若形參是字母A,則轉(zhuǎn)換字母為小寫字

母f;若形參是字母W,則轉(zhuǎn)換為小寫字母b.

請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)

構(gòu)!

#include<stdio.h>

#include<ctype.h>

charfun(charc)

(

/********found********/

if(c>='A'&&c<='Z')

c=c-32;

/********found********/

if(c>='a'&&c<='u')

c=c-5;

elseif(c>='v'&&c<='z')

c=c-21;

returnc;

)

main()

(

charcl,c2;

printf("\nEnteraletter(A-Z):");

cl=getchar();

if(isupper(cl))

(

c2=fun(cl);

printf("\n\nTheletter%cchangeto%c\n",cl,c2);

)

else

(

printf("\nEnter(A-Z)!\n");

)

)

編程題

請(qǐng)編寫函數(shù)fun,其功能是:將s所指字符串中ASCII值為奇數(shù)的字

符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為ABCDEFG12345,其中字符A的

ASCII碼值為奇數(shù)、...、

字符1的ASCII碼值也為奇數(shù)、……都應(yīng)當(dāng)刪除,其他依次類推。最

后t所指的叔祖中的內(nèi)容應(yīng)是BDF24o

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花

括號(hào)中填入所編寫的若干語(yǔ)句。

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

)

main()

chars[100],t[100],Msg[]="PleaseenterstringS:";

FILE*out;

printf(Msg);

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:%s\n",t);

out=fopen("out.dat","w");

fun(Msg,t);

fprintf(out,"%s",t);

fclose(out);

)

答案:

第一題:

第1處填空strl[i]!=''或'’!=strl[i]

第2處填空i++或++i或i+=l或i=i+l

第二題:

第1處:c=c-32;應(yīng)改為c=c+32;

第2處:c=c-5;應(yīng)改為c=c+5;

第三題:

voidfun(charts,chart[])

(

intI,j=0,n;

n=strlen(s);

for(i=0;i<n;i++)

if(s[i]%2==0)

(

j++;

)

第5套

填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:輸出一個(gè)N*N矩陣,要求

非周邊元素賦值0,周邊元素賦值1。

僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其

他內(nèi)容。

#include<stdio.h>

#defineN10

main()

(

intbb[NJ[N];

inti,j,n;

printf("\nlnputn:\n");

scanf("%d",&n);

for(i=0;i<n;i++)

for(j=0;j<n;j++)

(

if(i==0||i==n-1|(j==OHj==n-1)

else

—2—;

)

printf("\n*****theresult*******\n");

for(i=0;i<n;i++)

(

printf("\n\n");

for(j=0;j<n;j++)

printf("%4d",bb[i][j]);

)

)

改錯(cuò)題

下列給定程序中函數(shù)fun的功能是:從低位開(kāi)始取出長(zhǎng)整型變量s

中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中,例如,當(dāng)s中的數(shù)為

7654321時(shí),t中的數(shù)為7531。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的

結(jié)構(gòu)!

#include<conio.h>

#include<stdio.h>

/********found********/

voidfun(longs,longt)

{',

longsi=10;

*t=s%10;

while(s>0)

(

s=s/100;

*t=s%10*sl+*t;

/********found********/

si=si*100;

)

)

main()

(

longs,t;

printf("\nPleaseenters:");

scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

)

編程題

請(qǐng)編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形

成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放

在c數(shù)的百位和個(gè)位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和

千位上。

例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后,c=2415o

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的

花括號(hào)中填入所編寫的若干語(yǔ)句。

#include<conio.h>

#include<stdio.h>

voidfun(inta,intb,long*c)

)

main()

(

inta,b;

longc;

FILE*out;

printf("Inputa,b;");

scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresultis:%Id\n",c);

out=fopen("out.dat","w");

for(a=20;a<50;a+=3)

fun(a,109-a,&c);

fprintf(out,"%ld\n",c);

)

fclose(out);

}

答案

第一題(填空題)

第1處填空:bb[i][j]=l

第2處填空:bb[i][j]=O

第二題(改錯(cuò)題)

第1處:voidfun(longs,longt)應(yīng)改為voidfun(longs,

long*t)

第2處:sl=sl*100;應(yīng)改為sl=sl*10;

第三題(編程題)

voidfun(inta,intb,long*c)

(一

*c=(b%10)1000+(a/10)*100+(b/10)*10+a%10;

)

第6套

填空題

給定程序的功能是計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)之和除,直到

SN大于Q為止,Q的值通過(guò)形參傳入。

例如,若Q的值為50.0,則函數(shù)值為50.416687-

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)

的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。

試題程序:#include<stdio.h>

doublefun(doubleq)

(

intn;

doubles;

n=2;

s=2.0;

while(s1q)

(

s=s+(double)(n+1)/n;

2;

printf("n=%d\n",n);

3;

main()

{

printf("%f\n",fun(50));

)

第1處填空:<=

第2處填空:n++或n+=l或n=n+l

第3處填空:returns或return(s)

改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:根據(jù)整型參m的值,計(jì)算

如下公式的值。

例如,若m中的值為5,則應(yīng)輸出:0.536389

請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序

的結(jié)構(gòu)!

試題程序:#include<conio.h>

#include<stdio.h>

doublefun(intm)

(

doubley=1.0;

inti;

I********founci********/

for(i=2;i<m;i++)

/*************/

y_=1/(i*i);

return(y);

)

main()

{

intn=5;

printf("\nTheresultis%lf\n",fun(n));

)

第1處:for(i=2;i<m;i++)應(yīng)改為for(i=2;i<=m;j++)

第2處:y-=l/(i*i);應(yīng)改為y-=1.0/(i*i)

編程題

請(qǐng)編寫一個(gè)函數(shù)voidfun(chara[],charb[],intn),其功能是:刪除一

個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除后的字符

串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。

例如,輸入一個(gè)字符串World,然后輸入3,則調(diào)用該函數(shù)后的結(jié)

果為Wordo

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的

花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:#include<stdio.h>

#include<conio.h>

#defineLEN20

voidfun(chara[],charb[],intn)

main()

{

charstrl[LEN],str2[LEN];

intn;

FILE*out;

printf("Enterthestring:\n");

gets(strl);

printf("Enterthepositionofthestring

deleted:");

scanf("%d",&n);

fun(strlAstr2,n);

printf("Thenewstringis:%s\n",str2);

fun("HelloWorld!",str2,9);

out=fopen("out.daf',"w");

fprintf(out,"%s",str2);

fclose(out);

)

答案是:

voidfun(chara[],charb[],intn)

(

intI,j=0;

for(i=0;i<LEN;i++)

if(i!=n)

b[j]=a[i];

j++;

}

b[j]='\0';

第7套

填空題

函數(shù)fun的功能是:統(tǒng)計(jì)長(zhǎng)整數(shù)n的各個(gè)位上出現(xiàn)數(shù)字1,2,3的次

數(shù),并通過(guò)外部(全局)變量cl,c2,c3返回主函數(shù)。

例如,當(dāng)=123114350時(shí),結(jié)果應(yīng)該為:cl=3,c2=l,c3=2.

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的

橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。

試題程序如下:#include<stdio.h>

intcl,c2,c3;

voidfun(longn)

(

cl=c2=c3=0;

while(n)

{

switch(1)

(

case1:

cl++;

—2;

case2:

c2++;

—3;

case3:

c3++;

)

n/=10;

)

)

main()

longn=123114350L;

fun(n);

printf("\nTheresult:\n");

printf("n=%ldcl=%dc2=%dc3=%d\n”,n,cl,c2,

c3);

)

第1處填空:n%10

第2處填空:break

第3處填空:break

改錯(cuò)題

下列給定程序中函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元

素按從小到大的順序進(jìn)行排序。

請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序

的結(jié)構(gòu)!

試題程序:#include<stdio.h>

#defineN20

voidfun(inta[],intn)

{

inti,j,t,p;

for(j=0;j<n-l;j++)

{

/丈★大★丈夫夫*fc)und■夫夫1

p=j

for(i=j;i<n;i++)

if(a[i]<a[p])

(

/********found********/

P=i;

t=a[p];

a[p]=a[i];

a[i]=t;

)

main()

(

inta[N]={9,6,8,3,-1},i,m=5;

printf("AADoQ°£°");

for(i=0;i<m;i++)

printf(n%d,",a[i]);

printf("\n");

fun(a,m);

printf(nAADdo6£o");

for(i=0;i<m;i++)

printf("%d,",a[i]);

printf("\n");

)

第1處:p=j應(yīng)改為p=j;

第2處:p=i應(yīng)改為p=j;

編程題

請(qǐng)編寫一個(gè)函數(shù)intfun(int*s,intt,int*k),用來(lái)求出數(shù)組的最大元素在

數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單位中。

例如,輸入如下整數(shù):

876675896101301401980431451777

則輸出結(jié)果為:6,980o

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花

括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:#include<conio.h>

#include<stdio.h>

voidfun(int*s,intt,int*k)

main()

{

int

a[10]={876,675,896,101,301,401,980,431,451,777},

k;

FILE*out;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);

out=fopen("out.dat","w");

fprintf(out,"%d\n%ci",k,a[k]);

fclose(out);

)

答案是:

voidfun(int*s,intt,int*k)

(

intI,max;

max=s[0];

for(i=0;i<t:i++)

if(s[i]>max)

max=s[i];

*k=I;

)

)

第8套

填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤輸入一組整數(shù),使用條

件表達(dá)式找出最大的整數(shù)。當(dāng)輸入的整數(shù)為。時(shí)結(jié)束。

例如,輸入123540時(shí)一,最大的數(shù)為5。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫

線上填入所編寫的若干表達(dá)式或語(yǔ)句。

試題程序:#include<stdio.h>

#include<conio.h>

#defineN100

main()

(

intnum[N];

inti=-1;

intmax=0;

printf("\nlnputintegernumber:\n");

do

|

i++;

printf("num[%d]=",i);

scanf("%d",__1___);

max=__2___num[i]:max;

}while(3);

printf("max=%d\n",max);

)

第1處填空:&num[i]或num+i

第2處填空:max<num[i]?或num[i]>max?

第3處填空:num[i]!=0或0!=num[i]

改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:在字符串str中找出ASCII碼

值最大的字符,將其放在第一個(gè)位置上;并將該字符前的原字符向后

順序移動(dòng)。例如,調(diào)用fun函數(shù)之前給字符串輸入:ABCDeFGH,調(diào)

用后字符串中的內(nèi)容為eABCDFGH

請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)

構(gòu)!

試題程序:#include<stdio.h>

/********found********1

voidfun(char*p);

(

charmax,*q;

inti=0;

max=p[i];

while(p[i]!=0)

{

if(max<p[i])

(

丈★*found*****★丈*/

max=p[i];

p=q+i;

)

i++;

)

while(q>p)

(

*q=*(q-1);

q--;

)

p[0]=max;

}

main()

{

charstr[80];

printf("Enterastring:");

gets(str);

printf("\nTheoriginalstring:");

puts(str);

fun(str);

printf("\nThestringaftermoving:");

puts(str);

printf("\n\n");

第1處:voidfun(char*p);應(yīng)改為voidfun(char*

第2處:p=q+I;應(yīng)改為q=p+i;

編程題

編寫函數(shù)fun,函數(shù)功能是:根據(jù)以下公式計(jì)算s,計(jì)算結(jié)果作為函

數(shù)值返回;n通過(guò)型參傳入。

11

s=1+—+——;——+..…+-------;-------

1+21+2+31+2+3+...J2

例如:若n的值為11時(shí),函數(shù)的值為1.833333。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花

括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:#include<conio.h>

#include<stdio.h>

#include<string.h>

floatfun(intn)

}

main()

{

intn;

floats;

FILE*out;

printf("\nPleaseenterN:");

scanf("%d",&n);

s=fun(n);

printf("Theresultis:%f\n",s);

s=fun(28);

out=fopen("out.dat","w");

fprintf(out,"%f",s);

fclose(out);

)

答案是:

floatfun(intn)

inti;

floats=l.O,t=l.O;

for(i=2;i<=n;i++)

(

t=t+i;

s=s+l/t;

)

returns;

}

第9套

填空題

給定程序的功能是分別統(tǒng)計(jì)字符串中大寫字母和小寫字母的個(gè)數(shù)。

例如,給字符串SS輸入:AaaaBBbl23CCccccd,則輸出結(jié)果應(yīng)為:

upper=5,lower=9。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫

線上填入所編寫的若干表達(dá)式或語(yǔ)句。

試題程序:#include<stdio.h>

voidfun(char★s,int*a,int*b)

{

while(*s)

{

if(*s>=1A*&&*s<=*Z*)

1;

if(*s>=*a*&&*s<=*z*)

—2;

s++;

)

)

main()

{

chars[100];

intupper=0,lower=0;

printf("\nPleaseastring:");

gets(s);

fun(s,Supper,slower);

printf("\nupper=%dlower=%d\n",3);

}——

第1處填空:(*a)++或++(*a)或*a=*a+l或*a+=l

第2處填空:(*b)++或++(*b)或*b=*b+l或*b+=l

第3處填空:upper,lower

改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:從n個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低

于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在行參aver

所指的存儲(chǔ)單元中。例如,若輸入8名學(xué)生的成績(jī):

80.5607290.59851.58864

則低于平均分的學(xué)生人數(shù)為4(平均分為:75.5625).

請(qǐng)改正程序中的錯(cuò)誤,使程序能統(tǒng)計(jì)出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的

結(jié)構(gòu)!

試題程序:#include<conio.h>

#include<stdio.h>

#defineN20

intfun(float*s,intn,float*aver)

{

floatave,t=0.0;

intcount=0,k,i;

/********found********/

for(k=0;k<n;k++)

t=s[k];

ave=t/n;

for(i=0;i<n;i++)

if(s[i]<ave)

count++;

I*★*****★found********I

*aver=&ave;

returncount;

)

main()

{

floats[30],aver;

intm,i;

printf("\nPleaseenterm:");

scanf(n%d",&m);

printf("\nPleaseenter%dmark:\n",m);

for(i=0;i<m;i++)

scanf("%f"zs+i);

printf("\nThenumberofstudents:%d\n",fun(s,

m,&aver));

printf("Ave=%f\n",aver);

)

第1處:t=s[k];應(yīng)改為t+=s[k];

第2處:*aver=&ave;應(yīng)改為*aver=ave;

編程題

編寫函數(shù)fun,它的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值

帶回。M與n為兩個(gè)正整數(shù)且要求m>n。

P=__

及!(加一〃)!

例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花

括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:#include<conio.h>

#include<stdio.h>

floatfun(intm,intn)

main()

(

FILE*out;

printf("P=%f\n",fun(12,8));

out=fopen("out.dat","w");

fprintf(out,"%f",fun(12,6));

fclose(out);

)

答案是:

floatfun(intm,intn)

(

floatp,t=1.0;

inti;

for(i=l;i<=m;i++)

t=t*i;

p=t;

for(t=1.0,i=l;i<=n;i++)

t=t*i;

p=p/t;

for(t=1.0,i=1;i<=m-n;i++)

t=t*i;

p=p/t;

returnp;

)

第10套

填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤鍵盤輸入3個(gè)整數(shù)然后

找出最大的數(shù)并輸出。

例如,輸入:124543,輸出為45

注意:部分源程序給出如下。

僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其

他任何內(nèi)容。

試題程序:#include<stdio.h>

#include<conio.h>

main()

{

inta,b,c,max;

printf("\nlnputthreenumbers:\n");

scanf("%dz%d,%d",&a,&b,&c);

printf("Thethreenumbersare:%d,%d,%d\n",a,b,

c);

if(a>b)

—1—;

else

—2;

if(max<c)

—3;

printf("max=%d\n",max);

)

第1處填空:max=a

第2處填空:max=b

第3處填空:max=c

改錯(cuò)題

下列給定程序中,函數(shù)fun的功能是:將s所指字符串出現(xiàn)的tl所指

子串全部替換成t2所指子字符串,錯(cuò)形成的新串放在w所指的數(shù)組

中。在此處,要求tl和t2所指字符串的長(zhǎng)度相同。例如,當(dāng)s所指

字符串的內(nèi)容為abcdabfab,tl所指子串中的內(nèi)容為ab,t2所指子串中

的內(nèi)容為99時(shí);結(jié)果,在w所指的數(shù)組中的內(nèi)容為99cd99f99。

請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)

構(gòu)!

試題程序:#include<conio.h>

#include<stdio.h>

#include<string.h>

/********found********/

voidfun(char★s,*t1,*t2,*w)

{

inti;

char*p,★rf*a;

strcpy(w,s);

while(*w)

|

p=w;

r=tl;

/丈★大★丈夫夫*fc)und■夫夫★★★★★文/

while(r)

if(*r==*p)

(

r++;

p++;

)

else

(

break;

)

if(*r——1\01)

(

a=w;

r=t2;

while(*r)

(

*a=*r;

a++;

r++;

)

w+=strlen(t2);

}

else

w++;

)

)

)

main()

(

chars[100]ztl[100],t2[100],w[100];

printf("\nPleaseenterstrings:");

scanf("%s",s);

printf("\nPleaseentersubstringtl:");

scanf("%s",tl);

printf("\nPleaseentersubstringt2:");

scanf("%sn,t2);

if(strlen(tl)==strlen(t2))

{

fun(s,tl,t2,w);

printf("\nTheresultis:%s\n",w);

)

else

{

printf("Error:strlen(tl)!=strlen(t2)\n");

)

)

第1處:voidfun(char*s,*tl,*t2,*w)應(yīng)改為voidfun(char*s,char

*tl,char*t2,char*w)

第2處:while(r)應(yīng)改為while(*r)

編程題

編寫函數(shù)fun,它的功能是:利用以下所示的簡(jiǎn)單迭代方法求方程式

cos(x)-x=0的一個(gè)實(shí)根。

X“M=cos(X“)

迭代步驟如下:

(1)取X1初值為0.0;

(2)xO=xl,把xl的值賦給x0;

(3)xl=cos(x0),求出一個(gè)新的xl;

(4)若xO-xl,的絕對(duì)值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行

步驟(2);

(5)所求xl就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Root=0.739085o

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花

括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:#include<conio.h>

#include<math.h>

#include<stdio.h>

floatfun()

main()

{

FILE*out;

floatf=fun();

printf("Root=%f\n",f);

out=fopen("out.dat","w");

fprintf(out,"%f",f);

fclose(out);

)

答案是:

floatfun()

(

floatxl=0.0,x0;

do

(

xO=xl;

xl=cos(xO);

)

while(fabs(xO-x1)>=le-6);

returnxl;

)

第11套

填空題

給定程序中,涵數(shù)fun的功能是:把形參s所指字符串中下標(biāo)為奇數(shù)

的字符右移到下一個(gè)奇數(shù)位置,最右邊被移出字符串的字符串的字符

繞回放到第一個(gè)奇數(shù)位置,下標(biāo)為偶數(shù)的字符不動(dòng)(注:字符串的長(zhǎng)

度大于等于2)

例如,形參s所指的字符串為:abcdefgh,執(zhí)行結(jié)果為:ahcbedgf.

注意:部分源程序給出如下。

僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其

他任何內(nèi)容。

試題程序:#include<stdio.h>

voidfun(char*s)

{

inti,n,k;

charc;

n=0;

for(i=0;s[i]!=*\0*;i++)

n++;

if(n%2==0)

k=n-1;

else

k=n-2;

c=2;

for(i=k-2;i〉=l;i=i-2)

s[i+2]=s[i];

s[l]=3;

main()

(

chars[80]="abcdefgh";

printf("\nTheoriginalstringis:%s\n",s);

fun(s);

printf("\nTheresultis:%s\n",s);

)

第1處填空:1

第2處填空:s[k]或*(s+k)

第3處填空:c

改錯(cuò)題

下列給定程序中,函數(shù)FUN的功能是:將一個(gè)由八進(jìn)制數(shù)字字符組

成的字符串轉(zhuǎn)換為與其面值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最

多只能包含5位8進(jìn)制數(shù)字。例如,若輸入77777,則輸出將是32767。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。

注意:不要改動(dòng)MAIN函數(shù),不得增行或刪行,也不要更改程序的

結(jié)構(gòu)!

試題程序:#include<stdio.h>

#include<stdlib.h>

#include〈string.h>

intfun(char*p)

(

intn;

/夫丈夫丈夫丈★.found,夫夫★★★★丈★/

n=*p-*o*;

p++;

/夫丈夫★★★夫夫founcl***夫夫/

while(*p!=0)

{

n=n*7+*p-*o*;

p++;

)

returnn;

}

main()

{

chars[6];

inti;

intn;

printf("Enterastring(octaldigits):");

gets(s);

if(strlen(s)>5)

(

printf("Error:stringtoolonger!\n\n");

exit(0);

)

for(i=0;s[i];i++)

if(s[i]<'0'||s[i]>'7')

{

printf("Error:%cnotisoctaldigits!\n\n",

s[i]);

exit(0);

}

printf("Theoriginalstring:");

puts(s);

n=fun(s);

printf("\n%sisconveredtointegen

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論