c语言期末复习试题(附答案)(12页).doc

上传人:1595****071 文档编号:36720495 上传时间:2022-08-28 格式:DOC 页数:12 大小:144.50KB
返回 下载 相关 举报
c语言期末复习试题(附答案)(12页).doc_第1页
第1页 / 共12页
c语言期末复习试题(附答案)(12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《c语言期末复习试题(附答案)(12页).doc》由会员分享,可在线阅读,更多相关《c语言期末复习试题(附答案)(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-c语言期末复习试题(附答案)-第 12 页试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择 共30题 (共计60分)第1题 (2.0分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ).A:k+ B:k+=1C:+kD:k+1第2题 (2.0分)已知int i=5,执行语句i+=+i后, i的值是( C).A:10B:11C:12D:A、B、C都不对第3题 (2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.#include void main( )/* Be

2、ginning */ int r; float s; scanf(%d,&r); s=p*r*r; printf(s=%fn,s);出错的原因是(D ).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题 (2.0分)ABC的长度是( B ).A:11B:7C:5D:3第5题 (2.0分)已知int j,i=1;,执行语句j=i+;后,j的值是( C ).A:1B:2C:-1D:-2第6题 (2.0分)有以下程序:#include void main( ) int s=0, a=1, n; scanf(%d,

3、 &n); do s+=1; a=a2; while(a!=n); printf(%dn, s); 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ).A:-1B:-3C:-5D:0第7题 (2.0分)执行以下程序后,输出的结果是( D ).#include void main( ) int y=10; do y ; while( y); printf(%dn,y );A:-1B:1C:8D:0第8题 (2.0分)以下循环体的执行次数是( C ).#include void main( ) int i,j; for(i=0,j=1; i=j+1; i+=2, j )printf(%d

4、n,i);A:3B:2C:1D:0第9题 (2.0分)有以下程序段:int k=0;while(k=1)k+;while循环执行的次数是(A ).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题 (2.0分)有以下程序#include void main( ) int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( A ).A:m=123n=456p=789B:m=123 n=456 p=789C:m=1

5、23,n=456,p=789D:123 456 789第11题 (2.0分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)A:f=0; for(i=1;i=n;i+) f*=i;B:f=1;for(i=1;i1;i+) f*=i;D:f=1; for(i=n;i=2;i ) f*=i;第12题 (2.0分)在下列程序中,没有构成死循环的程序段是( B ).A: int i=100;while(1) i=i%100+1; if(i100) break;B:int k=1000;do+k; while(k=10000);C:for(;);D:int s=36; while(s); -s;

6、第13题 (2.0分)有如下程序:#include void main( ) int n=9; while(n6) n-;printf(%d,n);该程序段的输出结果是( B ).A:987B:876C:8765D:9876第14题 (2.0分)以下程序的输出结果是( D ).#include void main( ) int x=10,y=10,i; for(i=0;x8;y=+i) printf(%d %d ,x ,y);A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1第15题 (2.0分)有如下程序:#includevoid main( ) int n5=

7、0,0,0,i,k=2; for(i=0;ik;i+) printf(%dn,nk);该程序的输出结果是( D ).A:不确定的值B:2C:1D:0第16题 (2.0分)下列程序执行后的输出结果是( A ).#includevoid main( ) char arr24; strcpy(arr,you); strcpy(arr1,me); arr03=&; printf(%s n,arr); A:you&meB:youC:meD:err第17题 (2.0分)以下程序的输出结果是( C ).#includevoid main( ) int i, x33=1,2,3,4,5,6,7,8,9; fo

8、r(i=0;i3;i+) printf(%d,xi2i);A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题 (2.0分)以下数组定义中不正确的是( D ).A:int a23;B:int b 3=0,1,2,3;C:int c100100=0;D:int d3 =1,2,1,2,3,1,2,3,4;第19题 (2.0分)以下能正确定义数组并正确赋初值的语句是(D ).A:int N=5,bNN;B:int a12=1,3;C:int c2 =1,2,3,4;D:int d32=1,2,3,4;第20题 (2.0分)有以下程序:int a=4;int f(int n) i

9、nt t=0; static int a=5; if(n%2) int a=6; t+=a+; else int a=7; t+=a+; return t+a+;main( ) int s=a,i=0; for( ; i2; i+) s+=f(i); printf(dn,s);程序运行后的输出结果是(B)A:24B:28C:32D:36第21题 (2.0分)以下正确的函数定义形式为(A)A:double fun(int x, int y)B:double fun(int x; y)C:double fun(int x; int y)D:double fun(int x, y)第22题 (2.0

10、分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题 (2.0分)有以下程序: 输出结果是() (注:5353)void swap1(int c0 , int c1 ) int t ; t=c00; c00=c10; c10=t; void swap2(int *c0, int *c1) int t; t=*c0; *c0=*c1; *c1=t; main( ) int a2=3,5, b2=3,5; swap1(a, a+1); swap2(&

11、b0, &b1); printf(%d %d %d %dn,a0,a1,b0,b1);A:3 5 5 3B:5 3 3 5C:3 5 3 5D:5 3 5 3第24题 (2.0分)以下程序的输出结果是( A ).amovep(int*p, int (*a)3,int n) int i, j; for( i=0;in;i+) for(j=0;jn;j+) *p=aij; p+; main( ) int *p,a33=1,3,5,2,4,6; p=(int *)malloc(100); amovep(p,a,3); printf(%d %d n,p2,p5); free(p); A) 5 6 B)

12、 2 5 C) 3 4 D) 程序错误第25题 (2.0分)有以下函数:fun(char *a,char *b) while(*a!=0)&(*b!=0)&(*a=*b) a+; b+; return (*a*b); 该函数的功能是(D ).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题 (2.0分)有以下程序:fun(char p 10) int n=0,i; for(i=0;i7;i+) if(pi0= T ) n+; return n;main( ) char str 10=Mon,T

13、ue,Wed,Thu,Fri,Sat,Sun; printf(%dn,fun(str);程序执行后的输出结果是( B ).A:1B:2C:3D:0第27题 (2.0分)有以下程序:main( ) char str10=China,Beijing,*p=str; printf(%sn,p+10); 程序运行后的输出结果是( B ).A:ChinaB:BeijingC:ngD:ing第28题 (2.0分)有以下程序:#define f(x) (x*x)main( ) int i1, i2; i1=f(8)/f(4) i2=f(4+4)/f(2+2) printf(%d,%dn,i1,i2);程序运

14、行后的输出结果是( C ).A:64, 28B:4, 4C:4, 3D:64, 64第29题 (2.0分)有以下程序: 结果是(A)void change(int k ) k0=k5; main( ) int x10=1,2,3,4,5,6,7,8,9,10,n=0; while(n=4) change(&xn); n+; for(n=0;n5;n+) printf(%d,xn); printf(n); A) 678910 B) 13579 C) 12345 D) 62345A:678910B:13579C:12345D:62345第30题 (2.0分)在以下程序中,能够通过调用函数fun(

15、),使main( )函数中的指针变量p指向一个合法的整型单元的是(C ).A:main( )int *p;fun(p); int fun(int *p) int s;p=&s; B:main( ) int *p; fun(&p);int fun(int *p) int s;*p=&s; C:#include main( ) int *p; fun(&p); int fun(int *p) *p=(int*)malloc(2); D:#include main( ) int *p; fun(p); int fun(int *p) p=(int*)malloc(sizeof(int); 二、程序填

16、空 共1题 (共计10分)第1题 (10.0分)【程序填空】功能:计算平均成绩并统计90分以上人数。main() int n,m;float grade,average; /*SPACE*/ average=n=m=【?】; /此处为: 0 while(1) /*SPACE*/ 【?】(%f,&grade); /此处为: scanf if(grade0) break; n+; average+=grade; /*SPACE*/ if(grade90)【?】; /此处为:break m+; if(n) printf(%.2f%dn,average/n,m);三、程序改错 共1题 (共计10分)第

17、1题 (10.0分)【程序改错】功能:首先把b所指字符串中的字符按逆序存放, 然后将a所指字 符串中的字符和b所指字符串中的字符,按排列的顺序交叉 合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如:当a所指字符串中的内容为“abcdefg”,b所指字符串中的 内容为“1234”时,c所指数组中的内容应该为“a4b3c2d1 efg”;而当a所指字符串中的内容为“1234”,b所指字符 串中的内容为“abcdefg”时,c所指数组中的内容应该为 “1g2f3e4dcba”。#include #include #include void fun( char *a, char *b, c

18、har *c ) int i , j; char ch; i = 0; j = strlen(b)-1; /*FOUND*/ while ( i j ) /此处 改为 ch = bi; bi = bj; bj = ch; i+; j-; /*FOUND*/ while ( *a &*b ) / 此处&改为 |(逻辑或) if ( *a ) *c = *a; c+; /*FOUND*/ a+; /此处a+ if ( *b ) *c = *b; c+; b+; *c = 0;main() char s1100,s2100,t200; clrscr(); printf(nEnter s1 strin

19、g : ); scanf(%s,s1); printf(nEnter s2 string : ); scanf(%s,s2); fun( s1, s2, t ); printf(nThe result is : %sn, t );四、程序设计 共1题 (共计20分)第1题 (20.0分)【程序设计】功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。#include stdio.h#includeconio.hint fun(int w) /*Program*/ int s=0,m=w; while(m) s+=(m%10)*(m%10);m/=10; if

20、 (s%5=0) return 1; else return 0; /* End */main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); yzj(); getch();yzj() FILE *IN,*OUT; int c ; int t; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(c=1;c=5;c+) fscanf(IN,%d,&t); o=fun(t); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁