C++语言程序设计项目五

本文介绍了一个C++编程项目,涵盖了函数声明、定义与使用,形参与实参,值传递与地址传递,递归调用,全局变量、局部变量和静态变量的使用,以及指针操作。通过五个编程题目,分别实现字符串反转、求整型数组最大值和最小值、判断素数、过滤字符串和计算单词个数的功能,以巩固C++的基本知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

1、掌握函数声明、定义和使用

2、掌握形参与实参之间的对应关系。

3、掌握函数调用时,形参、实参之间的“值传递”和“地址传递”的区别。

4、掌握函数递归调用的方法

5、掌握全局变量、局部变量、静态变量的使用方法

6、掌握指针的使用方法

二、准备内容

1、实验课前需预习实验内容,并做好实验设计。

2、复习视频及课上所讲授的C++中函数及指针的C++基本知识

三、实验内容

设计并完成项目五:慕课网站上第五周的编程作业。

四、实验步骤

(一)编程代码

第一题:

#include<iostream>

#include<string.h>

using namespace std;

void mystrrev(char str[])//声明反转函数

{

    int len=strlen(str);

    int temp;

    for (int i=0;i<len/2;i++)//进行循环,交换第一个和最后一个字符,依次。

    {

        str[len-1-i]=temp;

    }

    str[len]='\0';//字符串的结束

}

    return 0;

}

第二题:

#include<iostream>

using namespace std;

int imax(int array[],int count)//求整形的最大元素

    int max=array[0];

    for (int i=1;i<count;i++)//进行for循环,然后依次输入array[i]

    {

        if(array[i]>max)//比较大小,然后比max大的赋值给max

        {

            max=array[i];

        }

    }

    return max;//max返回主函数储存

}

int imin(int array[],int count)//与上面上面相同

{

    int min=array[0];

    for (int i=1;i<count;i++)

    {

        if(array[i]<min)

        {

            min=array[i];

        }

    }

    return min;

}

int main()

{

    int count;

    int a[100];

    cin>>count;

    for(int i=0;i<count;i++)

    {

        cin>>a[i];

    }

    int max=imax(a,count);

    int min=imin(a,count);

    cout<<max<<endl;

    cout<<min<<endl;

    return 0;

}

第三题:

#include<iostream>

#include<string.h>

#include<cmath>

using namespace std;

int isprime(int a)//判断素数的函数

{

    int mark=1;

    if(a==1)//1不为素数,先排除。

    {

        mark=0;

    }

    for(int i=2;i<=a/2;i++)//进行循环,依次输入i,且i一定是小于等于a/2

    {

   

    }

    if (mark==1)//如果为素数

    return 1;

    else if(mark==0)//如果不是素数

    return 0;

}

int main()

{

    int a[100];int mark=0;

    for(int i=0;;i++,mark++)//输入所有数组

    {

        cin>>a[i];

        if(a[i]==0) break;//如果是0就直接跳出

    }

    int c[mark];

    for (int i=0;i<mark;i++)//进行循环

    {

        if(isprime(a[i])==1)//如果是素数

        {

            c[i]=1;

        }

    }

    int num=0;//声明素数个数

    for(int i=0;i<mark;i++)//进行循环

    {

        if(c[i]==1)

        num=i;

    }

                cout<<" ";

            }

        }

    }

    return 0;

}

第四题:

#include<iostream>

#include<string.h>

using namespace std;

string delNotChar(char str[])//声明字符串

{

    int len=strlen(str);//读取字符串长度

    int j=0;

    char b[200];

    for(int i=0;i<=len;i++)//进行循环

    {

        if(str[i]>='a'&&str[i]<='z')//如果字符为英文小写,个数加一,且变为大写

        {

            b[j]=str[i]-32;

            j++;

        }

        else if((str[i]>='A'&&str[i]<='Z')||str[i]==' ')//如果为空格或大写,加一

        {

            b[j]=str[i];

            j++;

        }

    }

    b[j]='\0';

    return b;

}

int main()

{

    char a[200];

    cin.getline(a,200);//得到一串字符串

    cout<<delNotChar(a);

    return 0;

}

第五题:

#include<iostream>

using namespace std;

int count(char str[]);//单词个数

int main(){

 char arr[500];

 cin.getline(arr,500);

 cout<<count(arr);

 return 0;

}

int count(char str[]){

 int i=0,n=0;

 while(str[i]!='\0')//字符不是终止符时,一直循环。

{

  

  if(str[i]>='a'&&str[i]<='z'){//如果是小写,单词个数加一,且字符也加一

  n++;

  i++;

  while(str[i]>='a'&&str[i]<='z')//继续进行,如果还是小写,继续字符加一,但单词个数不变

  i++;

  }

  

  else if(str[i]>='A'&&str[i]<='Z'){//上同

  n++;

  i++;

  while(str[i]>='a'&&str[i]<='z')

  i++;

  }

  

  Else//其他的都是字符加一

  i++;

 }

 return n;

}

(二)运行结果

第一题:

 

第二题:

 

第三题:

 

第四题:

 

第五题:

 


五、实验结论

经过第五周的学习我学到了:构造函数:无参数不用void且没有返回类型;在创建对象时,构造函数自动被调用;且构造函数的名字必须与类相同。他的功能:在创建对象时,使用给定的值来将对象初始化。以及 析构函数:后创建的对象先释放,他的功能:调用析构函数来释放内存。定义函数的目的是提高程序的可读性,函数的返回值类型是由定义函数时所指定的返回值类型决定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值