C++基础练习题

文章目录

  • 第一题根据用户输入的行和列进行打印
  • 第二题打印任意行数用*组成的三角
  • 第三题打印任意行数的倒三角
  • 第四题打印打印任意行数的金字塔
  • 第五题 打印任意行数的倒金字塔
  • 第六题 打印乘法口诀表
  • 第七题 打印出所有水仙花数
  • 第八题 打印任意个斐波那契数
  • 第九题 十进制,转二进制
  • 第十题 二进制,转十进制
  • 第十一题逆转字符串
  • 第十二题计算字符串,长度

第一题根据用户输入的行和列进行打印

#include 
#include 
#define g "&"//宏定义
using namespace std;

int main (void){
	int x;
	int y;
	cout<<"请输入每行的个数:";
	cin>>x;
	cout<<"打印几行?"<<endl;
	cin>>y;
	for(int i=1;i<=y;i++){
		cout<<endl;
		for(int q=1;q<=x;q++){
			cout<<g;
		}

	}

	cout<<endl;
	system("pause");
	return 0;
}

第二题打印任意行数用*组成的三角

#include 
#include 

using namespace std;
int main (void){
	int x;
	cout<<"打印几行?"<<endl;
	cin>>x;
	for(int i=1;i<=x;i++){
		cout<<endl;
		for(int a=1;a<=i;a++){
			cout<<"*";
		}
	}


	system("pause");
	return 0;
}

第三题打印任意行数的倒三角

#include 
#include 

using namespace std;
int main (void){
	int x;
	cout<<"打印几行?"<<endl;
	cin>>x;
	for(int i=1;i<=x;i++){
		cout<<endl;
		for(int q=x;q>=i;q--){
			cout<<"*";
		}
	}
	system("pause");
	return 0;
}

第四题打印打印任意行数的金字塔

#include 
#include 

int main(void) {
	int len = 0;

	printf("请输入需要打印的行数:");
	scanf_s("%d", &len);

	for (int i = 1; i <= len; i++) {
		for (int j = len - i; j > 0; j--) {
			printf(" ");
		}
		for (int a = 0; a < 2 * i - 1; a++) {
			printf("*");
		}
		printf("\n");
	}

	system("pause");
	return 0;
}

第五题 打印任意行数的倒金字塔

#include 
#include 

int main(void) {
	int len = 0;

	printf("请输入需要打印的行数:");
	scanf_s("%d", &len);

	for (int i = len; i > 0;i--) {
		for (int j = 0; j < len - i;j++) {
			printf(" ");
		}
		for (int a = 0; a < 2*i-1; a++) {
			printf("*");
		}
		printf("\n");
	}

	system("pause");
	return 0;
}

第六题 打印乘法口诀表

#include  
#include 

using namespace std;
int main (void){
	for(int i=1;i<=9;i++){
		cout<<endl;
		for(int a=1;a<=i;a++){
			cout<<i<<"*"<<a<<"="<<i*a;
			cout<<"  ";
		}
	}

	cout<<endl;
	system("pause");
	return 0;
}

第七题 打印出所有水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

#include 
#include 

using namespace std;
int main (void){
	int a,b,c;
	for(int i=100;i<=999;i++){
		a=i%10;
		b=(i/10)%10;
		c=i/100;
		if(a*a*a+b*b*b+c*c*c==i){
			cout<<i<<endl;
		}
	}

	system("pause");
	return 0;
}

第八题 打印任意个斐波那契数

斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列和兔子数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。

#include 
#include 

using namespace std;
int main (void){
	//斐波那契数
	int a=0;
	int b=1;
	int c=1;
	int value;
	cout<<"请输入斐波那契数的个数:";
	cin>>a;
	if(a<=0){
		cout<<"请输入比0大的数!"<<endl;
		system("pause");
		return 1;
	}
	if(a==b){
		cout<<"1";
		system("pause");
		return 0;
	}
	if(a==c){
		cout<<"1 1";
		system("pause");
	}
	cout<<"1 1";
	for (int i=3;i<=a;i++){
		value=c+b;
		b=c;
		c=value;
		cout<<" "<<value;
	}
	cout<<endl;
	system("pause");
	return 0;
}

第九题 十进制,转二进制

#include 
#include 

using namespace std;
int main (void){
	int x;
	int y[32];
	int i;
	cout<<"请输入一个整数:";
	cin>>x;
	if(x<=0){
		cout<<"请输入一个正整数!"<<endl;
		system("pause");
		return 1;
	}
	i=0;
	while(x!=0){
		y[i]=x%2;
		x=x/2;
		i++;
	}
	for(i--;i>=0;i--){
	cout<<y[i];
	}
	cout<<endl;
	system("pause");
	return 0;
}

第十题 二进制,转十进制

#include 
#include 
#include 

using namespace std;
int main(void){
	string x;
	int y=0;
	int w=1;
	cout<<"请输入一个二进制数:";
	cin>>x;
	for(int i=x.length()-1;i>=0;i--){
		int s=x[i]-'0';
		y+=s*w;
		w*=2;
	}
	cout<<y<<endl;



	system("pause");
	return 0;
}

第十一题逆转字符串

#include 
#include 
#include 

using namespace std;
int main (void){
	string y;
	int x;
	cout<<"请输入想逆转的话:";
	cin>>y;
	x=y.length()-1;
	for(int i=x;i>=0;i--){
		cout<<y[i];
	
	}

	cout<<endl;
	system("pause");

	return 0;
}

第十二题计算字符串,长度

#include 
#include 
#include 

using namespace std;
int main (void){
	string x;
	int y;

	cout<<"请输入一个字符串:";
	cin>>x;
	y=x.length();
	cout<<"字符串的长度是:"<<y<<endl;


	system("pause");
	return 0;
}

都是些既基础又经典的的题

你可能感兴趣的:(C,c++,c++)