2016年南京财经大学信息工程学院C程序设计复试笔试最后押题五套卷
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL
B. 函数可以返回地址值
C. 改变函数形参的值,不会改变对应实参的值
D. 可以给指针变量赋一个整数作为地址值
答:D
【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
2. 若变量已正确定义,则以下for 循环( ):
A. 执行4次B. 执行3次
C. 执行次数不确定
D. 执行123次
答:C
【解析】
优先级低于
逻辑与表达式。规则为:对expl 求值,若为0, 则表达式为0, 则不计算exP2; 若expl 非0, 则求exP2值,作为表达式值。本题计算过程为:先判断a>b为假,m=0, 整个逻辑表达式为假,不计算右表达式,n=2。故C 选项正确。
3. 下面结构体的定义语句中,错误的是( )。
答:B
【解析】C 语言中结构体变量的定义有3种方法:①定义结构体类型的同时定义结构体变量,如C 项;②使 用无名结构体类型定义结构体变量,如D 项;③先定义结构体类型,后定义结构体变量,如A 项。
4. 以下叙述中错误的是( )
A.C 程序在运行过程中所有计算都以十进制方式进行
B.C 程序在运行过程中所有计算都以二进制方式进行
C. 所有C 程序都需要编译链接无误后才能运行
D. C 程序中字符变量存放的是字符的
答:A
【解析】C 程序在运行过程中所有计算都以二进制方式进行。
5. 有以下程序:
程序的运行结果是( )。
A.1, 0, 1, 0
B.1, 1, 0, 1
C.1, 0, 0, 1
D.1, 1, 1, 0
答:A
【解析】本题程序执行过程为:
求解逻辑表达式先求解++a,a=l,则整个表达式为真,不计算++b,然后求解++c,不计算++d,最后得到a=l,b=0, c=l,d=0,故A 项正确。
6. 有以下程序(其中k 的初值为八进制数):
程序运行后的输出结果是( )。
A.12
B.11
C.10
D.9
答:D
【解析】k 的初值是八进制数011,转换为十进制数就是9,在输出时自增运算符“++”是作为后缀出现的,因此是先输出9,然后k 的值再自增1。
7. 有以下函数
值
该函数的功能是( )。
A. 计算S 所指字符串占用内存字节的个数
B. 比较两个字符串的大小
C. 计算s 所指字符串的长度
D. 将S 所指字符串复制到字符串t 中
答:A
【解析】本题中,首先让t 指向形参s , 然后通过一个循环体为空的while 循环,将t 逐次后移,直到其所指内容为(字符串结束标志)。此时t 仍然会被曾1, 所以从循环出来,t 指向的是s
是8所指字符串占用内存字节的个数,A 所指字符串的结束标志的后一个字节。因此,返回的
项正确。而C 项所说的长度并不包括字 符串结束标志位,错误。
8. 有以下程序:
程序的运行结果是( )。
A.D
B.C
C.B
D.A
答:A
【解析】A 项正确,main ( )函数中,首先判断条件x>l,因为x=l不大于1,不满足条件,程序跳入else 语句判定z 9. 以下叙述中错误的是( )。 A. 在程序中凡是以“#”开始的语句行都是预处理命令行 B. 预处理命令行的最后不能以分号表示结束 C.#defineMAX是合法的宏定义命令行 D.C 程序对预处理命令行的处理是在程序执行的过程中进行的 答:D ,其中的末尾不得用“;【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行”” 结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。