实验教程编程答案副本.docx

上传人:b****5 文档编号:29102496 上传时间:2023-07-20 格式:DOCX 页数:37 大小:28.82KB
下载 相关 举报
实验教程编程答案副本.docx_第1页
第1页 / 共37页
实验教程编程答案副本.docx_第2页
第2页 / 共37页
实验教程编程答案副本.docx_第3页
第3页 / 共37页
实验教程编程答案副本.docx_第4页
第4页 / 共37页
实验教程编程答案副本.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

实验教程编程答案副本.docx

《实验教程编程答案副本.docx》由会员分享,可在线阅读,更多相关《实验教程编程答案副本.docx(37页珍藏版)》请在冰豆网上搜索。

实验教程编程答案副本.docx

实验教程编程答案副本

实验二输入/输出与顺序结构

4.编程题

⑵输入学生的语文、数学、英语、物理4门课程的成绩,计算该学生的总成绩和平均成绩并输出。

#include

voidmain()

{

doubleeng,chin,math,phy,sum,aver;

cout<<"pleaseinput4scores:

";

cin>>eng>>chin>>math>>phy;//输入成绩

sum=eng+chin+math+phy;//计算总成绩

aver=sum/4;//计算平均分

cout<<"Sum="<

}

⑶编写程序,从键盘输入一个大写英文字母,输出对应的小写字母。

#include

voidmain()

{

charc1,c2;

cout<<"Pleaseinputanupperletter:

";

cin>>c1;

c2=c1+32;

cout<<"c1="<

}

实验三选择结构程序设计

3.编程题

XX⑴由键盘输入三个字符,输出其中的最大者。

XX

【源程序】

#include

voidmain()

{

charx,max;

cout<<"Pleaseinputthreecharacterss:

";

cin>>x;

max=x;

cin>>x;

if(x>max)

max=x;

cin>>x;

if(x>max)

max=x;

cout<<"max="<

}

⑶编程求下面符号函数值:

【源程序】

#include

voidmain()

{

intx,y;

cout<<"Pleaseinputx=";

cin>>x;

if(x>0)

y=1;

elseif(x==0)

y=0;

else

y=-1;

cout<<"y="<

}

⑷计算奖金。

设企业利润为L,当企业利润L不超过5000元时,奖金为利润的1.5%,当5000<L≤10000元时,超过5000元部分奖金为2%(5000元以下仍按1.5%);当10000<L≤20000元,除10000以下的按上述方法计算外,超过10000元部分按2.5%计算奖金;如果20000<L≤50000元,超过20000元部分按3%计算奖金;当50000<L≤100000元时,超过50000元部分按3.5%计算奖金;当L超过100000元时,超过100000元部分按4%计算奖金。

由键盘输入L的值,编程计算相应的奖金并输出。

【源程序】

#include

voidmain()

{

doubleL,S;

cout<<"pleaseinputL=";

cin>>L;

if(L<5000)

S=L*0.015;

elseif(L<10000)

S=75+(L-5000)*0.02;

elseif(L<20000)

S=175+(L-10000)*0.025;

elseif(L<50000)

S=175+250+(L-20000)*0.03;

elseif(L<100000)

S=175+250+900+(L-50000)*0.035;

else

S=175+250+900+1750+(L-100000)*0.04;

cout<<"S="<

}

⑸输入年龄,输出所处人群:

9岁以下为儿童,输出A;10~19为少年,输出B;20~29为青年,输出C;30~49为中年,输出D;50以上为老年,输出E。

【源程序】

#include

voidmain()

{

intage;

cout<<"Pleaseinputage:

";

cin>>age;

switch(age/10)

{

case0:

cout<<"A--儿童\n";break;

case1:

cout<<"B--少年\n";break;

case2:

cout<<"C--青年\n";break;

case3:

case4:

cout<<"D--中年\n";break;

default:

cout<<"E--老年\n";break;

}

}

实验四循环结构程序设计

4.编程题

⑴输入n,求1+2+3+……+n的和。

#include

voidmain()

{

inti,n;

doublesum=0;

cin>>n;

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

sum+=i;

cout<<"1+2+3+...+"<

}

实验五典型结构程序设计

2.编程

(1)输入10个字符,输出其中的最大者。

#include

voidmain()

{

charch,maxchar;

cout<<"pleaseinputtencharacter:

";

cin>>ch;

maxchar=ch;

for(inti=1;i<10;i++)

{

cin>>ch;

if(ch>maxchar)maxchar=ch;

}

cout<<"maxchar="<

}

(2)一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下,再反弹。

求它在第10次落地时,共经过多少米?

第10次反弹多高?

分析:

共经过:

100*(1+1/2+1/4+1/8---+1/1024)米

第10次:

100/1024米

#include

voidmain()

{

doubles=1,t=1,sum,t10;

inti;

for(i=1;i<=10;i++)

{

t=2*t;

s=s+1/t;

}

t10=100/t;

sum=100*s;

cout<<"sum="<

}

(4)编写程序,对输入的一批整数统计出正数的个数、负数的个数、奇数的个数、偶数的个数,要求所统计的整数由键盘输入,以0作为输入数据结束的标志。

#include

voidmain()

{

inta=0,b=0,c=0,d=0,x;

cin>>x;

while(x!

=0)

{

if(x>0)a+=1;

if(x<0)b+=1;

if(x%2)c+=1;

elsed+=1;

cin>>x;

}

cout<<"正数个数="<

cout<<"负数个数="<

cout<<"奇数个数="<

cout<<"偶数个数="<

}

实验六

*⑴输入10个学生的成绩,求其平均值,输出最高成绩,并统计低于平均值的人数。

*注:

LT是小于的意思,lessthan

*/

#include

constdoubleLOWER=-10000;

voidmain()

{

doublescore[10];

doublehighestScore=LOWER;

doubleaverage=0;

doublenumLTaverage=0;

//输入、求最高分、求总分

for(inti=0;i<10;++i)

{

cout<<"Pleaseinputthescore("<

";

cin>>score[i];

if(highestScore

average+=score[i];

}

average/=10;

//求成绩低于平均分的人数

for(i=0;i<10;++i)

if(score[i]

cout<<"Theaveragescoreis"<

cout<<"Thehighestscoreis"<

cout<<"ThenumberofLTaverageis"<

}

/*

*⑵分别用冒泡法和选择法对输入的10个整数按由大到小排序。

*冒泡法参见课本第四章课后作业第四题

*/

#include

voidmain()

{

intmyArray[10];

intouter,inner;

intimax;

for(inti=0;i<10;++i)

{

cout<<"Inputanumber:

";

cin>>myArray[i];

}

for(outer=0;outer<10;++outer)

{

//在下标位outer到9之间的元素中寻找最大值

imax=outer;

for(inner=outer+1;inner<10;++inner)

if(myArray[imax]

//将最大值与下标为outer的元素交换

inttemp=myArray[outer];

myArray[outer]=myArray[imax];

myArray[imax]=temp;

}

//输出

for(i=0;i<10;++i)

cout<

cout<

}

/*

*⑶使用折半查找法,在给定的数组中查找某个数据。

*/

#include

constintN=10;

voidmain()

{

intmyArray[N]={1,5,8,13,16,34,67,78,90,100};

intiSearch;

cout<<"Pleasetellmethenumberwhichyouwanttosearch:

";

cin>>iSearch;

intlow=0;

inthigh=N-1;

intmid;

//开始二分查找

while(low<=high)

{

mid=(low+high)/2;

if(myArray[mid]==iSearch)

break;

elseif(myArray[mid]

low=mid+1;

else

high=mid-1;

}

//判断是否找到

if(myArray[mid]==iSearch)

cout<<"Wehavefoundthenumber."<

else

cout<<"Wehavn'tfoundthenumber."<

}

 

/*

*⑷按杨辉三角形的规律打印以下的数据(要求只打印出10行)。

*1

*11

*121

*1331

*14641

*15101051

*…

*/

#include

voidmain()

{

intyangHui[10][10];

yangHui[0][0]=yangHui[1][0]=yangHui[1][1]=1;

for(inti=2;i<10;++i)

{

yangHui[i][0]=yangHui[i][i]=1;

for(intj=1;j

yangHui[i][j]=yangHui[i-1][j]+yangHui[i-1][j-1];

}

for(i=0;i<10;++i)

{

for(intj=0;j<=i;++j)

cout<

cout<

}

}

/*

XXX⑸编写程序统计某班英语、语文、数学3门课程的成绩,

*学生人数与成绩由键盘输入,要求统计出每门课程全班

*的总成绩和平均成绩以及每个学生三门课程的总成绩和

*平均成绩。

*/

#include

voidmain()

{

//由用户输入学生人数

intnumStu;

cout<<"Pleaseinputthenumberofstudents:

";

cin>>numStu;

//根据用户输入的人数建立数组,其中0-2列为三门课成绩,最后一列是总分。

//最后添加一行用来存储总分。

int(*p)[4];

p=newint[numStu+1][4];

//将总分置0

p[numStu][0]=p[numStu][1]=p[numStu][2]=0;

for(inti=0;i

{

//将每个人的总分置0

p[i][3]=0;

cout<<"IDis"<

\n";

//输入英语成绩

cout<<"PleaseinputthescoreofEng:

";

cin>>p[i][0];

p[i][3]+=p[i][0];

p[numStu][0]+=p[i][0];

//输入物理成绩

cout<<"PleaseinputthescoreofPhy:

";

cin>>p[i][1];

p[i][3]+=p[i][1];

p[numStu][1]+=p[i][1];

//输入英语成绩

cout<<"PleaseinputthescoreofMat:

";

cin>>p[i][2];

p[i][3]+=p[i][2];

p[numStu][2]+=p[i][2];

}

//输出

for(i=0;i

{

cout<<"ID"<

\n";

cout<<"Thesumis"<

cout<<".\tTheaverageis"<

cout<

}

cout<<"Eng:

sum="<

cout<<"\nPhy:

sum="<

cout<<"\nMat:

sum="<

delete[]p;

}

/*

*⑹编写程序求对矩阵进行转置,即将元素的行列位置交换。

*/

#include

voidmain()

{

intmyMatrix[4][4];

//输入

for(inti=0;i<4;++i)

for(intj=0;j<4;++j)

{

cout<<'('<

";

cin>>myMatrix[i][j];

}

//输出转置前的数组

cout<<"Beforeexchange:

\n";

for(i=0;i<4;++i)

{

for(intj=0;j<4;++j)

cout<

cout<

}

//转置

for(i=0;i<4;++i)

for(intj=0;j

{/*

*⑺编写程序求两个矩阵的乘积,若矩阵A[N][M]与B[M][K]相乘,

*则得到矩阵C,其行列数为N×K。

注意A的列数与B的行数相同

*,才可以进行乘法操作。

*/

#include

constintN=3;

constintM=4;

constintK=5;

voidmain()

{

//定义数组

inta[N][M],b[M][K],c[N][K];

//输入数组A

cout<<"MatrixA:

\n";

for(inti=0;i

for(intj=0;j

{

cout<<'('<

cout<<'('<

";

cin>>a[i][j];

}

//输入数组B

cout<<"MatrixB:

\n";

for(i=0;i

for(intj=0;j

{

cout<<'('<

cout<<'('<

";

cin>>b[i][j];

}

 

//计算C,并输出

cout<<"MatrixC=AXB:

\n";

for(i=0;i

{

for(intj=0;j

{

c[i][j]=0;

for(intk=0;k

c[i][j]+=a[i][k]*b[k][j];

cout<

}

cout<

}

}

inttemp=myMatrix[i][j];

myMatrix[i][j]=myMatrix[j][i];

myMatrix[j][i]=temp;

}

//输出转置后的数组

cout<<"Afterexchange:

\n";

for(i=0;i<4;++i)

{

for(intj=0;j<4;++j)

cout<

cout<

}

}

实验七数组与指针

(一)

4.编写程序并上机调试运行

⑴编写程序,输入5个字符串,输出其中最大者。

要求使用二维字符数组及字符串函数。

#include

#include

constintN=3;

voidmain()

{

chara[N][20];

inti,max=0;

for(i=0;i

cin.getline(a[i],20);

for(i=1;i

if(strcmp(a[i],a[max])>0)

{

strcpy(a[max],a[i]);

}

cout<

}

⑵编写程序,将一个字符串中的数字字符都删除。

#include

voidmain()

{

chara[20];

inti=0,j=0;

cout<<”Pleaseinputthecharacters:

”;

cin.getline(a,20);

for(i=0;a[i]!

='\0';i++)

{

if(a[i]<'0'||a[i]>'9')

{

a[j++]=a[i];

}

}

a[j]='\0';

cout<

}

XXXXX⑶编写程序,输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。

#include

voidmain()

{

chara[100];

inti,num=0;

cout<<"Pleaseinputthecharacters:

\n";

cin.getline(a,100);

for(i=0;a[i]!

='\0';i++)

{

while(a[i]=='')

{

i++;

}

num++;

while(a[i]!

='')

{

i++;

}

}

cout<<"Thenumberofthewordsare:

"<

 

}

 

实验八数组与指针

(二)

4.编写程序并上机调试运行

⑶编写程序,当输入1~7(表示星期几)时,显示相应的星期的英文名称,输入其它整数时则显示错误信息。

#include"iostream.h"

constintM

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

当前位置:首页 > 小学教育 > 小升初

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

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