资源描述:
《二级C上机绝密100题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
二级C语言上机考试复习资料,共有100套题目一、程序填空题1、给定程序中,函数ftm的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000.xl*x1+xPx2=40.(XX)000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果.注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includedoublefl(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********Sund**********/_1_fun(in(i,doublex.doubley){if(i==D/**********1^Upd**********/return_2_(x);else/**********Cund**********/return_3_(x,y);)main(){doublexl=5,x2=3,r;r=fun(1,xl,x2);r+=fun(2,xl,x2);printf("
1xl=%f,x2=%f,xl*xl+xl*x2=%f
2
3',,xl,x2,r);I2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程序的下划线处填入iE确的内容并把卜划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includc#includestructstudent{longsno;charname[10];floatscore[3];);voidfun(structstudenta[],intn)(/**********found**********/_structstudent」」;inti,j;/**********found**********/for(i=0;i<2_:i++)for(j=i+l;j0){c=a[i];a[i]=aU];a[j]=t;}}main(){structstudents[4)=({10001,"ZhangSan,;95,80,88),{10002,"LiSi",85,70.78),(10003."CaoKai",75,60.88},“0004JFangFang”,90,82,87));inti,j;printf("
4
5Theoriginaldata:
6
7");for(j=0;j<4;j++){printf("
8No:%ldName:%-8sScores:M,s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f",s[j].score(i]);printfCAn");}fun(s,4);printf("
9
10Thedataaftersorting:
11
12");for(j=0;j<4;j++){printfCAnNo:%ldName:%-8sScores:",s(j].sno,s[j].name);for(i=0;i<3;i++)printf(M%6.2f",s[j].score[i]);printf("
13");3、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回:并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#deGneN10doublefun(doublex[],double*y){intij;doubleav;/**********IY)und**********/av=_1_0_;/**********found**********/for(i=0;iav)y[__j++3_J»x[i];yUl=-i;returnav;)main(){inti;doublex[N],y[Nl;for(i=0;i14Theaverageis:%f
15",fun(x,y));for(i=0;y[i]>=0;i++)printf("%5.1fM,y(i]);printf("
16M);4、给定程序中,函数ftin的功能是:将a所指4X3矩阵中第k行的元素与第0行元素交换。例如,有下列矩阵:
17I2345678910II12若k为2,程序执行结果为:789456I23101112请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN3#defineM4/**********foupj£j**********/voidfun(int(*a)|NJ.int_k_1_){intij4cmp;/**********f0und**********/for(i=0;i<_2N_;i++){temp=a[0][i];a[0][i]=a[k][i]_3_;a[k][i]=temp;}}main(){intxfMHN]={{l,2,3h(4,5,6},{7,8,9),110,11,12)printf("Thearraybeforemoving:
18
19");for(i=0;i20
21M);)fun(x,2);printfC'Thearrayaftermoving:
22
23");for(i=0;i24
25");15、给定程序中,函数ftin的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include#include#include#defineN9longctod(char*s){longd=0;while(*s)if(isdigit(*s))(/**********IY)und**********/d=d*10+*s-_'01_;/**********f0und**********/_s++_2_;|returnd;longfun(char*a,char*b)/**********found**********/return_Ctod(a)+ctod(b)_3_;main(){charsl[N],s2[Nl;do{printfC'Inputstringsi:M);gets(sl);}while(strlen(sl)>N);do{printfC'Inputstrings2:");gets(s2);}while(strlen(s2)>N);printfC'Theresultis:%ld
26",fun(sl,s2));6、给定程序中,函数ftin的功能是:计算卜.式前n项的和作为函数值返回。1x3x3x55x7A(2x«-1)x(2x«+l)5―-t++...4224262(2x炉例如,当形参n的值为10时,函数返回:9.612558.请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!/includedoublefun(intn){inti;doubles,t;/**********found**********/s=_0_l_;/**********found**********/for(i=l;i<=_n2_;i++){t=2.0*i;
27/**********found**********/s=s+(2.0*i-l)*(2.0*i+iV_(t*t)3_;)returns;}main(){inin="l;while(n<0){printf("Pleaseinput(n>0):");scanf("%d".&n);}printf(H
28Theresultis:%f
29",fun(n));}7、给定程序中,函数firn的功能是:在3X4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。例如,有下列矩阵:12134781063597程序执行结果为:find:a[2]⑵=9请在程序的卜划线处填入iE确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineM3#defineN4voidfun(int(*a)[Nl){inti=0j.find=0,rmax.c.k:while((i30find=l;k=0;while(k31Uc,a[i][c]);/**********Sund**********/i++_3_;1if(!find)printf("notfound!
32");main()(intx[M][Nl,ij;printf("Enternumberforarray:
33");for(i=0;iN5M10intfun(char(*ss)[M],inik){iniij=0,len;/**********found**********/for(i=0;i<_lN_;i++){Ien=strlen(ss[i]);/**********found**********/if(leiK=k_2_)/**********found**********/strcpy(ss(j++]^ss[i]_3_);Ireturnj;)main(){charx(N][M]={,'BeijingVShanghai,,?Tianjing,',,'NanjingM,-Wuhan");inti,f;printfC'
34Theoriginals35
36M);for(i=Ou37");f=fun(x,7);printf("Thestringwitchlengthislessthanorequalto7:
38M);for(i=0;i39M);19、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、“ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#includestructstudent(longsno;charname[10];floatscore[3];voidfun(structstudenta){structstudentb;in(i;/**********foun(]**********/b.sno=10002;/**********found**********/strcpy(_b.name2一"us『);prinlf("
40Thedataaftermodified:
41**);printf("
42No:%IdName:%s
43Scores:",b.sno.b.name);/**********foijnd**********/for(i=0;i<3;i+4-)primf("%6.2f-,b._SCOre[i]_3_);printfCAn");Imain(){structstudents=(10001."ZhangSan".95,80,88};inti;printf("
44
45Theoriginaldata:
46"):printfCAnNo:%ldName:%s
47Scores:M,s.sno,s.name);for(i=0;i<3;i++)printf("%6.2fs.score[i]);printfCW);fun(s);}10、给定程序中,函数ftin的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
48#include#include#defineN5#defineM10/**********found**********/voidfun(char(*ss)_[M]_1_,intk){inti=0;while(i<_N2_){/**********fou()(j**********/ss【il[k]=_03_;i++;}}main(){charx(N](M]={MCreate",',Modify",MSort","skip",-Delete");inti;printf(H
49Theoriginalstring
50
51");for(i=Oy52");fun(x,4);printf("
53Thestringafterdeleted:
54
55");for(i=0;i56M);}II、给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参1所指字符数组中,形成•个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN80voidfun(char*s,intn.char*l){intlen.ij=0;len=strlen(s);/**********found**********/if(n>=len)strcpy(_t,S_1_);else{/**********found**********/for(i=len-n;i<=len-l;i++)t(j++]=_S[i]_2_;/**********found**********/tUJ=_30Imain(){chars[N],t[N];intn;printf("Enterastring:");gets(s);printf("Entern:M);scanf("%(!".&n);fun(s.n.1);printf("Thesiring(:");puts(t);12、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df.处理后新字符串为:123543asdfgh##df。请在程序的下划线处填入正确的内容并把下划线删除,侦程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#include#includechar*fun(char*s){intij,k,n;char*p,*t;n=strlen(s)+l;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=O;k=O;for(i=0;i57Theresultis:%s
58",fun(s));}13、给定程序中,函数ftm的功能是:找出100〜999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数•然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100〜999之间各位上数字之和为5的整数有:104、H3、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。清在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKI.C中。不得增行或删行,也不得更改程序的结构!#includefun(intx){intn,si,s2,s3,t;n=0;1=100;/**********f0und**********/while(t<=999_l_){/**********found**********/sl=(%10;s2=(_t/10_2__)%IO;s3=t/100;/**********fOUf|^j**********/if(sl+s2+s3=_X3_){printf(M%d\t);n++;}t++;1returnn;}main(){intx=-l;while(x<0){printfC'Pleaseinput(x>0):M);scanf(M%d",&x);}printf("
59Theresultis:%d
60",fun(x));
61I14、给定程序中,函数fun的功能是:将形参s所指字符申中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。裁例如,形参s所指的字符串为:abs5defl26jkm8,程序执行后的输出结果为:22。请在程序的下划线处项入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#includeintfun(char*s){intsum=0;while(*s){/**********found**********/if(isdigit(*s))sum+=*s-_1_48_;/**********found**********/_2s++_;return_3SUD1main(){chars[81];intn;printf("
62Enterastring:
63
64");gets(s);n=fun(s);printf("
65Theresultis:%d
66
67".n);)15、给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN6typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p.*q;intt;/**********qUf)(j**********/p=__i_h->next_;while(p){q=_2p->next_;while(q){/**********found**********/if(p-xlata_3>=_q-xlala)(t=p->data;p-xlata=q-xlata;q->data=t;}q=q->next;}p=p->next;I)NODE*creatlist(inta|]){NODE*h.*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h->next=NULL;for(i=0;ida(a=a[i];q->next=NULL;if(h->nexl=NULL)h->next=p=q;else{p->next=q;p=q;}1returnh;}voidoutlist(NODE*h){NODE*p;p=h->next;if(p==NULL)printfCThelistisNULL!
68M);else{printf("
69Head");do(prinlf("->%d",p->dala):p=p">nexl;}while(p!=NULL);printf("->End
70,');}}main(){NODE*head;inta[N]={0,10,4,2,8,6};head=crea(list(a);printf("
71Theoriginallist:
72'^);outiist(head);fun(head);printfCAnThelistaftersorting:
73");outlist(head);I16、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数ftin的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:10002、"LiSi"、96、81、89。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includestructstudent{longsno;charname[10];floatscore[3];};/**********found**********/Structstudent*_1_fun(struclstudent*a){inti;a->sno=10002;strcpy(a->name,"LiSi");/**********found**********/for(i=o;i<3;i++)_a->score[i]2__+=1;/**********Sund**********/return_3_3_;}main(){structstudents={IGOOl/ZhangSan*'.95,80,88}.*1;inti;printf("
74
75Theoriginaldata:
76");printfCAnNo:%IdName:%s
77Scores:".s.sno.s.name);for(i=0;i<3;i++)prinif("%6.2fH,s.score(i]);printfCAn");(=fun(&s);printf("
78Thedataaftermodified:
79M);printf(',
80No:%ldName:%s
81Scores:M,t->sno,t->name);for(i=0;i<3;i++)printf("%6.2fM,t->score[i|);printf(M
82M);)17、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:4630324061745154826,平均值为:3050(X)00
83移动后的输出为:4632404548306171526请在程序的下划线处填入正确的内容并把卜划线删除•使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includc#defineN10doublefun(double*x){inti,j;doubles,av.y[N];s=0;for(i=0;iav){/**********found**********/yLj++_2_j=x[i]:x[i]=-i;)for(i=0;i84Theaverageis:%f
85".fun(x));printf(H
86Theresult:
87".fun(x));for(i=0;iintfun(char*s){intn=0,flag=O;while(*s!=,\O,){if(*s!=*'&&nag==O)(/**********1^Uf)(j**********/_ln++_;flag=l;}/**********fou********/if(*s='')flag=0_2_;/**********found**********/_s++_3_;)returnn;}main(){charstr[81];intn;printfCAnEnteralinetext:
88");gets(str);n=fun(str);printf("
89Thereare%dwordsinthistext.
90
91",n);)19、给定程序中,函数fiin的功能是:在形参ss所指字符申数组中查找与形参I所指字符串相同的串,找到后返P]该串在字符串数组中的位置(下标值),未找到则返回ss所指字符串数组中共有N个内容不同的字符串,且用长小丁M。请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include#include#defineN5#deOneM8intfun(char(*ss)[M].char*t)(inti;/**********fou(xj**********/for(i=0;i<_N_l_;i++)/**********foup|£^**********/if(strcmp(ss[i].t)==O)returni2;return-1;)main(){charchlN]lM]={Mif',,'while",,,switch",MintM,"for',},t(MJ;intn,i;printfC'
92Theoriginalstring
93
94M);for(i=Ou95Thepositionis%d.
96",n);}20、给定程序中,函数fun的功能是:找出NXN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#defineN4voidfun(int(*a)|NJ,int*b){intij;for(i=0;i97Thematrix:
98");for(i=Ou99");I/**********found**********/fun(_X,y3_J;printf(M
100Theresultis:n);for(i=0;i101例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出1E确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include#include#includeintfun(char*s){char*lp,*rp;/**********found**********/lp=_s」_;q)=s+strlen(s)-l;while((toupper(*lp)==toupper(*q)))&&(lp