西南交通大学C上机实验答案(2024版)_第1页
西南交通大学C上机实验答案(2024版)_第2页
西南交通大学C上机实验答案(2024版)_第3页
西南交通大学C上机实验答案(2024版)_第4页
西南交通大学C上机实验答案(2024版)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验1

教学班级:学生学号:学生姓名:

试验日期:2024年3月1日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.熟识C++程序的集成开发环境;

2.学习新建和打开限制台应用程序的方法;

3.驾驭简洁数据运算,以及输入及输出方法。

二、试验任务

1.输入一摄氏温度,输出显示所转换的华氏温度。

(提示:摄氏温度二(华氏温度-32)X5/9)

2.画出一头威猛雄壮的雄狮。

,%%%%%%

,%%/\%%%%/\%

"J/%%%

%.%%%%/0O\%%%

'%%.%%%%_I%%

'%%'%%%%(_Y_)%

//;%%%%'\-/%%%,

((/'wm%'

\\.'I

\\/\II

\\/)II

\/_II-

()))))))

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

doublea,b;

cout<<”请输入一摄氏温度:〃<<endl;

cin>>a;

b=a*9/5+32;

cout*〃转换的华氏温度为:〃*b«endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

COUt<<Z/,%%%%%%zz«endl;

cout<<,?,%%/\%%%%/\%/z«endl;

COUt<<??,%%%\c〃〃J/%%%/z«endl;

cout<<,?%.%%%%/oo\%%%/z«endl;

cout<<〃%%%%%%I%%〃<<endl;

cout«,/%%)%/z«endl;

cout<<z///;%%%%'\-/%%%>/z«endl;

cout<<z/((/'%%%%%%%"z,«endl;

cout<<z,\\I,,<<endl;

cout<<"\\/\||“<<endl;

cout<<〃\\/)||,,<<endl;

cout<<z/\/_||―,,<<endl;

cout<<z/()))))))〃(<endl;

}

试验2

教学班级:学生学号:学生姓名:

试验日期:2024年3月1日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭对一般数据的输入和输出格式限制方法;

2.驾驭对实型数据输出形式的设置和小数位数的限制方法;

3.了解数据输入的相关留意事项。

二、试验任务

1.键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。

要求:编号为11位数字构成,如;价格含有小数部分,如998.0元;

输出的编号只是由数字组成,不应当出现小数点等非数字符号。

cout«〃该计算机的编号和价格分别为:,z«endl;

cout<<a«z,,,«b«endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{charcl,c2,c3,c4,c5,c6;

cout<〈〃请输入密码内容:〃<<endl;

cin»cl»c2»c3»c4»c5»c6;

cl=cl-4;

c2=c2-4:

c3=c3-4;

c4=c4-4;

c5=c5-4;

c6=c6-4;

cout<<〃原文是:〃<<endl;

cout<<cl<<c2«c3<<c4«c5<<c6<<endl;

}

3.

源程序

#include<iostream>

#include<iomanip>

usingnamespacestd;

voidmain()

{floatscorel,score2,score3,average;

cout*〃请输入三门课程的成果〃<<endl;

cin>>scorel»score2>>score3;

average二(scorel+score2+score3)/3;

cout<<〃成果单"<<endl;

cout<<〃学号20240002z,«endl;

cout«”****************************************〃〈〈end1;

cout<<〃科目,z«setw(16)成果"<<endl;

cout<</z------------------------------------------"<<endl;

cout<<〃英语“<<setw(15)«scorel«endl;

cout<〈〃高等数学〃<<setw(l1)<<score2«endl;

cout<〈〃线性代数〃0setw(12)<<score3«endl;

cout<<"***************************丑***********〃〈Vendl;

cout<<fixed;

cout.precisior.(l);

cout<〈〃平均成果〃<<setw(12)<<average<<endl;

试验3

教学班级:学生学号:学生姓名:

试验日期:2024年3月2日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭“处理某一或某些操作只有在特定条件成立的状况下才会被执行”

的编程思路和方法;

2.驾驭简洁分支程序设计,以及if和if-else语句的运用方法。

二、试验任务

x(x<1)

1.已知一函数y=,2x-l(l10),输入x的值,求解并输出相应的y

3x-ll(x>=10)

值。

2.求一元二次方程ax2+bx+c=0的根,其中a、b、c为实数,由键盘输

入。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

doublex,y;

cout<<”请输入x的值:〃<<ondl;

cin>>x;

if(x<l)

y=x;

if(x>=l&&x<10)

y=2*xT;

if(x>=10)

y=3*x-ll;

cout<<〃输出相应的y值为:,z«y«endl;

}

2.

源程序

#include<iostream>

#include<cmath>

usingnamespacestd;

voidmain()

{doublea,b,c,delta,x,xl,x2;

cout<〈〃求一元二次方程ax2+bx+c=0的根”〈Vendl;

cout<〈〃请输入a,b,c的值:,z<<endl;

cin>>a>>b>>c;

delta=b*b-4*a*c;

if(delta<0)

cout<<”一元二次方程无实根〃<<ondl;

else

if(delta==O)

{x=-b/(2*a);

cout<<”一元二次方程ax2+bx+c=0的根为

a:,\<zzxl=x2=,,<<x<<endl;}

if(delta>0)

{xl=(-b-sqrt(delta))/(2*a);

x2=(-b+sqrt(delta))/(2*a);

cout«/z一元二次方程ax2+bx+c=0的根为:〃<<"xl=

,/<<z,x2=,/<<x2<<endl;}

}

试验4

教学班级:学生学号:学生姓名:

试验日期:2024年3月3日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭多路分支结构的程序设计,以及switch语句的运用方法;

2.学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个

变量的取值改变

状况。

二、试验任务

1.某公司进行产品销售,既零售也批发,零售的价格及批发的价格不

同,购买产品数量的多及少其价格也不同。详细标准见下表:

批发商零售商

单位价格(元/单位价格(元/

数量(个)数量(个)

个)个)

50〜200101〜2018

200以上820〜4015

40〜5012

要求编写一程序,输入客户购买产品的数量,输出客户类型(批发

或零售客户)、产品单价及应付的总额。

2.给学生写评语,需将学生的考试成果由百分制转换为5级制,标准

为:

等级分数段

A95.-100分

B85.-94.分

C75.-84.分

D60.—74.分

E60.分以下

3.输入年号y和月份g输出y年的用月有多少天。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{intx,y;

coutX〈〃请输入客户购买产品的数量:〃<<endl;

cin>>x;

y=x/10;

switch(y)

{case0:

case1:

cout。〃客户类型为零售商,产品单价为18元/个,应付的总

额为:〃<<18*x«endl;break;

case2:

case3:

cout。〃客户类型为零售商,产品单价为15元/个,应付的总

额为:,/«15*x«endl;break;

case4:

cout«〃客户类型为零售商,产品单价为12元/个,应付的总

额为:,z«12*x<<endl;break;

)

if(50<=x&&x<200)

cout<<〃客户类型为批发商,产品单价为10元/个,应付的总额

为:,,<<10*x<<endl;

if(x>=200)

cout«〃客户类型为批发商,产品单价为8元/个,应付的总额

为:〃《8*x«endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{inta,b;

coutG〃请输入一学生的考试成果:,z«endl;

cin>>a;

b=a/5;

switch(b)

{case20:

case19:

cout<<〃该学生的考试成果等级为A:"«endl;break;

case18:

case17:

cout〈〈”该学生的考试成果等级为B:“〈〈endl;break;

case16:

case15:

coutX〈〃该学生的考试成果等级为C:〃<<cndl;break;

case14:

case13:

case12:

cout。〃该学生的考试成果等级为D:〃<<endl;break;

default:

cout。〃该学生的考试成果等级为E:〃〈&ndl;

)

}

3.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{inty,m;

cout<<〃请输入输入年号y和月份m:“<<endl;

cin»y»m;

switch(m)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

cout〈<y<<〃年的〃<<m<<〃月有31天:〃<<endl;break;

case4:

case6:

case9:

case11:

cout<<y<<〃年的〃0ni<<〃月有30天:〃<<endl;break;

)

if(m-2)

{if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))

cout〈〈y«〃年的〃〈〃月有29天:〃<<endl;

else

cout«y<〈〃年的〃〃月有28天:zz«endl;

}

}

试验5

教学班级:学生学号:学生姓名:

试验日期:2024年4月日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.理解“处理某一或某些操作须要被有条件地重复执行”的编程思路

和方法;

2.驾驭循环结构的程序设计,以及while、do-while和for循环语句

的运用方法。

二、试验任务

1.计算四二1—』+!—'+…直到最终一项小于10%

4357

2.编程实现阿基里德算法求解两个整数的最大公约数和最小公倍数。

(提示:设两个整数限n(m>=n),用口除以n,求得余数q。

若q为零,n即为所求的最大公约数;

若q不为零,则更新除数和被除数(n-m,q-n)再做除法,

至余数q为零止。这时,相应的n即为所求的最大公约

数。

而最小大公倍数二原始m及n值的乘积/最大公约数。)

3.编程实现十进制整数和二进制整数之间的转换。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

inti=l;

doublen=l,j=l,k=0,pi=0;

do{k=k+j;

n=n+2;

i=-i;

j=i/n;

}while(j>=l.Oe-61|j<=-l.0e-6);

pi=4*k;

cout«/z■/4=“<<k«endl;

cout«,zn=/z«pi«endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{intm,n,q,i,j,k;

cout«〃请输入两个整数:

cin>>m>>n;

i=m;

j=n;

q=i%j;

if(q—0)

cout<<〃所求的最大公约数为:〃<<J«endl;

if(q!=0)

do{i=j;

J=q;

q=i%j;

}while(q!=O);

k=(m*n/j);

cout<<〃所求的最大公约数为:〃«j«endl;

cout<<〃所求的最小公倍数为:〃<<k<<endl;

}

3

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{inti=10,j=l,m,n=0;

cout<<”请输入一个二进制整数:z/«endl;

cin>>m;

do{n+=j*(m%i);

m/=i;

j*=2;

}while(m!=0);

cout。〃转换为十进制整数是:〃<<n«cndl;

}

试验6

教学班级:学生学号:学生姓名:

试验日期:2024年4月2日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭循环及选择结构的嵌套的运用方法;

2.驾驭嵌套循环的运用方法;

二、试验任务

1.设计一个程序,求出n-m之间(m>n)的全部素数,要求:每行输出5

个。

2.键盘输入一行字符,统计字符总个数,以及其中的英文字母个数,

假如是数字,则统计它们所构成的数据中,奇数个数和偶数个数分

别是多少。

提示:可运用以下程序段,连续输入若干字符直到输入'\n'时停止。

while(l){ch=getchar();if(ch==,\n)break;

0ooooo

)

3.两个乒乓球队进行竞赛,各出3人。甲队为A、B、C共3人,乙队为X、

Y、Z共3人,并以抽签方式确定竞赛名单。有人向队员打听竞赛的名

单,A说他不和X比,C说他不和X、Z比,请给出3对赛于的名单。

4.用循环结构语句编程并输出下图,其行数有键盘给出。

例如:键盘输入:5,则运行结果如下

1

22

333

4444

555555555

4444

333

22

1

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

tfinclude<iomanip>

usingnamespacestd;

voidmain()

{intm,n,x,y,k=0;

cout。〃请输入两个不等的整数:〃<<endl;

cin>>n>>m;

cout<<〃它们之间的全部素数为:〃<<endl;

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

{for(y=2;y<=x-l;y++)

if(x%y==0)break;

if(x==y)

{cout<<""<<x;

k=k+1;

if(k%5==0)

cout«/,\n,/;}

)

}

2.

源程序

#include<iostream>

usingnamespacestd;

#include<stdio.h>

voidmain()

{

charch;

inti=0,ch_nunF0,odd_num=0,even_num=0;

cout<<〃请输入一行字符:,z«endl;

whi1e(1)

ch=getchar();

if(ch==,\,n,)break;

else

{

i=i+l;

if(ch>=,a,&&ch<=,zJ||ch>='A'&&ch<='Z')

chnum+=l;

else

if(ch>=r&&ch<=9,)

if(ch%2==0)even_num+=l;

elseodd_num+=l;

)

}

cout<<〃输入的字符总个数为:〃<G<<endl;

cout<<〃其中英文字符个数为:〃<<chnam<<endl;

cout<<〃奇数个数为:〃<<oddnum<<endl;

cout<<〃偶数个数为:〃<<even_num<〈endl;

}

3.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{chari,j,k;

for(i='X';i<='Z';i++)

for(j=X';j<='Z';j++)

if(i!=j)

for(k='X?;k<=7:;k++)

if(i!=k&&j!=k)

if(i!='X'&&k!='X'&&k!二'Z')

cout<<〃3对选手的名单为:〃《〃A—〃《i<<〃〃《〃B—〃<<j<<〃

Z/«Z/C—/z«k«endl;

}

4.

源程序

#include<iostream>

#include<iomanip>

usingnamespacestd;

voidmain()

{inti,j,a;

cout«〃请随意输入一个整数:〃;

cin>>a;

for(i=l;i<=a;i++)

{for(j=l;j<=2*a-l;j++)

if(j<=2*a-l-i)

if(i!=a)

cout<<〃〃;

else

cout<<i;

else

cout<<i;

cout«endl;}

for(i=l;i<=a-l;i++)

{for(j=l;j<=a-l;j++)

if(j<=a-i)

cout<<a'i;

else

coutx<;

cout«endl;}

试验7

教学班级:学生学号:学生姓名:

试验日期:2024年4月2日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭数值型一维数组的运用方法;

2.驾驭对一组同类型的数据进行插入、删除、排序和查找等的常用算

法。

二、试验任务

1.对两个无序的数组(其中数组a长度为n,数组b长度m),采纳

选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。

要求:a和b数组长度及其元素均由键盘获得。

2.将以上任务1构建的两个有序的数组a和b,进行有序合并,即将

这两个数组进行合并的过程中其数据始终保持有序。

(提示:数据结构:三个一维数组a,b,c

将a[ia]和b[ib]比较,谁小就把谁放入c[ic](c数组用于

存放合并后的数据),

谁放入了c[ic]中谁的下标就加1,同时ic(c中当前存放数

据的下标)加1,如下图所示。)

3.计算以上任务2中c数组元素的平均值,并删除c中全部低丁•平均

值的那些元素。

三、试验结果(源程序+注释)

1.

源程序

#include<iostreani>

usingnamespacestd;

voidmain(void)

{inti,j,t,n,m,a[100],b[100];

cout。〃请输入数组a中数字的个数:〃;

cin>>n;

cout<<〃请输入数组a的〃个数:/z<<endl;

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

cin»a[i];

for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<〃数组从小到大排列为:,z«endl;

for(j=0;j<n;j++)

cout«a[j]〈<"

cout<<endl;

cout<〈〃请输入数组b中数字的个数:”;

cin>>m;

cout<〈〃请输入数组b的〃<<欣<〃个数:,z<<endl;

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

cin>>b[i];

for(i=0;i<m-l;i++)

for(j=i+l;j<m;j++)

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<〃数组b从小到大排列为:〃<<endl;

for(j=0;j<m;j++)

cout〈<b[j]〈<”〃;

cout<<endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain(void)

{inti,j,t,n,m,a[100],b[100];

cout<<〃请输入数组a中元素的个数:〃;

cin>>n;

cout<〈〃请输入数组a的〃〃个元素:,?<<endl;

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

cin>>a[i];

for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout«〃数组a的元素从小到大排列为:〃《endl;

for(j=0;j<n;j++)

cout〈<aLj」〈〈”

cout<<endl;

cout«〃请输入数组b中元素的个数:〃;

cin>>m;

cout<〈〃请输入数组b的个元素:"<<endl;

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

cin»b[i];

for(i=0;i<m-l;i++)

for(j=i+l;j<m;j++)

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout。〃数组b的元素从小到大排列为:〃<<endl;

for(j=0;j<m;j++)

cout<<b[j]<<,/;

cout<<endl;

{intc[200],ia=0,ib=0,ic=0;

for(ia=0;ia<n;ia++)

if(b[ib]>a[ia])

c[ic++]=a[ia];

else

{c[ic++>b[ib];

if(a[ia]!=b[ib])

ia一;

ib++;}

if(ib<m)

for(;ib<m;ib++)

c[ic++]=b[ib];

cout<<〃合并后的数组c为:/z«endl;

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

cout<<〃;

cout<<endl;}

I

3.

源程序

#include<iostream>

usingnamespacestd;

voidmain(void)

{inti,j,t,n,m,a[100],b[100];

cout<<〃请输入数组a中元素的个数:〃;

cin>>n;

cout<〈〃请输入数组a的〃<<n<<〃个元素:〃*cndl;

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

cin»a[i];

for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<〃数组a的元素从小到大排列为:〃<<endl;

for(j=0;j<n;j++)

cout«a[j"<”

cout<<endl;

cout«〃请输入数组b中元素的个数:〃;

cin>>m;

cout<<〃请输入数组b的〃<<m<<〃个元素:〃<<endl;

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

cin»b[i];

for(i=0;i<m-l;i++)

for(j=i+l;j<m;j++)

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

coutG〃数组b的元素从小到大排列为:〃《endl;

for(j=0;j<m;j++)

cout<〈b[j]〈<"

cout<<endl;

intc[200],ia=O,ib=O,ic=O;

{for(ia=O;ia<r;ia++)

if(bLibJ>aLiaJ)

c[ic++]=a[ia];

else

{c[ic++>b[ib];

if(a[ia]!=b[ib])

ia一;

ib++;}

if(ib<m)

for(;ib<m;ib++)

c[ic++]=b[ib];

cout«〃合并后的数组c为:〃<<endl;

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

cout<<,z,?«c[i];

cout<<endl;}

floatsum=0.0,ave;

for(i=0;i<n+m;i++)

sum=sum+c[i];

ave=sum/(n+m);

cout<〈〃数组c元素的平均值为:〃<<avc<<cndl;

cout«〃数组c中大于平均值的元素为:〃;

for(i=O;i<n+m;i++)

if(c[i]>ave)

cout<<cLiJ<<"";

1

试验8

教学班级:学生学号:学生姓名:

试验日期:2024年5月1日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭对一组同类型的数据进行插入、删除、排序和查找等的常用算

法。

二、试验任务

1.运用插入排序法将键盘输入的无序数列按升序排列。

思路分析及算法:

1)从第一个元素起先,该元素可以认为已经被排序。

2)取出下一个元素,在己经排序的元素序列中从后向前扫描。

3)假如该元素(己排序)大于新元素,将该元素移到下一位

置。

4)重复步骤3,直到找到已排序的元素小于或者等于新元素的

位置。

5)将新元素插入到该位置中。

6)重复步骤2。

2.选举猴王问题:N只猴子围成一圈,依次编号1至N。从编号为1的

猴子起先依次报数,报数m的猴子就退出圈子,接着再报,报数m的猴

子再退出圈子,依次接着下去,圈子最终所剩的一只猴子为猴王,它原先

的编号是儿?

思路分析及算法:

1)运用一维数组存放猴子从1到n的编号,定义参与选举猴

王的最多猴子数为40。

2)i为每次循环时计数变量,k为按1,2,3,…m报数时的计数

变量,t表示退出的猴子数。依次将退出的猴子对应的数组

元素置0,直到只剩下一只猴子。

3)找出数组中不为0的a[i],输出该数。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

#include<iomanip>

usingnamespacestd;

voidmain()

{constintN=100;

inta[N],t,i,j,n;

cout«〃请输入数据的个数:〃;

cin>>n;

cout«〃请输入有〃。水〈〃个整数的无序数列:〃*cndl;

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

cin»a[i];

if(a[0]>a[l])

{t=aLOJ;aL0J=aLU;aLlJ=t;}

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

{j=0;

while(a[i]>a[j]&&j<=n)

j++;

if(j<i)

{t=a[i];

for(intk=i;k>=j;k­)

a[k]=a[k-l];

}

}

cout<<〃原数列按升序排列为:〃"endl;

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

cout«a[i]«/z

cout<<endl;

2

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{constintN=40;

intn,m,a[N];

inti,j,k;

cout<<〃请输入参与选举的猴子总数:〃;

cin>>n;

cout"〃请输入报数数目:〃;

cin>>m;

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

a[i]=i+l;

i=0;

j=0;

k=0;

while(k<n-l)

{if(a[i]!=0)j++;

if(j==m){a[i]=0;j=0;k++;}

i++;

if(i==n)i=0;

i=0;

while(a[i]==O)i++;

cout<〈〃猴王原先的编号是〃0a[i]<〈endl;

试验9

教学班级:学生学号:学生姓名:

试验日期:2024年5月1口试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.驾驭二维数值型数组的运用方法;

2.驾驭string类字符串的运用方法。

二、试验任务

1.自动产生N*N数据(N取值最大不超过100)存入a数组,数据形成

规律如下图示(呈S形),并取出a的下三角形区域数据输出,输

出形式如下图所示(呈等腰三角形)。

3D:\cpp\12\Debug\12.exe|o||回|由j

pleasiRn▲

123456□

121110987

131415161718

242322212019

252627282930

363534333231

1

1211

131415

24232221

2526272829

363534333231

请按任意键继续...▼

in「Ui

2.从键盘上输入随意两个字符串,比较它们是否相同,将它们连接成

一个新的字符串并输出,输出这个新的字符串的有效长度。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

#include<iornanip>

usingnamespacestd;

voidmain()

{inta[10][10],i,j,n,k=0;

cout*〃请输入一个数字n:〃;

cin>>n;

a[0][0]=l;

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

for(j=0;j<n;j++)

{if(i%2=0)

{a[i+l][0]=a[i][0]+2*n-l;

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

if(i%2!=0)

{a[i+l][0]=a[i][0]+l;

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

for(j=0;j<n;j++)

{cout«setw(6)«a[i][j];

k++;

if(k%n=0)

cout<<er.dl;}

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

{cout«setw(3*(n-l-i))«^z/;

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

cout«setw(6)«a[i][j];

cout«endl;}

}

2.

源程序

#include<iostream>

#include<string>

usingnamespacestd;

voidmain()

{stringsi,s2,s;

cout。〃请输入第一个字符串:,z«endl;

getline(cin,si);

cout«〃请输入其次个字符串:z/«endl;

getline(cin,s2);

if(sl==s2)

cout<<〃这两个字符串相同〃<<endl;

else

cout«〃这两个字符串不同〃06ndl;

s=sl+s2;

cout«〃将它们连接成一个新的字符串为:〃<<s<〈endl;

cout<<〃这个新的字符串的有效长度为:〃<<s.size()«endl;

试验10

教学班级:学生学号:学生姓名:

试验日期:2024年5月2日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.娴熟指针变量的运用,了解其编程技巧。

二、试验任务

1.运用指针法在的一组数据中,找出其中最大值所在的位置并输出。

2.运用指针法对一维数组a中的数据按降序排列。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{intaLlOOj,i=0,n,j,max,*p;

cout<<〃请输入数据的个数:〃;

cin>>n;

cout<<〃请输入一组数据的个数为〃<<n«〃的数据:〃<<endl;

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

cin»a[i];

max=a[0];

for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)

{if(a[i]>max)

{p=&a[i];

max=a[i];}

)

cout<〈”其中最大值所在的位置为:〃<<p<<endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{inta[100],i,j,n,*p;

cout«〃请输入一维数组a中的数据的个数:〃;

cin>>n;

cout<〈〃请输入数组a:〃《endl;

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

cin»a[i];

for(i=0;i<n-l;i++)

for(p=&a[0];p<&a[n-l-i];p++)

if(*p<*(p+l))

{*p+=*(p+l);

*(p+l)=*p-*(p+l);

*p-=*(p+l);}

cout<<〃数组a中的数据按降序排列为a:〃《endl;

i=0;

for(p=&a[i];i<r.;p++,i++)

cout«*p«,z

}

试验11

教学班级:学生学号:学生姓名:

试验日期:2024年6月日试验地点:(机房)

指导老师签名:试验成果:

一、试验目的

1.了解存放常用的系统函数的头文件;

2.驾驭常用系统函数的功能和运用方法;

3.驾驭返回值的概念和运用。

二、试验任务

1.编程实现:考察小学一年级学生20以内的加法题(共10题),并

按百分制给出最终分数。

说明:程序的已知项为20以内的两个随机整数,输出项为两个整数的

加法算式,并依据给出的结果推断正误,正确的得10分。最终输出学生

的总分成果。

2.编写两个子函数,分别求两个整数的最大公约数和最小公倍数,并

编写主函数调用这两个子函数,输出结果,两个整数由键盘输入。

三、试验结果(源程序+注释)

1.

源程序

#include<iostream>

#include<cstdlib>

#include<ctime>

usingnamespacestd;

voidmain()

{inta,b,s,i,j=0,score;

cout<<〃请完成10道加法题:z/«endl;

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

{srand(time(NULL));

a=l+rand()%(20-1+1);

b=l+rand()%(20-l+l);

cout<<i«zz.<<a«<<b<<;

cin>>s;

if(s=a+b)

j++;}

score=10*j;

cout«〃该学生的总分成果为:z/<<score«endl;

}

2.

源程序

#include<iostream>

usingnamespacestd;

voidmain()

{inta,b,s,t;

intmax(int,int);

intmin(int,ir.t);

cout<〈〃请输入两个整数:〃<<endl;

cin>>a»b;

s=max(a,b);

t=min(a,b);

cout«〃这两个整数的最大公约数为:,,<<s«endl;

cout<<〃这两个整数的最小公倍数为:〃6t«endl;

1

intmax(inta,intb)

{intq,n;

q=a%b;

if(q==0)

n=b;

if(q!=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论