C程序设计试题及题解
- 格式:doc
- 大小:316.50 KB
- 文档页数:46
1 C程序设计试题及题解
1 选择题
1.1 C语言概述
1.C程序中main函数的位置(C)
A.必须在最开始 B.必须在系统库函数后面
C.可以在自定义函数后面 D.必须在最后
2.下面关于C语言用户标识符的描述,正确的是(D)
A.不能区分大小写 B.用户标识符不能描述常量
C.类型名也是用户标识 D.用户标识符可以作为变量名
3.关于C语言的叙述中,不正确的是(D)
A.C程序可由一个或多个函数组成
B.C程序必须包含一个main()函数
C.C程序的基本组成单位是函数
D.注释说明只能位于一条语句的后面
4.若有说明语句:char C='\95';则变量C包含(D)个字符
A.1 B.2 C.3 D.语法错误
5.结构化程序设计不包括(A)
A.最优化 B.自顶而下,逐步细化
C.模拟化设计 D.结构化编码
6.结构化程序设计的三种基本语句是(C)
A.函数结构、分支结构、判断结构 B.函数结构、嵌套结构、平行结构
C.顺序结构、分支结构、循环结构 D.分支结构、循环结构、嵌套结构
7.关于C语言数据类型的叙述中,正确的是(C)
A.枚举类型是基本类型 B.数组不是构造类型
C.变量必须先定义后使用 D.不允许使用空类型
8.关于C语言的源程序的叙述中,错误的是(C)
A.C语言的源程序由函数构成 B.main函数可写在自定义函数后
C.必须包含有输入语句 D.一行可书写多个语句
9.下面叙述中,(A)不是结构化程序设计中的三种基本结构之一
A.数据结构 B.选择结构 C.循环结构 D.顺序结构
10.char型变量存放的是(A)
A.ASCII码值 B.字符本身 C.十进制代码值 D.十六进制代码值
11.int a; char c1,c2; scanf("%d,%c,%c", &a, &c1, &c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(B)
A.10AB B.10,A,B C.10A B D.10 AB
12.以下叙述不正确的是(D)
A.C程序的执行总是从main函数开始 2 B.一个C源程序必须包含1个main函数
C.C语言程序的基本组成单位是函数
D.在编译C程序源程序时,可发现注释中的拼写
13.int a, b; scanf("%d, %d", &a,&b);
若要求a、b的值分别为10和20,正确的数据输入是(B)
A.10 20 B.10, 20 C.a=10, b=20 D.10;20
14.在C语言源程序中,以下叙述正确的是(C)
A.main函数必须位于文件的开头
B.每行只能写一条语句
C.程序中的每一语句可以写成几行
D.每个语句的最后必须有点号
15.对于C语言源程序,以下叙述错误的是(C)
A.可以有空语句
B.函数之间是平等的,在一个函数内部不能定义其它函数
C.程序调试时如果没有提示错误,就能得到正确结果
D.注释可以出现在在语句的前面
16.下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点
A.先判断后执行 B.单入口,单出口
C.程序中没有执行不到的语句 D.无死循环
17.int x=1234, y=123, z=12;则printf("%4d+%3d+%2d", x,y,z);运行后的输出结果为(D)
A.123412312 B.12341234123412341231231231212
C.1234+1234+1234 D.1234+123 +12
1.2 数据类型、运算符和表达式
1.int x=2; y=3; float i; 则以下符合C语言语法的表达式是(B)
A.x=x*3=2 B.x=(y==1) C.i=float(x) D.i%(-3)
2.int a=5, b=2, c=1;则表达式a-b
A.0 B.1 C.2 D.-1
3.float x=3.5; int z=8; 则表达式x+z%3/4的值是(B)
A.3.75 B.3.5 C.3 D.4
4.int a=1, b=2, c=3;语句++a || ++b && ++a运行后b的值为(D)
A.1 B.0 C.2 D.3
5.对于整型变量x,下述语句(B)与x=x%2==0 ? 1 : 0;不等价
A.if(x%2!=0)x=0; else x=1; B.if(x%2)x=1; else x=0;
C.if(x%2==0)x=1; else x=0; D.if(x%2==1) x=0; else x=1;
6.下面语句正确的是(B、C)
A.int *p; *p=20;
B.char *s="abcdef"; puts(s);
C.char str[]="abcdf"; puts(str);
D.char str[]={ 'a', 'b', 'c' }; printf("%s", str);
7.int a=2;则正确的赋值表达式是(A)
A.a-=(a*3) B.double(-a) C.a* D.a*4=3
8.int m=5, n=3;则表达式(m+1, n+1, (--m)+(n--))的值是(B) 3 A.6 B.7 C.8 D.9
9.对于基类型相同的两个指针变量之间,不能进行的运算是(C)
A.< B.= C.+ D.-
10.int a;则语句a=(3*4)+2%3;运行后a的值为(B)
A.12 B.14 C.11 D.17
11.下面叙述中,错误的是(A)
A.其算术运算对象不包含函数
B.%的运算对象只能为整型量
C.算术运算的结合方向是“自左向右”
D.++和--运算符的结合方向是“自右向左”
12.已知int a='R';则正确的表达式是(A)
A.a%10 B.a=int(3e2) C.2*a=a++ D.a=a+a=a+3
13.已知double a=5.2;则正确的赋值表达式是(A)
A.a+=a-=(a=4)*(a=3) B.a=a*3=2
C.a%3 D.a=double(-3)
14.以下语句中x的值一定被重新赋值的是(B)
A.if(x==y) x+=y;
B.if(x>y&&x!=y); x+=y;
C.if(x!=y) scanf("%d", &x) else scanf("%d", &y);
D.if(x
15.设有double型变量a、b、c、e均有值,对代数式(3ae)/(bc),不正确的表达式是(C)
A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3
16.以下运算符中优先级最高的是(D)
A.> B.|| C.&& D.+
17.int a,b; double x;则以下不符合C语言的表达式是(A)
A.x%(-3) B.a+=-2 C.a=b=2 D.x=a+b
18.int a[3][3];则表达式&a[2][1]-a的值为(B)
A.7 B.8 C.6 D.9
19.以下(D)是正确的变量名
A.a.bee B.-P11 C.int D.P_11
20.若有定义int a=1, b=2, c=3, d=4, x=5, y=6;则表达式(x=a>b) && (y=c>b)的值为(A)
A.0 B.1 C.5 D.6
21.以下(D)是正确变量名
A.5f B.if C.f.5 D._f5
22.int x=3, y=4, z=5;则值为0的表达式是(D)
A.'x' && 'y' B.x<=y
C.x||y=z && y-z D.!((x
23.int x, a;则语句x=(a=3,a+1);运行后x、a的值依次为(C)
A.3、3 B.4、4 C.4、3 D.3、4
24.int a,b;则表达式(a=2, b=5, a*2, b++, a+b)的值是(B)
A.7 B.8 C.9 D.10
25.int a=2, b=3; float x=3.5, y=2.5;则表达式(float)(a+b)/2 + (int)x%(int)y的值是(A)
A.3.5 B.3.0 C.2.5 D.2.0
26.以下(B)是错误的整型常量 4 A.-0xcdf B.018 C.0xe D.011
27.语句a=(3/4)+3%2;运行后a的值为(B)
A.0 B.1 C.2 D.3
28.int a=5;使b不为2的表达式是(C)
A.b=(++a)/3 B.b=6-(--a) C.b=a%2 D.b=a/2
30.下面叙述正确的是(B)
A.2/3与2.0/3.0等价 B.(int)2.0/3与2/3等价
C.++5与6等价 D.'A'与"A"等价
31.getchar()函数的功能是从终端输入(D)
A.一个整型量值 B.一个实型变量值 C.多个字符 D.一个字符
32.int i=7, j=8; 则表达式i>j||i
A.1 B.变量i的值 C.0 D.变量j的值
33.int i, j;则表达式(i=2, j=5, i++, i+j++)的值是(B)
A.7 B.8 C.9 D.10
34.若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”,则不能满足要求的表达式是(C)
A.a%2==1 B.!(a%2==0) C.!(a%2) D.a%2
35.下面叙述正确的是(A)
A.强制类型转换运算的优先级高于算术运算
B.若a和b是整型变量,(a+b)++是合法的
C."A"*'B'是合法的
D."A"+"B"是合法的
36.以下程序段运行后变量a的值为(D)
int x=6, y=5, a; a=(--x==y++)? x : y+1;
A.0 B.1 C.6 D.5
37.下面程序段的运行结果是(D)
int a =5, b=6; printf("%d", a/b);
A.5 B.6 C.7 D.0
38.以下程序的运行结果是(D)
void main(){ int a=65; char c='A'; printf("%x,%d", a,c); }
A.65,a B.41,a C.65,65 D.41,65
1.3 选择结构程序设计
1.嵌套else总是与(B)配对
A.第1个if B.之前最近且尚未配对
C.缩进位置相同的if D.之前最近的if
2.以下语句中,无内嵌的if语句是(D)
A.if(x==y) x+=y;
B.if(x>y&&x!=y) x+=y;