习题1
#include<iostream>
using namespace std;
int main()
{
int a[10]={2,4,6,8,10,12,14,16,18,20};
int *p[10]={&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]};
for(int i=0;i<10;i++)
cout<<*p[i]<<'\t';
cout<<endl;
return 0;
}
2
#include <iostream>
using namespace std;
void lower(char *p);
const int SIZE=20;
int main()
{
cout << "请输入一个大写字符串: " << endl;
char arr[SIZE];
cin>>arr;
lower(arr);
cout<<"该字符串的小写为:"<<endl;
cout<<arr<<endl;
return 0;
}
void lower(char *p)
{
while(*p)
{
if(*p>='A'&&*p<='Z')
*p+=32;
p++;
}
}
3、
#include <iostream>
using namespace std;
void del(char *p);
const int SIZE=20;
int main()
{
cout << "请输入一个字符串: " << endl;
char arr[SIZE];
cin.get(arr,SIZE);
del(arr);
cout<<"删除空格后为:"<<endl;
cout<<arr<<endl;
return 0;
}
void del(char *p)
{
char arr[SIZE];
int i=0;
for(;*p;i++)
arr[i]=p[i];
int k=0;
for(i=0;arr[i]!='\0';i++)
{
if(arr[i]!=' ')
p[k++]=arr[i];
}
p[k]='\0';
}
4
#include <iostream>
using namespace std;
int main()
{
const char *month[12]={"January","February","March","April","May","June",
"July","August","September","October","November","December"};
cout<<"请输入一个1到12之间的整数(输入其他数字则退出):"<<endl;
int num;
cin>>num;
while(num>=1&&num<=12)
{
cout<<"当前月份是:"<<month[num-1]<<endl;
cout<<"请输入一个1到12之间的整数(输入其他数字则退出):"<<endl;
cin>>num;
}
cout<<"Done!\n";
return 0;
}
5
6
#include <iostream>
using namespace std;
void max(int *p[],int col,int row);
int main()
{
int col,row;
int i,j;
cout<<"请输入第一个数组的行数:";
cin>>col;
cout<<"请输入第一个数组的列数:";
cin>>row;
int **ps=new int*[col];
for(i=0;i<col;i++)
ps[i]=new int[row];
cout<<"请输入数组元素:"<<endl;
for(i=0;i<col;i++)
for(j=0;j<row;j++)
cin>>ps[i][j];
max(ps,col,row);
return 0;
}
void max(int **p,int col,int row)
{
int max=0;
for(int i=0;i<col;i++)
for(int j=0;j<row;j++)
{
if(p[i][j]>max)
max=p[i][j];
}
cout<<"最大值为:"<<max<<endl;
}
#include <iostream>
using namespace std;
struct mark
{
int chinese;
int math;
int english;
};
int ave(mark arr[]);
void bad(mark arr[]);
void good(mark arr[]);
int main()
{
mark student[5];
int i;
for(i=0;i<5;i++)
{
cout<<"请输入第 "<<i+1<<" 个学生的语文成绩:";
cin>>student[i].chinese;
cout<<"请输入第 "<<i+1<<" 个学生的数学成绩:";
cin>>student[i].math;
cout<<"请输入第 "<<i+1<<" 个学生的英语成绩:";
cin>>student[i].english;
}
cout<<"第二门课程的平均成绩是:"<<ave(student)<<endl;
bad(student);
good(student);
return 0;
}
int ave(mark arr[])
{
int aver=0;
for(int i=0;i<5;i++)
{
aver+=arr[i].math;
}
return aver/5;
}
void bad(mark arr[])
{
int num;
for(int i=0;i<5;i++)
{
num=0;
if(arr[i].chinese<60)
num++;
if(arr[i].math<60)
num++;
if(arr[i].english<60)
num++;
if(num>=2)
{
cout<<"第 "<<i+1<<" 号同学有两门或以上成绩不及格。"<<endl;
cout<<"其成绩为:"<<endl;
cout<<"语文:"<<arr[i].chinese<<" "<<"数学:"<<arr[i].math<<" "<<"英语:"<<arr[i].english<<endl;
}
}
}
void good(mark arr[])
{
int ave;
int num_1=0,num_2=0;
for(int i=0;i<5;i++)
{
ave=(arr[i].chinese+arr[i].english+arr[i].math)/3;
if(ave>90)
{
cout<<"第 "<<i+1<<"号同学的成绩平均分在90分或以上。"<<endl;
num_1++;
}
if(arr[i].chinese>85&&arr[i].english>85&&arr[i].math>85)
{
cout<<"第 "<<i+1<<"号同学的全部课程成绩在85分以上。"<<endl;
num_2++;
}
}
if(num_1==0)
cout<<"没有一个同学平均成绩在90以上。"<<endl;
if(num_2==0)
cout<<"没有一个同学的全部课程都在85分以上。"<<endl;
}