循环语句和数组使用.docx
- 文档编号:1736844
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:13
- 大小:220.03KB
循环语句和数组使用.docx
《循环语句和数组使用.docx》由会员分享,可在线阅读,更多相关《循环语句和数组使用.docx(13页珍藏版)》请在冰点文库上搜索。
循环语句和数组使用
实验三循环语句和数组的应用
【实验目的】
✧ 加深理解循环的概念,掌握while语句、do-whike语句和for语句的循环规则及执行过程。
✧ 学习一维数组、二维数组和字符数组的概念和使用方法。
✧ 练习用C++的循环语句、数组、结构类型编写简单的程序,掌握循环结构的设计和调试方法。
✧ 掌握循环嵌套的规则及多重循环的程序设计方法。
✧ 掌握Break语句和continue语句的使用方法。
✧
【实验要求】
1.看懂讲义所给出的典型例题,并在其上进行简单的修改,体会并理解本章涉及到的内容在实际解决问题中的应用。
2.完成实验所给出的题目,注意参照课本上的相应内容。
【实验内容】
一、按要求完成下列各题
1.指出下面程序中每个变量的作用域
#include
voidmain()
{intsum=0;
for(inti=1;i<=100;i++)
sum=sum+i;
cout< } 答: 变量sum的作用域是整个for循环语句,即从for到结束,即是全局变量;而变量i的作用域是for语句的循环控制条件和循环体——“sum=sum+i”,即是局部变量。 2.上机观察并分析下面程序的输出结果 #include intcount[5]={1,2}; voidmain() {inti;charc[]="hello! "; for(i=0;i<=4;i++) cout< cout< cout< cout< cout< cout< } 答: 二、编程题 1.编写一程序,打印出9*9的乘法表。 1*1=1 2*1=22*2=4 3*1=33*2=63*3=9 …….. 9*1=99*2=189*3=27……9*9=81 答: #include usingnamespacestd; voidmain() {intp; for(inti=1;i<=9;i++) { for(intj=1;j<=i;j++) { p=i*j; cout< } cout< } } 2. 编写一程序,输入一串字符,分别统计出其中英文字母、空格、数字和其他字符的个数并打印统计结果。 答: #include usingnamespacestd; voidmain() { constintN=80; charbuffer[N]; intk=0; constintNUM=128; intcounts[NUM]={0}; charch[NUM]; inti=0; do { cout<<"enterastring: \n"; cin.getline(buffer,N,'\n'); k=0; while(buffer[k]! ='\0') { counts[tolower(buffer[k++])-'']++; } }while(buffer[0]=='\0'); cout<<"thestatisticsresult: "< for(i=0;i { ch[i]=(char)(''+i); if(counts[i]>0) { cout< "< } } } 3.编写一程序,使之完成下列功能。 要求: 完成矩阵转换,输出转换前和转换后的矩阵。 矩阵转换后,计算主对角线数之和,并输出。 123413951 5678————》141062 9101112151173 13141516161284 答: #include #include usingnamespacestd; voidmain() { //矩阵转换 constintM=4; constintN=4; intmatrix[M][N]; inttMatrix[N][M]; cout<<"matrix: "< inti,j; for(i=0;i { for(j=0;j { matrix[i][j]=4*i+j+1;//此矩阵较特殊,可用此法定义出矩阵 cout< } cout< } cout<<"transposeofmatrix: "< for(i=0;i { for(j=0;j { tMatrix[i][j]=matrix[M-j-1][i]; cout< } cout< } cout< //求转换后主对角线数之和 intsum=0; for(i=0;i<4;i++) { for(j=0;j<=i;j++) { if(i==j) { sum+=tMatrix[i][j]; } } } cout<<"转化后的矩阵的主对角线数之和为: "< } 4.编一个程序,将下列10个已知的常数按照从小到大的顺序进行排序,并打印排序的结果。 300,46,78,109,21,70,26,290,166,8, 答: #include usingnamespacestd; voidmain() { intnumber[10]={300,46,78,109,21,70,26,290,166,8}; intt; for(inti=1;i<10;i++) { for(intj=0;j<10-i;j++) { if(number[j]>number[j+1]) { t=number[j]; number[j]=number[j+1]; number[j+1]=t; } } } for(intk=0;k<10;k++) { cout< } } 5.编一个程序,打印下列5阶的实心菱形。 * *** ***** ******* ********* ******* ***** *** * 答: #include usingnamespacestd; voidmain() { for(inti=1;i<=5;i++) { for(intj=1;j<=5-i;j++) cout<<''; for(intj=1;j<=2*i-1;j++) cout<<'*'; cout< } for(inti=1;i<5;i++) { for(intj=1;j<=i;j++) cout<<''; for(intj=1;j<=9-2*i;j++) cout<<'*'; cout< } } 三、提高题 6.编一个程序,输入五个学生的学号(2011001~2011005)、语文成绩、英语成绩、数学成绩等数据,然后输出这五个学生的成绩表。 答: #include #include usingnamespacestd; voidmain() { structstudent { longnum; charname[20]; floatCscore; floatEscore; floatMscore; }; studentallone[5]={{2011001,"zhang",98.5,100.0,92.0}, {2011002,"wang",95.0,98.0,87.5}, {2011003,"zhou",89.5,90.0,95.5}, {2011004,"meng",92.5,87.5,85.0}, {2011005,"yang",90.0,85.5,92.0}}; cout< <<"语文成绩"< <<"数学成绩"< for(intk=0;k<5;k++) {cout< < < } } 7.编一个程序,打印出n阶的实心菱形。 答: #include usingnamespacestd; voidmain() { intn; cout<<"请输入一个阶数(奇数): \n"; cin>>n; cout< \n"; for(inti=1;i<=n;i++) { for(intj=1;j<=n-i;j++) cout<<''; for(intj=1;j<=2*i-1;j++) cout<<'*'; cout< } for(inti=1;i { for(intj=1;j<=i;j++) cout<<''; for(intj=1;j<=2*(n-i)-1;j++) cout<<'*'; cout< } } 【实验报告】 1. 按实验题目的要求写出程序清单及运行结果。 2. 写出调试程序中所遇到的问题及解决办法。 实验中心 2011.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 语句 数组 使用