2017年南京邮电大学高级语言程序设计(同等学力加试)复试仿真模拟三套题
● 摘要
一、选择题
1. 有以下程序:
程序的运行结果是( )。 A.y=0 B.y=l C.y=2 D.y=3
【答案】D
【解析】数组a 定义结果为,后,p 指向数组元素
2. 有如下程序:
程序运行时,输入A.1234 B.4321 C.4444 D.1111 【答案】B
则输出结果是( )。
指针P 指向
执行一p ; 语句
y 的值为指针p 所指向的地址的存储值为3。
【解析】在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。本题程序的 执行过程为:在输入1234〈回车〉的情况下,调用人1,
在这次调用中的局部变量
调用
条件成立→调用
•
调用
函数,读入3,
局部变量
函数,
读
函数,读入2,
局部变量
函数,读入4, 局部变量
调用函数,读入回车,if 条件不成立,返回执行每次调用函数中if 语句后的输
出语句,即依次输出4321。故B 选项正确。
3. 若有以下程序
则程序的输出结果是( )。 A.2, 3 B.0, 2 C.1, 2 D.1, 3
【答案】D
1. 是先判定a 是否为0, 不管判定结果如何,都执行a++。 【解析】
4. 设有定义:intx=ll,y=12,z=0; ,以下表达式值不等于12的是( )。
A. (z ,x ,y ) B. (z=x,y ) C.z=(x ,y ) D.z=(x==y) 【答案】D
【解析】逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。D 选项逻辑表达式x==y不成立,则z=0,表达式值为0。B 选项逗号表达式X ,y 取y 值为表达式值,然后赋值给z=12,表达式值为12。C 选项逗号表达式(x ,y )取y 值为表达式值,然后赋值给z=12,表达式值为12。A 选项逗号表达式(z ,x ,y )取y 值为表达式值12。故选择D 选项。
5. 以下选项中可用作c 语言中合法用户标识符的是( )。
A._123 B.void C.-abc D.2a
【答案】A
【解析】合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字B 项中void 符必须为字母或下划线,其中,关键字在程序中都代表着固定的含义,不能另作他用。是关键字,不合法。C 项和D 项没有以字母或下划线开头,不合法。
6. 若有定义
:
则以下与上述定义中a 类型完全相同的是( )。
【答案】A
【解析】“typedef 类型名新类型名”表示为一个已定义的类型标识符重新定义一个新类型名,题中选项A 代表的意思是数组指针,即指向数组的指针,B 选项是指针数组,即数组存放的元素是整型指针,首先为整型指针类型命名为T ,再通过T 定义了一个整型指针数组*a[20],等价于int*a[20],答案为A 选项。
7. 有以下程序:
程序的运行结果是( )。 A.NelNN B.ela2e3 C.NelNe2N D.NalNNNN 【答案】C
【解析】k=0时,选择default 分支,输出N ; k=l时,到break 语句,
故继续执行
终输出
8. 以下叙述中错误的是( )。
A. 同一个数组中所有元素的类型相同
B. 不可以跳过前面的数组元素给后面的元素赋初值0 C. 定义语句D. 若有定义语句【答案】D
【解析】一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于
选择ease1分支,因为没有遇即输出e 和1。依次往下执行,最
分支,输出(:和_
给a 数组中所有元素赋初值0
编译时将忽略多余的初值