《C程序设计》期末复习练习题及参考答案(5).doc
《《C程序设计》期末复习练习题及参考答案(5).doc》由会员分享,可在线阅读,更多相关《《C程序设计》期末复习练习题及参考答案(5).doc(11页珍藏版)》请在咨信网上搜索。
《C次第 方案 》期末复习练习 题及参考答案 (5) 一、单项选择 题 1. 以下对C次第 的描画中精确 的选项是〔 〕。 A) C次第 总是 从第一个定义 的函数开始实行 。 B) C次第 总是 从最后一个定义 的函数开始实行 。 √C) C次第 总是 从main()函数开始实行 。 D) C次第 中的main()函数必须 放在次第 的开始部分。 2. 以下四项中哪个是不合 法的常量〔 〕。 √A) 'xab' B) "x1f" C) 0x1234 D) 2.1e3 3. 以下四项中哪个是不合 法的用户标识符〔 〕。 A) temp B) my_program C) year2020 √D) int 4. 在C语言 中,表示 终了当前循环 的语句是〔 〕。 A) return语句 √B) break语句 C) continue语句 D) end语句 5. 以下4个变量定义 中,定义 p为指针数组的是〔 〕。 √A) int *p[10]; B) int (*p)( ); C) int **p; D) int (*p)[10]; 6. 以下四项中哪个是合理 的函数阐明语句〔 〕。 √A) double func( int a, int b); B) double func( int a, b ); C) double func( a, int b ); D) double func( a, b ); 7. 设有定义 char c;且c表示 一个小写字母,结果为对应大年夜 写字母的表达 式是〔 〕。 A) c - a + A √B) c - 'a' + 'A' C) c - A + a D) c - 'A' + 'a' 8. 设有定义 int a;揣摸 a是一个偶数的表达 式是〔 〕。 A) a==2*n B) a/2==0 C) a%2 √D) a%2==0 9. 设有定义 int a; char c; 实行 输出语句scanf("%d%c",&a,&c); 假设 恳求 a跟 c掉 掉 落 的值为10跟 'Y',精确 的输出办法 是〔 〕。 A) 10,Y √B) 10Y C) 10.Y D) 10:Y 10. 设有定义 :int a[10]={6,7,8,9,10};精确 阐明 是〔 〕。 A) 将5个初值依次赋给a[1]至a[5] √B) 将5个初值依次赋给a[0]至a[4] C) 将5个初值依次赋给a[6]至a[10] D) 将5个初值依次赋给a[5]至a[9] 11. 设有定义 :int i, a[10]; 以下能精确 输出a数组各元的语句是〔 〕。 A) i=10; scanf("%d", &a[i]); √B) for(i=0; i<=9; i++) scanf("%d", a+i); C) for(i=0; i<10; i++) scanf("%d", a[i]); D) for(i=0; i<10; i++) scanf("%d", &a); 12. 设整数n的值为十进制-5, 以16位二进制存贮该数时,其编码是〔 〕。 A) 0000 0000 0000 0101 B) 1000 0000 0000 0101 C) 1111 1111 1111 1010 √D) 1111 1111 1111 1011 13. 设有定义 char *p[]={"Shanghai","Beijing","Honkong"};那么结果为'j'字符的表达 式是〔 〕。 A) p[3][1] √B) *(p[1]+3) C) *(p[3]+1) D) *p[1]+3 14. 以下文件函数中,用于将数据写到文件的函数是〔 〕。 A) fread B) fgets √C) fwrite D) fscanf 15. 有以下次第 #include <stdio.h> main0 { int y=9; for( ; y>0;y--) if(y%3==0) printf("%d",--y); } 次第 的运行 结果是( )。 A)741 B)963 √C)852 D)875421 16. 下面的次第 运行 后输出结果是〔 〕。 #include <stdio.h> void main() { int i,j,x=0; static int a[8][8]; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=2*i+j; for(i=0;i<8;i++) x+=a[i][j]; printf("%d",x); } A)9 B)不判定 值 √C)0 D)18 17. 下面次第 的输出结果是〔 〕。 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));} √A)3 B)4 C)1 D)2 18. 有以下次第 #include <stdio.h> main() { int a[ ]={1,2,3,4},y,*p=&a[3]; --p; y=*p;printf("y=%d\n",y); } 次第 的运行 结果是〔 〕。 A)y=0 B)y=1 C)y=2 √D)y=3 19. 下面次第 的运行 结果是〔 〕。 #include <stdio.h> void main() { char str[]="ABC", *p=str; printf("%d\n",*(p+3)); } A)67 √B)0 C)字符′C′的所在 D)字符′C′ 20. 有以下次第 void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-′a′+′A′; s++; } } main() { char str1[100]="abcddfefdbd",c=′d′; ss(str1,c); printf("%s\n",str1);} 次第 运行 后的输出结果是〔 〕。 A)ABCDDEFEDBD √B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 21. 有如下次第 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>′\0′;j+=2) s=10*s+p[i][j]-′0′; printf("%d\n",s);} 该次第 的输出结果是〔 〕。 A)69825 B)63825 √C)6385 D)693825 22. 有以下次第 #include <stdio.h> #include <string.h> void fun(char *s[],int n) { char *t; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])) { t=s[i]; s[i]=s[j]; s[j]=t; } } main() { char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s\n",ss[0],ss[4]); } 次第 的运行 结果是〔 〕。 √A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 23. 调用 函数时,当实参跟 形参全然 上 为全然 数据典范 的变量时,它们之间数据转达 的过程 是〔 〕。 A) 实参将其所在 转达 给形参,并释放 原本 占用的存储单元 B) 实参将其所在 转达 给形参,调用 终了时形参再将其所在 回传给实参 C) 实参将其值转达 给形参,调用 终了时形参再将其值回传给实参 √D) 实参将其值转达 给形参,调用 终了时形参并不将其值回传给实参 24. 以下数组定义 中差错 的选项是〔 〕。 A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; √C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; 25. 设有以下阐明语句 typedef struct { int n; char ch[8]; } PER; 那么下面表达 中精确 的选项是〔 〕。 A)PER 是构造体变量名 √B)PER是构造体典范 名 C)typedef struct 是构造体典范 D)struct 是构造体典范 名 26. 以下次第 的运行 结果是〔 〕。 #include <stdio.h> void main() { char x[]="123456789",*p=x ; int i=0; while(*p) { if(i%2==0) *p='*'; p++; i++; } puts(x); } A)2*4*6*8* B)**** √C)*2*4*6*8* D) ******** 27. 有以下次第 void f(int *q) {int i=0; for(;i<5; i++) (*q)++; } main() { int a[5] ={1,2,3,4,5}, i; f(a); for(i=0;i<5; i++) printf("%d,", a[i]); } 次第 运行 后的输出结果是〔 〕。 A)2,2,3,4,5, √B)6,2,3,4,5, C)1,2,3,4,5, D) 2,3,4,5,6, 28. 有以下次第 # include <string.h> main() { char p[20]={′a′, ′b′, ′c′, ′d′}, q[]="abc", r[]="abcde"; strcat(p, r); strcpy(p+strlen(q), q); printf("%d\n",strlen(p)); } 次第 运行 后的输出结果是〔 〕。 A)9 √B)6 C)11 D)7 29. 在C语言 中,变量的隐含存储类不是 √A)auto B)static C)extern D)无存储类不 30. 有以下次第 #include <stdio.h> main() { FILE *fp; int i=20, j=30, k, n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n", i); fprintf(fp,"%d\n", j); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d", &k,&n); printf("%d %d\n", k, n); fclose(fp); } 次第 运行 后的输出结果是〔 〕。 √A)20 30 B)20 50 C)30 50 D)30 20 二、填空题 1. 设有定义 :int n=123; float x=95.123; 写出语句 printf("%d,%5d,%-6.2f,%4.1f",n,n,x,x); 的运行 结果。 2. 设有定义 :float x=91.19; 写出表达 式 (int)x 跟 (int)(10*x+0.5)/10.0 的运算结果。 91 91.200000 3. 设n为正整数,写出掉 掉 落 n的十进制个位数跟 十位数的表达 式。 n%10 n/10%10 4. 设有命题:b介于a,c之间且a,b,c互不相当 ,写出对应的逻辑表达 式。 a<b&&b<c || c<b&&b<a 5. C语言 中用 于构造化次第 方案 的三种全然 构造是:次第 构造、选择 构造跟 循环 构造。 6. C语言 的数据典范 有: a) 全然 典范 〔整型(int)、字符型(char)、单精度浮点型(float)、双精度浮点型(double)〕; b) 列举 典范 〔enum〕; c) 构造典范 〔指针典范 〔*〕,数组 ,构造体典范 (struct)、共用体典范 (union)〕 d) 空典范 〔void〕。 7. 数组是表示 典范 一样的数据,而构造体那么是假设 干典范 差异 数据项的聚拢 。 8. C 语言 次第 可以 由一个或多个源次第 文件形成 ;每个文件可包括 假设 干函数 但是 ,每个C次第 必须 有且仅有一个是名字为main的函数。 9. 假设一个函数只能被本文件中不的 函数所调用 ,它称为内部函数,在定义 这类函数时,在函数名跟 函数典范 前面需要 加关键 字 static 。 10. 假设 有定义 :int a[3][4]={{1,2},{0},{4,6,8,10}};,那么初始化后a[1][2]掉 掉 落 的初值是 0 ,*(a[2]+1)的值是 6 。 三、次第 运行 结果分析题 〔1〕次第 ,□表示 空格 #include <stdio.h> main() { int i,j; for ( i=1; i<=3; i++ ) { for ( j=0; j<3-i; j++ ) putchar( '□' ); for ( j=0; j<i; j++ ) printf( "%-2d", i ); printf( "\n" ); } } 输出:? □□1□ □2□2□ 3□3□3□ 〔2〕次第 #include <stdio.h> main() { char cmd; do { cmd = getchar(); switch ( cmd ) { case 'A': puts( "Add Student" ); break; case 'D': puts( "Del Student" ); break; case 'Q': puts( "Quit" ); } } while ( cmd!='Q' ); } 输出:ADQ 输出:? Add Student Del Student Quit 〔3〕次第 #include <stdio.h> main() { int m,n,s=0,i; scanf( "%d%d", &m, &n ); for ( i=m; i<=n; i++ ) { if ( i<n ) printf( "%d+", i ); else printf( "%d=", i ); s += i; } printf( "%d\n", s ); } 输出:7 10 输出:? 7+8+9+10=34 〔4〕次第 #include <stdio.h> char grade( float score ) { if ( score >= 90 ) return 'A'; else if ( score>=80 ) return 'B'; else if ( score>=70 ) return 'C'; else if ( score>=60 ) return 'D'; else return 'E'; } main() { float sc;char gr;int i; for ( i=0; i<6; i++ ) { scanf( "%f", &sc ); gr = grade( sc ); putchar( gr ); } } 输出:50 60 70 80 90 100 输出:? EDCBAA 〔5〕次第 #include <stdio.h> #define N 10 main() { int a[N], i; float ave=0,pass=0,fine=0; for ( i=0; i<N; i++ ) scanf( "%d", &a[i] ); for ( i=0; i<N; i++ ) { ave += a[i]; if ( a[i] >= 60 ) pass++; if ( a[i] >= 90 ) fine++; } ave /= N; pass = pass/N*100; fine = fine/N*100; printf( "Ave=%4.1f\nPass=%2.0f%%\nFine=%2.0f%%\n",ave,pass,fine ); } 输出:55 60 65 70 75 80 85 90 95 100 输出:? Ave=77.5 Pass=90% Fine=30% 〔6〕次第 #include <stdio.h> void shift( int a[], int n, int s, int b[] ) { int i; for ( i=0; i<n; i++ ) b[i] = a[(i+s)%n]; } main() { int a[6], b[6], i; for ( i=0; i<6; i++ ) scanf( "%d", &a[i] ); shift( a, 6, 3, b ); for ( i=0; i<6; i++ ) printf( "%d ", b[i] ); } 输出:11 22 33 44 55 66 输出:? 44 55 66 11 22 33 〔7〕次第 #include <stdio.h> int max( int a[], int n ) { int x, i; x = a[0]; for ( i=1; i<n; i++ ) if ( x < a[i] ) x = a[i]; return x; } main() { int m[6][5], i, j, x; for ( i=0; i<6; i++ ) for ( j=0; j<5; j++ ) scanf( "%d", &m[i][j] ); for ( i=0; i<6; i++ ) { x = max( m[i], 5 ); printf( "%d ", x ); } } 输出: 11 19 18 15 16 28 20 21 22 24 31 33 35 37 36 60 60 66 66 60 55 54 53 52 51 40 41 42 43 44 输出:? 19 28 37 66 55 44 〔8〕次第 #include <stdio.h> void getupper( char *p, char *q ) { for ( ; *p!='\0'; p++ ) if ( *p>='A' && *p<='Z' ) *(q++) = *p; *q = '\0'; } int issym( char *p ) { char *q; for ( q=p; *q!='\0'; q++ ) ; for ( q--; p<q; p++,q-- ) if ( *p != *q ) return 0; return 1; } main() { char a[80], b[80]; gets( a ); puts( a ); getupper( a, b ); puts( b ); if ( issym(b) ) printf( "Yes\n" ); else printf( "No\n" ); } 输出:abcA123B#$%C+-=B([{A}]) 输出:? abcA123B#$%C+-=B([{A}]) ABCBA Yes 〔9〕次第 #include <stdio.h> struct student /* 老师 信息 */ { int num; /* 学号 */ char name[20]; /* 姓名 */ int score; /* 效果 */ int no; }; void sca_stu( struct student stu[], int n ) { int i; for ( i=0; i<n; i++ ) scanf( "%d%s%d", &stu[i].num, stu[i].name, &stu[i].score ); } void prt_stu( struct student stu[], int n ) { int i; for ( i=0; i<n; i++ ) printf( "%d: %d %s %d\n", stu[i].no, stu[i].num, stu[i].name, stu[i].score ); } void sort_stu( struct student stu[], int n ) { int i,j; struct student t; for ( i=0; i<n-1; i++ ) for ( j=0; j<n-1-i; j++ ) if ( stu[j].score < stu[j+1].score ) { t = stu[j]; stu[j] = stu[j+1]; stu[j+1] = t; } stu[0].no = 1; for ( i=1; i<n; i++ ) if ( stu[i].score == stu[i-1].score ) stu[i].no = stu[i-1].no; else stu[i].no = i+1; } main() { struct student stu[10]; int n; scanf( "%d", &n ); sca_stu( stu, n ); sort_stu( stu, n ); prt_stu( stu, n ); } 输出: 3 1001 Zhao 88 1002 Qian 77 1003 Sun 99 输出:? 1: 1003 Sun 99 2: 1001 Zhao 88 3: 1002 Qian 77 四、次第 填空题 阅读 次第 ,在标有下划线的空白 处填入适当 的表达 式或语句,使次第 残缺并符合 题目 恳求 。 1.以下次第 从键盘上输出整数m跟 n,输出m到n之间〔包括 m跟 n〕的所有 “完数〞,完数是指:所有 因子之跟 等于 本身的整数,如28=1+2+4+7+14,因此28是一个完数。 如输出:1 28 那么输出:6 28 #include <stdio.h> main( ) { int m,n,i,j,s; scanf( "%d%d", &m, &n ); for ( i=m; i<=n ; i++ ) { s = 0; for ( j=1; j<i; j++ ) if ( i%j==0 ) s += j; if ( s==i ) printf( "%d ", i ); } } 2.以下次第 从键盘上10个整数,输出其中 只出现一次的数,函数count的功能 是统计并前去 元素个数为n的数组a中数据x出现的次数。 如输出:12 36 72 36 87 99 87 87 12 35 那么输出:72 99 35 #include <stdio.h> int count( int a[ ], int n, int x ) { int i,ct=0; for ( i=0; i<n; i++ ) if (a[i]==x ) ct++; return ct ; } main() { int a[10],i; for ( i=0; i<10; i++ ) scanf( "%d", &a[i] ); for ( i=0; i<10; i++ ) if ( count(a,10,a[i] ) == 1 )/*调用 函数揣摸 是否 1次*/ printf( "%d ", a[i] ); printf( "\n" ); } 精选可编辑- 配套讲稿:
如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。
关于本文