2016年浙江师范大学数理与信息工程学院C程序设计复试笔试仿真模拟题
● 摘要
一、选择题
1
.
有
如
程序运行后的输出结果是( )。 A.2.0 B.1.7 C.2 D.1 答:D
【解析】在类型转换过程中,如果较高类型转换成较低类型,直接忽略多余位数。在程序执,行过程为:调用函数sub (3.8,2.1. , 3.8—2.1=1.7(double 类型)(int )强制转换将1.7转换成int 类型1, 然后返回1并输出,故D 选项正确。
2. 有以下程序
程序的运行结果是( )。 A.a=2.b=l B.a_2,b-2 C.a=l, b=l D.a=l, b=0 答:A
【解析】当执行swicth 语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch 语句体内寻找与该值吻合的case 标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case 和default 中的语句,直到switch 语句体结束;每当执行到break 语句时,
第 2 页,共 34 页
下程序
:
立即跳出switch 语句体。switch 语句通常总是和break 语句联合使用,使得switch 语句真正起到分支的作用。x=l,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=l,接下来遇到break ,跳出内层switch ; 由于外层分支中没有break 语句,会继续执行外层分支2,执行a++, b++,此时a=2, b=l; 然后遇到break 语句,跳出外层switch 。
3. 以下不能正确表示代数式
A.2*a*b/c/d B.a*b/c/d*2 C.a/e/d*b*2 D.2*a*b/c*d 答:D
【解析】*、/优先级相同,所以采用从左到右结合的方式。D 项,应该改为:2*a*b/(c*d)。
4. 有如下程序:
程序运行后的输出结果是( )。 A.4, 4, 4 B.1, 4, 8 C.0, 0, 0 D.1, 2, 4
答:A
【解析】sizeof 函数用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。 由于一个变量的地址也是一个值,因此就可以把这个地址值存放到另一个变量里保存。这种专门用来存放变量地 址的变量,称为“指针变量”。所有类型的指针变量都是地址,所占字节数均为4, 故A 项正确。
5. 有以下程序:
第 3 页,共 34 页
的C 语言表达是( )。
程序运行后的输出结果是( )。 A.0 B.2 C.3 D.5 答:B
【解析】for 循环是统计字符串中小写字符的个数,字符串s 中有两个小写字母,所以输出结果为2。
6. 有以下程序:
程序的运行结果是( )。
A. B. C. D. 答:A
,【解析】函数facl 中嵌套函数fac2, fac2为递归函数。程序执行过程为:调用函数facl (3),输出输出3>0 成立,调用函数fac2 (2),输出用fac2 (0)
,输出成立,调用fac2 (1)
成立,调
,再返回fac2 (2), 再返回facl (3),函数调不成立,返回fac2 (1)
用结束。程序的运行结果是:故A 项正确。
7. 关于C 语言的变量名,以下叙述正确的是( )。
A. 变量名不可以与关键字同名 B. 变量名不可以与预定义标识符同名 C. 变量名必须以字母开头 D. 变量名是没有长度限制的 答:A
【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C 语言保留的,不能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A 项正确。预定义标识符是系统已经有过定义的标识符,用户可以重新定义,所以可以作为变量名,B 项错误。变量名除了以字母开头以外,还可以以下划线开头,
第 4 页,共 34 页