2017年西安建筑科技大学信息与控制工程学院869C考研仿真模拟题
● 摘要
一、选择题
1. 设有两行定义语句:
intscanf ;
floatcase ;
则以下叙述正确的是( )。
A. 两行定义语句都不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 第2行语句不合法
【答案】D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
2. 以下叙述中错误的是( )。
A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C 程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C 语言编写的程序称为源程序,它以
D.C 语言源程序经编译后生成后缀为
【答案】A
【解析】A 项错误,注释语句不会被翻译成二进制的机器指令。C 源程序经过C 编译程序编
,然后由“连接程序”(Link )的软件,译之后生成后缀 为.OBJ 的二进制文件(称为目标文件)
把OBJ 文件与各种库函数连接 起来生成一个后缀为.EXE 的可执行文件。
3. 若有以下程序
则程序的输出结果是( )。
A.1, 2
B.0, 2
第 2 页,共 43 页 代码形式存放在一个文本文件中 的目标程序
C.1, 3
D.2, 3
【答案】A 【解析】是先判定a 是否等于0, 如果a 等于0, 跳出循环;否则进入循环;但是不管判定是否成功,判定结束后都要执行a++操作。
第一次循环,a 等于-2, 满足条件,执行a++,++b, a 变成-1,b 变成1;
第二次循环,a 等于-1,满足条件,执行a++,++b, a 变成0,b 变成2;
第三次循环,a 等于0, 不满足条件,执行a++,a 变成1,b 仍然是2。
4. 若在程序中变量均已定义成int 类型,且已赋大于1的值,贝!J 下列选项中能正确表示代数
式的表达式是( )。
A.1.0/a/b/c
B.1/(a*b*c)
C.1.0/a*b*c
D.1/a/b/(double )c
【答案】A
【解析】abc 均大于1, 所以表达式1/abc小于1,需要用浮点类型表示。若要计算表达式值,需要使其自动转化成浮点类型,A 项正确。B 项变量与常量均为整型,不会自动转换为浮点类型,B 项错误。C 项表示表达式be/a,错误。D 项,算数运算法结合性自左向右,先计算1/a,结果为0, 之后的计算无论是否转换数据类型结果均为0, D 项错误。
5. 有如下程序:
程序运行后的输出结果是( )。
A.4,4
B.0,1
C.1,4
D.0,4
【答案】A
【解析】程序执行过程为:定义整型变量a=0与指针ptr ,使指针指向变量a 。对指针指向的变量进行赋值a=3,将指针所指向变量加1,并赋值给a=4,此时指针依然指向变量a ,输出a 与指针指向的变量值:4,4,故A 项正确。
第 3 页,共 43 页
6. 若有以下程序
则程序的输出结果是( )。
A.0, 18, 3
B.1, 14, 3
C.0, 14, 3
D.0, 14, 6
【答案】C
【解析】题目中的for 循环可以写成:
第一次循环,a=6,进入for 循环,b=0+6=6,c=l,a=6-l=5;
第二次循环,a=5,进入for 循环,b=6+5=ll,c=2,a=5-3=3;
第三次循环,a=3,进入for 循环,b=ll+3=14, c=3,a=3-3=0;
第四次循环,a=0, 跳出for 循环;输出结果是0, 14, 3。
7. 以下叙述中正确的是( )。
A. 不同函数的形式参数不能使用相同名称的标识符
B. 用户自己定义的函数只能调用库函数
C. 实用的C 语言源程序总是由一个或多个函数组成
D. 在C 语言的函数内部,可以定义局部嵌套函数
【答案】C
【解析】C 项正确,一个实用的C 语言源程序总是由许多函数组成,这些函数都是根据实际任务,由用户自 己来编写。A 项错误,形参的作用域只在本函数内部,不同函数的形参标识符互不影响;B 项错误,可以调用C 提供的库函数,也可以调用由用户自己或他人编写的函数;D 项错误,C 语法规定,不能在函数内部定义其他函数。
8. 有以下程序
程序运行后输出结果是( )。
A.0, 2
B.0, 3
第 4 页,共 43 页
相关内容
相关标签