第六章实验作业
2014-05-16 09:11
295 查看
实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生。
一、课本例题
二、课本习题
2
3
4
5
6
/** 3X4数组 **/
#include <iostream>
using namespace std;
int main()
{
int a[3][4],i,j,*p[3];
int max=0;
p[0]=a[0];
p[1]=a[1];
p[2]=a[2];
cout<<"请输入3X4的矩阵:"<<endl;
for (i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>*(p[i]+j);
for (i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(*(p[i]+j)>max)
{ max=*(p[i]+j);
}
}
cout<<"该组最大的数是:"<<max<<endl;
system("pause");
return 0;
}
四、课程成绩
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生。
一、课本例题
/** 课本例题 **/ #include <iostream> using namespace std; int main() { int a=10; int *p,**pp; p=&a; pp=&p; cout<<"a="<<a<<endl; cout<<"p="<<p<<endl; cout<<"&a="<<&a<<endl; cout<<"*p="<<*p<<endl; cout<<"&p="<<&p<<endl; cout<<"**pp="<<**pp<<endl; cout<<"&pp="<<&pp<<endl; cout<<endl; *p=15; cout<<"a="<<a<<endl; cout<<"p="<<p<<endl; cout<<"&a="<<&a<<endl; cout<<"*p="<<*p<<endl; cout<<"&p="<<&p<<endl; cout<<"**pp="<<**pp<<endl; cout<<"&pp="<<&pp<<endl; return 0; }
#include <iostream> using namespace std; int main() { char *p[]={"a","h","t","c","s","w","b"}; char *temp; int i,j,n=7; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(strcmp(p[j],p[j+1])>0) { temp=p[j];p[j]=p[j+1];p[j+1]=temp; } for(i=0;i<n;i++) cout<<p[i]<<endl; return 0; }
二、课本习题
#include <iostream> #include <iomanip> using namespace std; int main() { int num[10]; for (int i=0;i<10;i++) *(num+i)=2*(i+1); for (i=0;i<10;i++) cout<<setw(4)<<*(num+i); return 0; }
2
#include <iostream> using namespace std; void lower(char a[20]) { char b[20],*p,*q; p=a,q=b; for(;*p!='\0';p++,q++) *q=*p>='a'&&*p<='z'?*p:*p+32; *q='\0'; cout< 4000 ;<b; } int main(){ char string[20]; cin>>string; lower(string); return 0; }
3
#include <iostream> using namespace std; int main() { char a[20]; cout<<"输入:"; cin.get(a,20); char b[20],*p,*q; p=a,q=b; for(;*p!='\0';p++,q++) { while(*p==' ') p++; *q=*p; } *q='\0'; cout<<"输出:"<<b<<endl; return 0; }
4
/** 月份输出 **/ #include <iostream> using namespace std; int main() { int i; char *Month[]={"January","February","March","April","May","June","July", "August","September","October","November","December"}; while(1) { cout<<"选择的月份:"; cin>>i; if(i<1||i>12) break; cout<<"月份是:"<<Month[i-1]<<endl; } return 0; }
5
#include<iostream> using namespace std; int main() { int a[2][3],*p[2],**pp; int i,j; p[0]=&a[0][0]; p[1]=&a[1][0]; pp=p; cout<<"请输入数组(2x3): "; for(i=0;i<2;i++) for(j=0;j<3;j++) cin>>p[i][j]; for(i=0;i<2;i++) for(j=0;j<3;j++) { cout<<"a["<<i<<"]["<<j<<"]:"; cout<<*(*(pp+i)+j)<<endl; } return 0; }
6
/** 3X4数组 **/
#include <iostream>
using namespace std;
int main()
{
int a[3][4],i,j,*p[3];
int max=0;
p[0]=a[0];
p[1]=a[1];
p[2]=a[2];
cout<<"请输入3X4的矩阵:"<<endl;
for (i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>*(p[i]+j);
for (i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(*(p[i]+j)>max)
{ max=*(p[i]+j);
}
}
cout<<"该组最大的数是:"<<max<<endl;
system("pause");
return 0;
}
四、课程成绩
/*** 科目01 科目02 科目03 学生01 95 85 75 学生02 87 89 88 学生03 57 78 59 学生04 50 55 38 学生05 90 91 95 ***/ #include <iostream> using namespace std; int *p[4],i,j; int a[5][3]={95,85,75,87,89,88,57,78,59,80,55,38,90,91,95}; void avg(int n); void checkabove(int a); void checkbelow(int b); int main() { p[0]=a[0]; p[1]=a[1]; p[2]=a[2]; p[3]=a[3]; p[4]=a[4]; cout<<"科目01"<<"科目02"<<"科目03"<<endl; for (i=0;i<5;i++) {for(j=0;j<3;j++) cout<<*(p[i]+j)<<" "; cout<<endl; } avg(2); cout<<"两门成绩小于60分:"<<endl; checkbelow(60); cout<<"三门成绩大于85分:"<<endl; checkabove(85); return 0; } void avg(int n) { int avg=0; int sum=0; for(int i=0;i<5;i++) sum+=*(p[i]+n); avg=sum/5; cout<<"第二门课的平均成绩:"<<avg<<endl; } void checkbelow(int b) { int k=0; for(i=0;i<5;i++) for(j=0;j<3;j++) {if(*(p[i]+j)<b) k++; if(k>=2) { cout<<"学生"<<(i+1); cout<<"科目01:"<<*(p[i])<<" "<<"科目02:"<<*(p[i]+1)<<" " <<"科目03:"<<*(p[i]+2)<<endl; k=0; cout<<endl; } } } void checkabove(int a) { int k=0; for(i=0;i<5;i++) for(j=0;j<3;j++) {if(*(p[i]+j)>a) k++; if(k>=3) { cout<<"学生"<<(i+1); cout<<"科目01:"<<*(p[i])<<" "<<"科目02:"<<*(p[i]+1)<<" " <<"科目03:"<<*(p[i]+2)<<endl; k=0; cout<<endl; } } }