2018年宁波大学信息科学与工程院914C程序设计[专硕]考研核心题库
● 摘要
一、选择题
1. 以下叙述中正确的是( )。
A. 函数的形参类型不能是指针类型
B. 函数的类型不能是指针类型
C.
设有指针变量为
【答案】C
【解析】C 项正确,一般情况下,double 类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A 项错误,函数的形参可以是数值类型,也可以是指针类型;B 项错误,C 语言中有指向函数的指针,称为函数指针;D 项错误,int 类型的指针只能指向int ,不能指向double ,指针变量不能混用。
2. 有以下程序
执行后的输出结果是( )。
A.32
B.24
C.5
D.40
【答案】A
【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1之前的值)是否能被5整除(判断后i 被加1),然后再判断++i的值(i 加1之后的值)是否能被8整除(判断后i 被加1),若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。
第 2 页,共 60 页 则p+1将指针p 移动8个字节 D. 基类型不同的指针变量可以相互混用
3. 若有定义语句intb=2;, 则表达式
A.4
B.8
C.0
D.2
【答案】
B
值为真即为1, 最后计算8/1的值,为8。
4. 有以下程序
程序运行后的输出结果是( )。
A.2,3,1
B.2,3,2
C.2,3,3
D.2,2,1
【答案】A
【解析】对于表达式“z=x++,y++,++y; ”,赋值运算符的优先级高于逗号运算符的优先级,可改成“(z=x++),(y++),(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。
5. 有以下程序(其中k 的初值为八进制数):
程序运行后的输出结果是( )。
A.12
B.11
C.10
D.9
【答案】D
【解析】k 的初值是八进制数011,转换为十进制数就是9,在输出时自增运算符“++”是作
第 3 页,共 60 页 的值是( )。 【解析】b=2, 转为二进制即为0010,首先将b 左移两位,变成1000,即十进制的8, 3llb 的
为后缀出现的,因此是先输出9,然后k 的值再自增1。
6. 若有定义inta=l,b=2,c=3;II ,则执行表达式(a=b+c)(++b)后a 、b 、c 的值依次为( )。
A.1、2、3
B.5、3、2
C.5、2、3
D.5、3、3
【答案】C
【解析】根据优先级规则,晒边都是括号,则从左至右执行括号中的表达式,将b+c的值赋值给a ,即a 为5, 不为0, 则II 右边的括号不需要再执行。
7. 有以下程序段:
则的值为( )。
A.5
B.10
C.12
D. 无法确定
【答案】A
【解析】当直接用数组名给指针赋初始化值时,表示把数组首地址的值赋给指针,
把
8. 执行以下程序段后,w 的值为( )。
A.-1
B.NULL
C.1
D.0
【答案】C
【解析】
因为
真,因此
9. 有以下程序:
第 4 页,共 60 页 表示
地址赋给表示将数组第5
个元素地址赋给故答案为A 选项。 都是非零整数,
因此的值为1。 又因为知也为