作业8

本文包含了一系列C++编程实例,覆盖了指针操作、字符串处理、数组应用及函数使用等内容,旨在帮助读者通过实际编程加深对C++语言特性的理解。
实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;


2.编程实现课本每一个编程习题。


3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。


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


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


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


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

(1)

#include<iostream>  
using namespace std;  
  
int main()  
{  
     int a=10;  
     int*p;  
     p=&a;  
     cout<<"a= "<<a<<endl;  
     cout<<"p= "<<p<<endl;  
     cout<<"&a= "<<&a<<endl;  
     cout<<"*p= "<<*p<<endl;  
     cout<<"&p= "<<&p<<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;  
  
     return 0;  
  
}  
(2)

#include<iostream>  
using namespace std;  
  
int main()  
{  
     
    int a,b;  
    int*p=&a,*q=&b,*tp;  
    cout<<"请输入两个数:";  
    cin>>a>>b;  
    if(a<b)  
    {  
        tp=p;p=q;q=tp;  
  
    }  
    cout<<"初始的两个人数为:"<<a<<" "<<endl;  
    cout<<"从大到小排序后的数为:"<<*p<<" "<<*q<<endl;  
  
    return 0;  
  
  
}  

(3)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a,b,temp;  
    int*p=&a,*q=&b;  
    cout<<"please input a and b:";  
    cin>>a>>b;  
    cout<<"初始的两个数为:"<<a<<" "<<b<<endl;  
    if(a<b)  
    {  
        temp=*p;*p=*q;*q=temp;  
    }  
    cout<<"从大到小排序后的数为:"<<*p<<" "<<*q<<endl;  
  
    return 0;  
  
}  
(4)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a=10,b=10,*ptr1,*ptr2;  
    ptr1=&a;  
    ptr2=&b;  
    cout<<boolalpha<<(*ptr1==*ptr2)<<endl;  
    //上述语句实质上比较的是变量a和b的值是否相等  
    cout<<boolalpha<<(ptr1==ptr2)<<endl;  
    //上述语句比较指针变量ptr1和ptr2的值是否相等  
  
    return 0;  
  
}  
(5)
#include<iostream>  
#include<iomanip>  
using namespace std;  
  
int main()  
{  
    int a[10];  
    for(int i=0;i<10;i++)  
        a[i]=2*(i+1);  
    for(i=0;i<10;i++)  
    cout<<setw(4)<<a[i];  
    cout<<endl;  
  
    return 0;  
}  
(6)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char a[]="Hello world",b[20],*p,*q;  
    p=a,q=b;  
    for(;*p!='\0';p++,q++)  
        *q=*p;  
    *q='\0';  
    cout<<"string1 is:";  
    cout<<a<<endl;  
    cout<<"string2 is:";  
    cout<<b<<endl;  
  
    return 0;  
}  
(7)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char*p="student";  
    for(;*p!='\0';p++)  
        cout<<p<<endl;  
  
    return 0;  
}  
(8)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    char*p="student";  
    for(int i=0;p[i]!='\0';i++)  
        cout<<p[i];  
    cout<<endl;  
  
    return 0;  
}  

(9)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char s[50];  
    char*p;  
    cout<<"please input a string:";  
    cin.get(s,50);  
    p=s;  
    for(;*p!='\0';)  
        p++;  
    cout<<"the length is:"<<p-s<<endl;  
  
    return 0;  
}  
(10)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int i=5,*p,**pp;  
    p=&i;  
    pp=&p;  
    cout<<&i<<'\t'<<i<<endl;  
    cout<<&p<<'\t'<<p<<'\t'<<*p<<endl;  
    cout<<&pp<<'\t'<<pp<<'\t'<<*pp<<'\t'<<**pp<<endl;  
  
    return 0;  
}  
(11)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a[5]={1,2,3,4,5};  
    int*p[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};  
    for(int i=0;i<5;i++)  
        cout<<*p[i]<<'\t';  
    cout<<endl;  
  
    return 0;  
}  
(12)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char a[]="computer system",b[]="hardware",c[]="software";  
    char*p[4];  
    p[0]=a;  
    p[1]=b;  
    p[2]=c;  
    p[3]=NULL;  
    for(int i=0;p[i]!=NULL;i++)  
        cout<<p[i]<<endl;  
  
    return 0;  
}  
(13)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char*weekname[]={"Sunday","Monday","Tuesday","Wednesday",  
        "Thursday","Friday","Saturday"};  
    int i;  
    while(1)  
    {  
        cout<<"please input week No.:";  
        cin>>i;  
        if(i<0||i>6)  
            break;  
        cout<<"week No."<<i<<"-->"<<weekname[i]<<endl;  
  
    }  
  
    return 0;  
      
}  
(14)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    char*p[]={"Rebacca","Heaven","Michael Chang","Linda Tsai"};  
    char*temp;  
    int i,j,n=4;  
    for(i=0;i<n-1;i++)  
    for(j=0;j<n-1;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;  
}  

(15)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a[2][3],*p[2];  
    int i,j;  
    p[0]=a[0];  
    p[1]=a[1];  
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
        a[i][j]=j+i;  
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
    {  
        cout<<"a["<<i<<"]["<<j<<"]:";  
        cout<<*(p[i]+j)<<endl;  
      
    }  
  
    return 0;  
  
}  
(16)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a[2][3],*p[2];  
    int**pp;  
    int i,j;  
    p[0]=&a[0][0];  
    p[1]=&a[1][0];  
    pp=p;  
    for(i=0;i<2;i++)  
    for(j>0;j<3;j++)  
        pp[i][j]=j+i;  
    for(i=0;i<2;i++)  
    for(j>0;j<3;j++)  
    {  
        cout<<"a["<<i<<"]["<<j<<"]:";  
        cout<<*(p[i]+j)<<endl;  
    }  
  
    return 0;  
}  
(17)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char*a[]={"Rebacca","Heaven","Michael Chang",NULL};  
    char**pp;  
    pp=a;  
    while(*pp!=NULL)  
        cout<<*pp++<<endl;  
  
    return 0;  
}  
(18)
#include<iostream>  
#include<iomanip>  
using namespace std;  
  
int main()  
{  
    int a[2][3]={1,2,3,4,5,6};  
    int(*p)[3];  
    int i,j;  
    p=a;  
    for(i=0;i<2;i++)  
    {     
        for(j=0;j<3;j++)  
        cout<<setw(3)<<(*p)[j];  
      
        p++;  
    }  
  
    cout<<endl;  
  
    return 0;  

}  
(19)

#include<iostream>  
using namespace std;  
void display(int*,int*);  
  
int main()  
{  
    int a=5,b=10;  
    int*pa=&a;  
    int*pb=&b;  
    display(pa,pb);  
      
    return 0;  
}  
void display(int*p1,int*p2)  
{  
    cout<<"parameter 1 is"<<*p1<<endl;  
    cout<<"parameter 2 is"<<*p2<<endl;  
}  

(20)

#include<iostream>  
using namespace std;  
  
void lower(char*c);  
  
int main()  
{  
    char ch;  
    cout<<"input a uppercase character:";  
    cin>>ch;  
    lower(&ch);  
    cout<<"convert character:";  
    cout<<ch<<endl;  
  
    return 0;  
}  
void lower(char*pch)  
{  
    if(*pch>='A'&&*pch<='Z')  
        *pch+='a'-'A'; //将大写字母转换为小写字母,等价于*pch+=32;  
}  

(21)

#include<iostream>  
using namespace std;  
  
void swap(int*u,int*v);  
  
int main()  
{  
    int a=3,b=4;  
    cout<<"交换前的数据为:";  
    cout<<"a="<<a<<"\tb="<<b<<endl;  
    swap(&a,&b);  
    cout<<"交换后的数据为:";  
    cout<<"a="<<a<<"\tb="<<b<<endl;  
  
    return 0;  
}  
void swap(int*u,int*v)  
{  
    int temp=*u;  
    *u=*v;  
    *v=temp;  
}  

(22)

#include<iostream>  
using namespace std;  
void input(int*s,int n);  
int min(int*s,int n);  
int main()  
{  
    int a[10],small;  
    input(a,10);  
    small=min(a,10);  
    cout<<"the minimum is:"<<small<<endl;  
  
    return 0;  
}  
void input(int*s,int n)  
{  
    cout<<"please input"<<n<<"integers:"<<endl;  
    for(int i=0;i<n;i++)  
        cin>>s[i];  
}  
int min(int*s,int n)  
{  
    int min,i;  
    min=*s;  
    for(i=1;i<n;i++)  
        if(s[i]<min)  
            min=s[i];  
  
    return min;  
  
}  

(23)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int fun(int a,int b);  
    int (*pf)(int a,int b);  
    pf=fun;  
    cout<<"please input two integers:"<<endl;  
    int m,n;  
    cin>>m>>n;  
    int result=(*pf)(m,n);  
  
    return 0;  
}  
int func(int a,int b)  
{  
    return a+b;  
}  
(24)

#include<iostream>  
using namespace std;  
  
int max(int,int);  
int min(int,int);  
int add(int,int);  
void process(int,int,int(*fun)(int,int));  
int main()  
{  
    int a,b;  
    cout<<"enter a and b:"<<endl;  
    cin>>a>>b;  
    cout<<"max=";  
    process(a,b,max);  
    cout<<"mim=";  
    process(a,b,min);  
    cout<<"sum=";  
    process(a,b,add);  
  
    return 0;  
      
}  
int max(int x,int y)  
{  
    int z;  
    if(x>y)z=x;  
    else z=y;  
    return z;  
}  
int min(int x,int y)  
{  
   int z;  
   if(x<y)z=x;  
   else z=y;  
   return z;  
}  
int add(int x,int y)  
{  
    int z;  
    z=x+y;  
    return z;  
}  
void process(int x,int y,int(*fun)(int,int))  
{  
    int result;  
    result=(*fun)(x,y);  
    cout<<result<<endl;  
}  

(1)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a[20]={2,4,6,8,10,12,14,16,18,20};  
    int*p;  
    p=a;  
    for(int i=0;i<10;i++)  
    {  
        cout<<*p<<'\t';  
        p++;  
    }  
      
    cout<<endl;  
    return 0;  
  
}  
(2)
#include<iostream>  
using namespace std;  
void lower(char a);  
int main()  
{  
    char b[20];  
    cout<<"请输入一个大写字符串:"<<endl;  
    cin.get(b,20);  
    cout<<"该大写字符串转换为小写格式后是:"<<endl;  
    for(int i=0;b[i]!='\0';i++)  
        lower(b[i]);  
        cout<<endl;  
      
    return 0;  
  
}  
void lower(char a)  
{  
    if(a>='A'&&a<='Z')  
      a+=32;  
      cout<<a<<'\t';  
}  
(3)
#include<iostream>  
using namespace std;  
  
int main()  
{  
    char a[20];  
    char*p;  
    cout<<"输入一个字符串:"<<endl;  
    cin.get(a,20);  
    cout<<"删除空格后的字符串为:"<<endl;  
    for(p=a;*p!='\0';p++)  
    if(*p!=' ')  
    cout<<*p;  
    cout<<endl;  
    return 0;  
}  
(4)

#include<iostream>  
using namespace std;  
  
int main()  
{  
   int q;  
   char*week[]={"January","february","March","April","May","June","July",  
               "August","September","October","November","December"};  
    
   while(1)  
   {  
         
       cout<<"输入一个整数"<<endl;  
       cin>>q;  
       if(q<1||q>12)  
             break;  
       cout<<"该整数对应的月份号是:"<<endl;  
       cout<<week[q]<<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;  
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
        a[i][j]=j+i;  
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
    {  
        cout<<"a["<<i<<"]["<<j<<"]:";  
        cout<<*(*(pp+i)+j)<<endl;  
    }  
      
    return 0;  
}  

(6)

#include<iostream>  
#include<iomanip>  
using namespace std;  
int*p[3];  
int a[3][4];  
int max();  
int main()  
{  
     
      
    p[0]=a[0];  
    p[1]=a[1];  
    p[2]=a[2];  
     
    cout<<"输入一个3X4矩阵的元素:"<<endl;  
    for(int i=0;i<3;i++)  
    for(int j=0;j<4;j++)  
    cin>>a[i][j];  
    cout<<"该矩阵是:"<<endl;  
    for(int k=0;k<3;k++)  
    {  
        for(int j=0;j<4;j++)  
        cout<<setw(4)<<a[k][j];  
        cout<<endl;  
  
    }  
        cout<<"该数组中最大的元素是:"<<max()<<endl;  
      
         
    return 0;  
}  
int max()  
{  
    int max;  
    max=*p[0];  
    for(int j=0;j<3;j++)  
    for(int k=0;k<4;k++)  
       if(*(p[j]+k)>=max)  
         max=*(p[j]+k);  
      
    return max;  
}  
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int n;  
    int a[100];  
    int*p;  
    int count=0;  
    a[0]=0;  
    cout<<"规则是有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子"<<endl;  
    cout<<"输入n的值:"<<endl;  
    cin>>n;  
    for(int i=0;i<n;i++)  
        a[i]+=1;  
    while(count<=n)  
    {  
        for(p=a;p-a<n;p++)  
        if(*p%3==0)  
        {     
            count+=3;  
            break;  
        }        
    }  
    cout<<"最后退出圈子的人是原来的"<<count-3<<"号"<<endl;  
      
      
    return 0;  
}  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值