您的位置:首页 > 其它

第六章课后题

2014-06-05 12:21 197 查看
课后1

/**********编写程序,将10个整型数2,4,6……18和20
赋予一个数组,然后使用指针输出该数组各元素的值*******/

#include <iostream>
using namespace std;

int main()
{
int a[10],*p,i;
for(i=1;i<11;i++)
a[i-1]=2*i;
p=a;
for(i=0;i<10;i++)
cout<<*p<<' ';
cout<<endl;
}


课后2
/********把键盘输入的一个大写字母串改小写字符并显示出来,
其中大小写转换使用自定义函数lower()实现*********/

#include <iostream>
using namespace std;

void lower(char *p)
{
while (*p!='\0')
{
if(*p<='Z'&&*p>='A')
{
*p+=32;
p++;
}
else
p++;
}
}
int main ()
{
char a[50],i;
cout<<"please input a string "<<endl;
cin.get(a,50);
lower(a);
cout<<"the string after change:";
for(i=0;a[i]!='\0';i++)
cout<<a[i];
cout<<endl;
return 0;
}


课后3
/*******输入一个字符串,删除其中的所有空格后输出*******/

#include <iostream>
using namespace std;

int main()
{
char a[50],b[50];
int i,j=0;
cout<<"please input a string"<<endl;
cin.get(a,50);
for(i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
{
b[j]=a[i];
j++;
}
}
b[i]='\0';
for(i=0;b[i]!='\0';i++)
cout<<b[i];
cout<<endl;

return 0;
}



课后4
/**********编写程序,当输入整数1-12月份时,输出该月的英文名称,
输入其他的整数时结束程序。例如,输入4,则输出April;输入0时,
则退出程序,要求使用指针数组处理****************/

#include <iostream>
using namespace std;

int main()
{
char*month[]={"January","February","March","April","May","June","July",
"August","September","October","November","December"};

int i;

while (1)
{
cout<<"please input a number ,input 0 to exit:"<<endl;
cin>>i;
if(i==0)
break;
else if(i<0||i>12)
cout<<"input error,please input another number!"<<endl;
else
cout<<month[i-1]<<endl;
}
return 0;
}


课后5
/*********分别使用指针数组和二级指针输入,
输出一个二维整型数组****************/

#include <iostream>
using namespace std;

int main()
{
int a[2][3],*p[2];
int **pp;
int i,j;
p[0]=a[0],p[1]=a[1];
cout<<"please input 6 numbers"<<endl;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cin>>p[i][j];
pp=p;
cout<<"the number you input is :"<<endl;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cout<<*(p[i]+j)<<" ";
cout<<endl;
cout<<"the number you input is :"<<endl;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cout<<*(pp[i]+j)<<" ";
cout<<endl;

return 0;
}


课后6
/*********输入一个3x4的矩阵,编写函数,求其中的最大的元素*********/

#include <iostream>
using namespace std;

int main()
{
int a[3][4],i,j,max;
cout<<"输入一个3x4的矩阵"<<endl;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
cout<<"你输入的矩阵为:"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout<<a[i][j]<<'\t';
cout<<endl;
}
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(max<a[i][j])
max=a[i][j];
}
cout<<"矩阵的最大值为:"<<max<<endl;
return 0;
}

题目:有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。
/********围成圈*********/
#include <iostream>
using namespace std;

int main()
{
int n,i,j=1;
cout<<"请输入一个数字"<<endl;
cin>>n;
cout<<"最后退出圈子的人是原来的";
for(i=1;i<n+1;i++)
{
if(j%3==0)
cout<<i<<" ";
j++;
}
cout<<"号";
cout<<endl;
return 0;
}


4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:

    计算第2门课成的平均分;

    找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;

    找出平均成绩在90以上或者全部课程在85分以上的学生。
/**********找学生*********/

#include <iostream>
using namespace std;

void fun0(int n)
{
char name[5][5]={"zhao","sun","qian","chen","li"};
cout<<"姓名:"<<name
<<'\t';
}

void fun1(int a,int b,int c,int d,int e)
{
double ave;
ave=double(a+b+c+d+e)/5;
cout<<"第2门课程的平均分为"<<ave<<"分"<<endl;
cout<<endl;
}

void fun2(int*a)
{
int i,j=0,*b;
b=a;
a++;
for(i=1;i<5;i++)
{
if (*a<60)
a++,j++;
else
a++;
}
if(j>=2)
{
int i;
fun0(a[0]);
cout<<"学号:"<<*b<<'\t';
b++;
cout<<"四科成绩分别为:";
for(i=0;i<4;i++,b++)
cout<<*b<<'\t';
cout<<endl;
}
}

void fun3(int *a)
{
int i,*b,*c,j=0,sum=0;
double ave;
b=c=a;
a++;b++;
for(i=0;i<4;i++,a++)
sum+=*a;
ave=double(sum)/4;

for(i=0;i<4;i++)
{
if(*b>=85)
b++,j++;
else
b++;
}

if(j==4||ave>=90)
{
fun0(a[0]);
}
}
int main()
{
int zhao[]={1,96,90,80,65};
int qian[]={2,86,85,86,87};
int sun[]={3,55,45,60,35};
int li[]={4,95,95,95,95};
int chen[]={5,55,56,55,56};

fun1(zhao[2],qian[2],sun[2],li[2],chen[2]);
cout<<"2门以上成绩不及格的学生有"<<endl;
fun2(zhao);
fun2(qian);
fun2(sun);
fun2(li);
fun2(chen);
cout<<"平均成绩在90以上或者全部课程在85分以上的学生有"<<endl;
fun3(zhao);
fun3(qian);
fun3(sun);
fun3(li);
fun3(chen);
cout<<endl;

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