《《C语言程序设计》综合复习资料.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》综合复习资料.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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语言中用于结构化程序设计的三种基本结构是 A)顺序
2、结构、选择结构、循环结构 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)用户标识符中可以出现下划线和中划线(减号) B)用户标识符中不可以出现中划线
3、,但可以出现下划线 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语言中,char型数据在内存中的存储形式是 A)
4、原码 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) 1.3E13依据C语言的语法规则,下列(
5、)是用户定义的合法标识符。 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在内存中各占的字节数是。 A)1 1 B)4 1 C)3
6、 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 a=a; int b=0; float c
7、= -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=x+132已知小写字母的ASCII码为97
8、,对于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型变量,且a=3, b=4, c=5,则下面的表
9、达式中,值为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=4*5,x*5),x+25的结果是 A)
10、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”, a , b);的结果是 A) 99,
11、 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,则逻辑表达式:a | b+c & b=c 的值
12、是 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)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信
13、息C)输出值为2D)输出值为3二、填空题1C语言中逻辑”真”用 表示 ,逻辑”假”用 表示。2在C语言中,整数可用 进制、 进制和 进制3种数制表示。3十进制数52转化成八进制数是 。4十六进制数7A转化成八进制数是 。5十进制数47转化成八进制数是 。6在C语言中,101是种特殊的字符常量,它称为 ,其表示的字符为 。7在C语言程序中,整型数可用十进制、 进制和 进制3种数制表示。070是个合法的 整型数。8字符串 “ab034x79”的长度为 。9十六进制数7A转化成八进制数是 。10语句: printf(%d,(a=-10)&(b=0); 的输出结果为 。11若w=1,x=2,y=3,z
14、=4,则条件表达式w x ? w : y 0 ? p/10 : p%3);4main() int x,y=0; printf(“%cn”, x=99) ; printf(“%dn”, (x+ , +y , x+y) ; 第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); 4 main() int x=100,a=20,b=10; int v1=5; if(ab) if(b!=
15、15) if(!v1) x=1; else x=10; x=-1; printf(“%d”,x); 5main() 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
16、,x=0;i=9&x!=876;i+) scanf(“%d”,&x); A)最多执行10次 B)最多执行9次 C)是无限循环 D)循环体一次也不执行二、读程序,写出程序执行结果 1 main() int n=4 ; while(n- -) printf(%2d,- -n) ; 2main() int i; for (i=0; i3; i+) switch ( i ) case 1: printf(%d , i); case 2: printf(%d , i); default : printf(%d , i); 3main() int i,m=0,n=0,k=0;for(i=9; i1; i-
17、 -) for(j=0;j11-2*i;j+)putchar( );for(j=0;j2*i-1;j+) putchar(9); 5 main() int a; for(a=1;a0 ; y - - ) j=j*x;printf(“j=%dn”,j);7void main() int n= -5 ; while(+n) printf(%2d, +n) ; 8 main() int x=15;while(x10 & x50) x+;if(x/3)x+;break;else continue; printf(“%dn”,x);9void main() int x,y; for(x=1,y=1; y
18、=10) break; if(x%2=1) x+=5; continue ; x-=3; printf(%d %dn,x,y); 10main() int k=4,n=0;for( ; nk ; ) n+;if(n%3!=0) continue;k-; printf(%d,%dn,k,n);11void main() int i=1; while (i10) if(+i%5!=3) continue ; else printf(%d ,i); 12 main() int k=0,m=0; int i,j; for(i=0;i2;i+) for(j=0;j0);printf(“%dn”, t);
19、14void main() int n1,n2; n2=5678; while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 第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= 1,2,3,4; D)int d32=1,2,34;4以下不能正确定义二维数组的
20、选项是 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复制到s3中C)将字符串s2复制到s1中,再将s1连接到s3之后D)将字符串s2连接
21、到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); 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 (aij 0) continue; if (aij = 0) break; s += aij;
22、 printf(%dn, s); 3main() int p7=11,13,14,15,16,17,18, i=0,k=0; while(i7 & pi%2) k =k+ pi; i+; printf(%dn, k); 4main() int i,n=0,0,0,0,0;for(i=1;i=4;i+) ni=ni-1*2+1;printf(%d ,ni);5void main() int str3 3=1,2,3,4,5,6,7,8,9, i,j,t; for(i=0;i3;i+)for(j=0;ji;j+) t=strij; strij=strji; strji=t; for(i=0;i3;
23、i+) for(j=0;j0 ? x : -x); void main() int a=-5; printf(“%d, %dn”,a,fun(a);3 ex ( ) static int x=5 ; - -x ; printf(“%d”,x) ; void main ( ) ex ( ); ex ( ); ex ( ); 4 fun(int a, int b) if(ab) return(a);else return(b); main() int x=3, y=8, z=6, r;r =fun(fun(x,y), 2*z);printf(%dn, r);5int f(int x) int y=
24、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);6 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); 7 int b=2; fun(int *a) b+=*a; return(b);main() int a=2, res=2; res+=fun(&a);print
25、f(“%dn”,res); 8int 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); 9int d=2 ;int fun(int p) static int d=3 ; d+=p; printf(%3d , d) ; return(d) ; void main( ) printf(%3dn , fun(2+fun(d) ; 10 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);11 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);printf(%dn, r);14 int a=100,b=200;v