慕课第3周基础练习

慕课第3周基础练习_第1张图片
慕课第3周基础练习_第2张图片
慕课第3周基础练习_第3张图片
慕课第3周基础练习_第4张图片
慕课第3周基础练习_第5张图片
慕课第3周基础练习_第6张图片
慕课第3周基础练习_第7张图片
慕课第3周基础练习_第8张图片

#include
#include
using namespace std;
int main()
{
	char ch;
	cin>>ch;
	if(ch>='0' && ch<='9')
	cout<<0<<endl;
	else if(ch>='A' && ch<='Z')
	cout<<1<<endl;
	else if(ch>='a' && ch<='z')
	cout<<2<<endl;
	else 
	cout<<-1<<endl;
	
	return 0;
 } 

5百分制成绩转五分制成绩(10分)
题目内容:

编写程序,输入百分制的分数(非负整数),将其转换为5分制成绩,成绩对应关系如下:

90-100: 5

80-89: 4

70-79: 3

60-69: 2

10-59: 1

0-9: 0

输入:非负整数

输出:[0,5]之间的整数

#include
#include
using namespace std;
int main()
{
	int grade;
	cin>>grade;
	switch (grade/10)
	{
		case 10:
		cout<<5<<endl;
		break;
		case 9:
		cout<<5<<endl;
		break;
		case 8:
		cout<<4<<endl;
		break;
		case 7:
		cout<<3<<endl;
		break;
		case 6:
		cout<<2<<endl;
		break;
		case 5:
		cout<<1<<endl;
		break;
		case 4:
		cout<<1<<endl;
		break;
		case 3:
		cout<<1<<endl;
		break;
		case 2:
		cout<<1<<endl;
		break;
		case 1:
		cout<<1<<endl;
		break;
		case 0:
		cout<<0<<endl;
		break;
		
		
	}
	
	return 0;
 } 

6显示n个字符(10分)
题目内容:

编写程序,输如正整数n和字符c,在一行输出n个字符c。如输入:10 #,显示

##########

输入:一个正整数n和一个字符c,用空格隔开

输出:一行,n个字符c

样例1输入:

10 #

样例1输出:

##########

#include
#include
#include
using namespace std;
int main()
{
	int n;
	char ch;
	cin>>n>>ch;
	vector <char> a(n,ch);//动态数组,有 n 个元素,每个元素都是ch 
	for(int i=0;i<n;i++)
	{
		cout<<a[i];
	}
	
	
	return 0;
 } 

7显示字符组成的矩形(10分)
题目内容:

编写程序,输入行数n、列数m和一个字符c,显示由字符c组成的n行m的矩形。

如输入:5 10 #,输出:

##########

##########

##########

##########

##########

输入:两个正整数和一个字符,用空格隔开

输出:由字符c组成的矩形

样例1输入:

5 10 #

样例1输出:

##########

##########

##########

##########

##########

#include
#include
#include
#include
using namespace std;
int main()
{
	int row;
	int col;
	char ch;
	cin>>row>>col;
	cin>>ch;

	for(int i=0; i<row; i++)//外层循环控制行;
	{
		for(int j=0; j<col; j++) //内层循环控制列; 
		{
			cout<<ch;
			
		}
		cout<<endl;
	}
	
	return 0;
 } 

8用循环计算1+2+3+…+n(10分)
题目内容:

编写程序,输入非负整数n,计算s=1+2+3+…+n的值。要求使用循环,而不是使用公式。

输入:非负整数n

输出:和

注意,请自己分别使用for和while实现。

样例1输入:

10

样例1输出:

55

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	int sum =0;
	cin>>n;
	for(int i=0;i<=n;i++)
	{
		sum+=i;
	 } 
	cout<<sum;
	
	return 0;
 } 

9计算1+1/2+1/3+…+1/n(10分)
题目内容:

编写程序,输入非负整数n,计算s=1+1/2+1/3+…+1/n的值。输入0时,输出0。

输入:非负整数n

输出:级数的前n项和。

【提示】1/n应写成1.0/n。和应为double型。请自己分别使用for和while实现。

样例1输入:

3

样例1输出:

1.83333

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	double sum =0;
	double m=0;
	cin>>n;
	for(int i=1;i<=n;i++) //i 要从1开始。分母不为零。 
	{
		m=1.0/i;    //这里要用1.0,不能用 1,否则会出现浮点错误。 
		sum+=m;
	}
	
	cout<<sum<<endl;
	return 0;
 } 

10计算n!(10分)
题目内容:

编写程序,输入非负整数n,计算n!。0!=1。

输入:非负整数n

输出:n!

【提示】阶乘的初始值应设为1。请自己分别使用for和while循环实现。

样例1输入:

6

样例1输出:

720

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	int sum=1;         //0的阶乘是1; 
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		sum*=i;
	}
	
	 
	cout<<sum<<endl;
	return 0;
 } 

11交替输出1和-1(10分)
题目内容:

编写程序,输入正整数n,从1开始交替输出n个1和-1。如输入3,输出 1 -1 1;

输入4,输出 1 -1 1 -1,数据间用一个空格隔开。

输入:一个正整数n。

输出:1,-1交替组成的序列,用空格隔开,末尾无空格。

【提示】 (1)k=1;将k=-k放在循环体中产生交替序列。

(2)末尾无空格的实现方法:

i=0;

cout<

i++;

while(i

{

cout<<" "<

i++;

}

cout<

样例1输入:

3

样例1输出:

1 -1 1

样例2输入:

4

样例2输出:

1 -1 1 -1

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	cin>>n;
	cout<<1;
	for(int i=1; i<n; i++)
	{
		if(i%2==0)
		cout<<" "<<1;
		else
		cout<<" "<<-1;
	} 
	cout<<endl;
	 

	return 0;
 } 

12判断整数的位数(10分)
题目内容:

编写程序,输入非负整数,判断整数的位数。如输入:12,输出:2

输入:一个非负整数

输出:整数的位数

【提示】

样例1输入:

12

样例1输出:

2

样例2输入:

1234

样例2输出:

4

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;

	int p=1;
	cin>>n;
	while(n>=10)
	{
		n=n/10;
		p=p+1;
	}
	cout<<p<<endl;
	
	 

	return 0;
 } 

13求非负整数的各位数字的和(10分)
题目内容:

编写程序,输入非负整数,输出其各位数字的和,如输入:1234,输出10.

输入:一个非负整数

输出:整数

【提示】

样例1输入:

1234

样例1输出:

10

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	cin>>n;
	int sum=0;

	while(n>0)
	{
		sum=sum+n%10;  //取%后可以得到一个数字的末位数; 
		n=n/10;        //取“/10”后可以得到一个数字 去掉个位后的数字 
	}
	cout<<sum<<endl;

	return 0;
 } 

14九九乘法表(10分)
题目内容:

编写程序,显示如下的n行的九九乘法表。如输入5,,显示的乘法表如下:

1*1=1

21=2 22=4

31=3 32=6 3*3=9

41=4 42=8 43=12 44=16

51=5 52=10 53=15 54=20 5*5=25

输入:[1,9]之间的整数n

输出:n行的乘法表,一行的各项间用一个空格隔开

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) 
	{
		for(int j=1;j<=i;j++)
		{
			cout<<i<<"*"<<j<<"="<<i*j;
			if(j<i)     //保证最末尾没有空格
			cout<<" ";
		}
		cout<<endl;
	}
	
	return 0;
 } 

15不一样的九九乘法表(10分)
题目内容:

编写程序,显示如下的n行的九九乘法表。如输入5,,显示的乘法表如下:

51=5 52=10 53=15 54=20 5*5=25

41=4 42=8 43=12 44=16

31=3 32=6 3*3=9

21=2 22=4

1*1=1

#include
#include
#include
#include
using namespace std;
int main()
{
	int n;
	cin>>n;
	for(int i=n;i>0;i--) 
	{
		for(int j=1;j<=i;j++)
		{
			cout<<i<<"*"<<j<<"="<<i*j;
			if(j<i)
			cout<<" ";
		}
		cout<<endl;
	}
	
	return 0;
 } 

16Fibonacci序列(10分)
题目内容:

编写程序,显示Fibonaci序列的前n项(从0开始)。

F(0)=0

F(1)=1

F(n)=F(n-1)+F(n-2)

输入:非负整数n

输出:n+1个整数,数据间有一个空格,末尾无空格。

【提示】

样例1输入:

10

样例1输出:

0 1 1 2 3 5 8 13 21 34 55

#include
#include

using namespace std;
int Fibonaci(int n);
int main()
{
	int n;
	
	cin>>n;
	for(int i=0;i<=n;i++)
	{
		cout<<Fibonaci(i);
		if(i<n)
		cout<<" ";
	}

	return 0;
 } 
 int Fibonaci(int n)
 {
 	if(n==0)
 		return 0;
 	else if(n==1)
 		return 1;
 	else
 		return Fibonaci(n-1)+Fibonaci(n-2);
 }

你可能感兴趣的:(慕课第3周基础练习)