C++实验报告.docx
- 文档编号:3824702
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:30
- 大小:303.98KB
C++实验报告.docx
《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(30页珍藏版)》请在冰豆网上搜索。
C++实验报告
《程序设计语言》实验报告
实验序号:
实验项目名称:
数组与函数
学 号
姓 名
专业、班
实验地点
指导教师
时间
一、实验目的及要求
1.掌握一维数组的定义、初始化和访问方法;
2.掌握二维数组的定义、初始化和访问方法;
3.掌握字符数组和字符串的使用方法;
4.掌握常用的字符串处理函数;
5.掌握使用数组解决常见问题。
6.掌握函数的定义和调用方法。
7.掌握函数实参与形参的对应关系。
8.掌握递归函数编写的规律。
二、实验设备(环境)及要求
1.软件需求:
VisualC++6.0
2.硬件需求:
PentiumIII450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间
三、实验内容与步骤
1、编写C++程序,测试下列数组的定义方式是否正确。
(1)voidmain()
{
intn;
cin>>n;
inta[n];
......
}
(2)#defineM10
voidmain()
{
inta[M+2];
......
}
(3)voidmain()
{
inta[2+2*4];
......
}
2、已知10名选手的比赛编号分别为1-10,从键盘分别输入他们的比赛成绩。
设计一个循环,根据用户输入的比赛编号,输出对应选手的成绩。
当用户输入0时循环结束,同时整个程序结束。
3、假设一维数组x中存放了某班学生的成绩(至少10个成绩),编程输出成绩低于全班平均分同学的人数。
4、将一个给定的一维数组反过来存放,要求仍然存放在原数组中,且不借助其它数组。
5、在一个长度为20的一维数组中存放n个有效元素(n<20,n及元素值均从键盘输入),再通过键盘输入一个新的元素值a和整数m,判断m的值是否超过数组元素下标的取值范围,若超出范围,则输出“位置不正确!
”,否则将元素a插入到数组下标为m的位置,原下标为m至n-1的元素依次后移,要求输出插入前和插入后的数组有效元素序列。
6、将一个15个元素的无序序列,按非减顺序排序后输出。
7、用二维数组定义一个n*n的矩阵,矩阵的元素为该元素所在行号*n后加上列号(行号、列号均从0开始),输出该二维数组各元素并总结规律。
8、编程求矩阵的加法
+
9、定义一个二维数组来存放6个评委的姓名和评分,输出成绩最高的评委姓名和评分,以及成绩最低的评委姓名和评分,在原数组中将这两个评委的信息删除,输出剩余评委的姓名和评分,及最后的平均评分。
10、编写一程序,从键盘输入两个长度均不超过20的字符串,将两个字符串连接起来形成一个新的字符串,并将该新字符串中的数字字符删除。
(不要使用strcat()函数。
)
11、编写一字符串比较程序,从键盘输入两个长度不超过10的字符串s1和s2,然后比较它们的大小(字符串比较是从左到右逐位比较),若s1>s2,输出1;若s1=s2,输出0;若s1 (不使用strcmp()函数)。 最后将你的程序结果与直接调用strcmp()函数得到的结果相比较,看是否相同。 12、实型变量Y与整形变量a和x的关系如式所示。 编写函数程序,要求输入变量a和x,输出相应的Y。 在主函数中演示函数调用过程。 小数点后精确到第三位。 13、实型变量x与y的函数关系如式,编写函数实现,并在主函数中演示函数调用过程。 14、分别编写迭代函数和递归函数实现功能: 逆序输出正整数的各个位,并在主函数中同时调用迭代函数和递归函数,比较结果是否相同。 四、实验结果与数据处理 1、编写C++程序,测试下列数组的定义方式是否正确。 (1)voidmain() { intn; cin>>n; inta[n]; ...... } (2)#defineM10 voidmain() { inta[M+2]; ...... } (3)voidmain() { inta[2+2*4]; ...... } #include voidmain() { intn,b; cin>>n; inta[n]; cout<<"pleaseinputn"< for(b=0;b cin< cout< } (1)程序定义错误,无法执行。 #include #defineM10 voidmain() { intb; inta[M+2]; for(b=0;b {cout<<"pleaseinputn"< cin>>a[b];} cout< } #include voidmain() { intb; inta[2+2*4]; for(b=0;b<10;b++) {cout<<"pleaseinputn"< cin>>a[b];} cout< } 2、已知10名选手的比赛编号分别为1-10,从键盘分别输入他们的比赛成绩。 设计一个循环,根据用户输入的比赛编号,输出对应选手的成绩。 当用户输入0时循环结束,同时整个程序结束。 #include voidmain() { inta[10]; intb,c; for(b=0;b<10;b++) {c=b+1; cout<<"请输入第"< \n"; cin>>a[b]; } for(;b! =0;) { cout<<"请输入选手的编号: \n"; cin>>b; c=b-1; if(b==0) break; cout< } } 3、假设一维数组x中存放了某班学生的成绩(至少10个成绩),编程输出成绩低于全班平均分同学的人数。 #include voidmain() { inta[10]; intb,c; doubled=0; for(b=0;b<10;b++) {c=b+1; cout<<"请输入第"< \n"; cin>>a[b]; d+=a[b]; } d=d/10; for(b=0,c=0;b<=9;b++) if(a[b] c++; cout<<"低于平均分的人数为"< } 4、将一个给定的一维数组反过来存放,要求仍然存放在原数组中,且不借助其它数组。 #include voidmain() { intd[20]; inta,b,c; for(a=0;a<20;a++) {b=a+1; cout<<"请输入数组的第" < d[" < cin>>d[a]; } for(a=0;a<=9;a++) {c=d[a]; d[a]=d[19-a]; d[19-a]=c; } for(a=0;a<20;a++) cout<<"d["< < } 5、在一个长度为20的一维数组中存放n个有效元素(n<20,n及元素值均从键盘输入),再通过键盘输入一个新的元素值a和整数m,判断m的值是否超过数组元素下标的取值范围,若超出范围,则输出“位置不正确! ”,否则将元素a插入到数组下标为m的位置,原下标为m至n-1的元素依次后移,要求输出插入前和插入后的数组有效元素序列。 #include voidmain() { intd[20],e[20]; inta,b,n,m,h,k; cout<<"请输入n: \n"; cin>>n; for(a=0;a {b=a+1; cout<<"请输入数组的第" < d[" < cin>>d[a]; e[a]=d[a]; } cout<<"请输入a和m: \n"; cin>>b>>m; if(m>n) cout<<"位置不正确! \n"; else {for(a=18;a>=m;a--) d[a+1]=d[a]; d[m]=b; for(a=0;a {cout<<"e["< < } for(a=0;a {cout<<"d["< < } } } 6、将一个15个元素的无序序列,按非减顺序排序后输出。 #include voidmain() { inta[15],b,c,d,e; for(b=0;b<15;b++) {cout<<"请输入第"< \n"; cin>>a[b]; } for(b=0;b<=13;b++) { e=1; for(c=0;c<=14-b;c++) if(a[c]>a[c+1]) { e=0; d=a[c]; a[c]=a[c+1]; a[c+1]=d; } } for(b=14;b>=0;b--) cout< } 7、用二维数组定义一个n*n的矩阵,矩阵的元素为该元素所在行号*n后加上列号(行号、列号均从0开始),输出该二维数组各元素并总结规律。 #include constintn=10; voidmain() { inta[n][n],i,j; for(i=0;i for(j=0;j a[i][j]=n*i+j; for(i=0;i for(j=0;j cout<<"a["< } 8、编程求矩阵的加法 + #include voidmain() { intA[3][3]={5,7,8,2,-2,4,1,1,1},B[3][3]={4,-2,3,3,9,4,8,-1,2},C[3][3],i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { C[i][j]=A[i][j]+B[i][j]; cout< } cout< } } 9、定义一个二维数组来存放6个评委的姓名和评分,输出成绩最高的评委姓名和评分,以及成绩最低的评委姓名和评分,在原数组中将这两个评委的信息删除,输出剩余评委的姓名和评分,及最后的平均评分。 #include #include #include voidmain() { chara[6][20]; floatf[6]; intb,c; chare[20]; floatd; for(b=0;b<6;b++) { cout<<"请输入第"< "< gets(a[b]); cout<<"请输入分数"< cin>>f[b]; } for(b=0;b<6;b++) for(c=0;c<6-b;c++) if(f[c]>f[c+1]) { d=f[c+1]; f[c+1]=f[c]; f[c]=d; strcpy(e,a[c+1]); strcpy(a[c+1],a[c]); strcpy(a[c],e); } cout<<"去掉一个最高分: "< cout< cout< cout<<"去掉一个最低分: "< cout< cout< for(c=1;c<6;c++) { strcpy(a[c-1],a[c]); f[c-1]=f[c]; } for(c=4;c>=0;c--) { strcpy(a[c],a[c-1]); f[c]=f[c-1]; } for(c=1;c<5;c++) { strcpy(a[c-1],a[c]); f[c-1]=f[c]; } d=0; for(b=0;b<4;b++) d+=f[b]; d=d/4; cout<<"余下的评委及分数为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告