您的位置:首页 > 其它

第六章实验作业

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分以上的学生。

 

一、课本例题

/** 课本例题   **/
#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;
}
}

}


 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: