一、选择题
1. 设有定义:
若变量均已正确赋初值,则以下语句中错误的是( )。
答:A
【解析】A 项错误,struct 中的mark 成员是数组,数组一旦定义,不能直接赋值。B 项正确,numl 是int 变量,可以直接赋值。C 项正确,C 语言中struct 变量可以直接赋值,实际操作是内存拷贝;D 项正确,num2是int 变量,可以直接赋值;C 语言中,数组不能直接赋值,但是把数组包装在struct 中,就可以实现直接赋值。
2. 以下选项中,合法的C 语言常量是( )。
答:A
【解析】整型常量:用不带小数点的数字表示。实型常量:用带小数点的数字表示。字符型常量:用带有单引号的一个字符表示。字符串常量:用一对双引号括起来的一串字符。A 选项正确。
不合法,若改成
则为字符串常量,B 选项错误。
何类型常量,C 选项错误。2Kb 不合法,若加上双引号
3. 有以下程序:
第 2 页,共 36 页
为实型常量,不合法,不是任
为字符串常量,故D 选项错误。
程序运行后的输出结果是( )。
答:D
,在【解析】D 项正确,main 函数中,首先为结构变量a ,b 初始化,再调用函数f ( )f ( )函数中,使用结构体变量a 对指针b 指向的结构体进行赋值,使得指针b 指向的结构体成员依次赋值为结构体a 的成员,然后依次输出指针b 指向的结构体成员的值;由于f 函数形参b 为指针,所以指针b 指向的值被修改为a 的同时,main 函数中的实参b 的值也被修改成a 。
4. 以下叙述中正确的是( )。
A.C 程序的基本组成单位是语句 B.C 程序中的每一行只能写一条语句 C. 简单C 语句必须以分号结束 D.C 语言必须在一行内写完 答:C
【解析】C 程序的基本组成单位是函数,A 项错误;C 程序以分号作为每个语句结尾,一行能写多条语句, 也可以将一条语句分几行书写,BD 两项错误;而简单C 语言语句必须以分号结束,所以C 项正确。
5. 以下选项中,不能对主函数中变量i 和j 的值进行交换的程序是( )。
}
}
}
第 3 页,共 36 页
;
答:A
【解析】选项A ,定义了一个临时指针,实现两个指针地址的交换,而传入了参数是二个指针的副本,即a 、b 地址的副本,故交换了副本地址,对a 、b 无影响,故选择A 选项。B 选项调用函数传人的是i 与j 地址,函数体内交换是地址内元素,临时变量为整型变量,能实现i 与j 值交换。C 选项调用函数传入的是i 与j 地址,函数体内交换是地址内元素,临时变量为整型指针,且已正确开辟内存,能实现i 与j 值交换。D 选项与B 选项相同,能实现i 与j 值交换。
6. 有以下程序:
第 4 页,共 36 页