- 实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
2.1
#include <iostream>
using namespace std;
int main()
{
int a[10],*p = a;
for(int i=0;i<10;i++)
a[i]=2*(i+1);
for(;p<a+10;p++)
cout<<*p<<" ";
cout<<endl;
return 0;
}
程序运行结果
2.2
#include <iostream>
using namespace std;
void lower(char *);
int main()
{
char str[20];
cout<<"请输入一个大写字符串:";
cin.getline(str,20);
lower(str);
cout<<"转换的字符串为:"<<str<<endl;
return 0;
}
void lower(char *p)
{
for(;*p!='\0';p++)
if(*p>='A'&&*p<='Z')
*p+='a'-'A';
}
程序运行结果
2.3
#include <iostream>
using namespace std;
int main()
{
char source[30],dest[30],*p=source,*q=dest;
cout<<"请输入一字符串:"<<endl;
cin.getline(source,30);
while(*p)
if(*p==' ') p++;
else{
*q=*p;
p++;
q++;
}
*q='\0';
cout<<"删除空格后的字符串为:"<<endl;
cout<<dest<<endl;
return 0;
}
程序运行结果
2.4
#include <iostream>
using namespace std;
int main()
{
char *month[]={"January","February","March","April","May","June","July","August","September","October","Novermber","December"};
int i;
while(1)
{
cout<<"请输入月份:";
cin>>i;
if(i<1||i>12)
{
cout<<"输入错误!"<<endl;
break;
}
cout<<i<<"月的英文名称是:"<<month[i-1]<<endl;
}
return 0;
}
程序运行结果
2.5
#include <iostream>
using namespace std;
int main()
{
int a[2][3],*p[2],i,j;
p[0]=a[0];p[1]=a[1];
cout<<"请输入二维数组的6个元素值:"<<endl;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cin>>p[i][j];
cout<<"该二维数组的数据为:"<<endl;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
cout<<p[i][j]<<'\t';
cout<<endl;
}
return 0;
}
程序运行结果
2.6
#include <iostream>
using namespace std;
int max(int *,int);
int main()
{
int a[3][4],i,j,maxValue;
cout<<"请输入3*4矩阵的元素值:"<<endl;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
maxValue=max(&a[0][0],12);
cout<<"矩阵中最大的元素为:"<<maxValue<<endl;
return 0;
}
int max(int * p,int n)
{
int maxValue= * p;
for(int i=0;i<n;i++)
if(p[i]>maxValue)
maxValue=p[i];
return maxValue;
}
程序运行结果
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。
#include<iostream>
using namespace std;
int main()
{
int n;
cout<<"请先决定要多少个人参加"<<endl;
cin>>n;
int a[100];
int *p=a;
for(int i=0;i<n;i++)
a[i]=1;
int m=n,j=0;
while(m>1) //m是人数。当人数减到为1时,显示出结果
{
if(*p!=0)
{
j++;
}
if(j==3)
{
*p=0;
j=0;
m--;
}
if(p==&a[n-1])
p=a;
else
p++;
}
for(i=0;i<n;i++)
if(a[i]==1)
cout<<"最后留下的人原来排在第"<<i+1<<"号"<<endl;
return 0;
}
程序运行结果
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生。