《C程序设计》期末复习练习题及参考答案(5).doc_第1页
《C程序设计》期末复习练习题及参考答案(5).doc_第2页
《C程序设计》期末复习练习题及参考答案(5).doc_第3页
《C程序设计》期末复习练习题及参考答案(5).doc_第4页
《C程序设计》期末复习练习题及参考答案(5).doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计期末复习练习题及参考答案(5)一、单项选择题1. 以下对C程序的描述中正确的是( )。A) C程序总是从第一个定义的函数开始执行。B) C程序总是从最后一个定义的函数开始执行。C) C程序总是从main()函数开始执行。D) C程序中的main()函数必须放在程序的开始部分。2. 以下四项中哪个是不合法的常量( )。A) xab B) x1f C) 0x1234 D) 2.1e33. 以下四项中哪个是不合法的用户标识符( )。A) temp B) my_program C) year2009 D) int4. 在C语言中,表示结束当前循环的语句是( )。A) return语句 B) break语句 C) continue语句 D) end语句5. 以下4个变量定义中,定义p为指针数组的是( )。A) int *p10; 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 + a8. 设有定义int a;判断a是一个偶数的表达式是( )。A) a=2*n B) a/2=0 C) a%2 D) a%2=09. 设有定义 int a; char c; 执行输入语句scanf(%d%c,&a,&c); 若要求a和c得到的值为10和Y,正确的输入方式是( )。A) 10,Y B) 10Y C) 10.Y D) 10:Y10. 设有定义:int a10=6,7,8,9,10;正确解释是( )。A) 将5个初值依次赋给a1至a5 B) 将5个初值依次赋给a0至a4C) 将5个初值依次赋给a6至a10D) 将5个初值依次赋给a5至a911. 设有定义:int i, a10; 以下能正确输入a数组各元的语句是( )。A) i=10; scanf(%d, &ai);B) for(i=0; i=9; i+) scanf(%d, a+i);C) for(i=0; i10; i+) scanf(%d, ai);D) for(i=0; i10; i+) scanf(%d, &a);12. 设整数n的值为十进制5, 以16位二进制存贮该数时,其编码是( )。A) 0000 0000 0000 0101 B) 1000 0000 0000 0101C) 1111 1111 1111 1010 D) 1111 1111 1111 101113. 设有定义char *p=Shanghai,Beijing,Honkong;则结果为j字符的表达式是( )。A) p31 B) *(p1+3) C) *(p3+1) D) *p1+314. 以下文件函数中,用于将数据写到文件的函数是( )。A) fread B) fgets C) fwrite D) fscanf15. 有以下程序#include main0 int y=9; for( ; y0;y-) if(y%3=0) printf(%d,-y); 程序的运行结果是( )。A)741 B)963 C)852 D)87542116. 下面的程序运行后输出结果是( )。#include void main() int i,j,x=0; static int a88; for(i=0;i3;i+) for(j=0;j3;j+) aij=2*i+j; for(i=0;i8;i+) x+=aij; printf(%d,x); A)9 B)不确定值 C)0 D)18 17. 下面程序的输出结果是( )。main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2); A)3 B)4 C)1 D)2 18. 有以下程序#include main() int a =1,2,3,4,y,*p=&a3; -p; y=*p;printf(y=%dn,y); 程序的运行结果是( )。A)y=0 B)y=1 C)y=2 D)y=319. 下面程序的运行结果是( )。#include void main() char str=ABC, *p=str; printf(%dn,*(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 str1100=abcddfefdbd,c=d; ss(str1,c); printf(%sn,str1); 程序运行后的输出结果是( )。A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 21. 有如下程序main() char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i0;j+=2)s=10*s+pij-0; printf(%dn,s); 该程序的输出结果是( )。A)69825 B)63825 C)6385 D)693825 22. 有以下程序#include #include void fun(char *s,int n) char *t; int i,j; for(i=0;in-1;i+) for(j=i+1;jstrlen(sj) t=si; si=sj; sj=t; main() char *ss=bcc,bbcc,xy,aaaacc,aabcc; fun(ss,5); printf(%s,%sn,ss0,ss4); 程序的运行结果是( )。A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 23. 调用函数时,当实参和形参都是为基本数据类型的变量时,它们之间数据传递的过程是( )。 A) 实参将其地址传递给形参,并释放原先占用的存储单元B) 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C) 实参将其值传递给形参,调用结束时形参再将其值回传给实参D) 实参将其值传递给形参,调用结束时形参并不将其值回传给实参24. 以下数组定义中错误的是( )。A)int x3=0,1,1,2,3; B)int x43=1,2,3,1,2,3,1,2,3,1,2,3; C)int x4=1,2,3,1,2,3,1,2,3,1,2,3; D)int x3=1,2,3,4; 25. 设有以下说明语句typedef struct int n; char ch8; PER; 则下面叙述中正确的是( )。A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名26. 以下程序的运行结果是( )。#include 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(;i5; i+) (*q)+; main() int a5 =1,2,3,4,5, i; f(a); for(i=0;i5; i+) printf(%d, ai); 程序运行后的输出结果是( )。 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 main() char p20=a, b, c, d, q=abc, r=abcde; strcat(p, r); strcpy(p+strlen(q), q); printf(%dn,strlen(p); 程序运行后的输出结果是( )。 A)9 B)6 C)11 D)729. 在C语言中,变量的隐含存储类别是 A)auto B)static C)extern D)无存储类别30. 有以下程序#include main() FILE *fp; int i=20, j=30, k, n; fp=fopen(d1.dat,w); fprintf(fp,%dn, i); fprintf(fp,%dn, j); fclose(fp); fp=fopen(d1.dat,r); fscanf(fp,%d%d, &k,&n); printf(%d %dn, 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.2000003. 设n为正整数,写出得到n的十进制个位数和十位数的表达式。n%10n/10%104. 设有命题:b介于a,c之间且a,b,c互不相等,写出对应的逻辑表达式。ab&bc | cb&ba5. C语言中用于结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。6. C语言的数据类型有:a) 基本类型(整型(int)、字符型(char)、单精度浮点型(float)、双精度浮点型(double));b) 枚举类型(enum);c) 构造类型(指针类型(*),数组 ,结构体类型(struct)、共用体类型(union))d) 空类型(void)。7. 数组是表示 类型 相同的数据,而结构体则是若干类型不同数据项的集合。8. C 语言程序可以由一个或多个源程序文件组成;每个文件可包含若干函数 但是,每个C程序必须有且仅有一个是名字为main的函数。9. 如果一个函数只能被本文件中其它函数所调用,它称为内部函数,在定义这类函数时,在函数名和函数类型前面需要加关键字 static 。10. 若有定义:int a34=1,2,0,4,6,8,10;,则初始化后a12得到的初值是 0 ,*(a2+1)的值是 6 。三、程序运行结果分析题(1)程序,表示空格#include main()int i,j;for ( i=1; i=3; i+ )for ( j=0; j3-i; j+ )putchar( );for ( j=0; ji; j+ )printf( %-2d, i );printf( n );输出:?122333(2)程序#include 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 StudentDel StudentQuit(3)程序#include main()int m,n,s=0,i;scanf( %d%d, &m, &n );for ( i=m; i=n; i+ )if ( in )printf( %d+, i );elseprintf( %d=, i );s += i;printf( %dn, s );输入:7 10输出:? 7+8+9+10=34(4)程序#include 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; i6; i+ )scanf( %f, &sc );gr = grade( sc );putchar( gr );输入:50 60 70 80 90 100输出:?EDCBAA(5)程序#include #define N 10main()int aN, i;float ave=0,pass=0,fine=0;for ( i=0; iN; i+ )scanf( %d, &ai );for ( i=0; i= 60 )pass+;if ( ai = 90 )fine+;ave /= N;pass = pass/N*100;fine = fine/N*100;printf( Ave=%4.1fnPass=%2.0f%nFine=%2.0f%n,ave,pass,fine );输入:55 60 65 70 75 80 85 90 95 100输出:?Ave=77.5Pass=90%Fine=30%(6)程序#include void shift( int a, int n, int s, int b )int i;for ( i=0; in; i+ )bi = a(i+s)%n;main()int a6, b6, i;for ( i=0; i6; i+ )scanf( %d, &ai );shift( a, 6, 3, b );for ( i=0; i6; i+ )printf( %d , bi );输入:11 22 33 44 55 66 输出:?44 55 66 11 22 33(7)程序#include int max( int a, int n )int x, i;x = a0;for ( i=1; in; i+ )if ( x ai )x = ai;return x;main()int m65, i, j, x;for ( i=0; i6; i+ )for ( j=0; j5; j+ )scanf( %d, &mij );for ( i=0; i6; i+ )x = max( mi, 5 );printf( %d , x );输入:11 19 18 15 1628 20 21 22 2431 33 35 37 3660 60 66 66 6055 54 53 52 5140 41 42 43 44输出:?19 28 37 66 55 44(8)程序#include 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-; pq; p+,q- )if ( *p != *q )return 0;return 1;main()char a80, b80;gets( a );puts( a );getupper( a, b );puts( b );if ( issym(b) )printf( Yesn );elseprintf( Non );输入:abcA123B#$%C+-=B(A)输出:?abcA123B#$%C+-=B(A)ABCBAYes(9)程序#include struct student /* 学生信息 */int num; /* 学号 */char name20; /* 姓名 */int score; /* 成绩 */int no;void sca_stu( struct student stu, int n )int i;for ( i=0; in; i+ )scanf( %d%s%d, &stui.num, , &stui.score );void prt_stu( struct student stu, int n )int i;for ( i=0; in; i+ )printf( %d: %d %s %dn, stui.no, stui.num, , stui.score );void sort_stu( struct student stu, int n )int i,j;struct student t;for ( i=0; in-1; i+ )for ( j=0; jn-1-i; j+ )if ( stuj.score stuj+1.score )t = stuj;stuj = stuj+1;stuj+1 = t;stu0.no = 1;for ( i=1; in; i+ )if ( stui.score = stui-1.score )stui.no = stui-1.no;elsestui.no = i+1;main()struct student s

温馨提示

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

评论

0/150

提交评论