华中科技大学C++实验34Word文档下载推荐.docx

上传人:b****8 文档编号:22700795 上传时间:2023-02-05 格式:DOCX 页数:17 大小:293.83KB
下载 相关 举报
华中科技大学C++实验34Word文档下载推荐.docx_第1页
第1页 / 共17页
华中科技大学C++实验34Word文档下载推荐.docx_第2页
第2页 / 共17页
华中科技大学C++实验34Word文档下载推荐.docx_第3页
第3页 / 共17页
华中科技大学C++实验34Word文档下载推荐.docx_第4页
第4页 / 共17页
华中科技大学C++实验34Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

华中科技大学C++实验34Word文档下载推荐.docx

《华中科技大学C++实验34Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《华中科技大学C++实验34Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

华中科技大学C++实验34Word文档下载推荐.docx

cin>

>

input;

if(input-int(input)==0)

if(int(input)%2)

cout<

number"

input<

isodd."

elsecout<

iseven."

error!

!

'

\t'

thetextnumbershouldberoundnumber"

endl;

return0;

}(3)如果对输出结果的显示格式不满意,请修改。

\n'

}

(4)请修改if(input%2)中的表达式,使程序仍然能正确执行。

if(int(input)&

1)

2.编程求一元二次方程ax2+bx+c=0的根。

包括以下判断和结果,若输入a=0,给出提示;

△=b2-4ac,若△>

0,输出两个不等的实根;

若△=0,输出两个相等实根;

若△<

0,输出两个复数根。

(1)参照主教材的例2.8编写源程序并调试运行,并记录结果。

比较与例2.8的不同之处。

a=0b=0c=4

a=0b=2c=4

a=1b=2c=0

a=2b=5c=1

(2)思考if–else嵌套使用时的注意事项是什么?

注意if和else的配套情况

3.编写程序:

输入一门课程的成绩,若高于90分,输出“A 

grade”;

若高于80分而低于90分,输出“Bgrade”;

若高于70分而低于80分,输出“C 

若高于60分而低于70分,输出“D 

否则输出“Notpassed”。

【要求】

1.使用if–else语句和switch语句两种方法实现。

If语句

{

intg;

Ç

ë

Ê

ä

È

¿

Î

³

Ì

É

¼

¨

cin>

g;

if(g>

=90)cout<

Agrate"

elseif(g>

=80)cout<

Bgrate"

=70)cout<

Cgrate"

=60)cout<

Dgrate"

Notpassed"

Switch语句

switch(g){

default:

cout<

NOTPASSED"

break;

case90:

case91:

case92:

case93:

case94:

case95:

case96:

case97:

case98:

case99:

case100:

case80:

case81:

case82:

case83:

case84:

case85:

case86:

case87:

case88:

case89:

case70:

case71:

case72:

case73:

case74:

case75:

case76:

case77:

case78:

case79:

case60:

case61:

case62:

case63:

case64:

case65:

case66:

case67:

case68:

case69:

return0;

2.分析if–else语句和switch语句的区别,switch语句特别适合于什么情况使用?

If-else可以用函数来限定条件

Switch则限定了条件表达式的取值只能是开关量不能使连续量。

Switch特别适合条件表达式本身不符合数据类型的要求,但经过处理后可以用switch语句来实现

3.思考使用switch语句时应注意什么?

各个case分支出现的次序可以使任意的,通常将default放在最后。

Break语句可选

每个常量表达式的取值必须各不相同,否则将引起歧义

允许多个常量表达式对应同一个语句序列

4、编写程序:

输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。

(1)是3的倍数,但不是7的倍数。

(2)不是3的倍数,是7的倍数。

(3)是3的倍数,也是7的倍数。

(4)既不是3的被数,也不是7的倍数。

 #include<

请输入一个数"

switch(g%21){

不是3的倍数,也不是7的倍数"

case0:

是3的倍数,也是7的倍数"

case7:

case14:

不是3的倍数是7的倍数"

case3:

case6:

case9:

case12:

case15:

case18:

是3的倍数,不是7的倍数"

★(选做题)5.编程计算个人所得税。

个人所得税率表如下:

月收入1200元起征,超过起征点500元以内部分税率5%,超过500元到2,000元部分税率10%,

超过2,000元到5,000元部分税率15%,超过5,000元到20,000元部分税率20%,超过20,000元到40,000元部分税率25%,超过40,000元到60,000元部分税率30%,

超过60,000元到80,000元部分税率35%,超过80,000元到100,000元部分税率40%,超过100,000元部分税率45%。

intg,a;

请输入个人收入"

a=g-1200;

if(a>

100000)cout<

个人所得税为"

(a-100000)*0.45+(100000-80000)*0.4+(80000-60000)*0.35+(60000-40000)*0.3+(40000-20000)*0.25+(20000-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

80000)cout<

(a-80000)*0.4+(80000-60000)*0.35+(60000-40000)*0.3+(40000-20000)*0.25+(20000-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

60000)cout<

(a-60000)*0.35+(60000-40000)*0.3+(40000-20000)*0.25+(20000-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

40000)cout<

(a-40000)*0.3+(40000-20000)*0.25+(20000-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

20000)cout<

(a-20000)*0.25+(20000-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

5000)cout<

(a-5000)*0.2+(5000-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

2000)cout<

(a-2000)*0.15+(2000-500)*0.1+500*0.05<

elseif(a>

500)cout<

(a-500)*0.1+500*0.05<

elseif(a>

0)cout<

(a-500)*0.05<

elsecout<

个人所得税为0"

return0;

实验四循环结构程序设计

一、实验目的

1.掌握3种循环结构:

while,do—while,for的区别与联系,以及它们之间相互转换的方法,并能正确使用它们。

2.掌握与循环语句相关的break语句和continue语句的使用方法

二.实验内容

1.输入正整数n,计算n的阶乘。

【分析】由于n!

=1*2*3*……*n,因此,要计算n的阶乘可以从1开始,由1的阶乘乘以2得到2的阶乘,再乘以3得到3的阶乘.......以此类推。

 

(1)分别输入数据-2,1,5,10,20调试运行程序,并记录程序结果。

 -2

 1

 5

 10

 20

(2)删除程序中//A处的赋值语句return1;

重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?

不正确,当输入时-2时,

出现了一个1

改为,

(3)删除程序中//B处的语句result=1;

重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?

不正确,当输入是20等正整数时,

给result把值赋回去即可

(4)将程序中语句doubleresult=0;

改为intresult=0;

重新以上述数据调试运行程序,结果如何?

为什么?

 结果无影响,因为输入计算的本来就是整型,result也是整型

2.范例:

编程计算求π的近似值。

【程序】

(1)输入程序编译后使用Debug跟踪,单步执行程序,记录以下变量值的变化。

i

term

sum

 0

1

2

3

4

5

:

回答以下问题:

a)从跟踪结果分析,term和sum的值有什么错误?

Term,Sum的值滞后了一步

b)循环结束后,i的值是多少?

用什么简单的办法可以看到?

c)对程序作何修改可以使其得到正确的结果?

cmath>

voidmain()

longinti=1;

doublesum=0,term,pi;

do

{

term=1.0/(i*i);

sum+=term;

i+=1;

}

while(term>

1e-12);

pi=sqrt(sum*6);

pi="

pi<

3.将输入的小写字母转换成大写字母。

【分析】由ASCII码表可以看出,大写英文字母的ASCII码值在65至90之间,小写英文字母的ASCII码值在97至122之间,每一个英文字母的大写和小写的ASCII码相差32。

chari,j;

请输入小写字母:

i;

j=i-32;

相应的大写字母为:

j<

4.编程:

设计一个程序,输入一个日期,要求算出这一天是本年的第几天。

【分析】要算出某天是当年的第几天,应该将当年中本月之前所有月的天数相加,再加上本月至此的天数。

但这里有一个闰年问题,2月是一个特殊月,闰年的2月有29天,非闰年的2月只有28天。

【提示】判断某年是闰年的条件是:

该年号能被4整除但不能被100整除,或者能被400整除。

例如,1996、2000是闰年,但1800不是闰年。

intn,y,r,f,d;

请输入日期,格式同2012224"

n>

y>

r;

if(n%4==0&

&

n%100!

=0||n%400==0)

f=29;

elsef=28;

switch(y){

case1:

d=0;

case2:

d=31;

case3:

d=31+f;

case4:

d=31+f+31;

case5:

d=31+f+31+30;

d=31+f+31+30+31;

case7:

d=31+f+31+30+31+30;

case8:

d=31+f+31+30+31+30+31;

case9:

d=31+f+31+30+31+30+31+31;

case10:

d=31+f+31+30+31+30+31+31+30;

case11:

d=31+f+31+30+31+30+31+31+30+31;

d=31+f+31+30+31+30+31+31+30+31+30;

default:

输入月份不正确!

return1;

d+=r;

该日是本年的第"

d<

天"

5.约瑟夫(Josephus)问题:

n个人围坐成一圈,从1开始顺序编号;

游戏开始,从第一个人开始由1到m循环报数,

报到m的人退出圈外,问最后留下的那个人原来的序号。

【分析]】本题首先要定义一个数组,其元素个数为n。

n定义为常变量,以便定义数组。

数组元素的值标识该人是否出局,1在圈内,0出局。

值为0的元素不参加报数。

可用一个整型数k做计数器,采用倒计数,记录留下的人数。

【提示】数组是线性排列的,而人是围成圈的,用数组表示要有一种从数组尾部跳到其头部的技巧,即下标加1除以n求余数。

#include<

using 

namespace 

std;

int 

main()

n,m,i,s=0;

请输入人数n,数字m"

cin>

m;

for(i=2;

i<

=n;

i++) 

s=(s+m)%i;

胜利者是"

s+1<

return 

0;

★(选做题)6.输入若干字符,统计其中数字字符、空白字符和其他字符的个数,输入EOF结束。

【分析】要对字符进行统计,需要循环语句反复输入字符,读入字符后用switch语句判断字符的种类:

要统计3种字符数,需要定义3个用于计数的变量nDigit,nWhite,nOther,

并置初始值0;

读入字符用cin.get()函数,在这里用while循环比较合适。

白字符指空白键、Tab键和回车键。

EOF表示EndofFile,其值为-1,从键盘输入CTRL+Z键即可。

这里采用重载的intcin.get()函数,它返回的是整型数,所以能返回EOF。

1.程序中的变量c,可以定义为char类型吗?

请试之,并解释原因。

2.请注意程序中case分支语句后的break语句,break能去掉吗?

3.如果要分别统计0-9中个数字出现的次数,怎样才能有效地实现,请修改程序。

4.如果要统计输入的一段文字中出现的行数、单词数和字符数,又怎样有效地实现,请完成之。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1