C++习题综合实验2Word文档下载推荐.docx
《C++习题综合实验2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++习题综合实验2Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。
![C++习题综合实验2Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/507038db-4faf-47f1-9174-715e2b3b649b/507038db-4faf-47f1-9174-715e2b3b649b1.gif)
inta[M+2];
(3)voidmain()
inta[2+2*4];
(1)错误,数组的下标必须为常量
(2)
正确
(3)
2、已知10名选手的比赛编号分别为1-10,从键盘分别输入他们的比赛成绩。
设计一个循环,根据用户输入的比赛编号,输出对应选手的成绩。
当用户输入0时循环结束,同时整个程序结束。
#include<
iostream.h>
{intn;
inta[10];
for(inti=0;
i<
=9;
i++)
{cin>
a[i];
cout<
<
"
请输入一个比赛编号"
endl;
if(n!
=0)
比赛编号为"
n<
选手的成绩为"
a[n-1]<
elsecout<
3、假设一维数组x中存放了某班学生的成绩(至少10个成绩),编程输出成绩低于全班平均分同学的人数。
{intsum=0,count=0;
doublet;
sum=sum+a[i];
t=sum/10;
for(intj=0;
j<
j++)
{if(a[j]<
t)count++;
elsecontinue;
}
成绩低于全班平均分同学的人数为"
count<
/*文件名:
s4.exe
功能:
将数组反存
作者:
**
完成时间:
2011.11.05
*/
4、将一个给定的一维数组反过来存放,要求仍然存放在原数组中,且不借助其它数组。
iomanip.h>
{
inttemp;
输入一个数组"
10;
5;
{
temp=a[j];
a[j]=a[9-j];
a[9-j]=temp;
该数组反向输出为"
for(intt=0;
t<
t++)
{cout<
setw
(2)<
a[t];
/*文件名:
s5.exe
插入数据
5、在一个长度为20的一维数组中存放n个有效元素(n<
20,n及元素值均从键盘输入),再通过键盘输入一个新的元素值a和整数m,判断m的值是否超过数组元素下标的取值范围,若超出范围,则输出“位置不正确!
”,否则将元素a插入到数组下标为m的位置,原下标为m至n-1的元素依次后移,要求输出插入前和插入后的数组有效元素序列。
#include<
constn=6;
inti,m,t,a;
intp[20];
for(i=0;
p[i];
cout<
插入前的数组有效元素序列为"
p[i]<
setw(4);
请输入一个新的元素值a和一个整数m"
a;
cin>
m;
if(m>
n-1)
位置不正确"
else
{t=p[m];
p[m]=a;
for(i=n;
i>
m+1;
i--)
{p[i]=p[i-1];
p[m+1]=t;
插入后的数组有效元素序列为"
n+1;
s6.exe
排序
6、将一个15个元素的无序序列,按非减顺序排序后输出。
、
inta[15],i,j,t,swap;
for(i=0;
15;
14;
{swap=1;
for(j=0;
14-i;
{if(a[j]>
a[j+1])
{swap=0;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
这是第"
i+1<
趟:
;
for(j=0;
a[j]<
"
if(swap)break;
s7.exe
按要求输出矩阵
7、用二维数组定义一个n*n的矩阵,矩阵的元素为该元素所在行号*n后加上列号(行号、列号均从0开始),输出该二维数组各元素并总结规律。
constintn=6;
{inta[n][n];
inti,j;
6;
for(j=0;
a[i][j]=i+j;
{for(j=0;
setw(5)<
a[i][j];
s8.exe
矩阵加法
8、编程求矩阵的加法
+
constintp=3,q=3;
{inti,j,k,t;
inta[p][q];
intb[p][q];
intc[p][q];
请输入数组a"
p;
{for(j=0;
q;
{cin>
}}
请输入数组b"
b[i][j];
{c[i][j]=a[i][j]+b[i][j];
a[3][3]+b[3][3]="
for(k=0;
k<
k++)
{for(t=0;
{cout<
c[k][t];
s9.exe
输出比赛信息
9、定义一个二维数组来存放6个评委的姓名和评分,输出成绩最高的评委姓名和评分,以及成绩最低的评委姓名和评分,在原数组中将这两个评委的信息删除,输出剩余评委的姓名和评分,及最后的平均评分。
string.h>
constcount=6;
voidmax(int*p,int*q,intx)//寻找最高分
{inti;
for(i=1;
x;
{if(*(p+i)>
*p)
*q=i;
voidmin(int*p,int*q,intx)//寻找最低分
{if(*(p+i)<
voidmain()//主函数
{inti,n=0,m=0;
charname[count][10]={{"
jane"
},{"
lily"
mike"
leo"
jay"
mary"
}};
intscore[count]={8,2,9,4,5,0};
//输出最高分并删除数据
max(score,&
m,count-1);
name[m]<
评委的得分最高为"
score[m]<
for(i=m;
count-1;
{strcpy(name[i],name[i+1]);
score[i]=score[i+1];
name[i][0]='
/0'
score[i]='
//输出最低分并删除数据
min(score,&
n,count-1);
name[n]<
评委的得分最低为"
score[n]<
for(i=n;
count-2;
//输出剩余成绩及最后平均得分
floattotal=0,ave=0;
for(i=0;
name[i]<
score[i]<
total=total+score[i];
ave=total/(count-2);
最后平均得分为"
ave<
}
s10.exe
按要求输出字符串
10、编写一程序,从键盘输入两个长度均不超过20的字符串,将两个字符串连接起来形成一个新的字符串,并将该新字符串中的数字字符删除。
(不要使用strcat()函数。
)
{inti,j;
chara[20]={"
123abc"
};
charb[20]={"
love2011"
字符串a为"
a<
字符串b为"
b<
20;
{if(a[i]>
='
0'
&
a[i]<
9'
{for(j=i+1;
a[j-1]=a[j];
i=-1;
{if(b[i]>
b[i]<
b[j-1]=b[j];
i=0;
intl1,l2,L,k=0;
l1=strlen(a);
l2=strlen(b);
L=l1+l2;
for(i=l1;
L;
{if(k<
l2)
{a[i]=b[k];
k++;
elsebreak;
新字符串为"
s11.exe
比较字符串
11、编写一字符串比较程序,从键盘输入两个长度不超过10的字符串s1和s2,然后比较它们的大小(字符串比较是从左到右逐位比较),若s1>
s2,输出1;
若s1=s2,输出0;
若s1<
s2,输出-1。
(不使用strcmp()函数)。
最后将你的程序结果与直接调用strcmp()函数得到的结果相比较,看是否相同。
inti,t,k=0;
charm[10];
charn[10];
字符串s1为"
m<
字符串s2为"
if(m[i]==n[i])
k++;
else
{t=m[i]-n[i];
if(t<
0)
{cout<
-1<
endl;
break;
else
1<
intx=strlen(m);
inty=strlen(n);
if(x>
y)
x=y;
if(k==y)
cout<
s1=s2"
s12.exe
函数运算
12、12.实型变量Y与整形变量a和x的关系如式所示。
编写函数程序,要求输入变量a和x,输出相应的Y。
在主函数中演示函数调用过程。
小数点后精确到第三位。
{floatF(inta,intx);
floaty;
inta,x;
请输入a,x的值"
a>
y=F(a,x);
y="
setiosflags(ios:
:
fixed)
<
setprecision(3)<
y<
floatF(inta,intx)
floatf;
f=13*x/5+a*a*a;
returnf;
s13.exe
13、实型变量x与y的函数关系如式,编写函数实现,并在主函数中演示函数调用过程。
floatF(floatx)
{floaty;
if(x<
1)
y=x;
if(1<
=x&
x<
10)
y=3*x+1;
elsey=5*x-7;
returny;
floatF(floatx);
floatx,y;
请输入一个数"
y=F(x);
cout<
s14.exe
逆序输出
*/
14、分别编写迭代函数和递归函数实现功能:
逆序输出正整数的各个位,并在主函数中同时调用迭代函数和递归函数,比较结果是否相同。
递归的方法
intf(intn)
intf=0;
while(n)
{f=f*10+n%10;
n/=10;
{intf(intn);
请输入一个正整数n"
正整数n逆序输出为"
f(n)<
递推方法
{intn,res=0;
while(n!
{res=res*10+n%10;
n/=10;
res<
四、实验结果与数据处理
五、分析与讨论
六、教师评语
签名:
日期:
成绩