如果要求在if
后一对括号中的表达式在表示a
不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为( )。
A.a<>0
B.!a
C.a=0
D.a
a<>0就是a不等于0的意思
if(a<>0),括号内是一个true或者false的判断,true时运行if内的程序,false时略过
这是省略的写法,实际上是if ((a<>0)==true)
a不等于0的情况下值为真,即在表达式成立的情况下返回值为1,而a不等于0的表达式即为a<>0
能正确表示逻辑关系"a≥10 或 a≤0"的C语言表达式是()。
A.a>=10 or a<=0
B.a>=0 | a<=10
C.a>=10 && a<=0
D.a>=10 || a<=0
在嵌套使用if语句时,C语言规定else总是()。
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
下列程序段的输出结果是()。
int main(void)
{
int a = 2, b = -1, c = 2;
if(a < b)
if(b < 0)
c = 0;
else c++;
printf("%d\n",c);
return 0;
}
A.0
B.1
C.2
D.3
有如下程序:
#include <stdio.h>
int main()
{
int a=2,b=-1,c=2;
if(a)
if(b<0) c=0;
else c++;
printf("%d\n",c);
return 0;
}
该程序的输出结果是( )
A.0
B.1
C.2
D.3
下列程序的运行结果是
#include <stdio.h>
int main (void)
{ int a, b, c;
a = 20; b = 30; c = 10;
if (a < b)a = b;
if (a >= b)b = c;
c = a;
printf("a=%d, b=%d, c=%d\n", a, b, c);
return 0; }
A.a=20, b=10, c=20
B.a=30, b=10, c=20
C.a=30, b=10, c=30
if (a < b )条件判断只控制a = b这条语句,
如果条件不成立,即是a = b;不执行.
只执行b =c;c =a;这两语句.
有定义语句“int a=1,b=2,c=3,x;”,则以下各程序段执行后,x的值不为3的是
A.if(c<a)x=1; else if(b<a)x=2; else x=3;
B.if(a<3)x=3; else if(a<2)x=2; else x=1;
C.if(a<3)x=3; if(a<2)x=2; if(a<1)x=1;
D.if(a<b)x=b; if(b<c)x=c; if(c<a)x=a;
选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。
选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。
选项C中,首先执行第一条if语句,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条 if语句,由于“1<1为假,后面的语句不执行,所以最后的x值为2不为3。
选项D中;首先执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3。
下列程序运行时输入“2.0<回车>”,则输出结果是
#include <stdio.h> int main(void)
{ float x, y; scanf("%f", &x);
if (x < 0.0)y = 0.0;
else if ((x < 5.0) && (x != 2.0))y = 1.0 / (x + 2.0);
else if (x < 10.0)y = 1.0 / x;
else y = 10.0;
printf("%f\n", y); return 0; }
A.0.000000
B.0.250000
C.0.500000
D.1.000000
下列程序段运行后x的值是
int a = 0, b = 0, c = 0, x = 35;
if (!a)x--;
else if (b);
if (c)x = 3;
else x = 4;
A.34
B.4
C.35
D.3
C语言里面bool值和int是对应的,0对应false,非0对应true。a为0即false,!a则为true。后面那个,右边的表达式得到true,那么a等于1
- 追问: !a是真的话要执行x--么
- 追答: 对,if的判定为真,就要执行if语句,为假,就不执行
- 追问: 那最后x是多少
- 追答: 1、执行if(!a),因为!a为真,所以执行x--,此时x为34
2、因为执行了if(!a),所以不执行if(b)
3、判断if(c),因为c=0,所以为假,不执行x=3
4、因为不执行if(c),所以执行x=4。
5、最后x=4
下面的方法,当输入为2的时候返回值是多少?( )
public int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; } return result; }
A.0
B.2
C.4
D.10
输入1,返回值为6
输入2,返回值为10
- //输入为1的时候 int getValue(int i) { int result = 0;
- switch (i) { case 1: result = result + i; //result=0+1=1
- case 2: result = result + i * 2; //result=1+1*2=3
- case 3: result = result + i * 3; //result=1+1*3=6 } return result; }
- //输入为2的时候 int getValue(int i) { int result = 0;
- switch (i) { case 1: result = result + i; //输入为2,不走case1
- case 2: result = result + i * 2; //result=0+2*2=4
- case 3: result = result + i * 3; //result=4+2*3=10 } return result;
下列叙述中正确的是()。
A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
break 语句的功能是跳出正在执行的条件语句或循环语句 。
它可以出现在 switch 语句中,也可以出现在循环语句中。
Default 语句的功能是如果所有的 case 后面的语句都不执行的时候就转去执行 default 后的语句 , 它可以省略不写 。
前面我们说过 break 语句可以出现在循环语句中,所以 C 是错误的。故 D 是正确的。
分数 1
设变量已正确定义,以下( )与其它switch语句不等价。
A.
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
default: price = 0.0; break;
}
B.
switch(choice){
default: price = 0.0; break;
case 4: price = 3.5; break;
case 3: price = 4.0; break;
case 2: price = 2.5; break;
case 1: price = 3.0; break;
}
C.
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
}
D.
price = 0.0;
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
}
请读程序:
#include<stdio.h>
int main()
{ int x=1, y=0, a=0, b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2:
a++; b++; break;
}
printf("a=%d, b=%d\n",a,b);
return 0;
}
上面程序的输出结果是:
A.a=2, b=1
B.a=1, b=1
C.a=1, b=0
D.a=2, b=2
i do not know
下列语句序列执行后,k 的值是( )
int x=6, y=10, k=5;
switch( x%y ){
case 0: k=x*y;
case 6: k=x/y;
case 12: k=x-y;
default: k=x*y-x;
}
A.60
B.5
C.0
D.54
若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。
A.switch (a+b);
{ case 1: y=a+b; break;
case 0: y=a-b;
break;
}
B.switch a
{ case c1: y=a-b; break;
case c2: x=a*d; break;
default: x=a+b;
}
C.switch (aa+bb)
{ case 3:
case 1: y=a+b; break;
case 3: y=b-a; break;
}
D.
switch(a-b)
{ default: y=a*b; break;
case 3: x=a+b; break;
case 10: case 11: y=a-b; break;
}
A正确,C中两个case3到底执行哪一个(会出现互相矛盾的现象),B中case后边是常量表达式不能是变量,D中case 3:case 4和case 10:case 11不能合起来写。
若int i=10;执行下面程序段后,变量i的值是( )。
switch ( i )
{
case 9: i += 1;
case 10: i += 1;
case 11: i += 1;
default: i += 1;
}
A.10
B.11
C.12
D.13
i=10; 进入开关语句,符合 case 10: i++; i 变 11.
由于没有 break; 语句, 所以 并不跳出去,而 继续下走,遇到 case 11,
符合 case 11:i++; 进入 case 11, i 变 12.
由于没有 break; 语句, 所以 并不跳出去,而 继续下走,遇到 default:
符合 default:,进入 default:i++; i 变 13。
.到达 开关语句终了。 所以 答案是 D) 13.
switch 语句的case 后面______。
A.只能是常量
B.只能是常量表达式
C.可以是常量或变量
D.可以是任意表达式
switch的case后面只能是常量
因为switch(选择因子变量)会与case后面的常量进行比较,来判断执行哪条分支。
所以case后面的值必须是常量。或者变量要加final关键字。变成常变量。
C语言的switch(表达式),其中表达式可以是( ).
A.只能为整数型
B.只能为实数型
C.可以是整数型和字符型
D.可以是任意类型
表达式的结果的类型可以是 整数类型,枚举类型,或者类类型(但该类需要有单一的转换到整数类型或(可以是字符类型,但不能是浮点类型、字符串、指针类型等)
若 int i=10; 执行下列程序后,变量 i 的正确结果是( )。
switch (i)
{ case 9: i+=1 ;
case 10: i+=1 ;
case 11: i+=1 ;
default : i+=1 ; }
A.10
B.11
C.12
D.13
以下程序段运行后,输出结果是:
int x = 10;
switch (x)
{
case 30: printf("A");break;
case 10: printf("B");
case 20: printf("C");break;
case 40: printf("D");
}
printf("E");
A.ABCDE
B.ABCE
C.BCDE
D.BCE
给定以下程序段,如下:
int i=0, j=-1; switch(i) { case 0: j=1; case 2: j=2; default: j=5; } System.out.print("j="+j);
编译运行,结果是( )。、
A.j=-1
B.j=1
C.j=2
D.j=5
i do not know
下列代码段执行后,k的值是( )。
int i = 10, j = 18, k = 30; switch(j- i) { case 8 : k++; case 9 : k += 2; case 10: k += 3; default: k /= j; }
A.31
B.32
C.33
D.2
j = 18
i = 10
j - i = 8
所以switch(j-i)
先跳到分支case 8: 得到k = 31
由于没有break继续运行下去
k = k+2,得33,
继续得36,
再继续到default: k = k/i(这里是这样吗?我假设是这样)
则k = 33/10 = 3(k为整数)
所以最后 k = 3.
如果上面就是你题目中的default:k/i
那么k = 33。