C语言试题库答案.doc_第1页
C语言试题库答案.doc_第2页
C语言试题库答案.doc_第3页
C语言试题库答案.doc_第4页
C语言试题库答案.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

试题库答案一、填空1、确定性、可行性、输入、输出、有穷性2、正确性、时间代价、空间代价、健壮性、可读性3、程序流程图、N-S盒图、PAD图4、正确性、鲁棒性、效率、易用性、可理解性、可测试性、可维护性、可重用性、5、机器语言、汇编语言、高级语言、超高级语言6、源程序编辑、源程序编译、连接、运行、调试第2章 C语言概述一判断题1-5 abbab6-10 aaabb第3章数据类型与数据运算一判断题1-5 bbbbb 6-8 abb二多项选择题1、(BC) 2、(AC) 3、(AD) 4、(CD) 5、(AC) 6、(CD) 7、(AD) 8、(BC)三单项选择题1-5 DBCBB 6-8 ADC四编程题1、#include void main()int a=120;printf(%d,%o,%xn,a,a,a);2、#include #include void main()float a,s,v;scanf(%f,&a);s=6*a*a;v=a*a*a;printf(s=%f,v=%fn,s,v);3、#define PI 3.14#include #include void main()float r,s,v;scanf(%f,&r);s=4*PI*r*r;v=4/3*PI*r*r*r;printf(r=%4.1f,s=%4.1f,v=%4.1fn,r,s,v);4、#include void main()int i1=65,i2=97;printf(%c,%d,%o,%xn, i1, i1, i1, i1);printf(%c,%d,%o,%xn, i2, i2, i2, i2);5、#include void main()float x;scanf(%f,&x);printf(a=%.3f,a=%.3en,x,x);第4章 常用库函数一、单选题1-5 DADDB 6-10 CDACC 11-15 CACAC 16-20 AADBC21-25 DDBDB 26-29 CBCD二、多选题1、BD 2、BCD 3、CD 4、ACD 三、填空1、261 2、1234四、程序阅读 分析下来函数段,写出其对应的执行结果。1、65,89 2、x+y+z=48 3、68 4、1095、17 6、123.46 7、100,c 8、2,8,10,16五、操作题1. 若输入:sun则输出:sun若输入:sun则输出:su2.运行结果为:a=123,b=-3721a= 123 a=123 a=123b= -3721 b=-003721 b=-3721 b= -3721a= 123,b= -3721a=123 ,b=-3721 sun, su,sun,sun123.456001,1.234560e+002,123.4561.235e+002,001.2e+00,1.23456e+0023. 运行结果:若输入:32b则输出:a=32c=b4. 运行结果:goodsun day5. 运行结果为:若输入:Good则输出:Good6. 运行结果为:helloworldworldhellowoeldgood7. 运行结果为:goodgoodwelcome8. 运行结果为:n=-1n=19. 运行结果为:good better bestabE1835510. 运行结果为:Good BetteR BesrABEgood better besrabe11. 运行结果为:good better bestabEGOOD BETTER BESTABE12. 运行结果为:若输入:a则输出:A第5章C程序设计基本结构一判断题1-5 bbbaa 6-10 abbbb 11-15 bbbab 16-20 abaab 21-25 bbaaa 26-30 bbbba 31-35 abbbb 36-40 bbbba二选择题1-5 DAADC 6-10 BCCBC 11-15 BBCCB 16-20 BACCC 21-25 CCADA26-30 AADAD 31-35 DAAAA 36-40 CCDCA 41-45 CCCCB 46-50 ABBBC三填空题1. -11 2. 2*x 3. 585858 4. 21四改错题1. #includevoid main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);if(ab)max=a;else if(maxc) max=b;else max=c;printf(max=%d,max);2.double类型和float类型转换错误。3. #include void main()int sum=0,n;n=0;while (n=100)sum+=n;n+=2;printf(1100之间所有偶数的和为:%d,sum);4. break退出时出错。五输出结果题(1). 1 (2). 4599(3)10 20 0.(4).2 1(5).-4 (6).3(7).yes(8).1(9).5 0 3(10).20,0 (11).585858(12).13(13) .C G(14).1 3 2 (15).1 (16). Passwarn (17).25 (18). maxis:21(19). 当输入c时,输出C,当输入*,无输出。(20). 1,0,0,1 (21) .(1) x=4,y=2*x-1=7 (2) x=-4,y=x=-4 (3) x=10,y=3*x-11=19(22) sum=55 (23) . 8,14,1 (24) . 1 3 5 7 (25) .k=1234六编程题1. 方法1#include stdio.hvoid main()int s,i;s=0;for(i=1;i=100;i+=3)s=s+i;printf(s=%dn,s);方法2#include stdio.hvoid main()int s,i; s=0;i=1;while(i=100)s=s+i; i+=3; printf(s=%dn,s);2.方法1#include stdio.hvoid main()int s1,s2,i;s1=s2=0; for(i=1;i=100;i+)if(i%2=1) s1=s1+i; /*奇数之和*/ else s2=s2+i; /*偶数之和*/ printf(s1=%d,s2=%dn,s1,s2);方法2#include stdio.hvoid main()int s1,s2,i;s1=s2=0; for(i=1;i=99;i+=2) s1=s1+i; /*奇数之和*/for(i=2;i=100;i+=2) s2=s2+i; /*偶数之和*/printf(s1=%d,s2=%dn,s1,s2);方法3#include stdio.hvoid main()int s1,s2,i;s1=s2=0;i=1;while(i=99)s1=s1+i; /*奇数之和*/ i+; s2=s2+i; /*偶数之和*/ i+;printf(s1=%d,s2=%dn,s1,s2);3. 方法1#include stdio.hvoid main()float p;int i,k;p=1;scanf(%d,&k);for(i=1;i=1)p=p*k; k-;printf(p=%fn,p);4.方法1#include stdio.hvoid main()float s1,s2,s;int i;s1=s2=0; for(i=1;i=101;i+=4) s1=s1+1.0/i; /*正数之和*/for(i=3;i=99;i+=4) s2=s2+1.0/i; /*负数之和*/s=s1-s2;printf(s=%fn,s);方法2#include stdio.hvoid main()int i,p;float s;s=0;p=1;for(i=1;i=101;i+=2) s=s+p*1.0/i; /*p用于控制累加项的正负*/ p=-p; /*改变正负号*/ printf(s=%fn,s);5. #include stdio.hvoid main()int i;float s;s=0;for(i=1;i=99;i+=2) s=s+1.0/i; /*不能写作1/i*/printf(s=%fn,s);6. 方法1 辗转相除法。以其中一个数作被除数,另一个数作除数,相除求余数。若余数不为0,则以上一次的除数作为新的被除数,以上一次的余数作为新的除数,继续求余数。直至余数为0时,对应的除数就是最大公约数。#include stdio.hvoid main()int m,n,r,g,h,p;scanf(%d%d,&m,&n);p=m*n;while(r=m%n)!=0) /*余数不为0时循环*/m=n; /*以上一次的除数作为新的被除数*/ n=r; /*以上一次的余数作为新的除数*/ g=n; /*余数为0时的除数即最大公约数*/h=p/g; /*两数之积除以最大公约数就是最小公倍数*/printf(g=%d,h=%dn,g,h);方法2:辗转相除法。#include stdio.hvoid main()int m,n,r,g,h,p;scanf(%d%d,&m,&n);p=m*n;while(1) /*循环条件总为真*/r=m%n; if(r=0) break; /*余数为0时终止循环*/m=n; /*以上一次的除数作为新的被除数*/ n=r; /*以上一次的余数作为新的除数*/ g=n; /*余数为0时的除数即最大公约数*/h=p/g; /*最小公倍数*/printf(g=%d,h=%dn,g,h);7. 解法1:#include stdio.hvoid main()int a,d; scanf(%d,&a); while(a!=0)d=a%10; /*求得个位*/ printf(%1d,d); /*输出宽度为1*/ a=a/10; /*去掉原来的个位*/解法2:#include stdio.hvoid main()int a,b,d; scanf(%d,&a);b=0;/*b用于存放倒置之后的数*/ while(a!=0)d=a%10; /*求得个位*/b=b*10+d; a=a/10; /*去掉原来的个位*/printf(%dn,b);8.方法1:#include stdio.hvoid main()int i,j,k;for(i=1;i=4;i+) /*输出前4行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=1;i-) /*输出后3行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=2*i-1;k+) printf(*);printf(n);方法2:#include stdio.hvoid main()int i,j,k;for(i=1;i=4;i+) /*输出前4行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=2*i-1;k+) printf(*);printf(n); for(i=1;i=3;i+) /*输出后3行*/for(j=1;j=i;j+) printf( );for(k=1;k=a&ch=A&ch=a&ch=A&ch100|(score0) printf(n输入有误,请重新输入:); scanf(%f,&score); switch(int)(score/10) case 10: case 9: grade=A;break; case 8: grade=B;break; case 7: grade=C;break; case 6: grade=D;break; case 5: case 4: case 3: case 2: case 1: case 0: grade=E; printf(成绩是%5.1f,相应的等级是%c。n,score,grade); 说明:对输入的数据进行检查,如小于0或大于100,要求重新输入。(int)(score/10)的作用是将 (score/10) 的值进行强制类型转换,得到一个整型值。 11. #include stdio.hvoid main() long m,n,i=1,j,s; scanf(%ld,%ld,&m,&n); for(;i=m&i=n) j=m; else j=n; for(;!(j%m=0&j%n=0);j+); printf(s=%ld,j=%ldn,s,j); 12. #include stdio.hvoid main() int n,sum=0,i=1,s=2; scanf(%d,&n); while(i=n) sum=sum+s;s=s+2*pow(10,i); i+; printf(sum=%dn,sum); 13.#include stdio.hvoid main() int i,n;double h=100,s=100; scanf(%d,&n); for(i=1;i=0;i-) printf(%d ,ai);2、将if(i%5=0)改为if(i%5=0)3、将int i=0,sum;改为int i=0,sum=0;4、在for语句与while语句之间添加i=0;5、将for(j=i+1;jN-1;j+)改为for(j=i+1;jN;j+)6、将for(i=1;i=N;i+)改为for(i=1;i=N-1;i+) 7、将while(bott=top)改为while(flag=0&bott=A&si=a&si=A&si=a&si=06、 bufferk=n%10 bufferi!=bufferk-1-i7、mijmij8、l=ai0aij9、(i=j)(i=4-j)10、 int i,flag stri=getchar( ) str1i!=stri11、 j+=2 aiaj12、 0 0 xi+13、 count=0 !str2k+114、i+,j-stri=strj四、输出结果题1、8 5 2;2、0;3、1234;4、3;5、10010;6、3 5 7;7、18;8、-850,2,0 ;9、40;10、BBB;11、1,23,456;12、FGH 换行输出KL;13、EnglishGood五、编程题1、#includevoid main()int i,k;int arr10;printf(input the arrary:);for (i=0;i10;i+)scanf(%d,&arri);printf(input k:);scanf(%d,&k);for (i=0;i10;i+)if (arri=k)printf(result is %d.n,i+1);break;if (i=10)printf(Cannot found!n);2、#includevoid main()int a5=2,4,6,8,10;int b5=1,3,5,7,9;int c10;int i,j,k;i=j=k=0;while (i5 & j5)if (ai=bj)ck+=ai+;elseck+=bj+;while (i5)ck+=ai+;while (j5)ck+=bj+;printf(result array is:n);for (i=0;i10;i+)printf(%dt,ci);3、#include#include void main()int arr20;int i,j;printf(input 20 integers:n);for (i=0;i20;i+)scanf(%d,&arri);for (i=0;i20;i+)for (j=0;j20;j+)if (i!=j & arri%arrj=0)printf(%dt,arri);break;printf(n);4、#includevoid main()int arr15,arr26;int i,j;printf(input 5 nubmer:);for (i=0;i5;i+)scanf(%d,&arr1i);printf(input 6 numbers:);for (i=0;i6;i+)scanf(%d,&arr2i);for (i=0;i5;i+)for (j=0;j6;j+)if (arr1i=arr2j)printf(%dt,arr1i);break;5、#includevoid main()int arr15,arr26;int i,j,flag;printf(input 5 nubmer:);for (i=0;i5;i+)scanf(%d,&arr1i);printf(input 6 numbers:);for (i=0;i6;i+)scanf(%d,&arr2i);for (i=0;i5;i+)flag=0;for (j=0;j6;j+)if (arr1i=arr2j)flag=1;break;if (flag=0)printf(%dt,arr1i);for (i=0;i6;i+)flag=0;for (j=0;j5;j+)if (arr2i=arr1j)flag=1;break;if (flag=0)printf(%dt,arr2i);6、#includevoid main()int A44;int i,j,sum=0;printf(input the matrix:);for (i=0;i4;i+)for (j=0;j4;j+)scanf(“%d”,&Aij);for (i=0;i4;i+)sum+=Aii;printf(%5dn,sum);7、#include void main()float score105, stuave10,courseave5;int i,j;printf(“Please input the scores :”);for (i=0;i10;i+)stuavei=0; for (j=0;j5;j+)scanf(“%f”,&scoreij);stuavei+=scoreij;stuavei/=5.0;for (j=0;j5;j+)courseavej=0;for (i=0;i10;i+)courseavej+=scoreij;courseavej/=10.0;printf(“the average scores of each student are:n ”);for (i=0;i10;i+)printf(“%5.2fn”,stuavei);printf(“the average scores of each course are:n ”);for (i=0;i5;i+)printf(“%5.2fn”,courseavei);8、#includevoid main()int CountA,CountB,CountC,CountD;int i;char str80;printf(input a string:n);gets(str);CountA=CountB=CountC=CountD=i=0;while (stri!=0)if (stri=A & stri=a & stri=0 & stri=9)CountC+;elseCountD+;i+;printf(The number of upper and lower character and number and others are:n);printf(%5d%5d%5d%5dn,CountA,CountB,CountC,CountD);第7章 函数一、判断题1-5 bbbba 6-10 aabab 11-15 babbb 16-20 bbbbb二、程序填空题1. j=1y-j=j*x2. rowarowcolum3. xiixi-1j-1+xi-1j4. mijmij5. i+,j- -stri=strj(或*(str+i)=*(str+j)6. n=0|n=1f=ff(n-1)*n7. c=c*is=s+f1(i)8. i10&ai9. return 1fun2(n)10. k=sqrt(x) prime(j)11. Fibonacci(k-1)+Fibonacci(k-2)三、输出结果题1. 3 55 33 52. 53. 1 3 24. 485. 126. 3,2,2,37. The absolute value of 3 is 3.The absolute value of -4 is 4.8. hlo四、编程题1. #include #define N 10void Reverse (int A,int n)int temp;int i;for (i=0;in/2;i+)temp=Ai;Ai=An-1-i;An-1-i=temp;void main()int ArrN;int i;for (i=0;iN;i+)Arri=i;Reverse (Arr,N);for (i=0;iN;i+)printf(%5d,Arri);printf(n);2. #includeint sum_fact(int number)int sum=1;int i;for (i=2;inumber;i+)if (number%i=0)sum+=i;sum+=number;return sum;void main()printf(result is %d.n,sum_fact(6);3. #include#include int isNumber(char s1)char p80;int i=0;strcpy(p,s1);if (p09 | p09 | pib)return 1;else if (a=b)return 0;elsereturn -1;i=j=0;while (p1i!=0 & p2j!=0)if (p1i=p2j)i+;j+;elsebreak;if (p1ip2j)return -1;else if (p1i=p2j)return 0;elsereturn 1;void main()char s180,s280;while (1)printf(please input two string:n);gets(s1);gets(s2);printf(%dt%dn,isNumber(s1),strcmp(s1,s2);4. #includeint fac(int n)int result;int i;result=1;for (i=2;i=n;i+)result*=i;return result;void main()int m,n;printf(input m & n:);scanf(%d%d,&m,&n);printf(result is %d,fac(m)/fac(n)/fac(m-n);5. #include#define m 2#define n 2void com(int arrmn,int *a,int *b,int *c)int i,j;*a=*b=*c=0;for (i=0;im;i+)for (j=0;j0)(*a)+;else if (arrij=0)(*b)+;else(*c)+;void main()int arrmn,a,b,c;int i,j;printf(input the matrix:n);for (i=0;im;i+)for (j=0;jn;j+)scanf(%d,&arrij);com(arr,&a,&b,&c);printf(positive: %dn negative:%dt zero:%dn,a,b,c);6. double fun(int n)double s=0.0;int i;for(i=0; in;i+)if(i%5=0&i%11=0)s=s+i;s=sqrt(s);return s;7. long fun(int n)int i;long s=0;for(i=2;i=n-1;i+)if(n%i=0)s+=i*i;return s;8. 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)upj+=scorei;return j;9. void fun(int x,int pp,int *n)int i,j=0;for(i=2;i=x;i=i+2)if(x%i=0)ppj+=i;*n=j;10. void fun(int m,int k, int xx)int i,j,n;for(i=m+1,n=0;nk;i+)for(j=2;ji;j+)if(i%j=0)xxn+=i;break;11. int fun(int wN)int i,j,k=0;int s=0;for(i=0;iN;i+)for(j=0;jN;j+)if(i=0|i=N-1|j=|j=N-1)s=s+wij*wij;return s;12. void fun(int w,int p,int n)int i,j,t;for(i=p;i=0;j-)wj+1=wj;w0=t;13. float fun(int n)int i,s1=0;float s=0.0;for(i=1;i=n;i+)s1=s1+i;s=s+1.0/s1;return s;14. int fun(char str)int i,j=0;for(i=0;stri!=0;i+)if(stri!= )strj+=stri;strj=0;15. double fun(int n)int i;double s=0.0,s1=0.0;for(i=1;i=n;i+)s1=s1+pow(i,0.5);s=s+s1;return s;第8章 预处理命令一、判断题1-5 baabb 6-7 ab 第9章 指针一、判断题1-5 bbbba 6-9 bbaa 二、单项选择题1-5 BDCCD 6-10 BDDBD 11-15 BABCC 16-20 DCBAB三、程序改错题1、将p_max = a;p_min = b;改为p_max = &a;p_min = &b; 2、在两个for语句之间添加 p=a; 3、将*a+=i;改为*p+=i; 4、将int a,b,c, pmax, pmin;改为int a,b,c, *pmax, *pmin;5、将printf(“%d, %dn”,p1,p2);改为printf(“%d, %dn”,*p1,*p2);6、将p=&a;改为p=a;7、把int *p4;改为int(*p)4;四、程序填空题1、rowarowcolum2、s1i!= 0s2i!=03、*p!=0 NULL五、输出结果题1、f2、19 3、3 55 33 54、105、56、1 97、10 10 10 108、79、6六、编程题1、int StrComp(char *s1,char *s2)int i,j;while (s1i!=0 & s2j!=0 & s1i=s2j)i+;j+;return s1i-s2j;2、 #include#includevoid fun(char *s,int *a,int *b)int i;*a=*b=0;while (si!=0)if (si=A & si=a & si=z)*b+;void main()char s100;int upper=0,lower=0;printf(请输入一串字符:n);gets(s);fun(s,&upper,&lower);printf(upper=%d,lower=%d,upper,lower);3、#include void main()int X4=3,11,8,22;int product,i;int *p;p=X;product=1;for (i=0;i4;i+)product=product*(*(p+);printf(%dn,product);4、#include#define m 2#define n 2void com(int arrmn,int *a,int *b,int *c)int i,j;*a=*b=*c=0;for (i=0;im;i+)for (j=0;j0)(*a)+;else if (arrij=0)(*b)+;else(*c)+;void main()int arrmn,a,b,c;int i,j;printf(input the matrix:n);for (i=0;im;i+)for (j=0;jn;j+)scanf(%d,&arrij);com(arr,&a,&b,&c);printf(positive: %dn negative:%dt zero:%dn,a,b,c);5、#include void fun(int (*s)10, int *b, int *n,int mm,int nn) int i,j,k=0;for(i=0;imm;i+)for(j=0;jnn;j+)bk+=sij;*n=k;void main()int w1010=33,33,33,33,44,44,44,44,55,55,55,55,i,j;int a100=0,n=0;printf(The mat

温馨提示

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

评论

0/150

提交评论