2016年山西师范大学数学与计算机科学学院高级语言程序设计(加试)之C程序设计教程复试笔试仿真模拟题
● 摘要
一、选择题
1. 以下选项中叙述正确的是( )。
A. 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
B.C 语言源程序不编译也能直接运行
C. 使用N —S 流程图不能描述复杂算法
D. 计算机能够直接运行C 语言源程序,不必进行任何转换
答:A
【解析】编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,B 项错误。算法可以用各种描述方法进行描述,
能用流程图把算法的每一步都用一个矩形框来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述,无论算法复杂与否都流程图描述,C 项错误。C 语言源程序需要经过编译和连接生成目标文件和可执行文件后才能运行,D 项错误
2. 下列选项中,能正确定义数组的语句是( )。
A
)
答:C
【解析】一维数组定义格式是:类型名数组名[整型常量表达式]。C 项正确,它使用预处理宏定义,N 可以看做是常量。A 项错误,数组长度不能由变量指明;B 项错误,没有指明数组的长度;D 项错误,数组长度应该整型常量表达式。
3. 若有以下程序段:
输出结果是。
A.16
B.8
C.4
D.2
答:C
【解析】C 语言中,右移运算符是将变量转换成二进制,然后右移相应位数,将移出的位信息舍去,并在高位补0, 将所得的结果再赋值给变量。本题十进制数8转换为二进制数为00001000, 右移一位得到00000100, 再转换成十进制数就是4。
第 2 页,共 35 页 B
)
C )
D )
4. 有以下程序:
程序运行后的输出结果是( )。
A.16, 6, 11, 16,
B.1, 6, 11, 16,
C.4, 7, 10, 13,
D.17, 17, 17, 17,
答:A
【解析】程序最后输出改变,在fun 函数中,当i=0时,
5. 有以下程序:
程序运行的结果是( )。
A.331
B.41
C.2
D.1
答:D
【解析】C 语言规定:else 子句总是与前面最近的不带else 的if 相结合,与书写格式无关。本题中的else 语句与第二个if 语句配对。程序首先判断x>y不成立,直接退出if 语句,
执行
注意,x++是先输出,后做++运算,故首先输出x 的值1,然后将X 的值
第 3 页,共 35 页 其中只有A 项正确。 的值在fun 函数中发生
加1。
6. 有以下程序(说明:字母A 的ASCII 码值是65):
程序运行后的输出结果是( )。
A.BY
B.BT
C.YT
D.YE
答:D
【解析】函数只会输出ASCII 码值为奇数的字母,执行fun (a )时,依次取出a □中的字母,当取第一个字母8时,因为8的ASCII 码值为66, 所以不会输出B , 字母Y 的ASCII 码值为89, 字母T 的ASCII 码值为84,字母E 的ASCII 码值为69,所以最后输出字母YE 。
7. 设有两行定义语句:
intscanf ;
floatcase ;
则以下叙述正确的是( )。
A. 两行定义语句都不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 第2行语句不合法
答:D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
8. 有以下程序:
第 4 页,共 35 页