《2022年计算机二级C上机题库答案分类汇总.docx》由会员分享,可在线阅读,更多相关《2022年计算机二级C上机题库答案分类汇总.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - a 与 b 合并成 c 85 填空 STYPE FILE fp 将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位56 改错 f ori=0;i=sl;i+和个位数依次放在c 数的百位和个位上;4152 ,b 数的十位tsl*2=0;*c=a/10*1000+b/10*100+a%10*10+b%10;填空 *fw str str 将 a 数的十位和个位数依次放在c 数的个位和百位上22 改错 void funlong s,long *t sl=sl*10; 和个位数依次放在c 数的千位和十位上;1524 ,b 数的十位*c=b
2、/10*1000+a%10*100+b%10*10+a/10;填空 fp fclosefp fname 将 a 数的十位和个位数依次放在c 数的个位和百位上33 改错fori=j+1;iscorei a 和个位数依次放在c 数的十位和千位上;2415 改错 char* funchar *sqM *c=b%10*1000+a/10*100+b/10*10+a%10;return sp; 整除26 填空 q next next 求出 1 到 m之内 含 m能被 7 或 11 整除的全部整数放在数组a 中;改错 p=j; p=i; int i,j=0; *n=0; fori=1;i=m;i+ ifi
3、%7=0|i%11=0 aj+=i;*n+; 28 填空 si 9 *t=n 求出 1 到 1000 之内能被7 或 11 整除 , 但不能同时被7 和 11 整除的改错 t=*x; *x=y; returnt; 全部整数并将它们放在a 所指的数组中;int i,j=0; fori=1;i=1000;i+ ifi%7=0|i%11=0 & i%77.=0 aj+=i; *n=j; 34 填空 ai ai 0 运算并输出n 包括 n 以内能被5 或 9 整除的全部自然数的倒数之改错 y=1; d=a-i; 和;int i; double s=0.0; fori=1;i=n;i+ ifi%5=0|
4、i%9=0 s+=1.0/i; return s; 名师归纳总结 48 填空0 s+ sum 求 n 以内 不包括 n 同时能被3 与 7 整除的全部自然数之和的平方第 1 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - 改错根 s;ifk%13=0|k%17=0 double s=0.0; int i; fori=0;idata t 比较两个字符串的长度, 函数返回较长的字符串;35 改错void funchar *a char *p,*t1=t,*s1=s;int n=0,m=0;printf%c,*a; while*s1+ n+;while*t
5、1+ m+;ifn=m p=s;填空 N i i+1 else p=t;return p;从传入的num个字符串中找出最长的一个字符串;75 改错aai=m%k; int i;max=a0 ;printf%d,aai-1; fori=0;inum;i+ ifstrlenmaxstrlenai max=ai;填空 i+1 k=j t return max;字符串中的内容逆置;char t; int i,n; 改 错void funchar *str,char ch n=strlens-1; if*str.=ch fori=0;inext; p=p-next; while*p+ n+;fori=0
6、;in/2;i+ 16 填空 ssi n+j 1 ifstri=strn-1-i continue;5 个字符按, 除首 , 尾字符外 , 将其余else flag=0;break;return flag;对长度为7 个字符的字符串改错if*p= ASCII 码降序排列;*p-1=toupper*p-1; char t; int i,j; fori=1;inum-2;i+ forj=i+1;jnum-1;j+ ifsisj t=si;si=sj;sj=t; 98 在带有头结点的单向链表中, 查找将字符串ss 中全部下标为奇数位置上的字母转换为大写;数据域中值为ch 的结点 , 找到后通int
7、i,n=0; char *p=ss; 过函数值返回该结点在链表中所处while*p+ n+; 的次序号;fori=0;i=a&ssi=z&i%2.=0 ssi-=32; 改 错fori=0,t=0;pi;i+ ssi=0; ct=0; 名师归纳总结 65 将 a 所指 4*3 矩阵中第k 行的元素将字符串ss 中全部下标为奇数位置上的字母转换为大写;第 2 页,共 13 页与第0 行的元素交换;填空 k N int i,n=0; char *p=ss; - - - - - - -精选学习资料 - - - - - - - - - aki while*p+ n+; 改错 fori=strlent-
8、1;i;i- fori=0;itj+1 ifssi=a&ssi=num t=s/n; fori=0;iLEN;i+ 54 ifi.=n bj+=ai;bj=0 ;填空 data next head 将 s 所指字符串中下标为偶数的字符删除改错while*r 串放在 t 所指数组中;*a=*r;a+;r+; Int I,j=0,n=strlens; fori=0;in;i+ ifi%2.=0 tj+=si; 25 填空STU stdi.num tj=0 ; , 串中剩余字符形成将 s 所指字符串中ASCII 值为偶数的字符删除stdi 一个新串放在t 所指的数组中;p+; if*r=0 改错 r
9、+; Int I,j=0,n=strlens; fori=0;in;i+ ifsi%2.=0 tj+=si; 18 填空 si k 0 tj=0 ; , 串中剩余字符形成将 s 所指字符串中ASCII 值为奇数的字符删除改错 while*w if*r=*p 一个新串放在t 所指的数组中;Int I,j=0,n=strlens; fori=0;in;i+ ifsi%2=0 tj+=si; 71 填空 j k p tj=0 ; ,s将 s 所指字符串中下标为偶数同时ASCII 值为奇数的字符删除改错 whileij if*a 中剩余的字符形成的新串放在t 所指的数组中;Int I,j=0,n=st
10、rlens; fori=0;in;i+ if.i%2=0 & si%2.=0 tj+=si; 36 填空 *n next head tj=0 ; , 同时 ASCII 值也为偶数的字符将 s 所指字符串中除了下标为偶数改错 a=NULL; if*r=*p 外, 其余的全都删除;Int I,j=0,n=strlens; fori=0;in;i+ ifi%2=0&si%2=0 tj+=si; 名师归纳总结 - - - - - - -第 3 页,共 13 页精选学习资料 - - - - - - - - - 72 填空 0 i+ 2.0*i tj=0 ; , 同时 ASCII 值也为奇数的字符将 s
11、所指字符串中除了下标为奇数改错 void funchar *s,char *t 之外 , 其余的全部字符都删除;t2*d=0 ; Int I,j=0,n=strlens; fori=0;in;i+ ifi%2.=0 & si%2.=0 tj+=si; 42 填空 j+ si=t1i j tj=0 ; 求出 ss 所指字符串中指定字符的个数;改错forj=i+1;j6;j+ int cnt=0; *pstr+i=*pstr+j; char *p=ss;while*pif*p=c cnt+;p+; return cnt; 77 填空010*xn/10实现两个字符串的连接改错void funchar
12、 p1, char p2 *t=0;ifd%2.=0 char *p=p1; while*pp+; while*p2 *p+=*p2+; *p=0; 68 填空 N len *n=len 统计一个长度为2 的字符串在另一个字符串中显现的次数;改错 t+=1.0/i; return t; int n=0;char *p,*r;while*str p=str;r=substr;while*r 62 填空 1 sk c if*r=*pr+;p+;, 并依次放else break;if*r=0 n+ ; str+; return n;统计在字符串中a到z26 个字母各自显现的次数改错 long s=0
13、,t=0; t=t/10; 在 pp 所指数组中;int i; fori=0;i=a& *tt=z pp*tt-a+;tt+; 3 填空 filename fp fp 错统计一行字符串中单词的个数; |si+1=0 n+;int i,n=0;改p=NODE*mallocsizeofNODE; fori=0;i= a &si= z &si+1=return n;平均分和结构体40 填空 x p s 运算 n 门课程的平均分;改错 long k=1; num/=10; float aver=0.0; int i; fori=0;in;i+ aver+=ai; aver/=n; 名师归纳总结 - -
14、 - - - - -第 4 页,共 13 页精选学习资料 - - - - - - - - - return aver; 59 填空 j 0 i+ fori=2;i=m;i+ m个人成果存放在score 数组中 , 将低于平均分的人数作为函数值改错返回 , 将低于平均分的分数放在below 所指的数组中;y-=1.0/i*i; int i,k=0,aver=0; fori=0;im;i+ aver+=scorei; aver/=m; fori=0;im;i+ ifscoreiaver belowk+=scorei; return k; 44 填空 char chs;h=h-next; retur
15、n aver/N; 15 填空 fp = fp N 名同学的成果已放入一个带头节点的链表结构中,h指向链表的改错 n=strlenaa; ch=aai; 头结点 , 找出同学的最高分;double max=h-s; forh=h-next;h-next.=NULL;h=h-next ifh-smax max=h-s; return max; 57 填空 ai aj aj 1: case 2: 某同学的记录由学号,8门课程成果和平均分组成, 求出该同学的改错 switchg case 平均分放在记录的ave 成员中;return 1; double av=0.0; int i; fori=0;i
16、si; av/=N; a-ave=av; 88 填空 *a 2 i+1 同学的记录由学号和成果组成, 把低于平均分的同学数据放在b 所改错 sum=0.0; ifi+1%5=0 指的数组中;double aver=0.0; int i,j=0; fori=0;iN;i+ aver+=ai.s; aver/=N; fori=0;iN;i+ ifai.ssno -name &t 同学的记录由学号和成果组成, 把高于等于平均分的同学数据放在 b 所指的数组中;改错 double fundouble a,double x0 int i,j=0; double aver=0.0; iffabsx1-x0
17、0.00001 fori=0;iN;i+ aver+=ai.s;aver/=N; fori=0;i=aver bj+=ai; *n=j; return aver; 74 填空 stdi.year stdi n n 已知同学的记录由学号和学习成果构成, 找出成果最高的同学记录 规定只有一个最高分 ;改错IsPrimeint if.n%i int i,max=a0.s;fori=0;imaxmax=ai.s;*s=ai;, 找出成果最低的同学记第 5 页,共 13 页已知同学的记录由学号和学习成果构成录 规定只有一个最低分 ;改错double fori=100;i=m;i+=100 int i,m
18、in=a0.s;- - - - - - -精选学习资料 - - - - - - - - - fori=0;iN;i+ 99 填空 1 i ap+i ifai.sminmin=ai.s;*s=ai;h 所指同学的记录由学号和成果组成, 把分数最高的同学数据放在改错 float k; if*a*c 的数组中 , 留意 : 分数最高的同学可能不止一个;int i,j=0,n=0,max=a0.s; fori=0;imax max=ai.s; fori=0;iN;i+ ifai.s=max bj+=ai;n+; return n; 24 填 空struct student a.name 同学的记录由学
19、号和成果组成, 把分数最低的同学数据放在b 所指a.scorei -1; 的数组中 , 留意 : 分数最低的同学可能不止一个;改 错ifp=n return int i,j=0,n=0,min=a0.s; ai=ai+1; fori=0;iN;i+ ifai.smin min=ai.s; fori=0;iN;i+ ifai.s=min bj+=ai;n+; return n; 97 填空 n/2 i an-1-i 同学的记录由学号和成果组成, 函数返回指定学号的同学数据, 如改错 n=*p-0; n=n*8+*p-0; 没找到指定学号, 在结构体变量中给学号置空串, 给成果置 -1 ;int
20、i; STREC h; fori=0;i0 int i,j; STREC t; fori=0;iN-1;i+ forj=i+1;jN;j+ ifai.sp int i,j=0; fori=0;i=l&ai.s=h bj+=ai; return j; 二维数组60 填空 *std PERSON std k,q,i; 使数组左下半三角元素中的值全部置成0;int i,j;改错int pti=strki; fori=0;iN;i+ 8 forj=0;j0 else ifk=0 int i,j; fori=0;iN;i+ 名师归纳总结 - - - - - - -第 6 页,共 13 页精选学习资料 -
21、 - - - - - - - - forj=0;j=i;j+ aij=aij*n; 41 填空 *av i xj funint n 使数组右上半三角元素中的值乘以m;int i,j; 改错float fori=2;i=n;i+ forj=0;jN;j+ fori=0;i=j;i+ aij=aij*m; 67 填空 N break n sum=0; 实现矩阵 3 行 3 列 的转置;改错int i,j,t;scanf%d,&aij; fori=0;i3;i+ forj=0;j=i;j+ 81 填空 & 0 sj t=arrayji;arrayji=arrayij;arrayij=t;实现 B=A
22、+A, 即把矩阵A 加上矩阵A 的转置 , 存放在矩阵B 中;改错fori=2;i=m;i+ int i,j,t,at33; y+=1.0/i*i; fori=0;i=2;i+ forj=0;j=2;j+ atij=aji; fori=0;i3;i+ forj=0;j3;j+ bij=aij+atij; 20 填空 xi/N j+ i+ 求出二维数组周边元素之和;int i,j,s=0; 改错 numk=0; switch*s forj=0;jN;j+ s+=a0j+aM-1j; fori=1;i=M-2;i+ s+=ai0+aiN-1; return s; 21 填空 s/N j+ -1 求
23、出数组周边元素的平均值;int i,j,k=0;double s=0.0;改错 #include void upfstchar *p forj=0;jN;j+ s+=w0j+wN-1j;k+=2;13 fori=1;inext p-next return s/k;将 M 行 N 列的二维数组中的数据, 按行的次序依次放到一维数组改错 p=h-next; p=p-next; 中;int i,j;fori=0;imm;i+ 12 填空 NODE* next r forj=0;jnn;j+ b*n=sij; *n+; 将 M 行 N 列的二维数组中的数据, 按列的次序依次放到一维数组改错ifi%2|
24、si%2=0 中;int i,j; tj=0; forj = 0 ;j nn ; j+ fori= 0 ;i mm ; i+ b*n =* s+i+j ; *n=*n+1; 2 填空 FILE* fp ch 将 M行 N列的二维数组中的字符数据, 按列的次序依次放到一个字改错 sj+=si; sj=0; 符串中;int i,j,k=0;forj=0;jN;j+ 名师归纳总结 11 填空 next NULL r fori=0;iM;i+bn+=sij;bn= 0 ;第 7 页,共 13 页将放在字符串数组中的M个字符串 , 按次序合并组成一个新的字符- - - - - - -精选学习资料 - -
25、 - - - - - - - 改错 r=t; if*r=0 串;int i,j,k=0fori=0;iM;i+ forj=0;jN;j+ ifaij bk+=*a+i+j;else break;bk= 0 ;素数86 填空 i t+ count 运算并输出3 到 n 之间全部素数的平方根之和;改错 int funint a,int b,int c int m,k,i; double s=0.0; else return 1; form=3;m=n;m+ k=sqrtm; fori=2;i=k+1 s+=sqrtm; return s; 23 填空 a0i x,y *x,int *y 求出小于或
26、等于lim的全部素数放在aa 数组中 , 返回所求出的素数的个数;改 错void funint forj=2;j=i aak+=i; 55 填空 s - return 0 funint n 将大于整数m且紧靠 m 的 k 个素数存入xx 所指的数组中;改错double int g=0,i,j,flag=1; c=a;a+=b;b=c; fori=m+1;1;i+ forj=2;j=i ifk=0xxg+=i;k-; else break; 79 填空 M k 错将全部大于1 小于整数m的非素数存入xx 所指数组中;改int i,j,t=0; ifa=tti&tti=z fori=4;im;i+
27、 tti-=32; forj=2;j=xa int i; float p,t=1.0; fori=1;i=m;i+ t=t*i; p=t; fort=1.0,i=1;i=n;i+ t=t*i; p=p/t; fort=1.0,i=1;i=m-n;i+ t=t*i; p=p/t; return p; 名师归纳总结 - - - - - - -第 8 页,共 13 页精选学习资料 - - - - - - - - - 90 填空 j=2 i j Sn1111111改错 sum=j=0; ifsum%4=2 2342 n2nint i; double s=0.0; fori=1;i=n;i+ s+=1.
28、0/2*i-1-1.0/2*i; return s; 47 填空 *s 1 kn funint k s112213n 11 改错double nreturn s; int i; double s=0.0; fori=1;i=n;i+ s+=1.0/i*i+1; return s; 87 填空 n%10 break break S1112113123150改错 ift=0 *zero=count; 2int i; double s=1.0,t=1.0; fori=2;i=n;i+ t*=i;s+=1.0/t; return s; 100 填空0 0 c sum=0.0; S1112113121n改错double 23sum/=c; int i; float s=1.0,t=1.0; fori=2;i=n;i+ t+=i;s+=1.0/t; return s; 94 填空 1.0 -1.0 t sn11111.1改错fori=1;i