1、复习题一、选择题1、C 程序由( C )组成。A子程序 B主程序和子程序 C函数 D过程2、以下正确的叙述是( C ) 。 A 在 C 语言中,main 函数必须位于文件的开头 B C 语言每行中只能写一条语句 C C 语言本身没有输入、输出语句 D 对一个 C 语言进行编译预处理时,可检查宏定义的语法错误 3、下面属于 C 语言标识符的是( D )A 2ab B. f C. ?b D. _a124、下列符号中用来表示 C 语言中的回车换行的是( B )A. ” B. n C. b D. 5、若定义#define P 3.1416 则 P 是( A )A符号常量 B单精度变量 C整型变量 D一
2、般变量6、一个 C 程序的执行是从( A )A. 本程序的 main()函数开始,到 main()函数结束.B. 本程序文件的第一个函数开始,到本程序文件第一个函数结束.C. 本程序文件的第一个函数开始,到本程序 main 函数结束.D. 本程序的 main()函数开始,到本程序文件的最后一个函数结束.7、下列关于 C 语言注释的叙述中错误的是( D )。A以“/*”开头并以“*/”结尾的字符串为 C 语言的注释内容。B注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。C程序编译时,不对注释作任何处理。 D程序编译时,需要对注释进行处理。8、若有定义:int a=8, b=5, c
3、; 执行语句 c = a/b+0.4 ;后,c 的值为(B ) 。 A 1.4 B1 C 2.0 D 2 9、若 t 为 int 类型,表达式 t=1,t= 5,t+的值是( C)A2 B6 C5 D 710、设有 int x,y; 以下语句判断 x 和 y 是否相等,正确的说法是该语句( B )if (x=y) printf(“ x is equal to y.“); A. 语法错 B. 不能判断 x 和 y 是否相等C. 编译出错 D. 能判断 x 和 y 是否相等11、 有如下输入语句:scanf(“x=%d:y=%d”, 为使变量 x 的值为 2002,变量 y 的值为 11,那么从键
4、盘输入数据的正确格式为 ( B )。A 2002 11 B x=2002:y=11 C x=2002 y = 11 D x=2002,y=1112有 int x,y,z ;且 x=3,y=-4,z=5 ;则以下表达式的值为( A )! ( xy ) +(y != z ) | ( x+y ) ( y - z)A) 1; B) 0; C) 2; D) 4;13设 a=50, b=20, c=12,则 x 的值是( D )x= if( ab ) a=b ,c=a ,+c;A) 13 B) 51C) 50 D) 2114下面的表达式正确的是( C )A) (a+b)+ B) 8+C) _(i+) D)
5、 (-k )+15.设以下变量均为 int 类型,则值不等于 7 的表达式是:( C ) A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)16设有如下程序段,输出结果应为( A )x=( a=3, 6*3 );y=a=3, 6*a;printf(“x=%d,y=%d n”,x, y );A) x=18, y=3; B) x=18, y=19;C) x=3, y=18; D) x=3, y=3;17、写出下列程序的执行结果( D ) int x=-2; printf(“%d,%u,%o“,
6、x, x, x); A -2, -2, -2 B-2, 32767, -177777 C-2, 32768, 177777 D-2, 65534, 177776 18、若有定义 int a; char b; float c; 则表达式 a*b-c 的类型是( D ) Afloat B int C char D double 19、若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是( C ) 。 A 1 B 2 C 2.0 D 2.5 20、Putchar 函数可以向终端输出一个( D )A)整型变量表达式值; B) 字符串;C)实型变量值; D) 字符或字符
7、型变量值;21执行以下程序段,正确的输出结果( A )#includemain( ) int b=1;b%=5-2;Printf( “%d”,b);b+=b*=b-=b*=4;printf(“%d”,b);A) 1,0; B) 2,0; C) -2,8; D) 1,8;22、若有程序段:double x=-5.9;int y;y=(int)x; 执行该段程序后( A ) 。Ax=-5.9,y=-5 Bx=-5.9,y=-6 Cx=-5,y=-5 Dx=-6,y=-623.以下程序的运行结果是:( B )#include”stdio.h”main() int a,b,d=241;a=d /100
8、% 9;b=(-1) (-1);printf(“%d,%d”,a,b);A) 6, 1 B) 2, 1 C) 6, 0 D) 2, 024、以下正确的叙述是( C ) 。 A在 if-else 语句中第一个 else 与第一个 if 相匹配B完整的 if 语句中都有 else 存在的 Cif-else 语句中,else 与最近的 if 匹配 D以上都正确25、下列保留字中用于构成循环结构的是( B )A. if B. while C. switch D. default26. 运行下面的程序段,结果是:( A )int n=0;while(n+int x = 5,4,3,2,1;main( )
9、int i,*p,m=0;for(p=x,i=1;p+i?: 。执行过程:首先计算表达式 1 的值,如果表达式 1 的值是“真” (非 0) ,则整个表达式的值为 表达式 2 的值如果表达式 1 的值是“假” (0) ,则整个表达式的值为 表达式 3 的值。5、表达式 10|20|30 的值是 1 。 6、C 语言中常用的三种循环控制语句中,while 语句和 for 语句属于 当 型循环,dowhile 语句属于 直到 型循环。7、 多分支选择结构,可以用嵌套的 if 语句和_switch_ _while_语句来实现。8、 break 语句只能用于_switch_ _语句和_ 循环 _语句。
10、9、已知字符 A 的 ACSII 码值为 65,以下语句的输出结果是 B,66 。char ch=B; printf(“%c,%dn“,ch,ch); 10、在定义时,对数组的每一个元素赋值叫数组的_初始化 _,对全部数组元素赋初值,可以不指定数组的_ _长度_。11、有定义 int b7=3, 1, 2, 则 b5的值为 0 。 12、在 C 语言中,头文件的扩展名是 .h 。13、int *p,i;p=*p=5;中的两个*含义是不一样的,前者指 定义指针变量 后者指 对指针变量的引用 。14、若定义:int a=511,*b=, 则 printf(“%dn“,*b); 的输出结果为 511
11、 。15、若 C 语言中定义了二维数组 a22,则 a 中的元素为(按存储顺序写) a00,a01,a02,a10,a11,a12,a20,a21,a2216、 int *p,i;p=*p=5;中的两个*含义是不一样的,前者指 定义指针变量 后者指 对指针变量的引用 。17、设有说明 char str20, 如果想从终端上把以下字符“This is a book ”送到数组 str 中,使用的完整语句为 gets(str) ; 。18、有这样的定义:float a;float *point;a=8.23; 让指针 point 指向 a 的语句是_,point=Printf(“%4.5s”,st
12、r );则输出结果为_abcxe_ _。20、有这样的定义 :static int a5=1,2,3,4,5 ;int * p;p=写出一个与 p=a=i+;printf(“a=%d,i=%d”,a,i);2程序输出结果是 cap=12 。#include void main()int sum=10,cap=10;cap=sum+,cap+,+cap;printf(“cap=%dn“,cap);3. 程序输出结果是 x=14,y=4 。#include void main()int x=10,y=5;switch(x)case 1:x+;default :x+=y;case 2:y-;case
13、 3:x-;printf(“x=%d,y=%dn“,x,y);4 程序输出结果是 x= 3 。#include void main()int x=3,y=1;if(x0)x=x+1;else x=x+2;printf(“x=%dn“,x); 2 2 3 9 10 65.给出下面程序运行结果 16 17 18 。#include void main()int a33=1,2,3,4,5,6,7,8,9;int i,j;for(i=0;i=j) aij+=aii;for(i=0;ivoid main()int a10,i;for(i=0;i=0;i-)printf(“%2d“,ai);7. 给出下面程序运行 love china! H W 。#include void main()char *s2=“I love China!“;char *s3,c;char *s4=“w“;s3=*s3=H;s2=s2+2;printf(“%st%ct%sn“,s2,*s3,s4);8.给出下面程序运行结果 abcd 123 。#include void main()char a50=“abcd“,b20=“123456“;int i,j;i=0;while(ai!=0) i+;for(j=0;bj!=0a=10;ap=bp=