1、最新二级C语言上机题库100题答案11填空:【1】j=0 【2】*(pf+j)-32 【3】j+改错:(1)错误: if (*p=*q)(2)错误:k+正确:k+;编程:void fun(int a ,int b,long *c) *c=(b%10)*1000+(b/10)*100+(a%12填空:【1】disc0 【2】(-b+sqrt(disc)/(2*a) 【3】(-b-sqrt(disc)/(2*a)改错:(1)错误:int j=1; 正确:double j=1.0;(2)错误:y+=1/(i * i); 正确:y+=j/(i * i);编程:void fun(int ttMN,int
2、 ppN) int i,j,max; for(j=0;jN;j+) max=tt0j; /*假设各列中的第一个元素最大*/ for(i=0;imax) /*如果各列中的其他元素比最大值 还大,则将更大的元素看做当前该列中最 大的元素*/ max=ttij; ppj=max; /*将各列的最大值依次放入pp数组中*/ 3填空:【1】n0 【2】n%10+0 【3】stri= 0改错:(1)错误:fun(int n); 正确:fun(int n)(2)错误:if(n=1) 正确:if(n=1)编程:int fun(char *s, int num)char t; int i, j; for(i=1
3、;inum-2;i+) /*下标值从1开始,用循环依次取 得字符串中的字符*/ for(j=i+1;jsj) /*如果后面字符的ASCII码值小于该 字符的ASCII码值*/ t=si; /*则交换这两个字符*/ si=sj; sj=t; 4填空:【1】xxi%10 【2】bbn+=xxi 【3】n改错:(1)错误:int fun(int n) 正确:double fun(int n)(2)错误:result *=n+ ; 正确:result *=n- ;编程:double fun(int n)double s=0.0;int i;for(i=0; in;i+) /*从0n中找到既能被5整除同
4、时 又能被11整除的数,并将这些数求和*/ if(i%5=0&i%11=0) s=s+i;s=sqrt(s); /*对s求平方根*/return s;5填空:【1】(-b+sqrt(disc)/(2*a)【2】-b/(2*a)【3】sqrt(fabs(disc)/(2*a)改错:(1)错误:long k=1; 正确:long k=0;(2)错误:while(num) 正确:while(num);编程:int fun(int t) int a=1,b=1,c=0,i; /*a代表第n-2项,b代表第n-1项, c代表第n项*/ /*如果求得的数c比指定比较的数小, 则计算下一个Fibonacci
5、数, 对a,b重新置数*/do c=a+b; a=b; b=c; while (ct); /*如果求得的数c比指定比较的数大时, 退出循环*/ c=a; /*此时数c的前一个Fibonacci数为 小于指定比较的数的最大的数*/ return c;6填空:【1】int aN 【2】s/(n*n) 【3】sqrt(f)改错:(1)错误: void fun(char s, char t ) 正确:void fun(char *s, char t )(2)错误: if(i%2=0|si%2!=0) 正确:if(i%2=0|si%2!=0)编程:long fun(int n) int i; long
6、s=0; for(i=2;i=n-1;i+) /*从2n-1中找n的所有因子*/ if(n%i=0) s+=i*i; /*将所有因子求平方加*/ return s; /*将平方和返回*/7填空:【1】j- 【2】*(p2+n)=0 【3】*p2 改错题(1)错误:k=n; 正确:k=i;(2)错误:sj=i; 正确:sj+=i;编程题fun(int a N, int n) int i, j; for(i=0; iN; i+) for(j=0; j=i; j+) aij=aij+n; 8.填空题【1】*p 【2】bb*p-0+ 【3】numj=bbi【解析】填空1:通改错题:(1)错误: for
7、(i=0; in; i+) 正确:for(i=0; i2; i+)(2)错误:k=m; 正确:m=k; 编程题:int fun(int score,int m, int up) int i,j=0; float av=0.0; for(i=0;im;i+) av=av+scorei/m; /*求平均值*/ for(i=0;iav) /*如果分数高于平均分,则将此分数 放入up数组中*/ upj+=scorei; return j; /*返回高于平均分的人数*/9.填空题【1】*p 【2】default: b10+; 【3】p+;. 改错题(1)错误:ifhigh%j=0 正确:if(high%
8、j=0)(2)错误:if(yes=0) 正确:if(yes. 编程题void fun (int x, int pp, int *n) int i,j=0; for(i=2;i=x;i=i+2) /*i的初始值为2,步长为2,确保i 为偶数*/ if(x%i=0) /*将能整除x的数存入数组pp中*/ ppj+=i; *n=j; /*传回满足条件的数的个数*/10.填空题【1】%ld,&n 【2】n=-n; 【3】 %ld, n. 改错题(1)错误:int fun(char t ) 正确:void fun(char t )(2)错误: tj=ti+;正确:tj=ti;. 编程题void fun(
9、int m, int k, int xx) int i,j,n; for(i=m+1,n=0;nk;i+) /*找大于m的非素数,循环k次, 即找出紧靠m的k个非素数*/ for(j=2;ji;j+) /*判断一个数是否为素数*/ if(i%j=0) xxn+=i; /*如果不是素数,放入数组xx中*/ break; /*并跳出本层循环,判断下一个数*/ 11.填空题【1】%s,str1 【2】%c 【3】str2. 改错题(1)错误:while(xi=0) 正确:while(xi!=0)(2)错误:sum=sumc;正确:sum=sum/c;. 编程题int fun(int *s,int t
10、,int *k) int i; *k=0; /*k所指的数是数组的下标值*/ for(i=0;isi) *k=i; /*找到数组的最小元素,把该元素 的下标赋给k所指的数*/ return s*k; /*返回数组的最小元素*/12.填空题【1】%d,&n 【2】str2i=str1i; 【3】str2. 改错题(1)错误:if(si= A&si= a&si= A&si= a&si= z)(2)错误:sj= 0;正确:sj=0;. 编程题int fun (int aN) int i,j; for(i=0;iN;i+) for(j=i;jN;j+) aij=0; /*将数组右上半三角元素中的值 全
11、部置成0*/13.填空题【1】n/100%10 【2】yes! 【3】no!. 改错题(1)错误:for(j=0;jn-1;j+) ; 正确:for(j=0;jn-1;j+) (2)错误:ap=t; 正确:aj=t;. 编程题int fun (int wN) int i,j,k=0; int s=0; for(i=0;iN;i+) for(j=0;js; while(h!=NULL) /*通过循环找到最低分数*/ if(minh-s) min=h-s; h=h-next; return min;15.填空题【1】si= 0 &si= 9 【2】si- 0 【3】n. 改错题(1)错误:int
12、ave ,t=0;正确:float ave ,t=0.0;(2)错误:if(siave)(3)错误:aver=ave;正确:*aver=ave. 编程题char *fun(char *s, char *t) int i,j; for(i=0;si!= 0;i+); /*求字符串的长度*/ for(j=0;tj!= 0;j+); if(i=j) /*比较两个字符串的长度*/ return s; /*函数返回较短的字符串,若两个字 符串长度相等,则返回第1个字符串*/ else return t;16.填空题【1】i*num 【2】n+ 【3】*num=n【解析】填空1. 改错题(1)错误:int
13、 fun(int m)正确:double fun(int m)(2)错误:for(i=1;im;i+)正确:for(i=2;i=m;i+). 编程题void fun(int *a,int *n) int i,j=0; for(i=1;i=2)&(mc=2)&(mc=A& ssi=Z) ssi=ssi+32;18.填空题【1】alfi=0 【2】*p+=32 【3】p+. 改错题(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s%100;正确:s=s/100;. 编程题fun (int aM) int i,j,min
14、=a00; for(i=0;i4;i+) for(j=0;jaij) min=aij; /*求出二维数组的最小值*/ return min;19.填空题【1】sum+=xi 【2】avg*1000 【3】(avg+5)/. 改错题(1)错误:for (i=0;j3;j+)正确:for (j=0;j3;j+)(2)错误:mul=mul*aij;正确:mul=mul*aii;. 编程题int fun (STREC *a, STREC *b) int i,j=0,min=a0.s; for(i=0;iai.s) min=ai.s; /*找出最小值*/ for(i=0;i=A)&(tti=a)&(tt
15、i= z). 编程题void fun(int *w, int p, int n) int i,j,t; for(i=p;i=0;j-) /*实现循环右移*/ wj+1=wj; w0=t; 21.填空题【1】-I 【2】si- 0 【3】t*10+k. 改错题(1)错误:if(d%2!=0)正确:if(d%2=0) (2)错误:t=d*s1+t;正确:*t=d*s1+*t;. 编程题int fun (STREC a) int i,j; STREC t; for(i=1;iN;i+) /*用冒泡法进行排序,进行N-1次比较*/ for(j=0;jaj+1.s) /*按分数的高低排列学生的记录,低分
16、 在前*/ t=aj; aj=aj+1; aj+1=t; 22.填空题【1】int aN,int b,int n 【2】biaij 【3】bibj. 改错题(1)错误:for (k=4;kn;k+)正确:for (k=4;k=n;k+)(2)错误:s2=s;正确:s2=s;. 编程题void fun(int m, int *k, int xx) int i,j,t,n=0; for(i=2;im;i+) /*找出大于1小于整数m的素数*/ t=1; for(j=2;ji;j+) if(i%j=0) t=0; break; if(t=1) xxn+=i; *k=n; /*返回素数的个数*/23.
17、填空题【1】i=0|i=n-1|j=0|j=n-1【2】4*n-4【3】s/k. 改错题(1)错误:*t=calloc(m,sizeof(STU);正确:t=calloc(m,sizeof(STU);(2)错误:for (i=j=0;iN;j+)正确:for (i=j=0;iN;i+)(3)错误:tk.s=bj.s;正确:tk =bj;. 编程题int fun (STREC *a, STREC *b, int l, int h ) int i,j=0; for(i=0;i=0&ai.sh&ai.s0;k-)正确:for(k=m-1;k=0;k-)(2)错误:pt=j;正确:pt-=j;. 编程
18、题STREC fun(STREC *a, int b) int i; STREC str=0,-1; for(i=0;iN;i+) if(ai.s=b) str=ai; return str; 25.填空题【1】i=1 【2】k%i=0&i%2=0 【3】-j. 改错题(1)错误:if(strcmp(pstr+i),(pstr+j)0)正确:if(strcmp(*(pstr+i),*(pstr+j)0)(2)错误:*(pstr+j)=*p;正确:*(pstr+j)=p;. 编程题void fun(char *s,char t) int i,j=0,k=strlen(s); for(i=0;i=
19、0)|(chaaj)正确:while(j=0)&(chaaj)(2)错误:aaj=ch;正确:aaj+1=ch;. 编程题double fun (STREC *a,STREC *b,STREC *c, int *n,int *m) int i; double av=0.0; *n=0; *m=0; for(i=0;iN;i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0;iN;i+) if(av=ai.s) b*n=ai; /*将高于等于平均分的学生存入b 所指存储单元中,并统计人数*/ *n=*n+1; else c*m=ai; /*将低于平均分的学生存入c所
20、指 存储单元中,并统计人数*/ *m=*m+1; return av; /*返回平均分*/27.填空题【1】1 【2】k=n 【3】s*=f/p. 改错题(1)错误: printf(%4d,xxi j);正确: printf(%4d,xxij);(2)错误:printf(n );正确:printf(n);. 编程题double fun(int n) int i; double s=0.0; for(i=1;i=n;i+) /*计算S=(1+1/2)+(1/3+1/4)+ (1/(2n-1)+1/2n)*/ s=s+(1.0/(2*i-1)+1.0/(2*i); return s;28.填空题【
21、1】int x 【2】sum+=xi 【3】sum/n. 改错题(1)错误:int A=1;正确:float A=1;(2)错误:for(i=1;i=n;i+)正确:for(i=2;i=n;i+). 编程题double fun(int m) int i; double s=1.0; for(i=1;i=m;i+) s=s-log(i); /*计算s=1-ln(1)-ln(2)-ln(3)- -ln(m)*/ return (s*s); /*对s求平方并返回*/29.填空题【1】sum*x+*p-0 【2】sum%y 【3】sum=sum/y. 改错题(1)错误:int fun(void)正确:void fun(void)(2)错误:printf(%f ,mj%5);正确:printf(%f ,mj/5);. 编程题void fun(char*s, char t) int i,j=0; for(i=0;si!=0;i+) if(i%2!=0&si%2=0) /*将s所指字符串中下标为奇数同时 ASCII值为偶数的字符
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1