石大在线C语言综合复习题

上传人:20****08 文档编号:68417667 上传时间:2022-04-02 格式:DOC 页数:41 大小:161KB
收藏 版权申诉 举报 下载
石大在线C语言综合复习题_第1页
第1页 / 共41页
石大在线C语言综合复习题_第2页
第2页 / 共41页
石大在线C语言综合复习题_第3页
第3页 / 共41页
资源描述:

《石大在线C语言综合复习题》由会员分享,可在线阅读,更多相关《石大在线C语言综合复习题(41页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上C语言程序设计综合练习题要求掌握的章节:第1章、第3章第8章、第10章(前4节)、第11章(前6节)重点章节:第3章第8章、第10章(前4节)难点章节:第8章、第10章(前4节)考试题型:选择题(填空题)(20)读程序题(40)编程序题(40)第1章 C语言概述一、选择题1能将高级语言编写的源程序转换为目标程序的软件是 A)汇编程序 B)编辑程序 C)解释程序 D)编译程序2在一个C程序中 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置3C语言中用于结构化程序设计的

2、三种基本结构是 A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue4C语言程序的基本单位是A) 函数 B) 过程 C) 子例程 D) 子程序二、填空题1C语言程序总是从main函数开始执行。2C语言是种面向面向过程的程序设计语言,其程序的基本单位是函数。.3C语言中的函数由函数首部、函数体两部分组成。4结构化程序设计中所规定的三种基本控制结构是顺序结构、选择结构和循环结构 。第3章 数据类型、运算符与表达式一、选择题 1下列关于C语言用户标识符的叙述中正确的是 A)用户标识符中可以出现下划线和中划线

3、(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2C语言中基本数据类型有A) 整型、实型、逻辑型 B)整型、字符型、逻辑型 C) 整型、实型、字符型 D)整型、实型、字符型、逻辑型3在计算机中,一个字节所包含二进制位的个数是 A)2 B)4 C)8 D)164用8位无符号二进制数能表示的最大十进制数为 A)127 B)128 C)255 D)2565在计算机系统中,存储一个汉字的国标码所需要的字节数为 A) 1 B) 2 C) 3 D) 46在C语言中

4、,char型数据在内存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码7十六进制数100转换为十进制数为 A)256 B)512 C)1024 D)648十六进制数7A转化成八进制数是 A)123 B)122 C)173 D)1729十进制数32转化成十六进制数是 A)20 B)ff C)10 D)2110与十进制数511等值的十六进制数为 A) 1FF B) 2FF C) 1FE D) 2FE11以下选项中可作为C语言合法整数的是 A)10110B B)0386 C)0Xffa D)x2a212 以下选项中合法的实型常数是 A) 5E2.0 B) E-3 C) .2E0 D)

5、1.3E13依据C语言的语法规则,下列( )是用户定义的合法标识符。 A)int B)INT C)jin#2 D)8f14依据C语言的语法规则,下列合法标识符是 A)Else B)else C)user$2 D)5_examp15以下不正确的字符常量是 A)8 B)xff C)887 D) 16以下不正确的字符常量是 A) 0 B) xgg C) 0 D) a17. 以下选项中不合法的八进制数是A) 01 B) 077 C) 028 D) 0018下列运算符优先级最高的是 A) B) + C) & D) != 19若有说明:char s1=067, s2=1 ; 则变量s1,s2在内存中各占的

6、字节数是。 A)1 1 B)4 1 C)3 1 D)1 220以下不能定义为用户标识符的是A)scanf B)Void C)_3com_ D)inte21 在C语言中,可以作为用户标识符的一组标识符是 A) void define WORD B) as_b3 _224 ElseC) Switch -wer case D) 4b DO SIG22 若有: int x=1,n=5; 则执行语句x%=(n%2)后,x的值为 A) 3 B) 2 C) 1 D) 023设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值是A) 10 B) 9 C) 8 D) 7 24已知: char

7、a=a; int b=0; float c= -1.2; double d=0; 执行语句:c=a+b+c+d; 后,变量c的类型是 A)char B)int C) double D)float 25表示x0或x1的正确的表达式是 A) x=1|x1 | x=1 or x=1 | x0;29已定义c为字符型变量,则下列语句中正确的是A)c=97; B)c=97; C)c=a; D)c=97;30 执行int j,i=1; j=-i+; 后j的值是 A) -1 B) -2 C) 1 D) 2 31以下选项中非法的表达式是A)(a+2)+ B)i=j=0 C)(char)(65+3) D)x+1=

8、x+132已知小写字母的ASCII码为97,对于int a=99, b=b; printf(“%c,%d”, a , b);的结果是 A) 99, b B)c, 98 C)99, 98 D)c, b33以下选项中非法的表达式是 A)0=x100 B)i=j=0 C)(char)(65+3) D)x+1=x+134下列错误的表达式是A)-x+ B)(-x)+ C)x+y D)+x+y35对于int x=12, y=8; printf (“%d%d%d”, !x, x | y, x&y); 输出的结果是 A)0 1 1 B)0 1 0 C)0 0 0 D)1 1 136设a,b,c均为int型变量

9、,且a=3, b=4, c=5,则下面的表达式中,值为0的表达式是 A)a & b B)0 | |1 C)a | | b + c & bc D)! ( ( ab)&!c|1)37 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,C的值是 A) 1.4 B) 1 C) 2.0 D) 238 以下选项中,与k=n+完全等价的表达式是 A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+139 设a=3,b=4,c=5,则逻辑表达式:a | b+c & b=c 的值是 A)1 B)0 C)非0 D)语法错40若x为int型变量,则逗号表达式(x

10、=4*5,x*5),x+25的结果是 A)20 B)45 C)100 D)表达式不合法41若有语句int i=19, j=i%4;printf(%dn, j);则输出结果是A)3 B)-3 C)4.75 D)042设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是 A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;43已知小写字母的ASCII码为97,对于int a=99, b=b; printf(“%c,%d

11、”, a , b);的结果是 A) 99, b B)c, 98 C)99, 98 D)c, b44若有语句int i=19, j=i%4;printf(%dn, j);则输出结果是。 A)3 B)-3 C)4.75 D)045语句: printf(%d,(a=2)&(b=-2); 的输出结果为 a) 无输出 b) 结果不确定 c) 1 d) 246有定义语句:int x, y;,若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是 A)11 12 B)11, 12C)11,12 D)11,1247设a=3,b=4,c=5,则逻

12、辑表达式:a | b+c & b=c 的值是 A)1 B)0 C)非0 D)语法错48已知 char ch=A; 且表达式 ch=(ch=A & ch=Z) ?(ch+32) ::ch的值是( )A) A B)a C) Z D)出错49如下程序段:int x=2005, y=2006;printf(%dn,(x,y);则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2005D)输出值为200650设有如下程序段:int x=2, y=3;printf(%dn,(x,y);则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出

13、项的个数,不能正确输出B)运行时产生出错信息C)输出值为2D)输出值为3二、填空题1C语言中逻辑”真”用1表示 ,逻辑”假”用0表示。2在C语言中,整数可用十进制、八进制和十六进制3种数制表示。3十进制数52转化成八进制数是64。4十六进制数7A转化成八进制数是172。5十进制数47转化成八进制数是57。6在C语言中,101是种特殊的字符常量,它称为字符型常量,其表示的字符为A。7在C语言程序中,整型数可用十进制、八进制和十六 进制3种数制表示。070是个合法的八进制整型数。8字符串 “ab034x79”的长度为5。9十六进制数7A转化成八进制数是172。10语句: printf(%d,(a=

14、-10)&(b=0); 的输出结果为 0 。11若w=1,x=2,y=3,z=4,则条件表达式w x ? w : y z ? y : z 的结果为4。12设a, b, c均为int型变量,且a = 3, b = 4, c = 5,则表达式: a| b + c & bc 的值是1 。13在C语言中,”a” 表示字符串常量,a 表示字符常量。14表达式: a 0x20 A 的值是016若有说明语句,int i= -3,j; 则执行语句j=(+i)+(i+); 后j的值是-4。17已知 int j, i=2; 执行语句 j= -i+ ; 后,j的值是-2。18设int i=1; char c=1;

15、则条件表达式 c= =1 的值是0。19语句: printf(%d,(a=2)&(b=-2); 的输出结果为1 。20有:char c=A; printf(%dn,c+1); 则输出的结果为66。21有:int x= -3;则执行语句:x+=x-=x*x; 后x的值为-2422语句 printf(“%n”); 的输出为% 。23若有说明:char s1=xff, s2=f ; 则变量s1,s2在内存中所占的字节数均为1 。24在C语言中,char型数据在内存中是以字符形式存储,其存储的字节数是1。25设x,y,,z均为int型变量,写出描述”x或y中至少有一个小于z”的表达式是xz|y0 ?

16、p/10 : p%3);34main() int x,y=0; printf(“%cn”, x=99) ; printf(“%dn”, (x+ , +y , x+y) ; c102第5章 选择结构程序设计一、读程序,写出程序执行结果 1void main() int x= - 9, y ; if(x0) y=10 ; else if(x= =0) y=0;else if(xb) if(b0) c=0;else c+;printf(“%dn”,c); -2 4 main() int x=100,a=20,b=10; int v1=5; if(ab) if(b!=15) if(!v1) x=1;

17、else x=10; x=-1; printf(“%d”,x); -15main() int a=4,b=3,c=5,t=0; if (ab) t=a; a=b; b=t; if (a0; k-=3) putchar(*); 输出是 A)* B)* C)* D)无限循环2若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是 A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;3设有int i ,x ; 则循环语句: for(i=0,x=0;i=9&x!=876

18、;i+) scanf(“%d”,&x); A)最多执行10次 B)最多执行9次 C)是无限循环 D)循环体一次也不执行二、读程序,写出程序执行结果 1 main() int n=4 ; while(n- -) printf(%2d,- -n) ; 202main() int i; for (i=0; i3; i+) switch ( i ) case 1: printf(%d , i); case 2: printf(%d , i); default : printf(%d , i); 011223main() int i,m=0,n=0,k=0;for(i=9; i1; i- -) for(

19、j=0;j11-2*i;j+)putchar( );for(j=0;j2*i-1;j+) putchar(9); 用*来代替空格,这样方便看些*99999*9995 main() int a; for(a=1;a0 ; y - - ) j=j*x;printf(“j=%dn”,j);j=77void main() int n= -5 ; while(+n) printf(%2d, +n) ; -3-1 8 main() int x=15;while(x10 & x50) x+;if(x/3)x+;break;else continue; printf(“%dn”,x);179void main

20、() int x,y; for(x=1,y=1; y=10) break; if(x%2=1) x+=5; continue ; x-=3; printf(%d %dn,x,y); 10 610main() int k=4,n=0;for( ; nk ; ) n+;if(n%3!=0) continue;k-; printf(%d,%dn,k,n);3 311void main() int i=1; while (i10) if(+i%5!=3) continue ; else printf(%d ,i);38 12 main() int k=0,m=0; int i,j; for(i=0;i

21、2;i+) for(j=0;j0);printf(“%dn”, t);6414void main() int n1,n2; n2=5678; while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 8765第7章 数组一、选择题1在执行int a 3=1,2,3,4; 语句后a12的值是 A、B、C、D、2已知:int a 3=1,2,3,4,5,6,7,8,9,0; 则数组a的第一维的大小是 A)2 B)3 C) 4 D)无法确定;3 以下能正确定义数组并正确赋初值的语句是 A)int N=5,bNN; B)int a12=1,3; C)int c2=

22、 1,2,3,4; D)int d32=1,2,34;4以下不能正确定义二维数组的选项是 A)int a22=1,2; B)int a2=1,2,3,4;C)int a22=1,2,3; D)int a2=1,2,3,4;5有语句:char s110,s210=books; 则能将字符串books赋给数组s1的正确语句是 A)s1=books ; B)strcpy(s1,s2); C)s1=s2; D)strcpy(s2,s1);6C语言标准函数 strcpy(s3,strcat(s1,s2) 的功能是 A)将字符串s1复制到s2中,再连接到s3之后 B)将字符串s2连接到s1之后,再将s1复

23、制到s3中C)将字符串s2复制到s1中,再将s1连接到s3之后D)将字符串s2连接到s1之后,再将s3复制到s1中二、读程序,写出程序执行结果 1 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0 ;for(i=0;i4;i+) s+=aai3;printf(“%dn”,s); 20 2main() int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0; int i, j, s=0; for (i=0; i4; i+) for (j=0; j4; j+) if (ai

24、j 0) continue; if (aij = 0) break; s += aij; printf(%dn, s); 583main() int p7=11,13,14,15,16,17,18, i=0,k=0; while(i7 & pi%2) k =k+ pi; i+; printf(%dn, k); 564main() int i,n=0,0,0,0,0;for(i=1;i=4;i+) ni=ni-1*2+1;printf(%d ,ni);1 3 7 155void main() int str3 3=1,2,3,4,5,6,7,8,9, i,j,t; for(i=0;i3;i+)f

25、or(j=0;ji;j+) t=strij; strij=strji; strji=t; for(i=0;i3;i+) for(j=0;j0 ? x : -x); void main() int a=-5; printf(“%d, %dn”,a,fun(a);-5,53 ex ( ) static int x=5 ; - -x ; printf(“%d”,x) ; void main ( ) ex ( ); ex ( ); ex ( ); 5554 fun(int a, int b) if(ab) return(a);else return(b); main() int x=3, y=8, z

26、=6, r;r =fun(fun(x,y), 2*z);printf(%dn, r);125int f(int x) int y=0; static z=3; y+; z+; return(x+y+z) ;main() int w=2,k; for(k=1;k3;k+) w=f(w); printf(%dn,w);136 void f(int x, int y) int t; if (xy) t=x; x=y; y=t; main() int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf(%d,%d,%dn,a,b,c); 4,3,57 int b=2

27、; fun(int *a) b+=*a; return(b);main() int a=2, res=2; res+=fun(&a);printf(“%dn”,res); 68int d=1; void fun(int p) int d=5; d+=p+; printf(“%d”,d); main() int a=3; fun(a); d+=a+; printf(%dn, d); 849int d=2 ;int fun(int p) static int d=3 ; d+=p; printf(%3d , d) ; return(d) ; void main( ) printf(%3dn , f

28、un(2+fun(d) ; 5 12 1210 int f( ) int s=1; static int i=0; s+=i; i+; return s ;void main() int i,a=0; for(i=0;i5;i+) a+=f( ); printf(%dn,a);1511 int f( ) int s=1; static int i=0; s+=i; i+; return s ;main() int i,a=0; for(i=0;ib) return(a);else return(b);main() int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z

29、);printf(%dn, r);1214 int a=100,b=200;void f( ) printf(“%d,%dn”,a,b); a=1;b=2; void main() int a=5,b=7 ; f( );printf(“%d,%dn”, a,b) ; 100,2005,715 fun( int x) static int a=3;a+=x ; return a ; void main ( ) int k=2,m=1,n; n=fun(k) ; n=fun(m); printf(“%dn”,n) ; 6第10章 指针一、选择题1设有定义 int a =1,5,7,9,11,13,

30、 *p=a+3; 则*(p-2) , *(a+4) 的值是 A)5 11 B)1 9 C)5 9 D)有错误2 设有定义 int a =1,5,7,9,11,13, *p=a+3; 则*(p-3) , *(a+2) 的值是A)5 11 B)1 7 C)5 9 D)有错误3对于int a = 1,2,3,4,5,6, p; p=a; *(p+3)+ = 2; 则*p, *(p+3)的值为 A) 1 5 B) 1 3 C) 1 4 D) 1 64 设有定义 char *p=“abcdeOfghjik0”; 则printf(“%dn”,strlen(p);输出结果是 A) 12 B) 15 C) 6

31、 D) 55下程序段: char s20 =abcd, *sp=s; strcat(sp,ABCD); puts(sp);的输出结果是 A) abcdABCD B) ABCDabcd C) ABCD D) abcd 6 设有定义语句:char str20=Hello,Beijing,*p=str; 则printf(%dn,strlen(p+20); 输出结果是A)0 B) 5 C)7 D)207能正确运用指针变量的程序段是 A)int *i=NULL; B) float *f=NULL;scanf(%d,i); *f=10.5;C)char t=m, *c=&t; D) long *L;*c=

32、&t; L=0;8以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int xN) int i=0; while(iN) scanf(%d,_ ); 在下划线处应填入的是 A)x+i B)&xi+1 C)x+(i+) D)&x+i9若有以下定义和语句:int a=4,b=3,*p,*q, *w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 A)*q=0; B)w=p; C)*p=a; D)*p=*w;10下列选项中正确的语句组是A)char s8; s=Beijing; B)char *s; s=Bei

33、jing;C)char s8=Beijing; D)char *s; s=Beijing;11若有: int a10,*p=&a0;,关于数组名a的不正确的说法是 A)a是个数组指针 B)数组名a表示数组的首地址C)数组名a与a0等价 D)a和p都指向同一个存储单元12已定义以下函数fun(int *p) return *p; 该函数的返回值是A)不确定的值 B)形参p中存放的值C)形参p所指存储单元中的值 D)形参p的地址值二、填空题1char str110,str210=books,则能将字符串books赋给数组str1的标准函数是strcpy(str1, str2)2若有说明:char

34、s14=12 , *ptr=s1; 则我们称指针变量 ptr指向数组s1的首地址 ,而*(ptr+1)的值是23对于char str = “1234”, *p = str; 则 *(p + 2)的结果是3。4已知:int a5=1,2,3,4,5, *p=a+2; 则*P的值是3。5若有说明:char *s=ABCDEFG ; 则我们称指针变量S指向字符串的首地址 ,而S2的值是C三、读程序,写出程序执行结果 1void main() char *p, str20=xyz ; p= ABCDEFG ; strcpy(str+1 , p+1) ; printf(%s, str) ; xABCDE

35、FG 2void main() char *p=“abcdba”,*q; int flag=1; q=p+strlen(p)-1; while(pq) if(*p+!=*q- -) flag=0; if(flag) puts(“yes”); else puts(“no”) ; no3 void fun(char *a, char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2;p1=&c1; p2=&c2; fun(p1,p2);printf(%c%cn,c1,c2);Ab4void f(int *s , int n1 , int n2) int i

36、 , j , t ; i=n1; j=n2; while(ij) t=*(s+i) ; *(s+i)=*(s+j) ; *(s+j)= t ; i+ ; j- - ; main() int a=11,55,66,77,88,99,i; f(a,1,5); for(i=0;i6;i+)printf(“%3d”,ai); 11 99 88 77 66 55 5 f(int *x,int n) int *p, *s; for(p=x,s=x;p-xn;p+) if(*si; i+,j-) c=*(a+i); *(a+i)=*(a+j); *(a+j)=c; puts(a);ykcul yrev7 m

37、ain() int a,k,*p=&a; a=6; for(k=1;k=(*p);k+) if(*p)%k!=0)printf(“%5d”,k); 4 58. void main() char x=abcxyz;char *ptr;for(ptr=&x2;ptrx+6;ptr+) printf(%sn,ptr);cxyzxyzyzz9void main() char a=language, *p=a;int k=0; while(*p) if(*pf) +k ; p+; printf(“%s %dn”,a,k) ;language 310 void main() intk,a10,*p=a ;

38、 for(k=1;k10;k+) *(p+k-1)=k; for(k=0;k5;k+) *(p+9-k)=*(p+k); for(k=0;k10;k+) printf(“%3d”,*p+);1 2 3 4 5 5 4 3 2 111void main() char *p=“China University of Petroleum!”, *p1; int n=1; p1=p; while(*+p)n+; printf(%s ,%dn”,p1+20,n); Petroleum! ,3012void fun(char *c,int d) *c=*c+1;d=d+1;printf(“%c,%c,”,

39、*c ,d);main() char a=A,b=a;fun(&b,a); printf(%c,%cn,a ,b);b,B,A,b13 fun(char *w, int n) char t, *s1, *s2; s1=w; s2=w+n-1; while(s1s2) t=*s1+;*s1= *s2- ; *s2= t;main() char *p=;fun(p, strlen(p);puts(p);14int fun(char *s1,char *s2) int i=0; while(s1i=s2i & s2i!=0) i+;return (s1i=0 & s2i=0); main() char p10=“abcdef”, q10=“ABCDEF” printf(“%dn”,fun(p,q);015main() int a10,*p,*s,i; for(i=0;i10;i+) scanf(%d”,a+i); for(p=a,s=a;p-a10;p+)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!