2017年长安理工大学程序设计复试仿真模拟三套题
● 摘要
一、选择题
1. 以下选项中正确的定义语句是( )。
【答案】C
【解析】定义同一类型的变量时,不同变量之间需要用分隔。A 项错误,a 和b 之间缺少逗号而用分号,是不正确的,分号是语句结束标志;B 项错误,定义变量的同时为变量初始化赋值不能用连等;D 项错误,在double 和a 之间多了一个逗号,变量类型说明后面不应用逗号,应用空格分离。
2. 有如下程序:
程序运行时,输入
A.1234
B.4321
C.4444
D.1111
【答案】B 则输出结果是( )。
【解析】在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。本题程序的 执行过程为:在输入1234〈回车〉的情况下,调用
人1,
在这次调用中的局部变量
调用
调用条件成立→调用•
调用函数,读入3,
局部变量函数,读函数,读入2,
局部变量
函数,读入4,
局部变量函数,读入回车,if 条件不成立,返回执行每次调用函数中if 语句后的输出语句,即依次输出4321。故B 选项正确。
3. 有以下程序
程序运行后的输出结果是( )。
【答案】D
【解析】f 函数将数组中前9个元素的值加上对应的下标值。
4. 以下叙述中错误的是( )。
A. 非零的数值型常量有正值和负值的区分
B. 常量是在程序运行过程中值不能被改变的量
C. 定义符号常量必须用类型名来设定常量的类型
D. 用符号名表示的常量叫符号常量
【答案】C
【解析】在C 语言程序中,可以用一个符号名来代表一个常量,称为符号常量,符号常量在定义是不需要类型,其本身就能表达其类型。
5. 设有两行定义语句:
int scanf;
float case;
则以下叙述正确的是( )。
A. 两行定义语句都不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 第2行语句不合法
【答案】D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函 数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途 的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
6. 设变量x 为longint 型并已正确赋值,以下表达式中能将x 的百位上的数字提取出来的是。
A.x/10%100
B.x%10/100
C.x%100/10
D.x/100%10
【答案】D
x/100结果的个位数上的数字是原来x 的百位数上的数字,【解析】则要得到这个数字只需要
再%10即可。
7. 有以下程序:
当执行程序时,按下列方式输入数据(从第一列开始,
符)
代表回车,注意:回车是一个字
则输出结果是( )。
A.1234
B.12
C.123
D.1234
【答案】C 【解析】函数的一般调用形式为:scanf (格式控制,输入地址列表)。其中,格式控
和格式字符组成。制是用双引号括起来的字符串,包括格式字符和普通字符,格式是由1赋给了 a ,2赋给了 b ,然后函数的功能是从标准输入设备上读入一个字符。根据程序中的格式控制可知,接收输入时分别把函数提取了一个换行符赋给c ,再提取了一个字符3赋给了 d 。所以程序的输出结果为:
8. 当没有指定C 语言中函数形参的存储类别时,函数形参的存储类别是( )。
A. 外部(extern )