《2022年二级C语言上机题库参考答案 3.pdf》由会员分享,可在线阅读,更多相关《2022年二级C语言上机题库参考答案 3.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、读书破万卷下笔如有神1、程序填空题调用 fun 函数建立班级通讯录。填空: (1)STYPE (2)FILE (3)fp 改 错:(1) for(i=0;i=sl;i+) (2) t2*sl=0 或 tsl+sl=0 编程:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2、程序填空题从键盘输入若干文本(每行不超过80 个字符) ,填空: (1) *fw (2) str (3) str 改 错 : (1) void fun(long s,long *t)(2) s1=s1*10; 编程: int i,j=0,min=a0.s; for(i=0;iN;i+)
2、 if(ai.smin) j=0;bj+=ai;min=ai.s; else if(min=ai.s) bj+=ai; return j; 3、程序填空题讲自然数110 以及它们的平方根写到名为 myfile3.txt 的文本中填空: (1)fp(2)fclose(fp)(3)myfile3.txt 改错: (1)for(i=j+1;in;i+) (2)p=i; 编程:*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10; 4、程序填空题找出形参 s所指字符串出现频率最高的字母letter a:3 times letter s:3 times 填空: (1) r (
3、2 ) fs (3)ft 改错:(1)if (d%2=0) (2 ) s/=10; 编程:int i = 0, j = 0; while(si) if(i % 2 = 0 & si % 2 = 0) tj+ = si; i+; tj = 0; 5、程序填空题把形参 x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。填空: (1)x (2)p (3)s 改错: (1)long k=1; (2)num/=10; 编程: int i; float aver=0.0; for(i=0;idata (3) t 改错:(1) void fun(char *a) (2) print(
4、%c,*a); 编程: int i; char *p=s,*q=t; int n=0,m=0; while(*p) /*计算串 s的长度 n,其中 p 为临时指针 */ n+; p+; while(*q) /* 计算串 t 的长度 m,其中 q 为临时指针 */ m+; q+; if(n=m) /* 比较 m 和 n 的值,设置 p 指向较大的指针 */ p=s; else p=t; return p;7、程序填空题建立一个带有头结点的单向链表精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 8 页读书破万卷下笔如有神填空: (1) q
5、(2) next (3) next 改错: (1) 缺分号(2) p = i; 编程: *n=0; int i; for(i=1;i=m;i+) if(i%7=0|i%11=0) a*n+=i; 8、程序填空题查找数据域中值为ch 的结点。填空: (1)0 或 NULL (2)n (3)head,ch 改错: (1) for(i=0 , t=0;pi;i+) (2) ct=0; 编程:int i;for(i=1;i=a&ssi=z) ssi-=32; 9、程序填空题统计出 .单向链表中节点的个数填空: (1) *n (2) next (3) head 改错: (1) a=NULL; (2) i
6、f(*r=*p) 编程:int i,j=0; for(i=0;istrlen(s);i+=2) if(si%2=0) tj+=si; tj=0; 10、程序填空题计算出 单向链表 .作为函数值返回。填空: (1) data (2) next (3) head 改错: (1) while(*r) (2) *a=*r;a+;r+; 编程: int i,j=0; for(i=0;istrlen(s);i+=2) tj+=si; tj=0; 11、程序填空题给定程序中, 函数 fun 的功能是: 求 ss 所指字符串数组中长度最短的字符串所在的行下标,作为函数数值返回,并把其串长放在形参 n 所指变量
7、中。 Ss所指字符串数组中共有 M 个字符串,且串长N. 填空: (1)M (2) (3)k 改错:(1)if(a=tti)&(tti=z) (2)tti-=32; 编程: int i,j; int t=0; for(i=2;im;i+) j=2; while(ji) if(i%j=0) xxt=i; t+; break; j+; *k=t; 12、程序填空题将 s所指字符串中的所有数字字符移到所有非数字字符之后填空: (1) j+ (2) si=t1i (3) j 改错: (1) for(j = i + 1; j 6; j+) (2) *(pstr + i) =*( pstr + j); 编
8、程:int cnt=0; char *p=ss; while(*p) if(*p=c) cnt+; p+; return cnt; 13.程序填空题在形参s.插入一个 *号。例如,形参s 所指的字符串为:def35adh3kjsdf7. 执行结果为:def3*5adh3*kjsdf7* 。填空: (1)& (2)0 (3)sj 改错( 1)for(i=2;i=m;i+) (2)y+=1.0/(i*i); 编程题: int c33; for(i=0,i3;i+) for(j=0;j3;j+) cij=aji; bij=aij+cij; 14、程序填空题统计形参s 所指字符串中数字字符出现的次数填
9、空: (1)si (2)9 (3) *t=n ;改错:(1) t=*x;*x=y; (2) return (t); 编程:int i ;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 8 页读书破万卷下笔如有神*n=0; for(i=7;i1000;i+) if (i%7)=0)|(i%11)=0)&(i%77)!=0) a(*n)+=i; 15、程序填空题把形参s 所指字符串 .为奇数的字符右移到下一个奇数的位置填空: (1) 1 (2) sk (3) c 改错: (1) long s = 0,t = 0; (2) t = t / 1
10、0; 编程:char *p=tt; int i; for(i=0;i=a &p=num) (2) t=s/n; 编程:int p,m=0; for(p=0;pLEN;p+) if(p!=n) bm=ap;m+; bm=0; 17、程序填空题在形参 s 所.寻找与参数c 相同的字符填空: (1) 0 或0 (2) 0 (3) c 改错: (1) double sum=0.0; (2) sum/=c; 编程: int k; float str=1.0,sum=1.0; for(k=2;k=n;k+) sum=sum+k; str=str+1/sum; return str; 18、程序填空题NN
11、矩阵,根据给定的m(m=2)&(n0.000001); return x1; 19、程序填空题将 N*N 矩阵 .右移 1 个位置填空: (1)N (2)N-1 (3)0 改错: (1)s=s+(n+1.0)/n; (2)return t; 编程: int f0=0,f1=1,f; do f=f0+f1; f0=f1; f1=f; while(ft); return f; 20、 程序填空题由 NxN 矩阵, .顺时针旋转。填空: (1)0 (2) j- - (3)j 改错:(1)double f(double x) (2)缺分号编程:double s=0.0; int i; for(i=1;
12、i=m;i+) s=s+log(1.0*i); s=sqrt(s); return s; 21、程序填空题找出 100 至 x(x 想0) 编程: STREC tmp; int i,j; for (i=0;iN;i+) for (j=i+1;jN;j+) if(ai,saj,s) tmp=ai; ai=aj; aj=tmp; 23、程序填空题给定程序中,函数fun 的功能是:将形参n中,各位上为偶数的数取出,并按原位从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数:27638496,函数返回值为:26845. 填空: (1)1 (2)s (3)i*10 改错:(1
13、)int fun(int n,int xxM) (2)printf(%d,xxij); 编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10); 24 程序填空题给定程序中 ,函数 fun 的功能是 :将形参 n 中 ,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数返回 . 例如 ,输入一个整数:27638496,函数返回值为:64862. 填空 : (1) 0 (2) 10*x (3) n/10 改错 : (1) *t=0; (2) if (d%2!=0) 编程 : char *p=p1; while (*p) p+; wh
14、ile(*p2) *p+=*p2+; *p=0; 25.程序填空 (与教材 18 题对应 ) 将形参 n 所指变量中 ,各位上为偶数的数去除 . 填空 (1) 10 (2) 0 (3) x 改错 (1) if (n = = 0) (2)缺分号编程 : long s=0, t; int i=0,j,n=strlen(p),k,s1; if (p0= -) i+; for (j=i;j=n-1;j+) t=pj-0; s1=10; for (k=j;k=eps) pi+=s; t=n/(2*n+1); s*=t; n+; pi=pi*2; return pi; 27、程序填空题(与 22 题对应)
15、计算下式前n 项的和S=(1*3)/(2*2)-(3*5)/(4*4)+(5*7)/(6*6)- 填空: (1)1 (2) 2*i (3) (-1) 改错: (1) 缺分号(2) if (m= =k) 编程: int i; *max=a0; *d=0; for(i=0;in;i+) if(*max (3) (2*i+1) 改错: (1)double fun (int n) (2) s=s+(double)a/b; 编程:int i,j,max=a00; for(i=0;i2;i+) for (j=0;jM;j+) if (maxaij) max=aij; return max; 29、程序填空
16、题计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+.(2n-1)/(2n*2n) .并把计算结果作为函数值返回。填空: (1)0(2) i+(3)2.0*i 改错: (1)void fun (char *s,char *t)(2)t2*d=0; 编程: int i,j=o; for(i=1;istrlen(s);i+=2) if (i%2=0&si%2)tj+=si; tj=0; 30 程序填空题例如, s 所指字符串为:asd123fgh543df 处理后新字符串为asdfghdf123543. 填空: (1)si (2)k (3)0 改错: (1)while (*w) (2)i
17、f(*r=*p) 编程: int i,j=0; for(i=1;itj+1) 编程: char *p=ss int i=0; while(*p) if(i%2)&(*p=a&*p=z) *p-=32; p+; i+; 32、程序填空题给定程序中,函数fun 的功能是:将a 所指 3*5 矩阵中第 k 列的元素左移到第0 列,第 k 列以后的每列元素依次左移,原来左边的各列依次绕道右边。例如,有以下矩阵:1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 若结果为,程序执行结果为:3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 填空: (1)k (2)N-1 (3)temp
18、改错:(1)void fun(int aM,int m)( 2)ajk=(k+1)*(j+1); 编程:*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10; 33、程序填空题.:在 3*4 例如:有下列矩阵程序执行的结果为:find:a22=9 填空: (1)j (2)0 (3)i+ 改错: (1)for(i=2;i=m;i+) (2)y-=1.0/(i*i); 编程: float av=0.0; int i,j=0; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 8 页读书破万卷下笔如有神for(i=0
19、;im;i+) av+=scorei; av/=m; for(i=0;iscorei)belowj+=scorei; return j; 34、程序填空题例如,形参s 所指的字符串味:abcdefgh,n的值为 5 填空: (1)t,s(2)si( 3)0 改错:(1) if (i%k=0) (2)if(k=i) 编程: int i=0; *n=0; for (i=1;i=x;i+) if(x%i=0)&(i%2) pp(*n)+=i; 35、例如, LEVEL和Level是“回文” ,而LEVLEV不是“回文”。填空: (1)s (2)(3) return 0 改错: (1)double f
20、un (int n) (2)c=a;a+=b;b=c; 编程:int r=0,temp,p,sign=1; for(temp=m+1;tempm*m;temp+) for(p=2;p=temp) if(k=0) xxr+=temp; k- -; else break; 36 程序填空题例如,形参s 所指的字符串为:This is a C languge program,函数的返回值为6。填空: (1)n+ (2)0 (3) s+ 改错: (1)t+=sk; (2)*aver=ave; 编程: int i,pos=0,max=*s; for(i=1;it;i+) if(max= xa) 编程:
21、float result,temp=1.0; int i; for(i=1; i=m; i+) temp=temp*i; result=temp; for(temp=1.0,i=1;i=n;i+) temp=temp*i; result=result/temp; for(temp=1.0,i=1;i=m-n;i+) temp=temp*i; result=result/temp; return result;38. 程序填空题例 如 , 形 参s所 指 的 字 符 串 为 :abs5def126jkm8,程序执行后的输出结果为:22。填空: (1)48 (2)s+ (3)sum 改错:(1)
22、if (k%13= =0) | (k%17= =0) (2) int i; for(i=21;i=n;i+) if(i%3= =0)&(i%7 = =0) sum=sum+i; return sprt(sum); 39、程序填空题例如,形参 s所指字符串为: abcAbsmaxless,程序执行后的输出结果为:letter a :3 times 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 8 页读书破万卷下笔如有神letter s :3 times 填空: (1) *s (2) 1 (3) kn 改错: (1) double fun
23、(int k) (2) return s; 编程: double s=0.0; int i; for(i=1;i=n;i+) s=s+1.0/(i*(i+1); return s; 45、程序填空题利用指针数组对形参ss 由长到短的顺序排序, .共有 N 个字符串,且串长小于M。填空: (1) i (2) psj (3) tp 改错: (1) double fun(int n) (2) return sum; 编程: int i; double a=1,b=1,s=1; for(i=1;inext; (2)p=p-next; 编程:int i,n=0,fg=1; char *p=str; wh
24、ile(*p) n+;p+; for(i=0;inext (2)p-next (3)= 改错: (1)p=h-next; (2)p=p-next; 编程: int i,j; for(i=0;imm;i+) for(j=0;jnn;j+) b*n=*(*(s+i)+j); *n=*n+1; 43、程序填空题数据域依次为:2,4,6,8,10,逆置填空:(1)NODE * (2)q( 3)r 改错 :(1)if(i%2 | si%2=0) (2)tj=0; 编程:for(j=0;jnn;j+) for(i=0;imm;i+) bnp+=sij; 44.程序填空题为: 2 4 6 8 10 逆置后,
25、填空: (1)next (2)0 (3)r 改错: (1)r=t; (2)if (*r= =0 )编程: int i,j,k=0; for(i=0;iM;i+) for(j=0;jnext (2)q (3)p-next 改错: (1)0 (2)s+; 编程: int bN,i,j=0; for(i=p+1;in;i+) bj=wi;j+; for(i=0;i=p;i+) bj=wi;j+; for(i=0;in;i+) wi=bi; 46、程序填空题例 如 , 形 参s所 指 的 字 符 串 为abcdef35adgh3kjsdf7 。输出结果为:4。填空: (1) double (2) f1
26、 (3) f2 改错: (1) char *fun(char *s, char *t) (2) ss+ (3) tt+ 编程:char aN; int i; for(i=0;i=0;m-;i-) wi=am; 47、 程序填空题精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 8 页读书破万卷下笔如有神是将形参给定的字符串,整数、浮点数写到 .并显示在终端屏幕上。填空: (1) FILE * (2) fp (3)ch 改错: (1)sj+=si; (2) sj= 0; 编程:for(j=0; jM;j+ )bn=sji; 48、程序填空题
27、字符串、整数、浮点数写到文本文件中,再并调用库函数atoi 和 atof 将字符串转换成填空;(1) FILE (2) fclose(fp) (3) fp 改错;(1) t=(STU*)calloc(sizeof(STU),m); (2) tk=bj; 编程;int i,t,j=0,*p=a; t=p0; for(i=0;i=n) aj=t; return j; 49、程序填空题形参 filename.覆盖原来的文件内容。填空: (1)rb (2) (3)fwrite 改错: (1)p=s; (2) ; (缺分号 ) 编程 :int i; for(i=0;jM;i+) bi=0; for(i=0;i=100)b10+; else bai/10+; 50、程序填空题学号、姓名和3 门课的成绩。填空: (1)filename (2 ) fp (3) fp 改错: (1) p=(NODE*)malloc(sizeof(NODE); (2)return h; 编程:int i,n=0; for(i=0;i= a &si= z &si+1= |si+1=0)n+; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 8 页
限制150内