C语言程序设计 菏泽学院 黄复贤
第3讲测验
1【单选题】
假设字符变量ch中存放有小写英文字母,将其转换为相应的大写英文字母的表达式是 ( ) 。
A、ch = ch-'a'+'A'
B、ch = ch+32
C、tolower(ch)
D、ch -= 'a'+'A'
正确答案:A
2【单选题】
若x为浮点型,则表达式x=10/4为( )。
A、2.5
B、2.0
C、2
D、3
正确答案:B
3【单选题】
若有定义“char a; int b; float c; double d;”,则表达式“a*b+d-c”值的类型为____。
A、float
B、int
C、char
D、double
正确答案:D
4【单选题】
若" int n; float f=13.8; ",则执行"n=(int)f%3"后,n的值是( )。
A、1
B、4
C、4.33333
D、4.6
正确答案:A
5【单选题】
若变量已正确定义,表达式 (j=3, j++) 的值是____。
A、3
B、4
C、5
D、6
正确答案:A
6【单选题】
对于数学表达式2x+(a+b)÷3sinx,对应的C表达式是( )
A、2x+(a+b)/3sin(x)
B、2x+(a+b)/(3sin(x))
C、2*x+(a+b)/3/sin(x)
D、2*x+(a+b/3/sin(x))
正确答案:C
7【单选题】
设有定义“int k = 0;”,下列选项的4个表达式中与其他3个表达式的值不相同的是____。
A、k++
B、k+=1
C、++k
D、k+1
正确答案:A
8【单选题】
下列关于单目运算符++、--的叙述正确的是____。
A、它们的运算对象可以是任何变量和常量
B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
正确答案:D
9【单选题】
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( )。
A、6.500000
B、6
C、5.500000
D、6.000000
正确答案:D
10【单选题】
设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的语句是( )。
A、x=x*100+0.5/100.0
B、x=(x*100+0.5)/100.0
C、x=(int)(x*100+0.5)/100.0
D、x=(x/100+0.5)*100.0
正确答案:C
11【填空题】
对程序填空,程序中a、b、c代表一元二次方程的三个系数,要求输出方程的两个根。
main()
{
int a=1, b=3, c=2;
printf("x1=%f \n", 第1空 );
printf("x2=%f\n", 第2空 );
}
正确答案:
第一空:
(-b+sqrt(b*b-4*a*c))/(2*a)
第二空:
(-b-sqrt(b*b-4*a*c))/(2*a)
选择-测验
1【单选题】
以下程序运行时,输入的x值在( )范围时才会有输出结果。
843bed4b-676f-4caa-8123-b4e56d11f3a0.png
A、不等于10的整数
B、大于3且不等于10的整数
C、大于3且等于10的整数
D、小于3的整数
正确答案:B
2【单选题】
判断 i 和 j 至少有一个值为非0的表达式是____。
A、i!=0 && j!=0
B、i+j!=0
C、i || j
D、i&&j
正确答案:C
3【单选题】
表达式__不能用于判断“x和y不同时为零”。
A、x!=0 || y!=0
B、x || y
C、!(x==0 || y==0)
D、!(x==0 && y==0)
正确答案:C
4【单选题】
表达式8>6>3值是( )。
A、0
B、1
C、3
D、表达式语法错
正确答案:A
5【单选题】
为表示关系x≥y≥z,应使用C语言表达式( )。
A、(x>=y)&&(y>=z)
B、(x>=y)AND(y>=z)
C、(x>=y>=z)
D、(x>=y)&(y>=z)
正确答案:A
6【单选题】
表达式(x%3)等价于表达式( )。
A、x%3 == 2
B、x%3 != 0
C、x%3 == 1
D、x%3 == 0
正确答案:B
7【单选题】
如果要求在if后一对括号中的表达式在表示a 不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为( )。
A、a<>0
B、!a
C、a=0
D、a
正确答案:D
8【单选题】
设变量已正确定义,以下( )与其它switch语句不等价。
A、switch(op){
case '+': printf("%d\n", value1 + value2); break;
case '-': printf("%d\n", value1 - value2); break;
case '*': printf("%d\n", value1 * value2); break;
default: printf("Error\n"); break;
}
B、switch(op){
default: printf("Error\n"); break;
case '*': printf("%d\n", value1 * value2); break;
case '-': printf("%d\n", value1 - value2); break;
case '+': printf("%d\n", value1 + value2); break;
}
C、if(op != '+' && op != '-' && op != '*'){
printf("Error\n");
}else{
switch(op){
case '+': printf("%d\n", value1 + value2); break;
case '-': printf("%d\n", value1 - value2); break;
case '*': printf("%d\n", value1 * value2); break;
}
}
D、switch(op){
case '+': printf("%d\n", value1 + value2); break;
case '-': printf("%d\n", value1 - value2); break;
case '*': printf("%d\n", value1 * value2); break;
}
正确答案:D
9【单选题】
以下关于switch语句和break语句的描述中正确的是( )
A、在switch语句中必须使用break语句
B、break语句只能用于switch语句体中
C、break语句只能用于循环语句中
D、在switch语句中可以不使用break语句
正确答案:D
10【单选题】
下列程序段的输出结果是
#include <stdio.h>
int main(void)
{
int m, k = 0, s = 0;
for (m = 1; m <= 4; m++) {
switch (m % 4) {
case 0:
case 1: s += m; break;
case 2:
case 3: s -= m; break;
}
k += s;
}
printf("%d\n", k);
return 0;
}
A、10
B、-2
C、-4
D、-12
正确答案:C
评论(0)