c语言试题及答案,推荐文档_第1页
c语言试题及答案,推荐文档_第2页
c语言试题及答案,推荐文档_第3页
c语言试题及答案,推荐文档_第4页
c语言试题及答案,推荐文档_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、C语言课程综合复习资料 第21页 单选题 1. 在 C 语言中,字符型数据在内存中的存储形式是 A )原码 B )补码 C )反码D) ASCII 码 2. 在C语言中,十进制数 47可等价地表示为 A) 2f B) 02f C) 57D) 057 3. 设有定义: int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 , 中国石油大学 ,*p=str; 4. 设有定义语句: char str20=,Beijing 则 printf(%dn,strlen(p+20); A) 10B ) 6 C ) 0 5. 已定义以下函数 : fun(int

2、*p) return *p; 该函数的返回值是 A)不确定的值B C)形参p中存放的值 6. C 语言中 , 函数返回值的类型是由 A) return 语句中的表达式类型决定 B) 调用函数的主调函数类型决定 C) 调用函数时的临时类型决定 D) 定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) 输出结果是 D ) 20 )形参 p 所指存储单元中的值 D )形参 p 的地址值 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是 B ) k=fun( 10 , 12.5 ); D ) void fun( 10

3、 , 12.5 ) l , l , o,! ; A ) fun( int y , double m ) C) fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b= H, e, B) char b10; b=Hello ! C) char b10= Hello ! D) char *str=Hello! 9. 若有以下定义: char s20= programming ,*ps=s ; 则不能代表字符 g 的表达式是 A) ps+3 B )s3 C ) ps3 )ps+=3,* 10. 当对两个字符串进行比较时,应该使用的函数是 11. 12. 13. A)

4、 strcat B ) strcmp C) strcpy ) strlen 若 i 为整型变量,则以下循环的次数是 for(i=2;i=0;)printf( A)无限次 %d”,i-); B) 0 次 C ) 1 次 D 以下关于数组的描述正确的是 A) B) C) D) 数组大小固定 数组大小可变 数组大小固定 数组大小可变 , 但是可以有不同类型的数组元素 , 但是所有数组元素的类型必须相同 , 所有元素的类型必须相同 , 可以有不同类型的数组元素 以下能正确定义数组并正确赋初值的语句是 )int N=5,bNN; int a12=1,3; 14. )int c2= 1,2,3,4; D)

5、 int d32=1,2,34; 设有定义 int a =1,5,7,9,11,13, *p=a+3; 则 *(p-2) , *(a+4) 的值是 A)5 11 B )1 9 C)5 9 D 有错误 15. A)b=“abcd” ; B ) *b=“abcd”;C ) p= “ abcd” D) p=“abcd 已知 char b5,*p=b; ,则正确的赋值语句是 16. 用数组名作为函数调用时的实参,则实际传递给形参的是 A)数组的第一个元素值 B )数组中全部元素值 C)数组的首地址 D )数组的元素个数 17. 以下叙述中不正确的是 A)在不同的函数中可以使用相同名字的变量 B)函数中

6、的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效 18. 当对两个字符串进行比较时,应该使用的函数是 A) strcat B ) strcmp C ) strcpyD ) strIen 19. 有如下定义: Iong m ; char c ; fIoat x ; doubIe y ;则表达式 c+m*x/y 的值的 类型是 A) Iong B ) char C ) fIoat D) doubIe 20. 假设已定义 char c8= test ; int i ; 则下面的输出函数调用中错误的是 A) printf(%

7、s,c) ;B ) for(i=0 ; i8 ; i+) printf(%c,ci) ; C) puts(c) D ) for(i=0 ; i8 ; i+) puts(ci) ; 21. 若有以下定义 : char s20= programming , *ps=s ; 则不能代表字符 g 的表达式是 A) ps+3 B ) s3C ) ps3 D) ps+=3,*ps A) char b= ,H,,,e, B) char b10 ; b=HeIIo ! ; C) char b10= HeIIo! ; D) char *str=HeIIo! ; 23. 有以下函数定义: I 0; 22. 以下选

8、项中不能正确赋值的是 void fun( int n , double x ) 若以下选项中的变量都已正确定义并赋值, 则对函数 fun 的正确调用语句是 A ) fun( int y , doubIe m ) C) fun( 10 , 12.5 ) ; B ) k=fun( 10 , 12.5 ) D ) void fun( 10 , 12.5 ) 24从变量的作用域来分,可分为全局变量和局部变量,形参是 A)局部变量B )全局变量C ) 静态变量D ) 动态变量 二、读程序,写出程序的执行结果 1. #incIude void main() int x=1,2,3; int s,i,*p=

9、x; s=1; for(i=0;i3;i+) s*=*(p+i); printf( %dn”,s); 答案 6 2 #include char fun(char *s) if( *s =a return *s; void main() char a20=Welcome,*p,ch; for(p=a;*p!= 0 ;p+) ch=fun(p); putchar(ch); 答案 WELCOME 3 #include void main() int x=26587,x1,r,sum=0; x1=x; while(x0) r=x%10; sum+=r; x/=10; printf( Sum of th

10、e digits in %d is %d, x1,sum); 答案 Sum of the digits in 26587 is 28 4 #include int fun ( int x ) int y=1 ; static int z=4; z+=1 ; +y; return ( x+y+z ); void main() int i ; for(i=1;i=3;i+) printf(%3d,fun(i); 8 10 12 5 #include void main() int x=3,y=4; int j; for(j=1 ; y0 ; y - ) j=j*x; printf( “ j=%dn

11、 ” ,j); 运行结果: j=81 6 #include void main() int x,y; for(y=1,x=1; y=8) break; if(x%2=1) x+=5; continue ; x-=3; printf(x=%d, y=%dn,x,y); 运行结果 : x=8,y=4 7 #include void main() char x=language; char *ptr=x; while(*ptr) printf(%cn,*ptr-32); ptr+; 运行结果: L A N G U A G E 8. #include void main() int x=5,6,7;

12、int s=1,i,*p=x; for(i=0;i3;i+) s*=*(p+i); printf(“%dn” ,s); 运行结果: 210 9 #include int fun(int x) return(x0 ? x : -x); void main() int a=12; printf(“ %d, %dn ” ,a,fun(a) ; 运行结果: 12,12 10 #include void ex( ) static int x=3 ; -x ; printf( “%d”,x) ; void main ( ) ex( ); ex( ); 运行结果: 21 11. #include void

13、main() int i=0,a=0; while( i20 ) for(;) if(i%10)= =0) break; else i- -; i+=11; a+=i; printf(%dn,a); 32 12#include void main() int a34=1,2,3,4,9,7,10,6,-1,8,-5,5; int i,j,row=0,colum=0,max; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%d,max,row,colum); m

14、ax=10 ,row=1,colum=2 13. #include int f(int b, int m,int n) int i,s=0; for(i=m;in;i+=2) s+=bi ; return s; void main() int x, a=1,2,3,4,5,6,7,8,9,10; x=f(a,3,8); printf(%dn,x); 18 14 #include void swap(int b) int *p,*p1,*p2 ; p1= int fun(int *a) b+=*a; return(b); void main() int a=2, b=2; b+=fun( pri

15、ntf( “%dn” ,b); 7 16. #include void main() int a10,*p,*s,i; for(i=0;i10;i+)scanf(%d ”,a+i); for(p=a,s=a;p-a*s)s=p; printf( “ max=%d,index=%d n”,*s, s-a); 简述上列程序完成的功能: 查找数组中最大值并记录元素下标 17 #include void main() int x,y; for(y=1,x=1; y=8) break; if(x%2=1) x+=5; continue ; x-=3; printf( “ x=%d, y=%dn ” ,x

16、 ,y); 运行结果: x=8,y=4 18 #include #define N 3 void zz(int xNN) int i,j,t; for(i=0;iN;i+) for(j=0;ji;j+) t=xij; xij=xji; xji=t; void main() int strNN=1,2,3,4,5,6,7,8,9, i,j; zz(str) ; for(i=0;iN;i+) for(j=0;jN ;j+) printf(“ %3d” ,strij) ; printf(n) ; 运行结果: 1 4 7 2 5 8 3 6 9 19 #include void main ( ) ch

17、ar a20= abcXYZ, c ; int i, j; j= strlen(a)-1 ; for (i=0; ji; i+, j-) c=*(a+i); *(a+i)=*(a+j); *(a+j)=c; puts(a); 运行结果: ZXYcba 20 #include int a=100,b=200; void f( ) printf( “ %d,%d n” ,a,b); a=1;b=2; void main() int a=5,b=7 ; f( ); printf( “ %d,%d n”, a,b) ; 运行结果: 5,7 21 #include int d=1 ; int fun(i

18、nt p) static int d=3 ; d+=p; printf(%3d , d) ; return(d) ; void mai n() printf(%3dn , fun(2+fun(d); 运行结果:5,12,12 22. #include void mai n() char x=123456789,*p=x; int i=0; while(*p) if(i%2=0) *p=* p+; i+; puts(x); 运行结果:*2*4*6*8* 三、编程题 1.编程输入实数 x,计算下面函数的值,并输出 y值。 x x 10 程序结果:#i nclude void mai n() int

19、 x,y; scanf( “ % if(x=1 else y=x/5; printf(“ x=%d,y=%n”d ,x,y); 2编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字 符的个数,并输出统计结果。 程序结果: #include #include void main() /* 主函数 */ char c; /* 定义变量 */ int m=0,n=0,a=0,b=0; printf( 请输入任意字符串 .n); /* 输入提示部分 ,提示输入 */ while(c=getchar()!=n)/*循环语句,将由键盘输入的非n字符赋值给c*/ if(c=65 el

20、se /* 统计其他字符的个数 */ b=b+1; printf(%d%d%d%d,m,a,n,b); /* 输出最后统计结果 */ getch();/* 输出结果后屏幕停留 */ 3. 编写打印如下图形的程序 ( 必须用循环语句实现 ) 程序结果: #include main( ) int n,i,j; printf( “n=%dn ”); scanf(“ %d ”, for(i=0;in;i+) for(j=0;jn-1-i;j+) Printf( “ ”); for(j=0;ji+1;j+) Printf( “* ”); printf( “n”); 4. 编写程序,从键盘上任意输入 20

21、 个整数,存入一个数组中,然后输出这些数中最大数 及其下标以及最小数及其下标 程序结果: #include void main( ) int a20,i,max,min,num1,num2; for(i=0;i20;i+) printf( “input the number%d: ”,i); scanf(“ %d ”, printf( “n ”); for(i=0;i20;i+) If(ai= a0) min=ai; Num1=i; Else max=ai; num2=i; printf( “min=%d,num1=%dn ”,min,num1); printf( “max=%d,num2=%

22、dn ”,max,num2); 5. 编程打印下列的杨辉三角形。 (设 8 行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 程序结果: #include #define N 11 void main() int i,j,aNN; /* for(i=1;iN;i+) ai1=1; /* aii=1;/* for(i=3;iN;i+)/* for(j=2;j=i-1;j+) aij=ai-1j-1+ai-1j; for(i=1;iN;i+) /* for(j=1;j=i;j+) printf(“%6d” ,aij); 数组为 11 行 11 列, 0行

23、0列不用 */ 使第 1 列元素的值为 1*/ 使对角线元素的值为 1*/ 从第 3 行开始处理 */ 输出数组各元素的值 */ printf(“n ” ); printf( “ n ” ); x 6求分段函数的值Y 1 e xX0 1X0 ln x 2X0 程序结果: #include #inclde main() double x ,y; scanf( “%lf ”, if(x0) y=log(x*x); else if(x=0) y=1; else y=1+exp(x); printf( “Y=%lf ” ,y); 7编程打印以下图形 (要求用循环控制语句实现) for(i=1;i=6;

24、i+) for(j=1;j=6-i;j+) printf( ); for(j=1;j=i;j+) printf( printf(n); : C语言课程综合复习资料答案 一、单选题: 1D 2D 3A 4A 5D 6B 7C 8B 9A 10B 11B 12C 13D 14A 15C 16C 17D 18B 19D 20D 21A 22B 23C 24A 二、读程序写出程序执行结果 1、6 2、WELCOME 3、Sum of the digits in 26587 is 28 4、8 10 12 5、j=81 6、x=8,y=4 7、L A N G U A G E 8、 2109 、12,12

25、 10、 21 11、 32 12 、 max=10,row=1,colum=2 13、 1814、 5,9 15、7 a n盘甘来/r如rhm-P/古*和二冷士丄 16、查找数组中最大值并记录元素下标 17、 x=8,y=4 18、 1 4 7 19 、 ZYXcba 2 5 8 20 、 5, 7 3 6 9 21 、5,12, 12 22 、 *2*4*6*8* 三、编程题 1、#include void main() int x,y; scanf( “ %d” , if(x=1 else y=x/5; printf(“ x=%d,y=%n”d ,x,y); 2. #include #include void main()/* 主函数 */ char c;/* 定义变量 */ int m=0,n=0,a=0,b=0; printf( 请输入任意字符串 .n); /* 输入提示部分 ,提示输入 */ while(c=getchar()!=n)/*循环语句,将由键盘输入的非n字符赋值给

温馨提示

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

评论

0/150

提交评论