一、选择题
1. 设a , b,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。
答:A
【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类 型相同才能实现赋值。A 项中,赋值运算能被赋值,A 项错误。B 项运算过程为,先赋值句。C 项运算过程为,先计算
程为,先将2赋给c , 再将c 赋给b ,然后计算
2. 有以下函数:
程序运行后的输出结果是( )。 A.zhang B.zhao C.wang D.19 答:B
x+2代表了指向第三个元素的指针,【解析】结构体数组存储了三个人的信息,所以输出name 为Zhao 。
3. 有以下程序:
第 2 页,共 33 页
左值为表达式,不是变量不将结果赋给a ,是正确的赋值语
再计算
将结果赋给b ,再将b 赋给a ,是正确的赋值语句。D 项运算过
将结果赋给a ,是正确的赋值语句。
程序的运行结果是( )。 A.5, 1 B.1, 1 C.18, 1 D.13, 1 答:A
【解析】
’按位与运算,13=11018, 5=1018, 执行语句
结果为101B=5, 即c=5
。
逻辑与运算,10与5均为真,结果为真,即d=l。故A 选项正确。
4. 有以下程序段
若要求使p 指向一个int 型的动态存储单元,在横线处应填入的是( )。 A.int
B. (int*) C.int*
D. (*int) 答:B
C 语言标准规定malloc 函数返回值的类型为void*,malloc ,【解析】函数的调用形式为:(size )size 的类型为unsignedint 。p 是指向int 型的指针,要把void*强制转换成int*。
5. 以下叙述中正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面 B.C 程序书写格式严格,要求一行内只能写一个语句 C.C 程序书写格式自由,一个语句可以写在多行上 D. 用C 语言编写的程序只能放在一个程序文件中 答:C
【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。
6. 有以下程序:
程序运行后的输出结果是( )。
第 3 页,共 33 页
A.02 B.13 C.57 D.12 答:D
【解析】(表达式1)
(表达式2)中,如果表达式1为假或0, 那么表到式2就不会被执
和
为零,不满足循环条件,所以
不
行。本题中首先进入while 的判断语句,执行
会被执行,while 循环结束后,k 经过运算自增为1, n没有进行运算,仍为2。
7. 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是( )。
A. B. C. D. 答:A
【解析】将字符指针变量初始化为一个字符串有两种方式,一种通过赋值运算使一个字符指针指向一个字符串常量:
并且初始化为一个字符串的首地址:变量,所以不能给一个数组名赋值,
如
A 选项正确。另一种是定义一个字符指针变量,
字符指针变量与字符数组都可以用来实错误,B 选项错误;(2. 字符型的指针变
现字符串的存储和运算,但二者是有区别的:(1. 数组名是一个地址常量,而字符指针变量是一个量的值是可以改变的;(3. 字符指针变量和字符数组在内存中的 存储情形不同,数组指的是按照数组长度分配的若干存储空间,而指针只是一个存储字符串首地址的存储空间,所以相同类型指针可以相互赋值,而数组不能直接用“=”赋值,C 选项错误。数组不可以直接赋值字符 串
.
合法,故D 选项错误。
8. 程序段:
A.123.141593 B.123.141493 C.12, 3.141593 D.123.1415930 答:A
【解析】输出的x 与y 之间没有空格,保留6位。
9. 有以下程序:
第 4 页,共 33 页
不合法,只有在数组初始化时可以直接赋值,
如
合法,并且定义数组时必须指定数组长度,
不
的输出结果是( )。
代表输出字符型数据,y 的格式应为小数点后