c++实验答案

更新时间:2024-05-21 09:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验答案 实验一实验一 1.实验目的 通过本次实验

(1)掌握用VC++集成开发环境编辑源程序的方法。

(2)掌握在VC++集成开发环境中编译、调试与运行程序的方法。 (3)理解数据类型、变量、运算符、表达式的概念。 (4)学会使用cin进行数据输入操作。

(5)学会用算术表达式、关系表达式、赋值表达式完成数据处理工作。 (6)学会使用cout进行数据输出操作。 2.实验要求

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序; (3)编译运行源程序; (4)写出运行结果。 3.实验内容

(1)设计一个C++程序,输出以下信息: *************** Hello!

***************

(2)设计一个C++程序,输入三个职工的工资,求工资总额。 实验数据:1500,2000,2500

(3)设计一个程序,从键盘输入一个矩形的长与宽,求其周长和面积。 实验数据:50,40

(4)设计一个程序,输入一个华氏温度值,要求输出其对应的摄氏温度值。温度转换公式为:c=(f-32)*5/9。 实验数据:33

(5)从键盘输入一个四位整数n=abcd,从左到右用a、b、c、d表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数m=dcba,试设计程序。 实验数据:1234 4.解答参考

(1)新建工程为myproject1,新建c++源程序,文件名为myfile1.cpp,输入以下内容: # include void main()

{ cout<<\ cout<<\ Hello!\

cout<<\}

运行结果:

*************** Hello!

*************** (2)算法分析提示:

存放每个职工的工资变量应该是一个实型数,故工资总额变量也应该是实型数。程序如下。

# include void main()

{ int sa1,sa2,sa3,sum;

cout<<\请输入三个职工的工资:\ cin>>sa1>>sa2>>sa3; sum=sa1+sa2+sa3;

cout<<\工资总额是:\}

运行结果:

请输入三个职工的工资:1500 2000 2500 工资总额是:6000 (3)程序如下:

# include void main() { float a,b ,L,S;

cout<<\请输入一个矩形的长与宽:\ cin>>a>>b; L=(a+b)*2; S=a*b;

cout<<\矩形的长与宽: \’和’<

运行结果:

请输入一个矩形的长与宽: 8 12

矩形的长与宽:8 和12 矩形的周长: 40 矩形的面积: 96 (4) 程序如下:

# include void main() { float c,f;

cout<<\请输入华氏温度:\ cin>>f; c=(f-32)*5/9;

cout<<\摄氏温度是: \}

运行结果:

请输入华氏温度:95 摄氏温度是: 35.0 (5)算法分析提示:

一个四位数如1234,它的千位数a是1,求解的方法是1234/1000,因为两个整数相除结果是取整了,所以可求出千位,而它的个位d是4,求解的方法是1234,余数恰好是结果,

至于百位数b和十位数c采用的方法是多样的,见程序。输出值为d*1000+c*100+b*10+a 程序如下:

# include # include void main()

{ int a,b,c,d,n,m;

cout<<\请输入四位十进制整数: \ cin>>n; a=n/1000;

b=n00/100; c=n0/10; d=n;

m=d*1000+c*100+b*10+a; cout<<\}

运行结果:

请输入四位十进制整数: 1234 m=4321

实验二 1.实验目的 通过本次实验

(1)初步学会VC++开发环境中,单步执行程序的方法。

(2)掌握if语句的格式与使用方法,学会两路分支程序设计方法; (3)掌握嵌套if语句的格式与用法,学会多路分支程序的设计方法。 (4)掌握switch语句的格式与使用方法,学会编写多路分支程序。 2.实验要求

(1)编写实验程序

(2)在VC++运行环境中,输入源程序 (3)单步执行程序 (4)编译运行源程序

(5)输入实验数据,写出运行结果。 3.实验内容

(1)演示单步执行程序的方法;

(2)设计一个程序,判断从键盘输入的整数的正负性和奇偶性。 实验数据:-3 与 5 (3)有下列函数:

-x+3.5 (x<5)

y= 20-3.5(x+3)2 (5≤x<10) -3.5+sin(x) (x≥10)

设计一个程序,从键盘输入x的值,输出y的值。 实验数据:6 与 11 (4)奖金税率如下:(a代表奖金,r代表税率)

a<100(元) r=0%

100≤a<200 r=2% 200≤a<400 r=4% 400≤a<800 r=8% a≥800 r=10% 输入一个奖金数,求税率、应交税款及实得奖金数。 实验数据:400 与 900 4.解答参考

(2) 算法分析提示:首先判断一个数是否是正数,在此基础上判断它是否是偶数。 算法描述如下:

①定义一个整数变量x。 ②输入该整数x。

③如果x>0,继续判断如果x%2=0,这时表明该数是一个正偶数,否则是一个正奇数。 ④否则表明是一个负数,再继续判断如果x%2=0,表明该数是一个负偶数,否则是一个负奇数。

# include void main() { int i;

cout<<\请输入一个整数:\ cin>>i; if (i>0)

if(i%2==0)

cout<

cout<

if(i%2==0)

cout<

cout<

运行结果:

请输入一个整数:-6 -6 is negative even number

(3) 流程图如图3.1所示。程序如下: 图3.1 分段函数流程图 假 开始 输入x x≥5 x≥10

y=x/2-3.5+sin(x) 输出y

y=20-3.5 (x+3)2

y=-x+3.5 结束 假 真 真

#include #include void main() { float x,y;

cout<<\ cin>>x; if (x>=5) if (x>=10)

y=x/2-3.5+sin(x); else

y=20-3.5*(x+3)*(x+3); else

y=-x+3.5;

cout<<\}

运行结果:

Input x: -3 y=6.5

(4) 算法分析提示:由于判断的条件比较多,所以考虑用switch语句。根据奖金额有被100除的特点,可以给变量b=a/100,不同的情况下税率不同。 算法描述如下:

① 定义四个变量a,b,r分别表示奖金额,情况变量,税率。 ② 输入奖金额a。

③ 如果a>=800则 r=10。 ④ 否则 b=a/100。

⑤ 根据b的值,得到r。

⑥ 输出时输出税率r,应交税款 a*r/100,实得奖金额a*(1-float(r)/100)。 # include void main() { int a,b,r;

cout<<\ cin>>a;

if (a>=800) r=10; else

{ b=a/100; switch (b)

{ case 0: r=0;break; case 1: r=2;break;

case 2:

case 3: r=4;break; case 4: case 5: case 6:

case 7: r=8;break;

default :cout<<\ } }

cout<<\ cout<<\

cout<<\}

运行结果:

please Input prize :400 Tax rate: 8% Tax: 32 Prise: 368 运行结果:

please Input prize :900 Tax rate: 10% Tax: 90 Prise: 810 实验三

1.实验目的 通过本次实验

(1)掌握while语句的格式与使用方法,学会当型循环程序设计方法; (2)掌握for语句的格式与用法,学会当型循环程序设计方法;

(3)掌握do?while语句的格式与使用方法,学会直到型循环程序设计方法; (4)学会求常用级数的编程方法; 2.实验要求

(1)编写实验程序

(2)在VC++运行环境中,输入源程序 (3)编译运行源程序

(4)输入实验数据,写出运行结果。 3.实验内容

(1)输入一行字符,分别统计出其中英文字母、空格、数字字符和其它字符的个数。 提示:用cin.get(c)函数从键盘上输入一个字符给变量c,直到输入回车换行字符'\\n'为止。 (2)设有一个数列,它的前四项为0、0、2、5,以后每项分别是其前四项之和,编程求此数列的前20项。

(3)求π近似值的公式为:

其中,n=1、2、3?设计一个程序,求出当n=1000时的π的近似值。

(4) 求出1~599中能被3整除,且至少有一位数字为5的所有整数。如15、51、513均是满足条件的整数。

提示:将1~599中三位整数i分解成个位、十位、百位,分别存放在变量a、b、c中。然后判断a、b、c中是否有5。将三位整数i

(设i=513)分解成个位、十位、百位的方法是: c=i; //c= i=513=3 a=i/10; //a= i/10=51

b=a; //b=a=51=1 a=a/10; //a=a=51/10=5 4.解答参考

(1) # include void main(void) { char c;

int i,letter=0,number=0,blank=0,other=0; cout<<\请输入字符串:\

cin.get(c); //get(c)函数用于从键盘上提取一个字符 while(c!='\\n')

{ if ('a'<=c && c<='z' || 'A'<=c && c<='Z') letter++; else if ('0'<=c && c<='9') number++; else if (c==' ') blank++; else other++; cin.get(c); }

cout<<\ cout<<\ cout<<\ cout<<\}

运行结果:

请输入字符串:I am Student 1234 letter=10 number=4 blank=3 other=0

(2) 数列前四项值存放在变量 f1=0、f2=0、f3=2、f4=5中 第5项的值用f1表示,则f1= f1+f2+f3+f4; 第6项的值用f2表示,则f2= f2+f3+f4+f1; 第7项的值用f3表示,则f3= f3+f4+f1+f2; 第8项的值用f4表示,则f4= f4+f1+f2+f3; 共进行5次,即可求出此数列的前20项。 # include void main(void) { long f1,f2,f3,f4,i;

f1=0; f2=0; f3=2; f4=5; for (i=1;i<=5;i++)

{ cout<

运行结果:

0 0 2 5 7 14 28 54 103 199 384 740 1426 2749 5299 10214 19688 37950 73151 141003

(3) # include void main(void) { long m,n; double pi=1;

cout<<\ cin>>m;

for(n=1;n<=m;n++)

{ pi=pi*(2.0*n/(2.0*n-1)*2.0*n/(2.0*n+1)); }

cout<<\}

运行结果:

Please Input m:1000 pi=3.14081 运行结果:

Please Input m:10000 pi=3.14151

(4) # include void main()

{ int i,a,b,c,j=1;

for (i=1;i<=599;i++) if (i%3==0) { a=i/100;

b=i0/10; c=i0;

if ((a==5) || (b==5) || (c==5)) { cout<

if (j%5==0) cout<

} }

cout<

实验四

1.实验目的 通过本次实验

(1)掌握一维数组的定义、初始化赋值、数组元素的引用方法; (2)掌握二维数组的定义、初始化赋值、数组元素的引用方法; (3)学会求数组元素中的最大值、最小值、平均值的方法; (4)学会数组元素排序的两种编程方法。 2.实验要求

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序; (3)编译运行源程序;

(4)输入实验数据,写出运行结果 3.实验内容

(1)某班第1组有10个学生,进行了C++考试,编写程序将考试成绩输入一维数组,并求出C++的平均成绩及优(90~100)、良(80~89)、中(70~79)、及格(60~69)与不及格(0~59)学生的人数。

实验数据:90、85、80、75、70、65、60、55、50、45

(2)某班第1组有10个学生,进行了C++考试,编写程序将考试成绩输入一维数组,并将C++成绩用冒泡法、选择法两种排序算法,由低到高的顺序排序后输出。 实验数据:90、85、80、75、70、65、60、55、50、45 (3)输入一个5行5列的二维数组,编程实现: 求出其中的最大值和最小值及其对应的行列位置; 求出对角线上各元素之和。 实验数据:

1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9

(4)设A、B、C为m行n列矩阵。设计矩阵加法程序,能完成C=A+B的操作。并输出C的元素值。m与n用define定义为常量,取值3、3。A、B矩阵的元素值如下: 1 2 3

A= 4 5 6 7 8 9 3 2 1

B= 6 5 4 9 8 7

4.解答参考 (1)

#include #include #define N 10 void main(void) { float sum=0.0;

int i,b[]={0,0,0,0,0},a[N]; cout<<\ for (i=0;i<=N-1;i++) cin>>a[i];

for (i=0;i<=N-1;i++) { sum=sum+a[i]; switch (a[i]/10) { case 10:

case 9: b[0]++;break; case 8: b[1]++;break; case 7: b[2]++;break;

case 6: b[3]++;break; default: b[4]++; } }

cout<<\优: \ cout<<\良: \ cout<<\中: \ cout<<\及格: \ cout<<\不及格: \ cout<<\平均分: \ cout<

运行结果:

Input 10 score:

90 85 80 75 70 65 60 55 50 45 优: 1

良: 2 中: 2 及格:2

不及格: 3 平均分: 67.5

本文来源:https://www.bwwdw.com/article/izf7.html

Top