C语言第三章复习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言复习题1
一、选择题
1.C语言提供的合法的数据类型关键字是(B)。

(A)Double (B)short (C)integer (D)Char
2.在C语言中,合法的长整型常数是(A )。

(A)0L (B)4962710 (C)0.054838743 (D)2.1869e10
3.若有说明和语句:
int a=5;
a++;
此处表达式a++的值是( C)。

(A)7 (B)6 (C)5 (D)4
4.C语言中最简单的数据类型包括(B )。

(A)整型、实型、逻辑型 (B)整型、实型、字符型
(C)整型、字符型、逻辑型 (D)整型、实型、逻辑型、字符型
5.以下说法中正确的是( C)。

(A)C语言程序总是从第一个定义的函数开始执行
(B)在C语言程序中,要调用的函数必须在main()函数中定义
(C)C语言程序总是从main()函数开始执行
(D)C语言程序中的main()函数必须放在程序的开始部分
6.在C语言中,要求运算数必须是整型的运算符是( A )。

(A) % (B) / (C) < (D) !
7.以下有4个用户标识符,其中合法的一个是(C )。

(A) for (B) 4d (C) f2_G3 (D) short
8.假定x和y为double型,则表达式x=2,y=x+3/2的值是( D )。

(A) 3.500000 (B) 3 (C) 2.000000 (D) 3.000000
9.下面程序的输出是( C )。

(A) 0 (B) 1 (C) 3 (D) 不确定的值
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);}
10.执行下面程序中输出语句后,a的值是( C )。

(A) 65 (B) 20 (C) 15 (D) 10
main()
{int a;
printf("%d\n",(a=3*5,a*4,a+5));}
11.C语言提供的合法的关键字是( D )。

(A)Switch (B)cher (C)Case (D)default
12.在C语言中,合法的字符常量是( B )。

(A)'\084' (B)'\x43' (C)'ab' (D)"\0"
13.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( C )。

(A)1 (B)2 (C)2.0 (D)2.5
14.以下叙述中错误的是( B )。

(A)算法正确的程序最终一定会结束
(B)算法正确的程序可以有零个输出
(C)算法正确的程序可以有零个输入
(D)算法正确的程序对于相同的输入一定有相同的结果
15.若有以下程序片段:
char str[]="ab\n\012\\\"";
printf("%d",strlen(str));
上面程序片段的输出结果是( C )。

(A)3 (B)4 (C)6 (D)12
16.以下叙述中正确的是( B )。

(A) C语言的源程序不必通过编译就可以直接运行
(B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C) C源程序经编译形成的二进制代码可以直接运行
(D) C语言中的函数不可以单独进行编译
17.下列不正确的转义字符是( C )。

(A)'\\' (B)'\" (C)'074' (D)'\0'
18.若有以下定义:
char a; int b;
float c; double d;
则表达式a*b+d-c值的类型为( D )。

(A) float (B) int (C) char (D) double
19.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为( D )。

(A) 4 (B) 3 (C) 2 (D) 1
20.设x为int型变量,则执行以下语句后,x的值为( B )。

x=10; x+=x-=x-x;
(A) 10 (B) 20 (C) 40 (D) 30
21.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( C )。

(A) 4 (B) 16 (C) 32 (D) 52
22.设有如下的变量定义:
int i=8, k, a, b;
unsigned long w=5;
double x=1. 42, y=5.2;
则以下符合C语言语法的表达式是( A )。

(A) a+=a-=(b=4)*(a=3) (B) x%(-3); (C) a=a*3=2 (D) y=float(i)
23.假定有以下变量定义:
int k=7,x=12;
则能使值为3的表达式是( D )。

(A) x%=(k%=5) (B) x%=(k-k%5) (C) x%=k-k%5 (D) (x%=k)-(k%=5)
24.以下程序的输出结果是( D )。

main()
{ int a=12,b=12;
printf("%d,%d\n",- -a,+ +b);
}
(A) 10 10 (B) 12 12 (C) 11 10 (D) 11 13
25.下列选项中,不能用作标识符的是( D )。

(A)_1234_ (B)_1_2 (C)int_2_ (D)2_int_
26.以下所列的C语言常量中,错误的是( B )
(A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\72'
27.以下选项中属于C语言的数据类型是( C )。

(A) 复数型 (B) 逻辑型 (C) 双精度型 (D) 集合型
28.在C语言中,不正确的int类型的常数是( A )。

(A)32768 (B) 0 (C) 037 (D) 0xaf
29.以下选项中,与k=n++完全等价的表达式是( A )。

(A) k=n,n=n+1 (B) n=n+1,k=n (C) k=++n (D) k+=n+1
30.以下程序的输出结果是( C )。

main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
(A) 5 (B) 4 (C) 6 (D) 不确定
31.设有 int x=11; 则表达式 (x++ * 1/3) 的值是( A )。

(A) 3 (B) 4 (C) 11 (D) 12
32.下列变量定义中合法的是 ( A )。

(A) short _a=1.le-1; (B) double b=1+5e2.5;
(C) long do=0xfdaL; (D) float 2_and=1-e-3;
33.以下程序的输出结果是( D )。

main()
{ int a=3;
printf("%d\n",(a+=a-=a*a) );
}
(A) -6 (B)12 (C) 0 (D) -12
34.若变量已正确定义并赋值,下面符合C语言语法的表达式是( B)。

(A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b
35.C语言中运算对象必须是整型的运算符是(A )。

(A) %= (B) / (C) = (D) 〈=
36.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。

(A) 1 (B) 2 (C) 2.0 (D) 2.5
37.若变量a、i已正确定义,且i已正确赋值,合法的语句是( B )。

(A) a==1 (B) ++i; (C) a=a++=5; (D) a=int(i);
38.有如下程序
main()
{ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是( D )。

(A) 3 4 (B) 4 2 (C) 4 3 (D) 3 3
39.设有说明语句:char a=’\72’;则变量a中(A )。

(A) 包含1个字符 (B) 包含2个字符(C) 包含3个字符(D) 说明不合法
40.以下所列的C语言常量中,错误的是(B )。

(A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\72'
41.下列选项中,合法的C语言关键字是(D )。

(A) V AR (B) cher (C) integer (D) default
42.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C )。

(A) -3 (B) 9 (C) -12 (D) 6
43.以下选项中,非法的字符常量是( C)。

(A) '\t' (B) '\17' (C)"n" (D) '\xaa'
44.有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出结果是( B )。

(A) 9,2 (B) 10,2 (C) 9,1 (D) 10,1
45.若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是( D)。

(A) a的值是字符C (B) a的值是浮点型
(C) 不允许字符型和浮点型相加(D) a的值是字符‘A’的ASCII值加上1。

46.以下程序的输出结果是( C)。

main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
(A) 5 (B) 4 (C) 6 (D) 不确定
47.以下选项中不属于C语言的类型的是( D)。

(A) signed short int (B) unsigned long int
(C) unsigned int (D) long short
48.在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是 ( D)。

(A) a=20000+20000; (B) a=4000*10;
(C) a=30000+10000; (D) a=4000L*10L;
49.以下程序的输出结果是(C )。

main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
(A) 5 (B) 4 (C) 6 (D) 不确定
50.以下叙述中正确的是(B )。

(A) C语言的源程序不必通过编译就可以直接运行
(B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C) C源程序经编译形成的二进制代码可以直接运行
(D) C语言中的函数不可以单独进行编译
51.以下选项中合法的实型常数是(C )。

(A) 5E2.0 (B) E-3 (C) .2E0 (D) 1.3E
52.以下选项中合法的用户标识符是(B )。

(A) long (B) _2Test (C) 3Dmax (D) A.dat
53.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是(A )。

(A) 字符A (B)字符a (C)字符e (D)非法的常量
54.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是(D )。

(A)6.500000 (B)6 (C) 5.500000 (D) 6.000000
55.以下叙述中正确的是( C )。

(A) C语言比其他语言高级
(B) C语言可以不用编译就能被计算机识别执行
(C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
(D) C语言出现的最晚,具有其他语言的一切优点
56. C语言中用于结构化程序设计的三种基本结构是 ( A)。

(A) 顺序结构、选择结构、循环结构 (B) if、switch、break
(C) for、while、do-while (D) if、for、continue
57.在一个C程序中(B )。

(A) main函数必须出现在所有函数之前 (B) main函数可以在任何地方出现
(C) main函数必须出现在所有函数之后 (D) main函数必须出现在固定位置
58.下列叙述中正确的是( D)。

(A) C语言中既有逻辑类型也有集合类型
(B) C语言中没有逻辑类型但有集合类型
(C) C语言中有逻辑类型但没有集合类型
(D) C语言中既没有逻辑类型也没有集合类型
59.下列关于C语言用户标识符的叙述中正确的是(B)
(A)用户标识符中可以出现在下划线和中划线(减号)
(B)用户标识符中不可以出现中划线,但可以出现下划线
(C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
(D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
60.下列关于单目运算符++、--的叙述中正确的是( D)。

(A) 它们的运算对象可以是任何变量和常量
(B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
(C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
(D) 它们的运算对象可以是char型变量、int型变量和float型变量
61.有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出结果是( B)。

(A) 9,2 (B) 10,2 (C) 9,1 (D) 10,1
62.有以下程序
main()
{ char a,b,c,*d;
a='\'; b='\xbc';
c='\0xab'; d="\0127";
printf("%c%c%c\n",a,b,c,*d);
}
编译时出现错误,以下叙述中正确的是(D )。

(A) 程序中只有a='\';语句不正确 (B) b='\xbc';语句不正确
(C) d="\0127";语句不正确 (D) a='\';和c='\0xab';语句都不正确
63.以下叙述中正确的是( A )。

(A)C程序中注释部分可以出现在程序中任意合适的地方
(B)花括号"{"和"}"只能作为函数体的定界符
(C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
(D)分号是C语句之间的分隔符,不是语句的一部分
64.以下选项中可作为C语言合法整数的是(C )。

(A)10110B (B)0386 (C)0xffa (D)x2a2
65.以下不能定义为用户标识符的是(D )。

(A)scan (B)num (C)_3com_ (D)int
66.以下选项中非法的表达式是(D )。

(A)0<=x<100 (B)i=j==0 (C)(char)(65+3) (D)x+1=x+1
67.已定义ch为字符型变量,以下赋值语句中错误的是(A )。

(A)ch='\'; (B)ch=62+3; (C)ch=NULL; (D)ch='\xaa';
68.已定义c为字符型变量,则下列语句中正确的是 (C )。

(A)c='97'; (B)c="97"; (C)c=97; (D)c="a";
69.以下叙述中正确的是(B )。

(A) C语言的源程序不必通过编译就可以直接运行
(B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C) C源程序经编译形成的二进制代码可以直接运行
(D) C语言中的函数不可以单独进行编译
70.以下符合C语言语法的实型常量是 (C )。

(A) 1.2E0.5 (B) 3.14.159E (C) .5E-3 (D) E15
71.以下4组用户定义标识符中,全部合法的一组是(A )。

(A) _main (B) If (C) txt (D) int
enclude -max REAL k_2
sin turbo 3COM _001
72.设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( B) 。

(A) (a+b) *h/2 (B) (1/2)*(a+b) *h
(C) (a+b) *h*1/2 (D) h/2*(a+b)
73.用C语言编写的代码程序(B )。

(A)可立即执行 (B)是一个源程序
(C)经过编译即可执行 (D)经过编译解释才能执行
74.结构化程序由三种基本结构组成,三种基本结构组成的算法( C )。

(A)可以完成任何复杂的任务 (B)只能完成部分复杂的任务
(C)只能完成符合结构化的任务 (D)只能完成一些简单的任务
75.以下定义语句中正确的是( C )。

(A)char a='A'b='B'; (B)float a=b=10.0;
(C)int a=10,*b=&a; (D)float *a,b=&a;
76.下列选项中,不能用作标识符的是( D )。

(A)_1234_ (B)_1_2 (C)int_2_ (D)2_int_
77.有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是( C )。

(A)a=a+b=b++ (B)w%(int)a+b)
(C)(c+w)%(int)a (D)w=a==b;
78.有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是( D )。

(A)3 (B)5 (C)-1 (D)-2
79.有以下程序
main()
{ char a='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是( A )。

(A)b,b (B)b,c (C)a,b (D)a,c
80.以下选项中可作为C语言合法常量的是(A )。

(A)-80. (B) -080 (C)-8e1.0 (D)-80.0e
81.以下叙述中正确的是( C )。

(A)用C程序实现的算法必须要有输入和输出操作
(B)用C程序实现的算法可以没有输出但必须要输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
82.以下不能定义为用户标识符的是( D )。

(A)Main (B)_0 (C)_int (D)sizeof
83.数字字符0的ASCII值为48,若有以下程序
main()
{ char a='1',b='2 ';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是(C )。

(A) 3,2 (B)50,2 (C)2,2 (D)2,50
84.有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是( A)。

(A)12353514 (B)12353513 (C)12343514 (D)12343513
85.若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a<b?a:c<d?c:d的值是( A )。

(A)1 (B)2 (C)3 (D)4
86.以下叙述中错误的是(A )。

(A)用户所定义的标识符允许使用关键字
(B)用户所定义的标识符应尽量做到“见名知意”
(C)用户所定义的标识符必须以字母或下划线开头
(D)用户定义的标识符中,大、小写字母代表不同标识
87.以下叙述中错误的是( C )。

(A)C语句必须以分号结束
(B)复合语句在语法上被看作一条语句
(C)空语句出现在任何位置都不会影响程序运行
(D)赋值表达式末尾加分号就构成赋值语句
88.以下不能正确计算代数式值的C语言表达式是( A )。

(A)1/3*sin(1/2)*sin(1/2) (B)sin(0.5)*sin(0.5)/3
(C)pow(sin(0.5),2)/3 (D)1/3.0*pow(sin(1.0/2),2)
89.以下能正确定义且赋初值的语句是( B )。

(A)int n1=n2=10; (B)char c=32; (C)float f=f+1.1; (D)double x=12.3E2.5;
90.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是( C )。

(A)k=k>=k (B)-k++ (C)k%int(f) (D)k>=f>=m
91.以下不合法的用户标识符是( C )。

(A)j2_KEY (B)Double (C)4d (D)_8_
92.以下不合法的字符常量是(A)。

(A)′\018′(B)′\"′(C)′\\′(D)′\xcc′
93.表达式3.6-5/2+1.2+5%2的值是(D )。

(A)4.3 (B)4.8 (C)3.3 (D)3.8
94.以下叙述中错误的是( D )。

(A)C语言源程序经编译后生成后缀为.obj的目标程序
(B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
(D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
95.以下叙述中错误的是( B )。

(A)算法正确的程序最终一定会结束
(B)算法正确的程序可以有零个输出
(C)算法正确的程序可以有零个输入
(D)算法正确的程序对于相同的输入一定有相同的结果
96.C语言源程序名的后缀是( B )。

(A).exe (B).C (C).obj (D).cp
97.不可在C程序中用做用户标识符的一组标识符是( D )。

(A)and (B)Date (C)Hi (D)case
98.以下选项中,合法的C语言数值常量是( B )。

(A)028 (B)12. (C).177 (D)0x8A
99.以下叙述中正确的是( C )。

(A)C语言程序将从源程序中第一个函数开始执行
(B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
(C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
(D)main可作为用户标识符,用以命名任意一个函数作为主函数
100.以下关于long、int和short类型数据占用内存大小的叙述中正确的是( D )。

(A)均占4个字节 (B)根据数据的大小来决定所占内存的字节数
(C)由用户自己定义 (D)由C语言编译系统决定
101.已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

执行语句printf("%d,%d",c1,c2-2);后,输出结果是( C )。

(A)A,B (B)A,68 (C)65,66 (D)65,68
102.以下正确的字符串常量是( D )。

(A)"\\\" (B)’abc’ (C)OlympicGames (D)""
103.以下程序运行后的输出结果是 b 。

main()
{ char m;
m='B'+32; printf("%c\n",m);
}
104.设x和y均为int型变量,且x=1,y=2,则以下表达式的值为_ _1.0或1 __。

1.0+x/y
105.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 3 。

c=(a-=(b-5));
c=(a%11)+(b=3);
106.以下程序的输出结果是2,1 。

main()
{ int a=1, b=2;
a=a+b; b=a-b; a=a-b;
printf("%d,%d\n", a, b );
}
107. 以下程序的输出结果是 16 。

main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);}
108.若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出结果是-3 。

109.以下程序运行后的输出结果是 3 。

main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10 : p%3));
}
110.以下程序运行后的输出结果是 b 。

main()
{ char m;
m='B'+32; printf("%c\n",m);
}
111.已知字符A的ACSII码值为65,以下语句的输出结果是 B 66
char ch=’B’;
printf(“%c %d\n”,ch,ch);
112.以下程序运行后的输出结果是 2 20 。

main()
{ char c; int n=100;
float f=10; double x;
x=f*=n/=(c=50);
printf("%d %f\n",n,x);
}
113.设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是10.2 printf("%d,%d\n",x--,--y);。

相关文档
最新文档