2017年大连理工大学C程序设计考研复试核心题库
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 同一个数组中所有元素的类型相同
B. 不可以跳过前面的数组元素给后面的元素赋初值0
C. 定义语句
D. 若有定义语句
【答案】D
【解析】一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0, 当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。
2. 以下选项中关于程序模块化的叙述错误的是( )
A. 把程序分成若干相对独立的模块,可便于编码和调试
B. 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C. 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
D. 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
【答案】C
【解析】把一个大程序分解成若干相对独立的子程序,大大提高了程序编制的效率。软件编制人员在进行程序设计时,首先应当集中考虑主程序中的算法,写出主程序后再动手逐步完成子程序的调用。对于这些子程序也 可用调试主程序的同样方法逐步完成其下一层,就是自顶向下、逐步细化、模块化的程序设计方法。
3. 以下关于字符串的叙述中正确的是( )。
A.C 语言中有字符串类型的常量和变量
B. 两个字符串中的字符个数相同时才能进行字符串大小的比较
C. 可以用关系运算符对字符串的大小进行比较
D. 空串比空格打头的字符串小
【答案】D
【解析】字符串比较的方法是:依次对si 和S2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,
即由这两个字符决定所在串的大小(比较字符大小的依据是其值)。空格是一种字符,所以空串肯定比空格打头的字符串小。
第 2 页,共 25 页 给a 数组中所有元素赋初值0 编译时将忽略多余的初值 码
4. 函数调用语句:
A.1
B.4
C.5
D.2
【答案】D
的值。
5. 有如下程序:
程序运行后的输出结果是( )。
A.4, 5, 2, 4
B.4,4, 2,1
C.5,5,3,3
D.4, 5, 2, 3
【答案】A
【解析】strlen 函数统计字符串长度,遇到
由于字符串有效字符之后有一个
字节数为
正确。
6. 有以下函数
该函数的功能是( )。
A. 计算S 所指字符串占用内存字节的个数
B. 比较两个字符串的大小
C. 计算s 所指字符串的长度
D. 将S 所指字符串复制到字符串t 中
【答案】A
含有的实参个数是( )。 【解析】函数fun 参数列表中有两个参数,
分别是逗号表达式
的值与 统计结束。sizeof 用来获取类型或数据对象之前有效字符有4个,a 数组的长度,也即是一个这种数据类型的变量在内存中所占字节数。也会被放入数组,char 类型占一个字节,所以数组a 所占为指向字符串的指针,字符串长度为2, 指针类型变量所占字节数为4。故A 项
【解析】本题中,首先让t 指向形参s , 然后通过一个循环体为空的while 循环,将t 逐次后移,
第 3 页,共 25 页
直到其所指内容为(字符串结束标志)。此时t 仍然会被曾1, 所以从循环出来,t 指向的是s
是8所指字符串占用内存字节的个数,A 所指字符串的结束标志的后一个字节。因此,返回的
项正确。而C 项所说的长度并不包括字 符串结束标志位,错误。
7. 有以下程序:
程序运行后的输出结果是( )。
A.0
B.1
C.2
D.3
【答案】C
【解析】“++”和“一”运算,当以前缀形式出现时,贝U 先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。a 初始定义为1,b 为0,先执行--a ,结果为0,即if 判断为假,执行b+=2; ,然后输出b 的值。即b 为2。
8. 以下叙述中正确的是( )。
A. 在复合语句中不能定义变量
B. 对于变量而言,“定义”和“说明”这两个词实际上是同一个意思
C. 全局变量的存储类别可以是静态类
D. 函数的形式参数不属于局部变量
【答案】C
【解析】C 项正确,对于全局变量可使用extern 和static 两种说明符。A 项错误,在复合语句中定义的变量 是局部变量;B 项错误,“定义”(definition )是指给变量分配确定的存储单元,“说明”(dedaratkm )只是说 明变量的性质,而并不分配存储空间;D 项错误,函数的形式参数只能在函数内部被识别,属于局部变量。
二、设计题
9. 函数fun 的功能是:将8所指字符串中除了下标为奇数、同时ASCII 值也为奇数的字符之外,其余的所 有字符都删除,串中剩余字符所形成的一个新串放在t 所指的数组中。。
例如,若s 所指字符串中的内容为
但所在元素
第 4 页,共 25 页 其中字符A 的ASCII 码值虽为奇数,