一、选择题
1. 以下关于指针的叙述,错误的是( )。
A. 两个基类型相同的指针变量不能指向同一个对象 B. 可以通过对指针变量自增、自减来移动指针 C. 只有两个类型相同的指针才能进行减运算
D. —个指针变量可以通过不同的方式获得一个确定的地址值 答:A
【解析】只要两个指针变量基类型相同,可以指向同一个对象,A 项正确。
2. 以下选项中,当x 为大于1的奇数时,值为0的表达式是( )。
答:D 【解析】x 为大于1的奇数,
3. 有以下程序:
的值为1,
^为假。
程序运行后的输出结果是( )。 A.we
B.How are you! C.ay D.we! 答:A
【解析】for 语句循环体执行功能是,每次当给
第 2 页,共 35 页
元素为时,自动将
上一个单元内容赋值
赋值完成后,j 值加1,因此的和分别赋值给
4. 有以下程序
程序的输出结果是( )。 A.8 B.5 C.7 D.6 答:D
【解析】C 语言中的标识符区分大小写,pad 只实现了一次自增操作,结果输出6。 5 设有如下定义
则以下错误引用结构体成员n 的是( )。
.
答:A
【解析】可用以下3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:①结构体变量名. 成员名;②指针变量名->成员名;③(*指针变量名). 成员名。题目中a 为数组名是地址常量,不是指针变量,A 项引用错误。a[0]为变量名,B 项引用正确。p 为指针,且正确的指向结构体变量,C 项引用正确。D 项符合第三种引用方式,引用正确。
6. 有以下程序:
第 3 页,共 35 页
程序运行时,从键盘输入A. B. C. D. 答:A
输出结果是( )。
【解析】首先定义了一个指针p 指向数组的首地址,在while 语句中,执行功能是如果当前指针指向地址单 元内字符不等于空字符变换的字符常量,A 项正确。
7. 有如下程序:
程序运行后的输出结果是( )。 A.10, 6, 4, 6 B.11, 6, 11, 6 C.11, 6, 1, 6 D.10, 1, 1, 7 答:A
【解析】由一维数组初始化的知识可知
,
据类型的变量在内存中所占字节数。strlen 函数统计字 符串长度,遇到
即
统计结束。字符指
函数用来获取类型或数据对象的长度,也即是一个这种数
针变量和字符数组在内存中的存储情形不同,数组指的是按照数组长度分配的若干存储空间,在内存中字符类型变量占1个字节;而指针只是一个存储字符串首地址的存储空间,指 针占4个字节。所以
8. 以下不是C 语言字符型或字符串常量的是( )
A.
B.
C.
D. 答:C
故A 项正确。
则输出#和指针对应地址元素的值在
码加2后
【解析】字符常量是用单引号把一个字符括起来,转义字符常量以一个反斜线开头后跟一个特定的字符或者对应的ASCII 值表示。字符串常量是由双引号括起来的一串字符。C 项既不是字符型常量,也不是字符串常量。AB 两项,均是字符串常量;D 项,是字符型常量。
第 4 页,共 35 页