一、选择题
1. 以下关于指针的叙述正确是( )。
A. 所有类型的指针变量所占内存的大小是一样的
B. 指针变量所占内存的大小与其类型有关,char 型指针变量只占1个字节,double 型指针变量占8个字节
C. 指针变量可直接指向任何类型的变量,而不会出现编译或运行错误
D. 指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会出现编译或运行错误
【答案】A
【解析】专门用来存放变量地址的变量称为“指针变量”,所有地址值所占字节都是一样的,故指针变量所占内存大小一样,A 选项正确,B 选项错误。由于一个变量的地址(指针)还隐含有这个变量的类型信息,所以不能随意把一个地址存放到任何一个指针变量中去,只能把具有相同类型的变量的地址,存放到这个指针变量中, 结构体变量与某个成员类型不同,不能用同样的指针指向它们,C 、D 选项错误。
2. 若有说明和语句:
A. B. C. 的地址
D. 不确定的值 【答案】A
【解析】定义字符数组并为其初始化,str 数组前5个元素为Hello ,
第六个元素自动赋值为
定义指针使等于字符串首地址,
3. 有以下程序:
第 2 页,共 40 页
则此时中的值为( )。
指向字符串第六个元素。
程序的运行结果是。(口代表一个空格) A.10,12,a B. □□0,012,a C.010,12,a D. □□10,12,a 【答案】D
【解析】%4d 表示先输出十进制,共占4个字符,而10已占2个字符,故先输出2个空格,然后输出10; %0表示输出八进制,10的八进制为12; 表示输出十六进制,即a 。
4. 有以下程序:
程序运行后的输出结果是( )。 A.256 B.652 C.2560 D.52
【答案】A
【解析】程序的执行过程为:调用函
数
即
回
输出字符
是256, 故A 项正确。
5. 有以下程序:
第 3 页,共 40 页
即条件成立,调
用
返
条件成立,
调用返回
输出字符
条件不成立,跳出循环,输出字符
函数调用结束。程序运行后的输出结果
程序的运行结果是( )。
【答案】C
【解析】调用f 函数时,将结构体数组名作为实参传给了形参指针,使结构体指针a 指向了结构体C 的首地址。因此,在f 函数中,对指针所指结构体中的成员的赋值就是对数组c 中元素的赋值,故返回主函数之后,数组c
中成员的值已被更新,
最终输出结果为
6. 设有定义_以下能给数组x 下标为6的元素读入数据的正确语句是( ) 。
A. B. C. D.
【答案】C
A 项,【解析】
元素类型为double , 所以输入
B 项,,有误:虽然x+6为指针,但*(x+6)
并非地址;D 项,使用p[6]表7K 的不是地址,方式不正确。
7. 有以下程序
程序运行后的输出结果是( ) A.3 5 7 B.7 5 3 C.3 6 9 D.7 5 1 【答案】A 【解析】依次输出
8. 有如下程序:
第 4 页,共 40 页