第六章课后题
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分以上的学生。
/**********编写程序,将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; }
相关文章推荐
- Python第六章课后作业
- python核心编程(第二版)-------第六章课后习题
- C++primer 第五版课后习题 第六章(1) 1-20
- 教材第六章课后习题 (部分)
- C++Primer 中文版 第五版 第六章课后习题答案
- 数据挖掘概念与技术(原书第三版)范明 孟小峰译-----第六章课后习题答案
- 算法导论第六章6.5有限队列中的6.5-9课后练习
- 算法导论课后习题解析 第六章
- 优化MySchool 第六章课后作业
- 算法导论第六章6.5优先队列课后答案。
- 《鸟哥linux》--第六章课后习题答案
- c++primer第六章课后习题
- 《C++ Primer》第五版课后习题解答_第六章(3)(16-26)
- 第六章课后题:质数Eratosthenes筛选法
- C++ primer plus 第六章课后习题
- How to think like a Computer Scientist: 课后习题第六章 1-5
- C++primer 第五版课后习题 第六章(3)39
- c++primer第五版课后练习答案(第六章)
- 关于《Java读书笔记》第六章课后习题选择题总结与疑问
- How to think like a Computer Scientist: 课后习题第六章 6-12