计算机二级C上机题库答案分类汇总.doc_第1页
计算机二级C上机题库答案分类汇总.doc_第2页
计算机二级C上机题库答案分类汇总.doc_第3页
计算机二级C上机题库答案分类汇总.doc_第4页
计算机二级C上机题库答案分类汇总.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

a与b合并成c85填空 STYPE FILEfp 改错for(i=0;i=sl;i+)tsl*2=0;将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。4152*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;56填空 *fw str str改错 void fun(long s,long *t) sl=sl*10;将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。1524*c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;22填空 fp fclose(fp) fname改错 for(i=j+1;iscorei a改错 char* fun(char (*sq)M) return sp;将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。2415*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;整除26填空 q next next改错 p=j; p=i;求出1到m之内(含m)能被7或11整除的所有整数放在数组a中。int i,j=0; *n=0;for(i=1;i=m;i+)if(i%7=0|i%11=0) aj+=i;(*n)+;28填空 si 9 *t=n改错 t=*x; *x=y; return(t);求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中。int i,j=0;for(i=1;i=1000;i+)if(i%7=0|i%11=0) & i%77!=0) aj+=i;*n=j; 34填空 ai ai 0改错 y=1; d=a-i;计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。int i; double s=0.0;for(i=1;i=n;i+)if(i%5=0|i%9=0) s+=1.0/i;return s;48填空 0 s+ sum改错 if(k%13=0)|(k%17=0) 求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s。double s=0.0; int i;for(i=0;idata t改错 void fun(char *a) printf(%c,*a);比较两个字符串的长度,函数返回较长的字符串。char *p,*t1=t,*s1=s;int n=0,m=0;while(*s1+) n+;while(*t1+) m+;if(n=m) p=s;else p=t;return p;35填空 N i i+1改错 aai=m%k; printf(%d,aai-1);从传入的num个字符串中找出最长的一个字符串。int i;max=a0;for(i=0;inum;i+)if(strlen(max)strlen(ai) max=ai;return max;75填空 i+1 k=j t改错 void fun(char *str,char ch) if(*str!=ch) str1=0;字符串中的内容逆置。char t; int i,n;n=strlen(s)-1;for(i=0;inext; p=p-next;判断字符串是否为回文。int i,n=0,flag=1;char *p=str;while(*p+) n+;for(i=0;in/2;i+)if(stri=strn-1-i) continue;else flag=0;break;return flag;16填空 ssi n+j 1改错 if(*p= ) *(p-1)=toupper(*(p-1);对长度为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII码降序排列。char t; int i,j;for(i=1;inum-2;i+)for(j=i+1;jnum-1;j+)if(sisj) t=si;si=sj;sj=t;98在带有头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回该结点在链表中所处的顺序号。填空 NULL n head,ch改错 for(i=0,t=0;pi;i+) ct=0;将字符串ss中所有下标为奇数位置上的字母转换为大写。int i,n=0; char *p=ss;while(*p+) n+; for(i=0;i=a&ssitj+1)将字符串ss中所有下标为奇数位置上的字母转换为大写。int i,n=0; char *p=ss;while(*p+) n+; for(i=0;i=a&ssi=num) t=s/n;删除一个字符串中指定下标的字符。Int I,j=0;for(i=0;iLEN;i+)if(i!=n) bj+=ai;bj=0;54填空 data next head改错 while(*r) *a=*r;a+;r+;将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(i%2!=0) tj+=si;tj=0;25填空 STU stdi.num stdi改错 r+; p+; if(*r=0)将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(si%2!=0) tj+=si;tj=0;18填空 si k 0改错 while(*w) if(*r=*p)将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(si%2=0) tj+=si;tj=0;71填空 j k p改错 while(ij) if(*a)将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(!(i%2=0 & si%2!=0) tj+=si; tj=0;36填空 *n next head改错 a=NULL; if(*r=*p)将s所指字符串中除了下标为偶数,同时ASCII值也为偶数的字符外,其余的全都删除。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(i%2=0&si%2=0) tj+=si;tj=0;72填空 0 i+ 2.0*i改错 void fun(char *s,char *t) t2*d=0;将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除。Int I,j=0,n=strlen(s);for(i=0;in;i+)if(i%2!=0 & si%2!=0) tj+=si;tj=0;42填空 j+ si=t1i j改错for(j=i+1;j6;j+) *(pstr+i)=*(pstr+j);求出ss所指字符串中指定字符的个数。int cnt=0;char *p=ss;while(*p)if(*p=c) cnt+;p+; return cnt;77填空 0 10*x n/10改错 *t=0; if(d%2!=0)实现两个字符串的连接void fun(char p1, char p2) char *p=p1; while(*p)p+; while(*p2) *p+=*p2+; *p=0; 68填空 N len *n=len改错 t+=1.0/i; return t;统计一个长度为2的字符串在另一个字符串中出现的次数。int n=0;char *p,*r;while(*str)p=str;r=substr;while(*r)if(*r=*p)r+;p+; else break;if(*r=0) n+;str+;return n;62填空 1 sk c改错 long s=0,t=0; t=t/10;统计在字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。int i;for(i=0;i=a& *tt=z) pp*tt-a+;tt+;3填空 filename fp fp改错 p=(NODE*)malloc(sizeof(NODE); return h;统计一行字符串中单词的个数。int i,n=0;for(i=0;i=a&si=z&si+1=|si+1=0) n+; return n;平均分和结构体40填空 x p s改错 long k=1; num/=10;计算n门课程的平均分。float aver=0.0; int i;for(i=0;in;i+) aver+=ai; aver/=n;return aver;59填空 j 0 i+改错 for(i=2;i=m;i+) y-=1.0/(i*i);m个人成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。int i,k=0,aver=0;for(i=0;im;i+) aver+=scorei; aver/=m; for(i=0;im;i+)if(scoreiaver) belowk+=scorei; return k; 44填空 char chs;h=h-next;return aver/N;15填空 fp = fp改错 n=strlen(aa); ch=aai;N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。double max=h-s;for(h=h-next;h-next!=NULL;h=h-next)if(h-smax) max=h-s;return max;57填空 ai aj aj改错 switch(g) case 1: case 2: return 1;某学生的记录由学号,8门课程成绩和平均分组成,求出该学生的平均分放在记录的ave成员中。double av=0.0; int i;for(i=0;isi; av/=N;a-ave=av;88填空 *a 2 i+1改错 sum=0.0; if(i+1)%5=0)学生的记录由学号和成绩组成,把低于平均分的学生数据放在b所指的数组中。double aver=0.0; int i,j=0;for(i=0;iN;i+) aver+=ai.s; aver/=N;for(i=0;iN;i+)if(ai.ssno -name &t改错 double fun(double a,double x0)if(fabs(x1-x0)0.00001)学生的记录由学号和成绩组成,把高于等于平均分的学生数据放在b所指的数组中。int i,j=0; double aver=0.0;for(i=0;iN;i+) aver+=ai.s;aver/=N;for(i=0;i=aver) bj+=ai; *n=j;return aver;74填空 stdi.year stdi n改错 IsPrime(int n) if(!(n%i)已知学生的记录由学号和学习成绩构成,找出成绩最高的学生记录(规定只有一个最高分)。int i,max=a0.s;for(i=0;imax)max=ai.s;*s=ai; 70填空 0.0 xi/N j+改错 double fun(int m) for(i=100;i=m;i+=100)已知学生的记录由学号和学习成绩构成,找出成绩最低的学生记录(规定只有一个最低分)。int i,min=a0.s;for(i=0;iN;i+)if(ai.smin)min=ai.s;*s=ai; 99填空 1 i ap+i改错 float k; if(*a*c)学生的记录由学号和成绩组成,把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个。int i,j=0,n=0,max=a0.s;for(i=0;imax) max=ai.s;for(i=0;iN;i+)if(ai.s=max) bj+=ai;n+;return n;24填空 struct student a.scorei改错 if(p=n) return -1; ai=ai+1;学生的记录由学号和成绩组成,把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个。int i,j=0,n=0,min=a0.s;for(i=0;iN;i+)if(ai.smin) min=ai.s;for(i=0;iN;i+)if(ai.s=min) bj+=ai;n+;return n;97填空 n/2 i an-1-i改错 n=*p-0; n=n*8+*p-0;学生的记录由学号和成绩组成,函数返回指定学号的学生数据,若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1。int i; STREC h;for(i=0;i0)学生记录由学号和成绩组成,按分数高低排列学生的记录,高分在前。int i,j; STREC t;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(ai.sp)学生的记录由学号和成绩组成,把指定分数范围内的学生数据放在b所指的数组中,学生人数由函数值返回。int i,j=0;for(i=0;i=l&ai.s=h) bj+=ai;return j;二维数组60填空 *std PERSON std改错 int k,q,i; pti=strki;使数组左下半三角元素中的值全部置成0。int i,j;for(i=0;iN;i+)for(j=0;j0) else if(k=0)使数组左下三角元素中的值乘以 i,j;for(i=0;iN;i+)for(j=0;j=i;j+) aij=aij*n;41填空 *av i xj改错 float fun(int n) for(i=2;i=n;i+)使数组右上半三角元素中的值乘以 i,j;for(j=0;jN;j+)for(i=0;i=j;i+) aij=aij*m;67填空 N break n改错 sum=0; scanf(%d,&aij);实现矩阵(3行3列)的转置。int i,j,t;for(i=0;i3;i+)for(j=0;j=i;j+)t=arrayji;arrayji=arrayij;arrayij=t; 81填空 & 0 sj改错 for(i=2;i=m;i+) y+=1.0/(i*i);实现B=A+A,即把矩阵A加上矩阵A的转置,存放在矩阵B中。int i,j,t,at33;for(i=0;i=2;i+)for(j=0;j=2;j+) atij=aji;for(i=0;i3;i+)for(j=0;j3;j+) bij=aij+atij;20填空 xi/N j+ i+改错 numk=0; switch(*s)求出二维数组周边元素之和。int i,j,s=0;for(j=0;jN;j+) s+=a0j+aM-1j;for(i=1;i=M-2;i+) s+=ai0+aiN-1;return s;21填空 s/N j+ -1改错 #include void upfst(char *p)求出数组周边元素的平均值。int i,j,k=0;double s=0.0;for(j=0;jN;j+) s+=w0j+wN-1j;k+=2;for(i=1;inext p-next 改错 p=h-next; p=p-next;将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。int i,j;for(i=0;imm;i+)for(j=0;jnn;j+) b*n=sij;(*n)+; 12填空 NODE* next r改错 if(i%2|si%2=0) tj=0; 将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。int i,j; for(j = 0 ;j nn ; j+) for(i= 0 ;i mm ; i+) b*n =*(*( s+i)+j) ; *n=*n+1; 2填空 FILE* fp ch改错 sj+=si; sj=0;将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。int i,j,k=0;for(j=0;jN;j+)for(i=0;iM;i+) bn+=sij;bn=0;11填空 next NULL r改错 r=t; if(*r=0)将放在字符串数组中的M个字符串,按顺序合并组成一个新的字符串。int i,j,k=0;for(i=0;iM;i+)for(j=0;jN;j+)if(aij) bk+=*(*(a+i)+j);else break;bk=0;素数86填空 i t+ count改错 int fun(int a,int b,int c)else return 1;计算并输出3到n之间所有素数的平方根之和。int m,k,i; double s=0.0;for(m=3;m=n;m+)k=sqrt(m);for(i=2;i=k+1) s+=sqrt(m);return s;23填空 a0i x,y改错 void fun(int *x,int *y) t=*x;*x=*y;*y=t;求出小于或等于lim的所有素数放在aa数组中,返回所求出的素数的个数。for(j=2;j=i) aak+=i;55填空 s - return 0改错 double fun(int n) c=a;a+=b;b=c;将大于整数m且紧靠m 的k个素数存入xx所指的数组中。int g=0,i,j,flag=1;for(i=m+1;1;i+)for(j=2;j=i)if(k=0)xxg+=i;k-;else break; 79填空 M k改错 if(a=tti)&(tti=z) tti-=32;将所有大于1小于整数m的非素数存入xx所指数组中。int i,j,t=0;for(i=4;im;i+) for(j=2;j=xa)int i; float p,t=1.0; for(i=1;i=m;i+) t=t*i; p=t;for(t=1.0,i=1;i=n;i+) t=t*i; p=p/t;for(t=1.0,i=1;i=m-n;i+) t=t*i; p=p/t;return p;90填空 j=2 i j 改错 sum=j=0; if(sum%4=2)int i; double s=0.0;for(i=1;i=n;i+) s+=(1.0/(2*i-1)-1.0/(2*i);return s;47填空 *s 1 kn改错 double fun(int k) return s;int i; double s=0.0; for(i=1;i=n;i+) s+=1.0/(i*(i+1);return s;87填空 n%10 break break改错 if(t=0) *zero=count;int i; double s=1.0,t=1.0;for(i=2;i=n;i+) t*=i;s+=1.0/t;return s;100填空 0 0 c改错 double sum=0.0; sum/=c; int i; float s=1.0,t=1.0;for(i=2;i=n;i+) t+=i;s+=1.0/t;return s; 94填空 1.0 -1.0 t改错 for(i=1;i=0&k=6)int i; double t=1.0,s=1.0; for(i=1;i=n;i+) t*=i; s+=1.0/t;return s;46填空 i psj tp改错 double fun(int n) return sum;int i,j; double s=1.0,p=1.0,t=1.0; for(i=1;i=n;i+) t=t*i;p=p*x;s+=p/t;return s;96填空 0 j- j改错 double f(double x) return s;s=(ln(1)+ln(2)+ln(3)+ln(m)0.5。int i; double s=0.0,log(double x);for(i=1;i=m;i+) s+=log(double)i);return sqrt(s);84填空 a a b改错 c=c+32; c=c+5;S=1+(1+205)+(1+205+305)+(1+205+305+n05)int i; double s=1.0,p=1.0;for(i=2;i=eps) pi+=s;t=n/(2*n+1);s*=t;n+;return pi*2;53填空 x n fabs(t)改错 for(i=1;i=1e-6);return s;92填空 1.0 1 i改错 k=i; c=k%10;计算给定10个数的方差:int i,j; double s=0.0,s1=0.0;for(i=0;i10;i+) s1+=xi; s1/=10;for(j=0;j10;j+) s+=(xj-s1)*(xj-s1); s/=10;return sqrt(s);61填空 & A ch改错 void fun(int *a) aj=aj-1;计算给定整数n的所有因子之和。int s=0,i;for(i=2;i=n-1;i+) if(n%i=0) s+=i;return s;91填空 x n t改错 d=1;s=0; d=d/10;计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。double s=0.0; int i,j=1;for(i=0;i9;i+)if(j=2)&(n=1e-6);return x1;52填空 N N-1 0改错 s=s+(double)(n+1)/n; return t;求Fibonacci数列中大于t的最小的一个数。int a=1,b=1,c=0,i;for(i=4;i=t;i+)if(ct) c=a+b;a=b;b=c;else break;return c;1填空 10 0 x改错 if(n=0) result*=n-;将一个数字字符串转换为一个整数。long s=0,t;int i=0,n=strlen(p),k,s1;if(p0=-) i+;for(j=i;j=n-i;j+)t=pj-0;s1=10;for(k=j;kam) m=k;w是一个大于10的无符号整数,若w是n(n2)位的整数,则函数求出w的后n-1位的数。unsigned t=w,s=0,sl=1,p=0;while(t10) if(t/10) p=t%10;s+=p*sl;sl*=10;t/=10;return s;69填空 0 s+ ctod(a)+ctod(b)改错 void fun(char *s,int *a,int *b) *a=*a+1; *b=*b+1;对变量h中的值保留2位小数,并对第三位进行四舍五入。int t; float f;t=(int)h; f=h-t;if(int)(f*1000)%10=5) f=(int)(f*100)%100+1)/100.0;else f=(int)(f*100)/100.0;return t+f;58填空 t,s si 0改错 if(i%k=0) if(k=i)求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中。int i,j=0,k=0,*t=pp;for(i=1;i=x;i+)if(i%2!=0) tj+=i; for(i=0;i0.001)除了字符串前导和尾部的*号之外,将串中其它*号全部删除int j=0; char *q=a; while(*q & q h) aj+ = *q+ ; while(*h & *p & h p) if(*h != *) aj+ = *h ; h+; while(*p) aj+ = *p+ ; aj =0 ;43填空 N i -1改错 a2=k/10; return i;将字符串尾部的*号全部删除,前面和中间的*号不删除。int i=0;char *p,*q;p=q=a;while(*p) p+;p-;while(*p=*) p-;while(q=p) ai+=*q+;ai=0;37填空 N substr 0改错 int fun(int x,int y,int z) return j;只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。int i=0;char *p;for(p=a+h;pa+n-e;p+) ai+=*p;ai=0; 78填空 (*t)N i=0;iamid)除了尾部的*号之外,将字符串中其他*号全部删除。int i=0;char *q=a;while(qn) t=a+k-n;while(*t) ai+=*t+;ai=0;45填空 ai%2 aj j改错 fun(int n) if(n=1)使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。int i=0,k=0;char *p,*t;p=t=a;while(*t) t+;t-;while(*t=*)k+;t-; t+;if(kn)while(*p&pt+n) ai+=*p+;ai=0; 30填空 a scorei改错 sj+=si; sj=0;将字符串中的前导*号全部移到字符串的尾部。int i=0,n=0;char *p=a;while(*p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论