c++中 为什么这个程序输出的结果是12? case1case后面跟什么明明没东西啊!

C++语言程序设计基础考试卷_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++语言程序设计基础考试卷
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢C++中switch-case语句应用经验总结
发布日期: 09:32
C++条件语句switch
C++ switch-case语句是一个循环判断语句,在实际编程中起着非常重要的作用。希望这篇文章中介绍的内容能帮助大家解决一些问题。在C++编程语言中,存在着一些判断语句,比如if,C++ switch-case语句等等。我们在这篇文章中会针对C++ switch-case语句的基本使用方法进行详细的介绍,希望能给大家带来一些帮助,希望大家多多支持中国站长网络学院。
& & & C++ switch-case语句是一个循环判断语句,在实际编程中起着非常重要的作用。希望这篇文章中介绍的内容能帮助大家解决一些问题。在C++编程语言中,存在着一些判断语句,比如if,C++ switch-case语句等等。我们在这篇文章中会针对C++ switch-case语句的基本使用方法进行详细的介绍,希望能给大家带来一些帮助。& & &if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难.深层嵌套的else-if语句往往在语法上是正确的,但逻辑上却没有正确地反映程序员的意图。例如,错误的else-if匹配很容易被忽略。& & &添加新的条件和逻辑关系,或者对语句做其他的修改,都很难保证正确性。因此,C/C++语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.它可以很方便地来实现深层嵌套的if/else逻辑。使用C++ switch-case语句直接处理多个分支(当然包括两个分支).其一般形式为:switch(表达式)&{&case 常量表达式1:&语句1;&&case 常量表达式2:&语句2;&&……&case 常量表达式n:&语句n;&&default:&语句n+1;&&}&& & & C++ switch-case语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句.& & & 以上是switch-case的正规写法,default语句总是写在最后。但是,如果把default语句间在了case的中间,执行的结果又是怎样的呢?笔者测试了一下几种有代表性的情况,把结果简单罗列如下:A. 每个语句中break齐整switch(c)&{&case '1':&printf(&1\n&);&&default:&printf(&default\n&);&&case '2':&printf(&2\n&);&&case '3':&printf(&3\n&);&&}&此种情况最为规整,default写在中间跟写在最后的效果一致。B. default语句后没有breakswitch(c)&{&case '1':&printf(&1\n&);&&default:&printf(&default\n&);&//&case '2':&printf(&2\n&);&&case '3':&printf(&3\n&);&&}&此种情况下,输入分别为 1、 2、 3、 4,对应的输出分别为 1、 2 、3、 default 2(换行省略了,实际运行时有换行的);即此种情况下遵循A中的执行顺序和一般的标号规则。C. 最后一个case没有breakswitch(c)&{&case '1':&printf(&1\n&);&&default:&printf(&default\n&);&&case '2':&printf(&2\n&);&&case '3':&printf(&3\n&);&//&}&此种情况下,输入分别为 1、 2、 3、 4,对应的输出分别为1、2、3、default.可见实际的运行效果并不等同于把default语句挪到最后的运行效果。否则,输入为3时,输出应该为 3 default.D. default和最后一个case都没有breakswitch(c)&{&case '1':&printf(&1\n&);&&default:&printf(&default\n&);&//&case '2':&printf(&2\n&);&&case '3':&printf(&3\n&);&//&}&由上面A,B,C三种情况的运行结果,我们可以推测出D这种情况的运行结果。当输入分别为 1、2、3、4时,输出为1、2、3、default 2. 结果与B的情况相同。#include &iostream&int main(){int year,month,day,cout&&&Year:&;cin&&cout&&&Month:&;cin&&cout&&&Day:&;cin&&if(year%400==0||year%4==0&&year%100!=0) //是闰年的情况switch(month){case 1:no=case 2:no=31+case 3:no=1+31+28+case 4:no=1+31+28+31+case 5:no=1+31+28+31+30+case 6:no=1+31+28+31+30+31+case 7:no=1+31+28+31+30+31+30+case 8:no=1+31+28+31+30+31+30+31+case 9:no=1+31+28+31+30+31+30+31+31+case 10:no=1+31+28+31+30+31+30+31+31+30+case 11:no=1+31+28+31+30+31+30+31+31+30+31+case 12:no=1+31+28+31+30+31+30+31+31+30+31+30+default:cout&&&你的输入有误!&&&return 0;}else //不是闰年的情况switch(month){case 1:no=case 2:no=31+case 3:no=31+28+case 4:no=31+28+31+case 5:no=31+28+31+30+case 6:no=31+28+31+30+31+case 7:no=31+28+31+30+31+30+case 8:no=31+28+31+30+31+30+31+case 9:no=31+28+31+30+31+30+31+31+case 10:no=31+28+31+30+31+30+31+31+30+case 11:no=31+28+31+30+31+30+31+31+30+31+case 12:no=31+28+31+30+31+30+31+31+30+31+30+default:cout&&&你的输入有误!&&&return 0;}cout&&&你输入的日期是这一年的第&&&no&&&天&&&system(&pause&);return 0;}#include&stdefx.h&#include &iostream&int main(){&&cout&&&输入百分制成绩:&;&cin&&&mark=mark/10;&switch(mark)&{&case 0:&case 1:&case 2:&case 3:&case 4:&case 5: cout&&&不及格&&&&case 6: cout&&&及格&&&&case 7: cout&&&中&&&&case 8: cout&&&良&&&&case 9: cout&&&优&&&&default:&{&if(mark=10)&cout&&&优&&&&else&{&cout&&&你输入的分数超出范围,请重新输入:&;&cin&&&}&}&}&return 0;}#include&stdefx.h&#include &iostream&int main(){&&cout&&&输入百分制成绩:&;&cin&&&if(mark&110&&mark&100)&{&cout&&&你输入的分数超出范围,请重新输入:&;&cin&&&}&mark=mark/10;&switch(mark)&{&case 0:&case 1:&case 2:&case 3:&case 4:&case 5: cout&&&不及格&&&&case 6: cout&&&及格&&&&case 7: cout&&&中&&&&case 8: cout&&&良&&&&case 9: cout&&&优&&&&default:&{&if(mark==10)&cout&&&优&&&else&{&cout&&&你输入的分数超出范围,请重新输入:&;&cin&&&}&}&}&return 0;}
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。
免责声明:以上教程信息由会员自行搜集、整理、发布,内容的真实性、准确性和合法性由发布会员负责。站长学院对此不承担任何责任。C++中控制浮点型数据输出时小数点后的位数今天做了一道题,其中有要求要输出像 1.00(我写的这个数是double型的)这样的数,这样输出在C中很简单,但到了C++中就不好搞了,C++自动的省略了小数点后的0(我是在VC6.0中写的),我像问下怎么写才能控制让程序输出1.00这样的数字.但是问题还是没解决,我想问的是输出1.000,cout
浪漫惊喜韻h
1.头文件里加#include.2.cout
cout<<setioflags(io::fixed)<<变量<<endl中的setioflags(io::fixed)
和cout<<setprecision(4)<<a<<
当中的setprecision(4)有什么关系?
你好,你的问题解决了!
setprecision(4)的意思应该是小数点后四位;
cout<<setioflags(io::fixed)<<变量<< 里中变量前面再加setprecision(3)就可以输出1.000;
1.头文件里加#include。
2.cout<<setioflags(io::fixed)<< setprecision(3)<<变量<<
你可以3任意改;
我真的很无奈,我把setioflags(io::fixed)复制进去了,可是VC报错,错误语句是
error C2065: 'setioflags' : undeclared identifier
error C2653: 'io' : is not a class or namespace name
可是我已经添加了#include头文件,
我的头文件写法是
能帮帮我吗,还有能不能简单的介绍下setioflags(io::fixed)是什么。
哦,不好意思,我忘了你用的是VC6.0;那把头文件改成:
#include//我不知道cmath这个函数,但是好像math.h可以解决它的任务。
setioflags(io::fixed)是小数格式控制函数;
没有改善,还是老样子,
还是错误:d:\program files\vc6\myprojects\1\2.cpp(20) : error C2065: 'setioflags' : undeclared identifier
d:\program files\vc6\myprojects\1\2.cpp(20) : error C2653: 'io' : is not a class or namespace name
d:\program files\vc6\myprojects\1\2.cpp(20) : error C2065: 'fixed' : undeclared identifier
怎么解决啊,我纠结了。
那可能你软件的问题,或其他地方出问题这是我的QQ,你加我在QQ上解决吧。
为您推荐:
其他类似问题
扫描下载二维码在c++中,为什么会输出这样的结果呢?看不懂这个程序,请高手帮忙看看_百度知道
在c++中,为什么会输出这样的结果呢?看不懂这个程序,请高手帮忙看看
Bclass, fun() &int main(){ Iclass obj( 2, 10 );&lt, intj ) { x =iostream&
Bclass &p2 =}输出结果为; p3-&};
Bclass *p3 =&obj:&lt.fun() &lt, j) { z =&class I&};
Bclass p1 = }
virtual int fun() {return 0 ; }
Iclass(&&lt:;class Bclass{ endl: }
int fun() { return( x + y + z ) &#47, 4; endl:Bclass(i, int k); 3;&
cout &p2; y = j.fun() &lt: fun() &lt, p2:public Bclass{p1;
cout &lt#include &lt
由于是虚函数,p3同p2,虚函数是后绑定原则,即在函数运行中确定地址,所以Iclass继承的fun()同样是虚函数。对应各自类的地址,p2取了obj(即lclass)的地址,p1对应Bclass由于基类B定义的fun()是虚函数,而不是在编译的时候确定,虚函数的作用是实现多态
不好意思,我还是不懂,觉得有点抽象,Bclass &p2 =这句不懂,是把obj这个对象赋给p2的引用吗?这什么意思哦??还有我想请问下虚函数是后绑定原则,即在函数运行中确定地址,而不是在编译的时候确定。这个原则在哪体现了哦??麻烦还请高手再讲下。。非常感谢了
Bclass &p2 =这句意思有点类似于p2是个obj的别名,p2在内存中和obj共享,地址是一样的。 关于虚函数这些个相关知识,推荐你参考百度百科:虚函数
参考资料:
其他类似问题
为您推荐:
其他2条回答
#include &iostream&
class Bclass
Bclass(int i,int j ) { x = y = }
virtual int fun() {return 0 ; }
protected:
class Iclass:public Bclass
{ public :
Iclass(int i, int j, int k):Bclass(i, j) { z = }
int fun() { return( x + y + z ) / 3; }
int main()
{ Iclass obj( 2, 4, 10 ); //创建派生类类对象obj
//并对其构造函数Iclass(int i, int j, int k):Bclass(i, j) { z = }定义
Bclass p1 =
//虚函数,楼上有讲
//p1就是基类
cout &&p1.fun() && end...
什么问题》》???
请高手帮忙的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言课后习题及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言课后习题及答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩48页未读,继续阅读
你可能喜欢

我要回帖

更多关于 程明明bing程序运行 的文章

 

随机推荐