《二级C语言机试答案资料讲解.doc》由会员分享,可在线阅读,更多相关《二级C语言机试答案资料讲解.doc(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。二级C语言机试答案-一、1、程序填空题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写在文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。填空:(1)FILE*(2)fclose(fp)(3)fp改错:(1)t=(STU*)calloc(sizeof(STU),m);(2)tk=bj;编程:inti,t,j=0,*p=a;t=p0;for(i=0;i=n)aj=t;returnj;二、1、程序填空题给定
2、程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数:27638496函数返回值为26846。填空:(1)1(2)s(3)i*10改错:(1)intfun(intn,intxxM);(2)printf(“%4d”,xxij);编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);最后在黑色对话框中输入4512后按回车键三、1、程序填空题给定程序中,函数fun的功能是:找出100999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后
3、输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。填空:(1)999(2)t/10(3)x改错:(1)voidfun(longs,long*t)(2)while(s0)编程:(注意:此题在/*请按题目要求完成以下代码*/的下面填入答案)if(ai.saj.s)tmp=ai;ai=aj;aj=tmp;四、1、程序填空题给定程序中,函数fun的功能是:找
4、出100至x(x999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。填空:(1)0(2)x(3)t+改错:(1)inti,s1;(2)ti=ss1-1-i;编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;最后在黑色对话框中输入4512后按回车键五、1
5、、程序填空题给定程序中,函数fun的功能是计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+(2n-1)/(2n*2n)直到|(2n-1)/(2n*2n)|=1e-3,函数的返回值2.985678。填空:(1)0(2)i+(3)2.0*i改错:(1)voidfun(char*s,char*t)(2)t2*d=0;编程:inti,j=0;for(i=1;istrlen(s);i+=2)if(i%2=1&si%2=1)tj+=si;tj=0;最后在黑色对话框中输入ABCDEFG123456后按回车键六、1、程序填空题函数fun的功能是:统计长整数的各个位上出现数字1、2、3的次数,并通过
6、外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3c2=1c3=2。填空:(1)n%10(2)break(3)break改错:(1)if(t=0)(2)*zero=count;编程:doubles=0,t=1;inti;for(i=1;i=n;i+)t*=i;s+=1.0/t;returns;最后在黑色对话框中输入50后按回车键七、1、程序填空题给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。填空:(1)*n(2)next(3)head改错:(1)a=NULL;(2)if(*r=*p)编程:*
7、c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);最后在黑色对话框中输入4512后按回车键八、1、程序填空题给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000填空:(1)double(2)f1(3)f2改错:(1)char*fun(char*s,char*t)(2)ss+;(3)tt+;编程:inti;for(i=0;im;i+)fun1(w);最后在黑色对话框中输入3后按回车键九、1、程序填空题函数fun的功能是:从三个形参a,b,c中
8、找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。填空:(1)a(2)a(3)b改错:(1)c=c+32;(把大写C改成小写)(2)c=c+5;编程:inti;doublefac=1.0;doublesum=1.0;for(i=2;i=n;i+)fac+=sqrt(i);sum+=fac;最后在黑色对话框中输入20后按回车键十、1、程序填空题给定程序中,函数fun的功能是,将形参s所指字符串中的字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如:s所指字符串为:asd123fgh543df,处理后新字符串为asdfghdf123543。填
9、空:(1)si(2)k(3)0改错:(1)while(*w)(2)if(*r=*p)编程:inti,j=0;for(i=0;istrlen(s);i+)if(!(si%2)tj+=si;tj=0;最后在黑色对话框中输入ABCDEFG12345后按回车键十一、1、程序填空题给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。填空:(1)q(2)next(3)next改错:(1);(少了分号)(2)p=j;t=ap;ap=ai;ai=t;编程:inti;*n=0;for(i=7;i=m;i+)if(i%7=
10、0)|(i%11=0)a(*n)+=i;十二、1、程序填空题给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。填空:(1)*std(2)stdi.age(3)max.name改错:(1)voidfun(int*a,int*b)(2)t=*b;*b=*a;*a=t;编程:inti,j,min,k;for(i=0;iN;i+)min=tt0i;k=0;for(j=1;jM;j+)if(ttjimin)min=ttji;k=j;ppi=ttki;十三、1、程序填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长的长度
11、,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长N。填空:(1)k(2)len(3)ssij改错:(1)result*=n-;(2)returnresult;(把横线改成result)编程:char*p=s;inti=0;while(*p)if(*p!=c)si+=*p;p+;si=0;最后在黑色对话框中输入n后按回车键十四、1、程序填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长N。填空:(1)ssi(2)j+n(3)1改
12、错:(1)if(*p=)(2);(后面缺少分号)编程:charch;inti,j;for(i=1;i6;i+)for(j=i+1;j6;j+)if(*(s+i)*(s+j)ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;最后在黑色对话框中输入CEAedca后按回车键十五、1、程序填空题函数fun的功能是:计算f(x)=1+x+x22!+xn/n!直到xn/n!10-6若x=2.5,函数值为:12.182494。填空:(1)x(2)n(3)t改错:(1)d=1;s=0;(2)d=d/10;(是除号)编程:inti;doubles=0;for(i=0;i8;i+)s+=sqrt
13、(xi+xi+1)/2);returns;十六、1、程序填空题给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。例如,有9个正整数:1572387582145按升序排列时的中间数为:8处理后主函数中输出的数列为:8882387882145填空:(1)bk(2)N/2(3)改错:(1)inttN,i,num=0;(2)tnum+=bi;(3)for(i=0;i=0&*s=9)s+;returnn;十七、1、程序填空题给定程序中,函数fun的功能是:
14、统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a0存放出现的次数,a1存放出现的次数,a9存放出现的次数。例如,若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1。填空:(1)ai(2)m%10(3)m/10改错:(1)bi=ai0;(2)for(j=1;jaij)编程:doublesum=0,max,min;inti;max=min=a0;for(i=0;in;i+)sum=sum+ai;if(maxai)min=ai;sum=sum-max-min;return(sum/(n-2);最后在黑色对话框中输入9.98.57.68.59.39.58.97.
15、88.68.4后按回车键(每个小数之间只有一个空格)十八、1、程序填空题给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。填空:(1)FILE*(2)fp(3)ch改错:(1)sj+=si;(2)sj=0;(双引号改成引号)编程:(注意:这道题是在/*请填写相应语句完成其功能*/下面的大括号中填入答案)for(j=0;jM;j+)bn=sji;n=i*M+j+1;十九1.程序填空题函数fun的功能是:计算f(x)=1+x+x/2!+xn/n!的前n项。若x=2.5,函数值为:12.182340.填空:(1)1(2
16、)1(3)i改错:(1)k=i;(2)c=k%10;(后面少了分号)编程:inti;doubleavg=0.0,sum=0.0,abs=0.0,fc;for(i=0;i10;i+)sum+=xi;avg=sum/10;for(i=0;i10;i+)abs+=(xi-avg)*(xi-avg);fc=sqrt(abc/10);ruturnfc;二十1、程序填空题给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。Ss所指字符串数组中共有M个字符串,且串长=0;j-)bi+=sj;strcpy(s,b);最后在黑色对话框中输入abcdefg后按回车键二十一
17、1.程序填空题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。填空:(1)STU(2)scorei(3)&std改错:(1)if(k0)(2)elseif(k=0)编程:intI,j;for(i=0;i(3)fwrite改错:(1)p=s;(顺序反了)(2)while(*p+);(缺少分号)编程:intI,j;for(j=0;jM;j+)bj=0;for(i=0;i=0&i=10&ai=20&ai=30&ai=40&ai=50&ai=60&ai=70&ai=90&ai=99)b9+=1;elseb10+
18、=1;二十三1.程序填空题甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0秒。例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。填空:(1)i(2)t+(3)count改错:(1)intfun(inta,intb,intc)(2)elsereturn1;(注意:这题不仅缺少分号,中间的单词也错了,应该是return)编程:inti,j=0;doubles=
19、0.0;for(i=3;i=n;i+)for(j=2;j=i;j+)if(i%j=0)break;if(j=i)s=s+sqrt(i);returns;最后在黑色对话框中输入100按回车键二十四1.程序填空题给定程序中,函数fun的功能是:计算出带有头结点的单向链表中个结点数据域中值之和作为函数值返回。填空:(1)data(2)next(3)head改错:(1)while(*r)(2)*a=*r;a+;r+;(缺少分号)编程:inti,j=0;for(i=0;istrlen(s);i+=2)tj+=si;tj=0;最后在黑色对话框中输入ABCDEFGHIJK后按回车键二十五1.程序填空题给定程
20、序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共有M份字符串,且串长data或(*p).data(3)p-next改错:(1)inti,one=0,zero=0;(2)switch(si)(多了分号)(3)case0=:zero+;break;编程:while(*s)*a=*s;s+;a+;*a=/0;二十七1.程序填空题人员的记录由编号和出生年月日(加顿号)组成,N名人员的数据已在主函数中存入结构数组std中。函数fun的功能是:找出指定年份的人员,将其数据放在形参k所指的数组中,由主函数输出
21、,同时由函数值返回满足指定条件的人数。填空:(1)stdi.year(2)stdi(3)n改错:(1)IsPrime(intn)(去掉后面的分号)(2)if(!(n%i)编程:inti,max=a0.s,j=0;for(i=0;imax)j=I;max=ai.s;*s=aj;二十八函数fun的功能是:输出a所指数组中的前n个个数据,要求每行输出5个数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果填空:(1)i%5=0(2)n(3)ai改错:(1)returnt;(2)for(i=0;iN;i+)ti=xi;(缺少分号)(3)xi+1=findmid(a,b,c);编程:
22、inti,j;j=-1;for(i=0;iN;i+)if(*s=x)j=I;s+;returnj;最后在对话框中输入27后按回车键二十九1.程序填空题给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容输出到终端屏幕。主函数中源文件sfname中,目标文件名放在变量tfname中。填空:(1)r(2)fs(3)ft改错:(1)if(d%2=0)(2)s/=10;编程:inti,j=0;for(i=0;i=eps)pi+=s;t=n/(2*n+1);*s=t;n+;pi=pi*2;returnpi;最后
23、在黑色对话框中输入0.0005后按回车键三十一1.程序填空题请补充fun函数,该函数的功能是:统计所有小于等于n(n2)的素数的个数,素数的个数作为函数值返回。填空:(1)j=3(2)i(3)j改错:(1)sum=0;j=0;(2)if(sum%4=2)编程:inti;doublesum=0.0;if(n1&n=100)for(i=1;i=n;i+)sum+=1.0(2*i-1)-1.0/(2*i);returnsum;最后在黑色对话框中输入8后按回车键三十二1.程序填空题人员的记录由编号和出生年月日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号惟一。函数fun的功能是:找出指
24、定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。填空:(1)STU(2)stdi.num(3)stdi改错:(1)r+;p+;(2)if(*r=0)编程:inti,j=0;for(i=0;istrlen(s);i+)if(si%2)tj+=si;tj=0;最后在黑色对话框输入ABCDRFG12345后按回车键三十三1.程序填空题给定程序的功能是:从键盘输入若干文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现
25、。填空:(1)*fw(2)str(3)str改错:(1)voidfun(longs,long*t)(2)sl=s1*10;(注意,s后面是字母l不是数字1)编程:inti,j=0,min=a0.s;for(i=0;iai.s)j=0;bj+=ai;min=ai.s;elseif(min=ai.s)bj+=ai;returnj;三十四1.程序填空题给定程序中,函数fun的功能是:计算下式前n项的和s=(1*3)/(2*2)-(3*5)/(4*4)+(5*7)/(6*6)-+(-1)(n-1)*(2n-1)(2n+1)/(2n*2n)作为函数值返回。例如:当形参n的值为10时,函数返回:-0.20
26、4491.填空:(1)1(2)2*i(3)(-1)改错:(1)k+;(2)if(m=k)编程:inti;*max=a0;*d=0;for(i=0;iN;i+)if(*maxai);*max=ai*d=I;三十五:1.程序填空题函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若形参ch中是大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持不变;并将转换后的结果作为函数值返回。填空:(1)&(2)A(3)ch改错:(1)voidfun(int*a)(2)aj=aj-1;编程:ints=0,i;for(i=2;ibi)编程:inti,j;longin
27、tp;i=strlen(s);p=s0-48;for(j=1;ji;j+)p=p*10+(sj-48);returnp;三十七1、程序填空题给定程序中,函数fun的功能是计算下式:s=3/(2*2)-5/(4*4)+7/(6*6)-.+(-1)(n-1)(2n+1)/(2n*2n)直到|(2n+1)/(2n*2n)|(3)(2*+1)改错:(1)doublefun(intn)(2)s=s+(double)a/b;编程:inti,j,max=a00;for(i=0;i2;i+)for(j=0;i2;i+)if(maxaij)max=aij;returnmax;三十八1、程序填空题给定程序中,函数
28、fun的功能是:将形参指针所指结果提数组中的三个元素按num成员进行升序排列。填空:(1)*std(2)PERSON(3)std改错:intk,q,i;(2)pti=strki;编程:inti,j;for(i=0;in;i+)for(j=0;ji;j+)aij=0;三十九1、程序填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以而进制方式输出到文件中。函数fun的功能是重写形参filename所指的文件中最后一个数据,即用新的学生数据覆盖该学生的原来数据,其他学生的数据不变。填空:(1)filename(2)fp(3)fp改错(1)p=(NONE*)mal
29、loc(sizeof(NODE);(2)retunrnh;编程:inti,n=0;for(i=0;i=a&si=z&(si+1=|si+1=0)n+;returnn;四十、1.程序填空题给定程序中已经建立一个带有头结点的单向链表,链表中的各结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值保持递增有序。填空:(1)x(2)p(3)s改错:(1)longk=1;(2)num/=10;编程题:inti;floataver=0.0;for(i=0;in;i+)aver+=ai;aver=aver/n;returnaver;四十一、1、
30、程序题空题:给定程序中,函数fun的功能是:将自然110以及它们的平方根写到名为myfile3.txt的文本文件中,然后将顺序读出显示在屏幕上。填空:(1)fp(2)fclose(fp)(3)fname改错:(1)for(i=j+1;idata(3)t改错:(1)voidfun(char*a)(2)printf(“%c”,*a)编程:inti;char*p=s,*q=t;intn=0,m=0;while(*p)n+;P+;While(*q)m+;q+;If(n=m)p=s;elsep=t;returnp;最后在黑色对话框中输入beijing后按回车键再输入shanghai后按回车键四十三、程序
31、填空题给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。填空:(1)STYPE(2)FILE(3)FP改错:(1)for(i=0;i=s1;i+)(2)t2*s1=0或ts1+s1=0编程:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);最后在黑色对话框中输入4512后按回车键四十四、程序填空题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数
32、返回。例如,输入一个整数:27638496,函数返回值为:64862.填空:(1)0(2)10*x(3)n/10改错:(1)*t=0;(2)if(d%2!=0)编程:char*p=p1;while(*p2)*p+=*p2+;*p=0;最后在黑色对话框中输入:FirstStringSecondString后按回车键四十五、程序填空题函数fun的功能是:计算F(x)=1+x-x2/2!+x3/3!-x4/4!+.+(-1)x-2xn-1/(n-1)!+(-1)x-2xn/n!的前n项之和。若x=2.5,n=15时,函数值为:1.917914.填空:(1)1(2)-1(3)t改错:(1)for(i=
33、0;i=0&k=6)编程:doubles=1;lngt=1;inti;for(i=1;i=n;i+)t*=I;s+=1./t;Returns;最后在黑色对话框中输入15后按回车键四十六、1程序填空题用筛选法可得到2n(n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置为0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;以此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。填空:(1)ai(2)a
34、i(3)0改错:(1)y=1;(2)d=a-I;编程:inti;doublesum=0.0;for(i=1;i=n;i+)if(i%5=0|i%9=0)sum+=1.0/I;returnsum;最后在黑色对话框中输入20后按回车键四十七1、程序填空题程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。填空:(1)tt(2)tt.scorei(3)std改错:(1)m=i;(2)if(akam)m=k;编程:unsignedt,s=0,sl=1,p=0;t=w;while(t10)if(t/10)P=t%10;s=s+p*s1;s1=s1*10;
35、t=t/10;returns;最后在黑色对话框中输入5923后按回车键四十八1、程序填空题给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除。剩下的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如:输入一个数:27638496,新的数:739.填空:(1)10(2)0(3)x改错:(1)if(n=0)(2)缺分号编程:(注意:这道题是在/*在下代码仅供参考*/到returnx;删除,填入下面答案)longs=0,t;inti=0,j,n=strlen(p),k,sl;if(p0=-)i+;for(j=i;jn-1;j+)t=pj-0;sl=10
36、;for(k=j;kn-1,k+)t*=sl;s+=t;if(p0=-)returns;elsereturns;四十九1、程序填空题给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。填空:(1)0或NULL(2)n(3)head,ch改错:(1)for(i=0,t=0;pi;i+)(2)ct=0;编程:inti;for(i=1;istrlen(ss);i+=2)if(ssi=a&ssi=z)ssi-=32;最后在黑色对话框中输入abc4EFg后按回车键五十1、程序填空题函数fun的功能是:计算f(x)=1+x-x2/2!+x3/3!-x4/4!+(-1)x-2xn-1/(n-1)!+(-1)x-2xn/n!直到xn/n!10-6。若x=2.5,函数值为:1.