1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
编写程序,将10个整型数2、4、6、…、18、20赋予一个数组,然后使用指针输出显示该数组各元素的值
#include<iostream.h>
#include<iomanip.h>
void main()
{
int a[10],*p;
for(int i=0;i<10;i++)
a[i]=2*(i+1);
for(p=a;p<a+10;p++)
cout<<setw(3)<<*p;
cout<<endl;
}
把键盘输入的一个大写字符串改为小写字符串并显示出来
,
其中大小写转换用函数
lower
()实现
#include<iostream.h>
void lower(char *c);
void main ( )
{
char str;
cout << "Enter character:" << endl;
cin >> str;
lower(&str);
cout << "converted character:" << endl;
cout << str << endl;
}
void lower(char *c)
{
if (*c >= 'A'&& *c <= 'Z')
*c += 'a'-'A';
}
输入一个字符串,删除其中的所有空格后输出
#include <iostream>
#include <string>
using namespace std;
void main()
{
char str[20];
int i,j=0;
cout<<"输入字符串:"<<endl;
gets(str);
for(i=0;i<strlen(str);i++)
if(str[i]!=' ')
str[j++]=str[i];
str[j]='\0';
cout<<str<<endl;
}
编写程序,当输入整数1~12(月份号)时,输出该月的英文名称,输入其他整数时结束程序。例如,输入“4”,则输出“April”,输入“0”,则退出程序,要求使用指针数组处理
#include<iostream.h>
void main()
{
char*p[12]={"January","February","March","April","May","June","July",
"August","September","October","Novermber","December"};
int i;
cin>>i;
while(i<=12&&i>=1)
{
cout<<p[i-1]<<endl;
cin>>i;
}
cout<<"error"<<endl;
}
分别使用指针数组和二级指针输入、输出一个二维整型数组
#include<iostream.h>
void main()
{int a[2][3];**p;
int i,j;
pp=a;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
pp[i][j]=(i+1)*(j+1);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<”a[“<<i<<”][“<<j<<”]:”;
cout<<*(*(pp+i)+j)<<endl;}
}
输入一个3×4的矩阵,写一个函数求其中的最大元素
#include <iostream.h>
void main()
{int a[3][4];
int i,j;
for( i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
cout<<endl;
int n=a[0][0];
for( i=0;i<3;i++)
{
for(j=0;j<4;j++)
{if(a[i][j]>n)
n=a[i][j];}
}
cout<<n<<endl;
}
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。
#include <iostream.h>
void main()
{
int i,k,m,n,num[50],*p;
cout<<"input number of person: n="<<endl;
cin>>n;
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)//m是指出局的人数,因为有n个人,最后剩下一个人,所以最多出局(n-1)个人,构成循环
{
if(*(p+i)!=0)//判断这个号(原来的序号)是否出局
k++;//这个号没有出局,就报数,计数器加1
if(k==3)//报3的出局
{
*(p+i)=0;//将出局的这个人标记
k=0;//使计数器置零,以便后面的人报数
m++;//出局人数计数器加1
}
i++;//将指针后移,虽然i不是指针,但p+i就是指针了,所以i就是为指针服务的
if(i==n)//如果指针移到了尾部,则返回到头部
i=0;
}
while(*p==0)//用这个可以只判断所找号的前面的号(包括所找号),不用判断后面的。
p++;
cout<<"The last one is N0"<<*p<<endl;
}
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生。