




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计复习题一、单项选择题1. 下面各选项组中,均是C语言关键字的一组是B。 A. auto, enum, includee B. switch, typedef, continue C. signed, union, scanf D. if, struct, type2. 逗号表达式“(a=3*5, a*4), a+15”的值是C。 A. 15 B. 60 C. 30 D. 不确定3. 如果int a=1, b=2, c=3, d=4;则条件表达式“ab? a:cd? c:d”的值是A。 A. 1 B. 2 C. 3 D. 44. 已知int x=5, y=5, z=5; 执行语句x%=y+z; 后,x的值是_C_ A. 0 B. 1 C. 5 D. 65. 下列循环语句中有语法错误的是D A. while(x=y) 5 B. while(0) C. do 2; while(x=b) D. do x+ while(x=10)6. 已知int i=1, j=0; 执行下面语句后j的值是D while(i)switch(i) case 1: i+=1; j+; break; case 2: i+=2; j+; break; case 3: i+=3; j+; break; default: i-; j+; break; A. 1 B. 2 C. 3 D. 死循环7. 已知int i=1; 执行语句“while(i+4);”后,变量i的值为C A. 3 B. 4 C. 5 D. 68. 对二维数组的正确说明是C A. int a=1,2,3,4,5,6 B. int a2=1,2,3,4,5,6 C. int a3=1,2,3,4,5,6 D. int a2,3=1,2,3,4,5,69. 函数定义如下: fun1(float x) float y;y=x*x;return(y); 已知float z; 使用“z=fun1(2.5);”调用该函数后,变量z的值是B A. 4 B. 6 C. 6.25 D. 有编译错误10. 求取满足式12+22+32+n2=1000的n, 正确的语句是A A. for(i=1, s=0; (s=s+i*i)=1000; n=i+) B. for(i=1, s=0; (s=s+i*i)=1000; n=+i) C. for(i=1, s=0; (s+i*i)=1000; n=i) D. for(i=1, s=0; (s=s+i*i+)0)&(xy); A. 1 B. 2 C. 3 D. 程序运行有错误1. 在C语言中,合法的字符常量是 A) 084 B) x43 C) ab D) 02. 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 A) 1 B) 2 C) 2.0 D) 2.53. 若有以下程序片段: char str=abc012; printf(%d,strlen(str); 上面程序片段的输出结果是 A) 3 B) 4 C) 6 D) 124. 函数调用:strcat(strcpy(str1,str2),str3)的功能是 A) 将串str1复制到串str2中后再连接到串str3之后B) 将串str1连接到串str2之后再复制到串str3之后C) 将串str2复制到串str1中后再将串str3连接到串str1之后D) 将串str2连接到串str1之后再将串str1复制到串str3中1. 关于break语句的正确说法是( )。A) switch-case中可根据需要使用或不使用break语句B) while循环中的break语句可结束本次循环, 继续下一次循环C) do-while循环中不允许使用break语句D) for循环中必须使用break语句来结束循环2. 当调用函数时,实参是一个数组名,则向函数传递的是( )。A) 数组的长度 C) 数组的首地址B) 数组每一个元素的地址D) 数组每个元素中的值3. 以下程序的输出结果是( )。 main( ) int j, x33=1,2,3,4,5,6,7,8,9; for(j=0;j3;j+) printf(%d,xj2-j); A) 1, 5, 9, B) 1, 4, 7, C) 3, 5, 7, D) 3, 6, 9,4. 若有以下定义和语句,则输出结果是char sl10= abcd!, *s2=n123;printf(%d %dn, strlen(s1),strlen(s2);A) 5 5 B)10 5 C)10 7 D)5 85. 执行for (x=0,y=0; (y!=123)&(xdata.a D) p.data.a 10. 若有以下调用语句,则不正确的fun函数的首部是 main() int a50,n;fun(n, &a9); A) void fun(int m, int x) B) void fun(int s, int h41)C) void fun(int p, int *s) D) void fun(int n, int a)CCDCCDCB填空题1.结构化程序设计的三种基本结构是:_、_和_。2.设整型数组a的定义为int a3=4; 则数组的元素分别是_, _, _。3.字符串ABCD的长度为_, 占用_字节的内存空间, 最后一个字节是_。4.若有说明int i, j, k;则表达式i=10, j=20,k=30,k*=i+j的值为_。5. 设int a10, *p=a, *q=&a5; 则表达式(q-p)的值为_。5. 组合赋值表达式s+=i与赋值表达 是等价的。6. 若有定义double x35;则x数组中最大行下标为 ,最大列下标为 。7. 在C语言中变量的存储类别有 、_、_和_。8. 设有char *a=xyz;,则printf(%c,*a);的输出是_, 而printf(“%s”,a);的输出是_。6.设int a=3, b=4; float x = a/b; 则printf(%f, x); 将输出 。7.在C语言中,一个二维数组可以看成若干个 数组。8.C程序由函数构成, 其中至少包括一个名为 的函数。9.预处理命令以 开始, 且必须写在一行内。1. 语言源程序文件的后缀是 ,经过编译后,生成文件的后缀是 ,经过连接后,生成文件的后缀是 。2. 条件“1 x 3或x y); 以后, 变量z的值变为_ _。二、阅读程序题(5小题,每题4分,共20分)1. 下面程序的输出结果是B #include”stdio.h” main() int x=10; int x=20; printf(“%d,”,x);printf(“%dn”,x); A. 10,20 B. 20,10 C. 10,10 D. 20,202. 下面程序的输出结果是D #include”stdio.h” main() int x=10, y=10;printf(“%d,%dn”,x-,-y); A. 10,10 B. 9,9 C. 9,10 D. 10,93. 下面程序的输出结果是C #include”stdio.h” main() int a=-1,b=1,k;if(+a0)&!(b-3)printf(“%dn”,a); A. 1 B. 2 C. 3 D. 45. 下面程序的输出结果是C #include”stdio.h” main() char s12=”a book”;printf(“%.4s”,s); A. a book! B. a book! C. a bo D. 格式描述错误,输出不正确6. 下面程序的输出结果是C #include”stdio.h” main() int num=0;while(num=2) num+; printf(“%dn”,num); A. 1 B. 1 C. 1 D. 1 2 2 2 3 3 47. 下面程序的输出结果是B #include”stdio.h” main() int i,k,a10,p3;k=5;for(i=0;i10;i+) ai=i;for(i=0;i3;i+) pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(“%dn”,k); A. 20 B. 21 C. 22 D. 238. 下面程序的输出结果是D #include”stdio.h” #include”string.h” main() char str100=”How do you do”;strcpy(str+strlen(str)/2, “es she”);printf(“%sn”,str); A. How do you do B. es she C. How are you D. How does she1. 下列各选项中,()是有效的标识符。A) ab B) 3day C) day3 D) #abc2. 以下说法中正确的是( )。A) C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main () 函数中定义C) C语言程序总是从main () 函数开始执行D) C语言程序中的main () 函数必须放在程序的开始部分3. 执行以下程序段后,w的值为 ( ) int w=A, x=14, y=15; w = (x | y) & (wa);A) -1 B) NULL C) 1 D) 04. 若有定义语句:double x5=1.0, 2.0, 3.0, 4.0, 5.0,*p=x; 则错误引用x数组元素的是 ( )A) *p B) x5 C) *(p+1) D)*x5. 在C语言中,函数返回值的类型最终取决于( )A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型三、程序填空题(2小题,每题5分,共10分)1. 下面程序的功能是计算1-3+5-7+-99+101的值 main() int i,t=1,s=0;for(i=1;i0?-1:1 ; printf(“%dn”,s); 2. 下面程序的功能是输出100以内的个位数为6,且能被3整除的所有数。 main() int i,j;for(i=0; i=9 ;i+) j=i*10+6; if( j%3!=0 ) continue; printf(“%d”,j); 6. 下面程序通过函数average计算数组中各元素的平均值,请填空。#include float average(int * pa,int n) int i; float avg=0.0; for(i=0;in;i+) avg=avg+_; avg=_; return avg; main() int i, a5=2,4,6,8,10; float mean; mean= ; printf(mean=%fn, mean);3. 下面的函数sum完成计算1n的累加和 sum(int n) if(n=0) printf(“data error n”); if(n=1) return ;else return(sum(n-1)+n) ; 1. 以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include main() long n; n= ; printf(n=%ldn,n);long func( ) long m; for(m=0; getchar()!=; ); return m; 2.计算: #include double f(int n) double y, p; int k, s; y = 0.0; p = ; k = 1; while ( ) y = ; k+; p = ; return y;2. 以下程序的功能是使用调用函数的方法s=1+2+22+23+ +210,程序中自定义函数func的功能是计算2的n次方幂。#include int func (int n) int k, p; p=_ _ _; for (k=1;k=n;k+) p= ; return _ _; main( ) int s, i;_ _ _;for (i=0; i=10; i+) s=s+_ _;printf(s=%dn,s);下面程序的功能是输出1到100之间数位上数字的乘积大于数位上数字之和的数。例如数字26,数位上数字的乘积12大于数字之和8。#include main() int n, k=1, s=0,m; for (n=1;n=100;n+) k=1; s=0;m=n;while ( ) k*=m%10;s+=m%10; ;if ( )printf(n=%dn,n); 3.下面程序的功能是实现数组元素中值的逆转#include main() int i, n=5,a5=1,2,3,4,5;invert(a,n-1);for(i=0;i5;i+) printf(%4d, ai);printf(n); invert (int *s,int num ) int *t, k ; t=s+num;while( ) k=*s; *s=*t; ; ; 程序阅读题,写出下列程序的运行结果1. main ( ) int s=0, i;int add ( );for (i=1; i=4; i+) s=s+add( );printf(s=%dn,s);int add ( ) static int x=0;return x+;1. #include main() int x=1,y=0,a=0,b=0;switch (x) case 1: switch (y) case 0: a+; break;case 1: b+; break;case 2: a+; b+; break;case 3: a+; b+; printf(a=%d, b=%dn, a,b);2. void Fun(int *y) printf(*y = %dn, *y);*y = 20; printf(*y = %dn, *y);main()int x = 10;printf(x = %dn, x);Fun(&x);printf(x = %dn, x);3. main ( ) int b;for (b=0;b=6;b+) if (b%3)printf(%d, b);printf(*);elsecontinue;printf(); printf(n); 2. #includevoid Fun(int *y) *y = 20; printf(*y = %d, , *y); main ( )int x = 10;Fun(&x);printf(x = %dn, x); 4. 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;nyear = 2000; p-month = 5; p-day = 22; main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(%d,%d,%dn,d.year, d.month, d.day); func(&d); printf(%d,%d,%dn,d.year, d.month, d.day);5. fun (int x) int p;if (x=0|x=1) return(3);else p=x-fun(x-2);return p; main() printf(%dn, fun(7);3. #include main()int a33=1,2,3,4,5,6,7,8,9,i;for(i=0;i3;i+)printf(%d,ai2-i);4. #include void Func(int b )int j;for (j=0; j4; j+) bj = j+1;main()static int a4 = 5,6,7,8, i;Func(a);for (i=0; i4; i+) printf(%dn, ai);四、编程序计算两位数中所有能同时被3和5整除的数(共10分)main() int n; for(n=10;n100;n+)if(n%3!=0|n%5!=0) continue; printf(“%5d”,n);五、用选择排序法对10个数进行排序#includestdio.h#define N 10main() int i,j,m,p,aN; for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN-1;i+) p=i; for(j=i+1;jaj) p=j; if(p!=i) m=ap;ap=ai;ai=m; for(i=0;iN;i+) printf(%5d,ai);五、用气泡排序法对10个数进行排序#includestdio.h#define N 10main() int i,j,m,aN; for(i=0;iN;i+) scanf(%d,&ai); for(j=1;j=N-1;j+) for(i=0;iN-j;i+) if(aiai+1)m=ai;ai=ai+1;ai+1=m; for(i=0;iN;i+) printf(%5d,ai);六、不用输入,自动形成并输出如下矩阵A=#includestdio.h#define N 5main() int i,j,k,aNN; k=2; for(i=0;iN;i+) for(j=0;jN;j+) if(j=i) aij=1; else aij=k+; for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); 六、设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#include”stdio.h”main() int i; for(i=1002;i1111;i+) if(i%10*1000+i/10%10*100+i/100%10*10+i/1000=i*9)printf(“The number is: 5dn”,i);七、如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数,如407=43+03+73就是一个阿姆斯特朗数。编写程序求1000以内的所有阿姆斯特朗数。#include”stdio.h”main() int i,t,k,a4=0; for(i=2;i=10;t+) at=(i%k)/(k/10);k/=10;if(a0*a0*a0+ a1*a1*a1+ a2*a2*a2+ a3*a3*a3=i) printf(“ %d”,i);1.从键盘任意输入一串字符(不超过500个),统计输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上饶预制化粪池施工方案
- 卸车指挥工设备维护与保养考核试卷及答案
- 中药灸熨剂工三级安全教育(班组级)考核试卷及答案
- 药械科不良安全事件培训课件
- 信息传播策略优化分析报告
- 2025版司法局《涉嫌抢劫罪的法律意见书》(空白模板)
- 精密过滤器施工方案
- 门面装饰工程施工方案
- 咨询公司项目规划方案
- 城市建筑纸浆配送方案设计
- 大学语文(第三版)课件 渔父
- 队列训练齐步的行进与立定
- 人教版小学六年级数学上册单元课后练习题 全册
- 初中九年级英语课件宾语从句 公开课比赛一等奖
- 【放心签】家政服务电子版合同范本(仅供参考)正规范本(通用版)
- 景区不锈钢浮雕施工方案
- 造价咨询部工作手册
- 立法学 第五版 课件 第1-8章 绪论-立法准备
- 湖北省行政区划代码
- 数字电路逻辑设计(第3版)PPT全套完整教学课件
- FREE高考英语核心词汇1783
评论
0/150
提交评论