1、 第 1 页 共 18 页 C 语言 综合复习资料 一、单选题 1. C语言中基本数据类型有 ( ) A)整型、实型、逻辑型 B)整型、字符型、逻辑型 C)整型、实型、字符型 D)整型、实型、字符型、逻辑型 2. 在 C语言中,数字 029 是一个 ( ) A)八进制数 B)十进制数 C)十六进制数 D)非法数 3. 在以下关于 C语言的不严格的叙述中,错误的说法是 ( ) A)在标识符中,大写字母和小些字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号 “=”左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义 4. 已知 in
2、t a=4,b=5; ,这执行表达式 a=ab 后 , 变量 a的值为 ( ) A) 0 B) 1 C) 4 D) 5 5. 设有定义 int a=3,b=4,c=5; ,则以下表达式中 , 值为 0的表达式是 ( ) A) a 12.已定义 c 为字符型变量,则下列正确的赋值语句是 ( ) A) c=66; B) c=“66“; C) c=“B“; D) c=66; 13.设 a=3,b=4,c=-5,则逻辑表达式: a | b+c B) int a12=1,3; C) int c2= 1,2,3,4; D) int d32=1,2,34; 第 2 页 共 18 页 15.结构化程序设计的三
3、种基本结构是 ( ) A)顺序结构、选择结构、循环结构 B) if、 switch、 break C) for、 while、 do-while D) if、 for、 continue 16.在一个 C 程序中 ( ) A) main 函数必须出现在所有函数之前 B) main 函数可以在任何地方出现 C) main 函数必须出现在所有函数之后 D) main 函数必须出现在固定位置 17.以下合法的字符常量是 ( ) A) 084 B) ab C) x43 D) “0” 18.用 8 位无符号二进制数能表示的最大十进制数为 ( ) A) 127 B) 128 C) 255 D) 256 1
4、9.设有定义: int x=0, y=1, z=1;则运行表达式: x=y+z-后, x,y,z 的值分别是 ( ) ) 1,1,1 ) 1,2,0 ) 0,1,1 ) 0,2,0 20.设有 int x=11;则表达式 (x+*1/3)的值是 ( ) A) 3 B) 4 C) 11 D) 12 21.若有 : int x=1,n=5; 则执行语句 x%=(n%2)后, x的值为 ( ) A) 3 B) 2 C) 1 D) 0 22.结构化程序的 3种基本控制结构是 ( ) A) if-else结构、 while结构、 for 结构 B) 顺序结构、分支机构、循环结构 C) while 结构、
5、 do-while 结构、 for结 构 D) 以上三种都不对 23.下面程序段的输出结果是 ( ) int k=11; printf(“%d,%o,%x”,k,k,k); A) 11,12,11 B) 11,13,13 C) 11,013,0xb D) 11,13,b 24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是 ( ) A) 1 B) 2 C) 3 D) 4 25.以下非法的赋值语句是 ( ) A) n=(i=2,+i); B) j+; C) +(i+1); D) x=j0; 26.语句: printf(“%d“,(a=2) 的输出结果是 ( ) A)无输出 B)结果不确
6、定 C) 1 D) 2 27.设有定义语句: charstr20=“Hello“,“Beijing“,*p=str; ( ) 则 printf(“%dn“,strlen(p+20); 输出结果是 A) 0 B) 5 C) 7 D) 20 28.以下选项中 ,与 k=+n 完全等价的表达式是 ( ) A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+1 二、 读程序,写出程序执行结果 1. #include 第 3 页 共 18 页 void main() int a=10,b=0; if(a=12) a+; b+; else a=a+3 ; b=b+3; pr
7、intf(“%d,%dn”,a,b); 2. #include void main() ints,i; for(s=0,i=1;i void main() int k=4,n=0; for( ; n 第 4 页 共 18 页 int f(int b,intm,int n) inti,s=0; for(i=m;i voidcopy_str(char from ,char to ) int k=0; while(fromk!=0) tok=fromk; k+; tok=0; /*末尾加上 串结束标志 */ void main() char str180=”red”,str280=”green”;
8、copy_str (str1,str2); puts(str2); 7. #include int d=1; void fun(int p) int d=5; d+=p+; printf(“%d”,d); void main() int a=3; fun(a); d+=a+; printf(“%dn“, d); 8 #include void main() 第 5 页 共 18 页 int i,j; for(i=0; i void main() inti; for (i=0; i intws(int x) if(x/1000) return(3); else if(x/100 ) return
9、(2); else return(1); void main() int a=123; printf(“%d 是 %d 位数 n“,a,ws(a); 11. #include #include void main() char a10=“abc“; char b=“defg“; 第 6 页 共 18 页 puts(a); puts(b); puts(strcat(a,b); 12.#include void main() int i,n=1,2,3,4,5; for(i=0; i void main() int a34=1,2,3,4,9,7,10,6,-1,8,-5,5; int i,j,r
10、ow=0,colum=0,max; max=a00; for(i=0;imax) max=aij; row=i; colum=j; printf(“max=%d,row=%d,colum=%d“,max,row,colum); 14.#include voidcopy_str(char from ,char to ) int k=0; while(fromk!= 0) tok=fromk; k+; tok=0; /*末尾加上串结束标志 */ void main() 第 7 页 共 18 页 char str180= “good“,str280= “abcdef“; copy_str(str1,
11、str2); puts(str2); 15. #include void main() int a=0; a+=(a=8); printf(“%dn”,a); 16. #include void main() int x=4; if(x+=5) printf(“%dn”, x) ; else printf(“%dn”, x-) ; 17. #include #define MAX(a,b) (ab ? a : b)+1 void main() int i=6,j=8; printf(“%dn”,MAX(i,j); 18 #include void main() int i,j,m=0,n=0,
12、k=0; for(i=6; i void main() inti; for(i=1;i); putchar(#); 20 #include void main() int i,n=1,2,3,4,5; for(i=0; i int m=13; int fun(int x,int y) int m=3; return(x*y-m); void main() int a=7, b=5; printf(“%dn“, fun(a,b)/m); 22. #include void main() 第 9 页 共 18 页 int n=2; printf(“%d,%d,%dn”, +n , n+=2 , -
13、n) ; 23. #include void main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b); 24. #include void main() ints,t,a=-2,b=6; s=t=1; if(a0) s=s+1; if(ab) t=s+t; else if(a=b) t=5; else t=2*s; printf(“t=%d “, t); 25. #include #define S(a,b) (a)*(b) void main() int
14、 a=3 ,area; area=S(a,a+3) ; printf(“area=%dn“,area); 26. #include void main() inti=0,a=0; while(i void main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; inti,s=0 ; for(i=0;i fun(int a, int b) if(ab) return(a); else return(b); void main() int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(“%dn“, r); 三、编程题 1. 设有分段函数: x (x 1) Y= 2x-1 (1x 10) 写一程序,输入 x,输出 y 的值。 3x-11 (x10) 2编程任意输入两个实数 a 和 b,计算下面函数的值,并输出 y 值。 a-b ab y= ba ab a*b a=b 3.编程序求如下分段函数的值