老司机带带我高清视频:谁能说明一下c语言的题1

来源:百度文库 编辑:神马品牌网 时间:2024/05/10 18:36:30
若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是
A)switch(x) B)switch((int)x);
{case 1.0:printf("*\n"); {case l:printf("*\n");
case 2.0:printf("**\n");} case 2:printf("**\n");}
C)switch(a+b) D)switch(a+b)
{case 1:printf("*\n"); {case 1:printf("*\n");
case 2+1:printf("**\n");} case c:printf("**\n");}
谁能说明一下个行的意思

说的越详细越好

float x=1.5; int a=1,b=3,c=2;
生命变量 其中x为浮点类型,其余的是整形

A)switch(x)
x本身定义为浮点类型,所以case条件应该为带有小数点的
B)switch((int)x)
x本身为浮点类型但强制转换为整形
因为浮点类型要比整形的取值范围大,所以小数部分丢失
1.5取整数就是1
(说明,今后可用这种异常作浮点数的小数部分的提取)
c)d)
判断的一样
只是case不同
下面说明一下
{case 1:printf("*\n"); //和为1打印输出*然后换行
{case 1:printf("*\n"); //上同
case 2+1:printf("**\n"); //为3打印输出**然后换行
case c:printf("**\n"); //与整形变量c值相同则打印输出**然后换行
后面两个可以认为1个是用常量的表达式来做条件
1个是使用变量,用变量的值来判断
~~~~~~~~
不知道是否满意哈~~~~^_^

A)switch(x) //x表示将要对比的变量,后面的都一样就不一一说明了
{case 1.0:printf("*\n"); //语法错误..case后面只能是整数或者变量
case 2.0:printf("**\n");} //同上

B)switch((int)x); //这里语法错误..后面不用看了

C)case 2+1:printf("**\n");} // 这里语法错误

所以答案是D