版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加強(qiáng)社會(huì)主義法制建設(shè)
- 中國(guó)古代建筑藝術(shù)賞析
- 2024年茶藝師(初級(jí))考試題及答案
- 2025屆許昌市重點(diǎn)中學(xué)高考仿真卷數(shù)學(xué)試題含解析
- 2025屆云南省曲靖市富源六中高考語(yǔ)文四模試卷含解析
- 四川省成都經(jīng)開(kāi)區(qū)實(shí)驗(yàn)高級(jí)中學(xué)2025屆高考仿真卷英語(yǔ)試題含解析
- 2025屆山西省渾源縣第五中學(xué)高考英語(yǔ)押題試卷含解析
- 《solidworks 機(jī)械設(shè)計(jì)實(shí)例教程》 課件 任務(wù)9.1 臺(tái)虎鉗裝配體的設(shè)計(jì)
- 《放射性衰變》課件
- 2025屆新疆師范大學(xué)附屬實(shí)驗(yàn)高中高考數(shù)學(xué)三模試卷含解析
- STK基礎(chǔ)教程學(xué)習(xí)版
- 小學(xué)校醫(yī)聘任協(xié)議書
- 全過(guò)程工程咨詢管理服務(wù)方案
- 2023年中國(guó)心血管病報(bào)告
- 國(guó)開(kāi)畢業(yè)2023(必備15篇)
- 招標(biāo)代理流程圖詳細(xì)
- 材料的性能與規(guī)劃教學(xué)設(shè)計(jì)
- PEP五年級(jí)上冊(cè)英語(yǔ)Unit 6 In a nature park 教學(xué)反思
- 卒中后癲癇的長(zhǎng)程管理課件
- GB/T 6451-2015油浸式電力變壓器技術(shù)參數(shù)和要求
- 產(chǎn)品裝配過(guò)程檢查記錄
評(píng)論
0/150
提交評(píng)論