《C程序设计》期末复习练习题及参考答案(2).doc
《《C程序设计》期末复习练习题及参考答案(2).doc》由会员分享,可在线阅读,更多相关《《C程序设计》期末复习练习题及参考答案(2).doc(11页珍藏版)》请在咨信网上搜索。
《C次序 方案 》期末复习练习 题及参考答案 (2) 一、单项选择 题 1.揣摸 字符串s1与字符串s2相当 ,应当应用 : 。 A) if (s1 = s2) B) if (strcmp(s1, s2)) √C) if (!strcmp(s1, s2)) D) if (strcmp(s1, s2) = 0) 2.二维数组a有m行n列,那么在a[i][j]之前的元素个数为〔 〕。 A. j*n+i √B. i*n+j C. i*n+j-1 D. i*n+j+1 3.以下次序 实行 后的输出结果是〔 〕。 #include<stdio.h> #include<string.h> main() { printf("%d\n", strlen("IBM\n012\t\"\\\0"));} √A) 10 B) 11 C) 16 D) 12 4.有如下次序 片段 : int i = 0; while(i++ <= 2); printf("%d", i); 那么精确 的实行 结果是: A) 2 B) 3 √C) 4 D) 次序 陷入 去世 循环 5. 下面哪个定义 是合理 的 。 A) char a[8] = "language"; B) int a[5] = {0,1,2,3,4,5}; √C) char *a = "string"; D) int a[2][] = {0,1,2,3,4,5,6}; 6. 一个C语言 的语句必须 应用 的终了标志 是〔 〕。 A) , B) 。 √C) ; D) : 7. 以下表达 精确 的选项是〔 〕。 A)C次序 中的注释只能出现在次序 的开始位置跟 语句的后面。 B)C次序 抄写 格式 严峻,恳求 一行内只能写一个语句。 √C)C次序 抄写 格式 自由,一个语句可以 写在多行上。 D)用C语言 编写的次序 只能放在一个源次序 文 件中。 8. 以下选项中不克不迭 作为合理 常量的是〔 〕。 A) 1.234e04 B) 1.234e+4 √ 9. 以下选项中合理 的用户标识符是〔 〕。 A) int B) #max √C) _3int D) A.max 10. 设x跟 y均是int型变量,那么实行 以下语句后的输出为〔 〕。 x=15;y=5;printf("%d\n",x%=(y%2)); √A) 0 B) 1 C) 6 D) 12 11. 设x,y跟 z根本上 int型变量,且x=3,y=4,z=5,那么以下表达 式中,值为0的表达 式是〔 〕。 A) x&&y √B) !(x<y&&!z || 1) C) x<=y D) x||++y&&y-z 12. 以下次序 运行 结果是〔 〕。 #include <stdio.h> int fun(int i, int j) { i++, j++; return i + j; } int main() { int a = 1, b = 2, c = 3; c += fun(a,b) + a; printf("%d,%d,%d\n",a, b, c ); return 0; } √A) 1,2,9 B) 2,3,10 C) 1,2,10 D) 2,3,9 13. 有以下次序 ,次序 实行 后的输出结果是〔 〕。 #include <stdio.h> int main() { int a[] = {2, 4, 6, 8, 10}, y = 0, x, *p; p = &a[1]; for(x = 1; x < 3; x++) y+=p[x]; printf("%d\n",y); return 0; } A) 10 B) 11 √C) 14 D) 15 14. 有以下次序 ,以下表达 精确 的选项是〔 〕。 #include <stdio.h> #include <string.h> int main() { char p[] = {'a','b','c'}, q[10] = {'a','b','c'}; printf("%d %d\n",strlen(p),strlen(q)); return 0; } A)在给p跟 q数组赋初值时,系统会自动 添加 字符串终了符,故输出的长度都为3。 √B) 由于 p数组中不 字符串终了符,长度不克不迭 判定 ;但q数组中字符串长度为3。 C) 由于 q数组中不 字符串终了符,长度不克不迭 判定 ;但p数组中字符串长度为3。 D) 由于 p跟 q数组中都不 字符串终了符,故长度都不判定 。 15. 以下可用于C语言 用户标识符的一组是〔 〕。 A)void, define, WORD √B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof 16. 以下选项中不属于字符常量的是 A)′C′ √B)′′C′′ C)′\xCC′ D) ′\072′ 17. 〔15〕以下定义 语句中精确 的选项是〔 〕。 A)int a=b=0; √B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=00;b=1.1; 18. 当变量c的值不为2、4、6时,值也为"真"的表达 式是〔 〕。 A)(c==2)||(c==4)||(c==6) √B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1) 19. 下面说明不精确 的选项是〔 〕。 A)char a[10]="china"; B)char a[10],*p=a; p="china"; C)char *a;a="china"; √D)char a[10],*p; p=a="china"; 20. 有定义 语句:char s[10];,假设 要从终端给s输出5个字符,差错 的输出语句是〔 〕。 A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); √D)scanf("%s",s[1]); 21. 有以下次序 ,次序 实行 后的输出结果是〔 〕。 #include<stdio.h> void main() { unsigned short a = 65535; short b; b = a; printf("%d\n",b); } A) 65535 B) 0 √ C) -1 D) 1 22. 在C语言 中,以下表达 不精确 的选项是〔 〕。 √A) 在C次序 中,不论是整数仍然 实数,都能被精确无误的表示 B) 在C次序 中,变量名代表存储器中的一个位置 C) 静态变量的生涯 期与全体 次序 的生涯 期一样 D) C语言 中变量必须 先定义 后引用 23. 以下表达 中差错 的选项是〔 〕。 A)在次序 中凡是以"#"开始的语句行根本上 预处理 命令 行 B)预处理 命令 行的最后不克不迭 以分号表示 终了 C)#define MAX 是合理 的宏定义 命令 行 √D)C次序 对预处理 命令 行的处理 是在次序 实行 的过程 中停顿的 24. 设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 那么下面表达 中精确 的选项是〔 〕。 A)PER 是结构体变量名 √B)PER是结构体典范 名 C)typedef struct 是结构体典范 D)struct 是结构体典范 名 25. 以下表达 中差错 的选项是〔 〕。 A)gets函数用于从终端读入字符串 √B)getchar函数用于从磁盘文件读入字符 C)fputs函数用于把字符串输出到文件 D)fwrite函数用于以二进制方法 输出数据到文件 26. 有以下次序 #include<string.h> main() { char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′}; printf("%d%d\n",strlen(p),strlen(q));} 以下表达 中精确 的选项是〔 〕。 A) 在给p跟 q数组置初值时,系统会自动 添加 字符串终了符,故输出的长度都为3 √B) 由于 p数组中不 字符串终了符,长度不克不迭 判定 ,但q数组中字符串长度为3 C) 由于 q数组中不 字符串终了符,长度不克不迭 判定 ,但p数组中字符串长度为3 D) 由于 p跟 q数组中都不 字符串终了符,故长度都不克不迭 判定 27. 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 实行 (m=a>b)&&(n=c>d)后,n的值是〔 〕。 A)1 √B)2 C)3 D)4 28. 设有如下定义 : int x=10,y=3,z; 那么语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是〔 〕。 A) 0 B) 1 √C) 3 D) 4 29. 下面的次序 #include<stdio.h> void main() { char ch; scanf("%3c", &ch); printf("%c", ch); } 假设从键盘上输出 abc回车 那么次序 的运行 结果是〔 〕。 √A) a B) b C) c D) 次序 语法出错 30. 以下次序 的运行 结果是〔 〕。 #include <stdio.h> void main() { int x[]={1,2,3}; int s,i,*p=x; s=1; for(i=0;i<3;i++)s*=*(p+i); printf("%d\n", s); } A) 7 √B)6 C) 3 D) 8 二、填空题 1、函数add恳求 打算 两个整数之跟 ,并通过形参前去 该值,代码如下: void add(int x, int y, int *sum ) { *sum = x + y; } 2、 次序 方案 中,需要 定义 一个指针变量p,该变量可以 指向一个长度为5的字符型数组,定义 代码如下: char (*p)[5]; 。 3、设整型变量n的值为2,实行 语句“n+=n-=n*n〞后,n的值是 - 4 。 4、共用体跟 结构体的定义 格式 类似,差异 点是 结构体的成员占据 各自差异 的空间,而共用体的各成员放到一致 存储空间。 。 5、 设变量max、a、b已经正判定 义,假设 恳求 a跟 b的最大年夜 值,并赋值给max,代码为:max = a > b ? a:b ;。 6、以下次序 的输出结果是 7,1 。 int ast(int x,int y,int * cp,int * dp) { *cp=x+y; *dp=x-y; } main() { int a=4,b=3,c,d; ast(a,b,&c,&d); printf("%d,%d/n",c,d); } 7、有如下输出语句:scanf(“a=%d,b=%d,c=%d〞,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输出数据的精确 方法 应是 a=1,b=3,c=2 。 8、 一个共用体典范 的变量,其所占内存的大小 是:由占据 内存空间最大年夜 的成员决定 。, 9、 设有定义 :int x=12,n=5; 那么表达 式 x%=(n%2) 的值为 0 。 10、设有float x;写出掉 掉 落 x小数部分的表达 式 x-(int)x 。 〔假设 x为12.345,那么表达 式的结果为0.345〕 三、次序 运行 结果分析题 1. #include <stdio.h> main( ) { int a = 5, b = 4, x, y; x = 2 * a++ ; printf("a=%d, x=%d\n", a, x); y = --b * 2 ; printf("b=%d, y=%d\n", b, y); } 那么次序 运行 结果是: a=6, x=10 b=3, y=6 2. #include<stdio.h> void fun1(int x) { x=20;} void fun2(int b[4]) { int j; for(j=0; j<4; j++) { b[j]=j; } } main() { int x = 10; int a[4] = {1,2,3,4}, k; fun1(x); printf("x = %d\n", x); fun2(a); for(k=0; k<4; k++) { printf("%d\n", a[k]); } } 运行 结果是: x = 10 0 1 2 3 3. #include <stdio.h> main() { int x, y; scanf("%2d%*4s%2d", &x, &y); printf("%d", y-x); } 次序 运行 时输出:123456789↙ 那么次序 运行 结果是:66 4. #include <stdio.h> struct date { int year; int month; int day; }; void func(struct date p) { p.year = 2000; p.month = 5; p.day = 22; } main() { struct date d; d.year = 1999; d.month = 4; d.day = 23; printf("%d,%d,%d\n", d.year, d.month, d.day); func(d); printf("%d,%d,%d\n", d.year, d.month, d.day); } 次序 运行 结果为: 1999,4,23 1999,4,23 5. #include<stdio.h> void Fun(int *y) { printf("*y = %d\n", *y); *y += 20; printf("*y = %d\n", *y); } main() { int x = 10; printf("x = %d\n", x); Fun(&x); printf("x = %d\n", x); } 次序 运行 结果是: x = 10 *y = 10 *y = 30 x = 30 6. 当运行 以下次序 时,运行 结果是____4332____。 #include <stdio.h> int main() { int s[12] = {1,2,3,4,4,3,2,1,1,1,2,3}, c[5] = {0}, i; for(i = 0; i < 12; i++) c[ s[i] ] ++; for(i = 1; i < 5; i++) printf("%d",c[i]); printf("\n"); return 0; } 7.当运行 以下次序 时,运行 结果是___________ ___。 #include <stdio.h> #define N 10 float fun(float *array, int n); float max, min; int main() { float score[N]={90,80,70.5,98,60.5,95,53,85,75,90}; printf("max = %6.2f\nmin = %6.2f\naverage = %6.2f\n",max,min,fun(score,N)); return 0; } float fun(float *array, int n) { int i; float sum=array[0]; max=min=array[0]; for( i=1;i<n;i++) { if(array[i]>max)max = array[i]; else if(array[i]<min) min = array[i]; sum = sum + array[i]; } return sum/n; } 8.当运行 以下次序 时,从键盘输出如下内容并回车:95 56 75 88 85 ,那么下面次序 的运行 结果是_____________________〔输出共2行〕。 #include <stdio.h> void input( float *a, int n ) { float *pData, *pEnd; pData = a, pEnd = &a[n-1]; while( pData <= pEnd) scanf( "%f", pData++ ); } float sum( float *a, int n ) { float s = 0; float *pData, *pEnd; pData = a, pEnd = &a[n-1]; while( pData <= pEnd) s += *pData++; return s; } int mink( float *a, int n ) { float *pData, *pEnd, *pKData; pData = a, pEnd = &a[n-1], pKData = a; while( ++pData <= pEnd) {if ( *pData < *pKData ) pKData = pData; } return pKData - a; } main() { float a[5]; int k; input( a, 5 ); printf( "Sum=%6.2f\n", sum(a,5) ); k = mink( a, 5 ); printf( "Min:a[%d]=%6.2f\n", k, a[k] ); } Sum =399.00 Min:a[1] = 56.00 9.有以下次序 #include <stdio.h> main() { FILE *fp; int a[10]={1,2,3},i,n; fp=fopen("d1.dat","w"); for(i=0;i<3;i++) fprintf(fp,"%d",a[i]); fprintf(fp,"\n"); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d",&n); fclose(fp); printf("%d\n",n); } 次序 的运行 结果是 123 。 四、次序 填空题 阅读 次序 ,在标有下划线的空白 处填入适当 的表达 式或语句,使次序 残缺并符合 题目 恳求 。 1. 从键盘任意 输出一个年号,揣摸 它是否 是闰年。假设 是闰年,输出“Yes〞,否那么输出“No〞。已经清楚 符合 以下条件 之一者是闰年: 能被4整除,但不克不迭 被100整除。 能被400整除。 #include <stdio.h> main() { int year, flag; printf("Enter year:"); scanf("%d", &year ); if ( year%4==0&&year%100!=0 || year%400==0 ) { flag = 1; } else { flag = 0; } if ( flag ) { printf("Yes\n"); } else { printf("No\n"); } } 2. 编程揣摸 m是否 为素数。 #include <stdio.h> #include <math.h> int IsPrime(int m); main() { int n, flag; printf("Input n:"); scanf("%d", &n); flag = IsPrime(n); if (flag) { printf("它是素数\n"); } else { printf("它不是素数\n"); } } int IsPrime(int m) { int i, k; if (m <= 1) { return 0; } for (i=2; i<=sqrt(m); i++) { k = m % i; if (k == 0) { return 0; } } return 1 ; } 3.以下次序 在数组a中同时查寻 最大年夜 元素下标跟 最小元素下标,分不存放在main函数的变量max跟 min中,请补齐呼应 代码使次序 可以 精确 运行 。 #include <stdio.h> void find(int *a, int n, int *max, int *min) { int i; *max = *min = 0; for(i = 1; i < n; i++) { if( a[i] > a[*max]) ____ *max=i ___; else if(a[i] < a[*min]) ____ *min=i _____; } } int main() { int a[] = {5,9,7,8,2,6,3}; int max,min; find(_____a,7,&max,&min ______); printf("max = a[%d],min = a[%d]\n",max,min); return 0; } 精选可编辑- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 程序设计 期末 复习 练习题 参考答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文