2018年北京联合大学软件工程803软件基础之C程序设计考研强化五套模拟题
● 摘要
一、选择题
1. 表达式:
A.0
B.3
C.4
D.5
【答案】B
【解析】运算符的优先级高于所以先进行除法和求余运算,再进行减法运算。
结果为4, 转换成double 类型再转换成强制类型转换表达式的形式((表达式)。:类型名)的值是( )。
类型结果依然为4,的结果为最后结果为3。
2. 设有定义:
以下选项的四个表达式中与其他三个表达式的值不相同的是( )。
【答案】C 【解析】表达式值为k 的值,其余为
3. 有以下程序
程序运行后的输出结果是( )。
第 2 页,共 59 页 的值。
【答案】A
【解析】将结构体变量的地址作为实参传递,函数调用可以修改实参结构体中成员的值。函数f 的作用是,把p 指向的struct 中的数组a 的元素按照从小到大的方式排序。
4. 以下选项中有语法错误的是 。 A.
B.
C.
D.
【答案】D
【解析】考查指针数组的概念,选项D 中str 为二维字符数组,不能直接把一个字符串赋值到二维数组的某一行中。
5. 有以下程序:
程序运行后的输出结果是( )。
【答案】C
【解析】本题将两个字符串常量赋值给一个二维字符数组,用字符常量为字符数组赋值需要在最后加上一个休止符表示字符串结束,所以数组长度为字符的个数加1, 而且数组的下标是从0开始计数,所以P 指向第二个字符串。
6. 有以下函数
以下关于aaa 函数功能叙述正确的是( )。
A. 求字符串S 的长度
第 3 页,共 59 页
B. 比较两个串的大小
C. 将串s 复制到串t
D. 求字符串8所占字节数
【答案】A
【解析】aaa ( )函数中,首先定义了一个字符指针t 指向形参s ,然后通过一个while 循环让指针t 不断递 增,直到t 指向字符串结束标志处。当t 指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,此 时t 指向字符串结束符
语句让它回到结束标志处。最后返回后面一个单元,所以接下来的因为s 还是指向字符串第1个字符处,而t 指向字符串结束符,故返回值为字符串的长度值。
7. 有以下定义inta ;longb ;doublex , y ;,则以下选项中正确的表达式是( )。
D.y=x+y=a
【答案】A
【解析】%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A 项正确,x-y 结果为double 型,但是通过强制类型转换将其转换为int 型;B 项错误,中==和!=是同一个优先级的,先运行a==x,而因为double 是占8位的,不能自动转换,必须要强制类型转换
,
才是正确的;C 项错误,(a*y)%b中的(a*y)为double 型;D 项错误,x+y不
能作为左值。
8. 有以下程序:
程序运行的结果是( )。
A.10, 1
B.20, 1
C.10,2
D.20, 2
【答案】C
【解析】题目首先定义结构体st 的同时定义结构体数组data ,可
知
结构体指针p 指向数组的首地址,指向
的第二个元素data[l],
然后输出即输出
第 4 页,共 59 页 则指向数组 所以分别为10和2。