程序设计基础-江西师范大学

程序设计基础-江西师范大学

开课学校:江西师范大学授课老师:柯胜男中国大学MOOC

第4周——无处不在的抉择

1、【单选题】执行以下程序后的输出结果为 #include <stdio.h> int main() { int a=1,b=0; switch (a) { case 1: switch (b) { case 0: printf("**0**");break; case 1: printf("**1**");break; } case 2: printf("**2**");break; } return 0; }

A. **0****2**
B. **0**
C. **0****1****2**
D. 有语法错误

参考答案: 请先登录

2、【不定项选择题】下列复合语句中,不能实现两数交换的是

A. { a=b; b=a; }
B. { b = a * b; a = b / a; b = b / a; }
C. { t=a; a=b; b=t; }
D. { a = a + b; b = a – b; a = a – b; }

参考答案: 请先登录

3、【不定项选择题】下列说法错误的是()。

A. 浮点数并非真正意义上的实数,只是其在某种范围内的近似。
B. 浮点数能精确表示的数字位数取决于这种类型的浮点数的有效数字位数。
C. 使用更多的位来存储阶码,将会扩大浮点数的表数精度。
D. 受浮点数表数精度的限制,因此对于浮点数不能直接比较其是否相等,应该比较其是否近似相等。

参考答案: 请先登录

4、【单选题】在赋值操作中,当赋值表达式左侧的变量的类型与右侧的表达式的类型不一致的时候,下面说法正确的是()。

A. 在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,会发生自动类型转换,赋值表达式的结果类型是赋值运算符左侧变量的类型。
B. 在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,赋值表达式的结果类型是赋值运算符右侧表达式的类型。
C. 在赋值操作中,只要赋值运算符左侧的变量的类型与右侧的表达式的类型不一致,就会发生数值溢出。
D. 在赋值操作中,当赋值运算符左侧的变量的类型与右侧的表达式的类型不一致的时候,要么发生数值溢出,要么发生数值精度的损失。

参考答案: 请先登录

5、【单选题】下列关于if-else语句的说法中哪个是正确的。

A. else总是和离它最近的if配对
B. else总是和前面离它最近的且还未和其他else匹配的在同一语句块内同一层次的if配对
C. else总是和前面离它最近的且位于花括号内的if配对
D. else可以和它前面的尚未与其他else匹配的任何一个if配对

参考答案: 请先登录

6、【单选题】若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()

A. fabs(x-y)<10
B. (x-y)<-10||!(y-x)>10
C. (x-y)*(x-y)<100
D. x-y>-10 && x-y<10

参考答案: 请先登录

7、【单选题】以下程序运行后的输出结果是#include<stdio.h>intmain(){inta,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);printf("%d,%d,%d",a%b,a/b,c);return0;}

A. 10,1,0
B. 10,0,1
C. 10,0,0
D. 10,1,1

参考答案: 请先登录

8、【多选题】下列说法错误的是( )。

A. case后的“常量表达式”的类型只能是整型。
B. 若case后面的语句省略不写,则表示它什么也不做。
C. switch语句中的break和default可有可无。
D. 每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E. 程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F. 若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G. 每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H. case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。

参考答案: 请先登录