2017年南京林业大学林学院809C程序设计考研仿真模拟题
● 摘要
一、选择题
1. 表达式:(int )((double )9/2-(9)%2)的值是( )。
A.0
B.3
C.4
D.5
【答案】B
,【解析】运算符“/”“%”的优先级高于“-”故先进行除法和求余运算,再进行减法运算。
强制类型转换表达式的形式为:(类型名)(表达式)。“9/2”转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。
2. 有以下程序
程序的输出结果是( )。
A.7 1
B.4 3
C.3 4
D.0 0
【答案】A
【解析】main 函数中变量c 和d 以传地址的方式传递参数,形参的改变会导致实参的改变。
3. 下面的函数调用语句中func 函数的实参个数是( )。
A.3
B.4
C.5
D.8
【答案】A
【解析】函数调用中,实参有多个时,它们之间应该用逗号分隔。本题中的实参有3个,
为其中
逗号表达式做参数,是函数做参数,是是逗号与函数相结合做参数。
4. 若有以下程序
则程序的输出结果是( )。
A.1, 2
B.0, 2
C.1, 3
D.2, 3
【答案】A 【解析】是先判定a 是否等于0, 如果a 等于0, 跳出循环;否则进入循环;但是不管判定是否成功,判定结束后都要执行a++操作。
第一次循环,a 等于-2, 满足条件,执行a++,++b, a 变成-1,b 变成1;
第二次循环,a 等于-1,满足条件,执行a++,++b, a 变成0,b 变成2;
第三次循环,a 等于0, 不满足条件,执行a++,a 变成1,b 仍然是2。
5. 有以下程序
程序的输出结果是( )。
A. B. C. D.
【答案】C
【解析】在格式控制中用%%表示,将输出一个%符号。
6. 设有定义以下选项中能够使字符型指针c 正确指向一个字符串的是( )。
A. B. C. D.
【答案】A
【解析】scanfO 函数是将C 定义为一个字符数组的数组名,选项C 是将c 定义为一个字符型变量,选项 D 应该是在指针的定义同时为它赋值,否则是不合法的。选项A 中定义字符数组str ,
再将字符数组stt 的首地址 赋给字符型指针C 。
7. 设有定义语句则以下叙述中正确的是( ) 。
A.f 是基类型为int 的指针变量
B.f 是指向函数的指针变量,该函数具有一个int 类型的形参
C.f 是指向int 类型一维数组的指针变量
D.f 是函数名,该函数的返回值是基类型为int 类型的地址
【答案】B
【解析】在C 语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这类地址,int Of) (int ); ,其中f 为指向函数的指针变量,指向有一个整型变量且返回值也为整型的函数,第一个int 为函数 返回值的类型,第二个int 为函数的形参类型。
8. 以下叙述中正确的是( )。
A. 简单递归不需要明确的结束递归的条件
B. 任何情况下都不能用函数名作为实参
C. 函数的递归调用不需要额外开销,所以效率很高
D. 函数既可以直接调用自己,也可以间接调用自己
【答案】D
【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。
9. 以下关于C 语言数据类型使用的叙述中错误的是( )。
A. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
B. 若要保存带有多位小数的数据,可使用双精度类型
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D. 整数类型表示的自然数是准确无误差的
【答案】A
【解析】A 项错误,C 语言中没有逻辑类型,在中才引入的;B 项正确,float 类型称为单精度类型,double 类型称为双精度类型,一般系统中,为float 类型的变量分配4个字节的存储单元,为double 类型的变量分配8 个字节的存储单元。C 项正确,struct 结构体,可以用来描述包含多种基本类型的复杂对象。
10.有以下程序: