C语言题目

一:设定义x为double型变量x=-3223.87654;printf("%-6.2e\n",x)则以上语句输出为()二:下列程序段的输出结果是()intn='c';s... 一:设定义x为double型变量
x=-3223.87654;
printf("% -6.2e\n",x)
则以上语句输出为()
二:下列程序段的输出结果是()
int n ='c';
switch(n++)
{ default :printf("error");break;
case 'a':case 'A':case 'B'=printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");}
要有详细解析哦
展开
 我来答
暮雨花幽03
推荐于2017-09-14
知道答主
回答量:6
采纳率:0%
帮助的人:8万
展开全部
首先说第一个问题:简单地说%e为科学计数法输出,在计算机上表示为:数字e+n、数字e-n(10的n次方或负n次方)。至于%与e之间的内容为对输出的控制。此处:-6.2 -代表左对齐,6代表整个数字占六个格(若占不满空格补充)、2代表小数点后保留两位。
所以结果为:-3.22e+003

第二个问题:default语句默认在所有case之后执行(前提是没有case中的条件符合输入值)
另外case与if的区别就是一旦输入值满足了一个case的条件,在执行完这个case以后,会自动执行下一个case中语句(需要手动break跳出)。倒数第二行中没有break语句,所以程序执行case‘c’后直接执行case‘d’
最后说明一点case 'a':case 'A':case 'B'=printf("good");break;

由于刚才说的特点,case‘a’后面没有任何语句,所以一旦满足了case‘a’后,程序会自动往下进行,执行case 'A',依次类推,直到遇到break。所以以上语句等价于
case‘a’:printf("good");break;
case‘A’:printf("good");break;
case‘B':printf("good");break;
结果:passwarn
更多追问追答
追问
根据int n='c',switch(n++) 其中的n为99是吗,那么整个程序是不是就直接从 case ='c'开始呢。另外case 'c':case 'C':printf("pass"); 这个式子我不是很理解,中间的case 'C'是不是可有可无呢?还是说只要满足了一个任何一个就可以执行后面的语句呢?下面的case 'd':case 'D':printf("warn");也类似
麻烦你再详细讲一下,我初学者
追答
没错,n为99。但是别忘了:在进行完整个switch语句之后,n要+1,变成100。(n++在执行之后+1)
程序是从case‘c’开始。case 'c':case 'C':printf("pass"); 可以简单地理解成if(n==c||n==C)printf ……。(此题中,删掉后面的case ‘C’对结果没有影响,D同上)
不过要明白为什么可以这样等价。
case 'c': //这里没有任何语句,进入后直接执行case ‘C’
case 'C':printf("pass");
case 'd':
case 'D':printf("warn");
实在暂时无法理解,记住if(n==c||n==C)等价就可以。switch这种用法在编程中使用相对较少。基本上可以用if语句和数组存储来代替。
匿名用户
2013-01-20
展开全部
(1)-3.22e+3 %e是以科学计数法显示数字,题目中的%-6.2e是指,负号左对齐;6表示指输出字段的宽度。如果数据位数小于6,则左端补以空格,若大于6,则按实际位数输出;2表示小数点后保留两位。所以输出结果为-3.22X10^3,C语言输出结果如上所示。
(2)warn 这是一个switch case 选择语句的考察。题目中n的值是c的ascii码,即十进制99。在条件判断switch中n++ ,此时n=100,即d的ascii码值。所以进行case比对时,执行最后一组操作,打印“warn”。

大致就是这样啦~~
好好学习,天天向上~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钻时封芯
2013-01-20
知道答主
回答量:14
采纳率:0%
帮助的人:6.9万
展开全部
一:printf("%-6.2\n",x)的意思是,输出结果左对齐,一共6位,小数部分占2位,即结果为:3223.87。
二:输出pass啊。n++是先使用再自加。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雷洛探长777
2013-01-20
知道答主
回答量:42
采纳率:0%
帮助的人:16万
展开全部
第一题:运行结果【-3.22e+004】
#include<stdio.h>
int main()
{
double x=-32238.87654;
printf("%-6.2e\n",x);
return 0;
}
%貌似是控制输出格式的,好长时间没接触,不太清楚了。

第二题:题目有问题,写的有点乱,不知道你要表达什么效果,运行了下,结果为pass
#include<stdio.h>
int main()
{
int n ='c';
switch(n++)
{
case 'a':
case 'A':
case 'B':printf("good");break;
case 'c':
case 'C':printf("pass");break;
case 'd':
case 'D':printf("warn");break;
default :printf("error");break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏碧梦
2013-01-20 · TA获得超过281个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:248万
展开全部
1. -3.22e+3.
2. passwarn
追问
能写出解答过程吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式