一、选择题
1. 设有定义:
紧接着的赋值语句正确的是( )。
A. B. C. D.
答:A
【解析】指针赋值的正确写法:
指针。
2. 以下选项中叙述正确的是( )。
A.C 语言的标识符可分为关键字、预定义标识符和用户标识符三类
B.C 语言的标识符可分为语句、变量和关键字三类
C.C 语言的标识符可分为函数名、变量和预定义标识符三类
D.C 语言的标识符可分为运算符、用户标识符和关键字三类
答:A
【解析】C 语言的标识符可分为关键字、预定义标识符和用户标识符三类,A 项正确,B 、C 、D 项错误。
3. 有以下程序:
程序运行后的输出结果是( )。
A.654321
B.116611
C.161616
第 2 页,共 33 页 表示p 指向x 的存储单元;表示p 是空
D.123456
答:A
【解析】函数fun 的功能是,将数组的第一个元素与最后一个元素进行比较,将大者放到前面,再将数组的第二个元素与倒数第二个元素进行比较,同样,大者放到前面,由于数组原来是按从小到大顺序排列的,故通过程序输出的是654321。
4. 构成C 程序的三种基本结构是( )
A. 序结构、转移结构、递归结构
B. 顺序结构、嵌套结构、递归结构
C. 顺序结构、选择结构、循环结构
D. 选择结构、循环结构、嵌套结构
答:C
【解析】结构化程序由三种基本结构组成:顺序结构、选择结构和循环结构。已经证明,由三种基本结构组算法可以解决任何复杂的问题。
5. 若变量x 、y 已正确定义并赋值,以下符合C 语言语法的表达式是( )。
A.x+l=y
B.++x, y=x--
C.x=x+10=x+y
D.double (x )/10
答:B
【解析】B 项正确,++x是前缀表达式,y=x--是复合语句,先进行x--, 然后把自减后的值赋给y 。A 项错误,x+1是右值,不能被赋值;C 项错误,x+10是右值,不能被赋值;D 项错误,应改成(double )x/10, double (x )/10是表示声明了一个double 变量,它名字是(x )A0,显然不符合C 语言语法。
6. 若有定义语句intx=12,y=8,z ;,
其后执行语句
A.1.9
B.1
C.2
D.2.4
答:B
由于z 定义为整型,故最终结果为1。
7. 有以下程序:
第 3 页,共 33 页 则z 的值为。 【解析】根据优先级先计算x/y, 即12/8,由于是整型,故x/y的值为1,接着计算0.9+1=1.9,
程序的运行结果是( )。
A. B. C. D.
答:A
,【解析】函数facl 中嵌套函数fac2, fac2为递归函数。程序执行过程为:调用函数facl (3)
,输出输出3>0 成立,调用函数fac2 (2)
,输出用fac2 (0)
用结束。程序的运行结果是:
故A 项正确。
在C 语言中的正确写法是( )。 ,输出成立,调用fac2 (1)成立,调,再返回fac2 (2), 再返回facl (3),函数调不成立,返回fac2 (1)8. 设x 、y 、z 均为实型变量,代数式
A.x/y+z
B.x%y%z
C.x/y/z
D.x*z/y
答:C
【解析】X 、/的结合顺序是从左到右,所以x 先除以y , 再除以z 。
9. C 语言主要是借助以下( )功能来实现程序模块化的。
A. 定义函数
B. 定义常量和外部变量
C. 三种基本结构语句
D. 丰富的数据类型
答:A
【解析】C 程序的模块化主要通过函数来实现。C 语言允许对函数单独进行编译,从而可以实现模块化。
10.有以下程序:
第 4 页,共 33 页