第九周c++作业

本周的C++实验作业包括深入分析并重构课本例题,编程实现所有编程习题,如圆圈报数问题及成绩管理功能。具体任务涉及循环与条件判断,以及成绩统计与筛选算法的应用。

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

  •  实验作业

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

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

2.1

#include <iostream>
using namespace std;

int main()
{
	int a[10],*p = a;
	for(int i=0;i<10;i++)
		a[i]=2*(i+1);
	for(;p<a+10;p++)
		cout<<*p<<" ";
	cout<<endl;
	return 0;
}
程序运行结果


2.2

#include <iostream>
using namespace std;

void lower(char *);

int main()
{
	char str[20];
	cout<<"请输入一个大写字符串:";
	cin.getline(str,20);
	lower(str);
	cout<<"转换的字符串为:"<<str<<endl;
	return 0;
}

void lower(char *p)
{
	for(;*p!='\0';p++)
		if(*p>='A'&&*p<='Z')
			*p+='a'-'A';
}
程序运行结果


2.3

#include <iostream>
using namespace std;

int main()
{
	char source[30],dest[30],*p=source,*q=dest;
	cout<<"请输入一字符串:"<<endl;
	cin.getline(source,30);
	while(*p)
		if(*p==' ')   p++;
		else{
			*q=*p;
			p++;
			q++;
		}
	*q='\0';
	cout<<"删除空格后的字符串为:"<<endl;
	cout<<dest<<endl;
	return 0;
}
程序运行结果


2.4

#include <iostream>
using namespace std;

int main()
{
	char *month[]={"January","February","March","April","May","June","July","August","September","October","Novermber","December"};
	int i;
	while(1)
	{
		cout<<"请输入月份:";
		cin>>i;
		if(i<1||i>12)
		{
			cout<<"输入错误!"<<endl;
			break;
		}
		cout<<i<<"月的英文名称是:"<<month[i-1]<<endl;
	}
	return 0;
}
程序运行结果


2.5

#include <iostream>
using namespace std;

int main()
{
	int a[2][3],*p[2],i,j;
	p[0]=a[0];p[1]=a[1];
	cout<<"请输入二维数组的6个元素值:"<<endl;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			cin>>p[i][j];
	cout<<"该二维数组的数据为:"<<endl;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
			cout<<p[i][j]<<'\t';
		cout<<endl;
	}
	return 0;
}
程序运行结果


2.6

#include <iostream>
using namespace std;

int max(int *,int);

int main()
{
	int a[3][4],i,j,maxValue;
	cout<<"请输入3*4矩阵的元素值:"<<endl;
	for(i=0;i<3;i++)
		for(j=0;j<4;j++)
			cin>>a[i][j];
	maxValue=max(&a[0][0],12);
	cout<<"矩阵中最大的元素为:"<<maxValue<<endl;

	return 0;
}

int max(int * p,int n)
{
	int maxValue= * p;
	for(int i=0;i<n;i++)
		if(p[i]>maxValue)
			maxValue=p[i];
	return maxValue;
}
程序运行结果


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

#include<iostream>
using namespace std;

int main()
{
	int n;
	cout<<"请先决定要多少个人参加"<<endl;
	cin>>n;
	int a[100];
	int *p=a;
	for(int i=0;i<n;i++)
		a[i]=1;
	int m=n,j=0;
	while(m>1) //m是人数。当人数减到为1时,显示出结果
	{
		if(*p!=0)
		{
			j++;
		}
		if(j==3)
		{
			*p=0;
			j=0;
			m--;
		}
		if(p==&a[n-1])
			p=a;
		else
			p++;
	}
	for(i=0;i<n;i++)
		if(a[i]==1)
			cout<<"最后留下的人原来排在第"<<i+1<<"号"<<endl;

	return 0;
}
程序运行结果


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

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

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

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值