2017年浙江工商大学C程序设计考研复试核心题库
● 摘要
一、选择题
1. 在C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。
A.auto 和 register B.extern 和 register C.auto 和 static D.static 和 register 【答案】A
【解析】C 语言中,动态存储区域中存放的变量在使用时才分配内存空间,函数调用时返回auto 变量的储存处单元是分配在内存的动态的地址和自动类 局部变量等存放在动态存储区域中。
存储区中,每当进入函数体时自 动分配存储单元。register 变量也是自动类变量, 。static 说明的变extern 量为静态变量,静态变量在内存的静态存储中 占据着永久的存储单元,直至程序运行结束。说明的变量为外部变量,属于全局变量,全局变量在整个程 序运行期间都占用内存空间。
2. 以下叙述中正确的是( )。
A. 函数的形参类型不能是指针类型 B. 函数的类型不能是指针类型 C. 设有指针变量为【答案】C
【解析】C 项正确,一般情况下,double 类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A 项错误,函数的形参可以是数值类型,也可以是指针类型;B 项错误,C 语言中有指向函数的指针,称为函数指针;D 项错误,int 类型的指针只能指向int ,不能指向double ,指针变量不能混用。
3. C 语言程序中,运算对象必须是整型数的运算符是( )。
A.&& B./ C.% D.*
【答案】C 【解析】模运算中不能出现浮点数,运算对象只能是整数。
4. 有以下程序:
第 2 页,共 26 页
则p+1将指针p 移动8个字节
D. 基类型不同的指针变量可以相互混用
程序运行的结果是( )。 A.10, 1 B.20, 1 C.10,2 D.20, 2 【答案】C
【解析】题目首先定义结构体st 的同时定义结构体数组data ,可
知
结构体指针p 指向数组的首地址,指向
的第二个元素data[l],
然后输出
5. 若有以下程序
则程序的输出结果是( )。 A.13 B.10 C.11 D.15
【答案】C
即输出
则指向数组
所以分别为10和2。
【解析】default 也是关键字,起标号的作用,代表所有case 标号之外的那些标号。default 标号可以出现在语句体中任何标号位置上。在switch 语句体中也可以没有default 标号。
先判定case 语句,如果没有与判定值相等的标号,并且存在default 标号,则从default 标号后的语句开始执行。如果default 语句没有break ,则其下面的case 语句不加判定的继续执行(default 位置在case 前面时),直到遇到break 或switch 结尾。
①n=0,执行default ,s=4,没有遇到break ,不与case 标号比较,直接执行case 后的语句,s=5,遇到break ,跳出循环;
第 3 页,共 26 页
②n=l,s+=l,s=6; ③n=2»s+=2, s=8;
④n=Ls+=3,s=11。
6. 以下不合法的字符常量是( )。
A. B. C. D. 【答案】A
【解析】在C 语言中,含义,仅仅代的转义,
表示转义符,可以对特殊符号进行转义,此时特殊符号不再有其他
表示换行,
表示Tab 键。A 项,是指十六进制数cc 。
表示两位的八进
表普通的字符,\后面的字符取值范围应该在Ascn 码表范围。例如. 表示对双引号
表示对转义符的转义,
制数,8不是合法的八进制数字。B 项,表示双引号这个特殊字符;C 项,表示转义符这个特殊字符;D 项,
7. 有以下程序
表示两位十六进制数,
程序的运行结果是( )。 A.345678 B.876543 C.1098765 D.321678 【答案】D
【解析】函数fun 的作用是交换对其修改,在函数外部也会发生作用。互换,执行完成后,数组k 变成
8. 有以下程序
第 4 页,共 26 页
与的值,数组是以指针的形式传递的,在函数内部的作用是把数组k 中的
,把
到
和,
互换,
和
输出,得到321678。