急求C/C++中关于switch语句的习题,简单易懂的就好!

作者&投稿:勇辰 (若有异议请与网页底部的电邮联系)
一道简单的C++题目,关于SWITCH语句~

如果你不在每一个case语句后面加上break的话,你下面所有的case语句都会执行,直到遇到break,这种情况的术语叫做“直落”。
当你的n=17时,先执行case 17:n+=2;这是n=19,接着就执行case 18:++n,n=20,接着是default:n++; n=21。另外++n,和n++在递增的作用方面是一样的。

同理:如果输入 int n = 16的就会执行所有的case。
而Int n = 18 的话,就只会执行case 18和default的语句。

正确的写法应该是如下:
switch(n){
case 16:++n; break;
case 17:n+=2; break;
case 18:++n; break;
default:n++; break;
}

如果你以为在case语句中修改过n的值以后还会重新进行switch(n)的判断的话你就错了,switch(n)只会判断一次,在一些标准更严格的语言如Java中这里的n必须是不可变的,即不能给n重新赋值。

你没有跳出while循环 你查一下cin>>x的返回值吧 它没有返回0 所以就一直循环
你按回车键会收到换行符
不会是0 而在switch 语句里的break 只是跳出switch语句 而不是循环 所以你应该加一个跳出循环的方法

switch语句练习题
1.若运行时输入:3 5/,则以下程序的运行结果是________
main( )
{float x,y;
char o;
double r;
scanf("%f %f %c",&x,&y,&o);
switch(o)
{case '+':r=x+y;break;
case '-':r=x-y;break;
case '*':r=x*y;break;
case '/':r=x/y;break;}
printf("%f",r);}
2. 根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能.
(假设mark的取值在1~100之间的整数.)
if语句:
if(mark<60)k=1;
else if(mark<70)k=2;
else if(mark<80)k=3;
else if(mark<90)k=4;
else if(mark<100)k=5;
switch语句:
switch( [1] )
{[2] k=1; break;
case 6: k=2: break;
case 7: k=3; break;
case 8: k=4; break;
[3] k=5;
3.设有程序片段:
switch(grade)
{case 'A':printf("85-100\n");
case 'B':printf("70-84n");
case 'C':printf("60-69\n");
case 'D':printf("<60\n");
default:printf("error!\n");}
若grade的值为'C',则输出结果是_________.
4.以下程序段的运行结果是_____.
int x=1,y=0;
switch(x)
{case 1:
switch(y)
{case 0:printf("**1**\n");break;
case 1:printf("**2**\n");break;}
case 2:printf("**3**\n");}
5.根据以下函数关系,对输入的每个x值,计算出相应的y值,请在程序的( )
内填正确内容
x
y
x<0
0
0<=x<10
x
10<=x<20
10
20<=x0)
{case 1:switch(b<0)
{case 1:printf("@");break;
case 2:printf("!");break;}
case 0:switch(c= =5)
{case 0:printf("*");break;
case 1:printf("#");break;
default:printf("#");break;}
default:printf("&");
}printf("\n");}
7.请读程序:
#include
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",a,b);}
上面程序的运行结果是( )
8.假设奖金税率如下(a代表奖金,r代表税率)
a<500 r=0%
500<=a<1000 r=5%
1000<=a<2000 r=8%
2000<=a<3000 r=10%
3000=3000)c=6;
else c=[1];
switch(c)
{case 0:r=0;break;
case 1:r=0.05;break;
case 2:
case 3:[2];break;
case 4:
case 5:r=0.1;break;
case 6:r=0.15;break;}
t=a*r;
b=a-t;
printf("r=%f,t=%f,b=%f",r,t,b);}
9.某个自动加油站有'a',b','c'三种汽油,单价分别为1.50,1.35,1.18(元/千克),也提供了"自己加"或"协助加"两个服务等级,这样用户可以得到5%或10%的优惠.本程序针对用户输入加油量a,汽油品种b和服务类型c('f'--自动,'m'-- 自己,'e'--协助 ),输出应付款m请在[ ]内填入正确内容.
main( )
{float a,rl,r2,m;
char b,c;
scanf("%f%c%c",&a,&b,&c);
switch(b)
{case 'a':r1=1.5;break;
case 'b':[ 1];break;
case 'c':rl=1.18;break;}
switch(c)
{case 'f':r2=0;break;
case 'm':r2=0.05;break;
case [2]:r2=0.1;break;}
m=[3];
printf("%f",m);}
10.以下程序计算某年某月有几天.其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年.请在[ ]内填入正确内容.
main( )
{
int yy,mm,len;
printf("year,month=");
scanf("%d %d",&yy,&mm);
switch(mm)
{case 1:case 3:case 5:case 7:
case 8:case 10:case 12:[1];break;
case 4:case 6: case 9:case 11:len=30;break;
case 2:
if(yy%4= =0&&yy%100!=0||yy%400= =0)[2];
else[3];
default:printf("input error")
break;}
printf("the length of %d %dis%d\n",yy,mm,len);}
11.以下程序用以计算y年ml月dl日与同年的m2月d2之间的天数(m2>=m1),并打印计算结果.若m1=m2且d1=d2则算1天.在闰年时,2月有29天.闰年的年号由以下方式确定:该年号能被4整除但不能被100整除,或者该年号能被400整除则是闰年.例:输入1997,2,27,3,10时,输出为12.表明从1997年2月27日到3月10日共有12天,在( )填正确内容
main( )
{int y,ml,dl,m2,d2;
int i ,d
scanf("%d,%d,%d,%d,%d,"&y,&ml,&dl,&m2,&d2);
y=(y%4= =0( )y%100!=0( )y%400= =0))1:0;
d=0-d1;
for(i=m1;i0)&&(s=3)&&(s1)||(s>8))x=3;
else x=1
else x=0
16.编程实现以下功能:读入两个运算数(datal和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(用switch语句实现)
17.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设90分以上为'A'80~89为'B'70~79为'C'60~69为'D'60以下'E'(用switch语句实现)


三角形中的c怎么求
(1)在直角三角形中满足勾股定理—在平面上的一个直角三角形中,两个直角边边长的平方加起来等于斜边长的平方,数学表达式:a²+b²=c²(2)a²+b²=c²,求c,因为c是一条边,所以就是求大于0的一个根。即c=√(a²+b²)。

如何求排列组合中的C值?
排列组合中的C计算公式为:C(n,m)=n!\/(m!(n-m)!)。其中n!表示n的阶乘,即n×(n-1)×(n-2)×...×3×2×1。举个例子,如果需要从5个不同的元素中取出3个元素进行组合,那么C(5,3)的计算方法为:C(5,3)=5!\/(3!×2!)=10。这个公式的意思是,从5个不...

怎么求数学常数c
1+1\/2+1\/3+……+1\/n=ln(n)+C,(C为欧拉常数)Sn=1+1\/2+1\/3+…+1\/n>ln(1+1)+ln(1+1\/2)+ln(1+1\/3)+…+ln(1+1\/n)=ln[2*3\/2*4\/3*…*(n+1)\/n]=ln(n+1)

已知d求c公式怎样写
c= πd。

定积分的常数C怎么求啊?
在数学的殿堂中,定积分是微积分的核心概念,它就像一个隐藏的谜团,其中的常数C,尽管看似简单,却在求解过程中扮演着至关重要的角色。实际上,C并非总是需要我们去求解,它更像是一个预留的变量,其值在特定问题中才会浮出水面。特殊情况下求解C 当你面临一个需要计算初始位置和速度的物理系统时,...

圆的公式已知s怎样求c
圆的面积S=πr²(r为半径),则r=√(S\/π),于是 圆的周长C=2πr=2π√(S\/π)=2√(πS),然后直接代入数值即可!

求向量c的方法是什么?
判断方法有:1.右手手掌张开,四指并拢,大拇指垂直于四指指向的方向;2.伸出右手,四指弯曲,四指与a旋转到b方向一致,那么大拇指指向为c向量的方向。因此,向量的外积不遵守乘法交换率,因为向量a×向量b=—向量b×向量a,在物理学中,已知力与力臂求力矩,就是向量的外积,即叉乘。

c是怎么求出来的?
1、运算符%的运算结果就是左操作数除以右操作数后所得的余数。下面举一个通例来说明:a%b假设a\/b=c(余数为d)对于上面的例子,左操作数为a,右操作数为b,那么a%b后的结果为d。2、值得注意的是运算符%的左右操作数必须都为int型。运算符%最基本的应用就是判断奇偶性(a%2),还有就是用在...

排列组合C怎么求?
排列组合中的C和A计算方法如下:排列:A(n,m)=n×(n-1)...(n-m+1)=n!\/(n-m)!(n为下标,m为上标,以下同)组合:C(n,m)=P(n,m)\/P(m,m) =n!\/m!(n-m)!例如:A(4,2)=4!\/2!=4*3=12 C(4,2)=4!\/(2!*2!)=4*3\/(2*1)=6 排列组合注意:对于某几个要求...

三角函数 求c的值
4 ∴c²=a²+b²-2abcosC =8+2.4²-9.6√2cos(180º-A-B)=8+2.4²+9.6√2cos(A+B)=8+2.4²+9.6√2[cosAcosB-sinAsinB)=8+2.4²+9.6√2(√2\/2·4\/5-√2\/2·3\/5)=8+144\/25+48\/25=392\/25 ∴c=2√98\/5 ...

九原区15190338942: 求C++,swich函数详解, -
梁郊可立: C++关键字没有swich,只有switch,而且switch不是函数,是程序控制语句,它的使用注意几点: 1:带入参数只能为int , short , byte ,char 2.case标签下一般应加break, default标签可不加 3.case里若不加{},则不能定义变量并赋值,但是可以定义变量,且变量作用域在switch中

九原区15190338942: c++ switch 语句,急啊!!!!!跪求 -
梁郊可立: 错误不多,不过有不少细节没注意到....一、你输入的是字符,所以ch要定义为char格式,不是int格式....二、'ch'....用法有错,符合''是表示字符,但不能用于变量本身,所以上面switch('ch')应该改为switch(ch),这样就会对ch的...

九原区15190338942: 求助:C/C++中switch case的用法! -
梁郊可立: switch语法格式如下:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2; …case 常量表达式n: 语句n; default: 语句n+1; } 示例代码:#include int main() { int a; printf("input integer number: "); scanf("%d",&a); ...

九原区15190338942: c/c++编程问题急求完整代码:编写swap交换函数 -
梁郊可立: #include "stdio.h" void swap(int *a,int *b){ int t; t=*a,*a=*b,*b=t; } int main(int argv,char *argc[]){ int x,y; printf("Input x & y(all int)...\n"); scanf("%d%d",&x,&y); printf("x = %d\ty = %d\n",x,y); swap(&x,&y); printf("After the exchange:\n"); printf("x = %d\ty = %d\n",x,y); return 0; }结果 举例:

九原区15190338942: 这个Cannot open include file: 'stdafx.h': No such file or directory错误怎么改?(急求) -
梁郊可立: #include #include #include #inc...

九原区15190338942: 急求C++代码!!!!!!!!!!! -
梁郊可立: 好辛苦才写完的,记得多加分啊..#include#include#include#include using namespace std;//f函数验证是...

九原区15190338942: 求一个C++的稀疏矩阵类,要求能实现加法,减法和乘法,正常输出.还能转置...急!!!急!!! -
梁郊可立: #include <iostream.> using namespace std; const int MAXSIZE=100; // 定义非零元素的最多个数 const int MAXROW=10; // 定义数组的行数的最大值 typedef struct { // 定义三元组的元素 int i,j; //行数 列数 int e; //非零元的值 }Triple; typedef ...

九原区15190338942: 谁有单代号搭接网络计划计算时间参数的C++代码,急求 -
梁郊可立: char grade(int x) {int y; y = x / 10;switch (y){case 10:case 9:return 'a';case 8:return 'b';case 7:return 'c';case 6:return 'd';default:return 'e';} } 第一个函数 #include #include int main(void) { double a, b, c, temp, y, s; printf("input a,b,c:...

九原区15190338942: C语言题目,求解...急.. -
梁郊可立: #include main() { int a[5],b[8]; int i,j,max1=a[0],max2=b[0]...

九原区15190338942: C++程序中一段 SWAP码,求解这个怎么对了... -
梁郊可立: 你main()函数中调用的swap()函数不是你自己定义的函数void swap(int *a,int *b),而是标准名称空间(namespace std)中定义的swap().因为你用了using namespace std这句,所以调用的函数是std::swap(),而非void swap(int *a,int *b).去掉using namespace std这句话,编译器就会出现你预料中的那个错误了.前提:你的void swap(int *a,int *b)在main()函数之前要声明,在cin,cout和endl前加上std::.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网