c++基础30个小程序作业

c++简单基础实验作业

1、设计程序,计算 s=1!+2!+…+10!的值。
2、设计程序,求 2~100 间的非素数。
3、设计程序,求所有的“水仙花数” 。“水仙花数”是各位数字的立方和恰好等于其自身的 3
位数,如 153=13+53+33
在这里插入图片描述

5、编程根据输入的 3 条边值判定是否构成三角形,能则求其面积。
6、计算s=1+2+3+…+i,直到累加到 s 大于 1000 为止,并输出s 和 i 的值。
7、分别用 for、while 和 do while 语句编写程序,求 5~20(包括 20)间所有偶数的和。
8、编写程序,求满足如下条件的最大的 n。12+22+32+…+n2≤1000
9、用数据{8.2,6.5,3,9.7,12,2.8,7.6,15,10.3}初始化一维数组,并求其中的最大值、最小值和平均值。
10、编程求字符串“I am a student.”的长度。
11、从键盘输入一个带空格的字符串,并把空格后的第 1 个小写英文字母改为大写英文字母。如从键盘输入“I am forever 25 years old.”时,则输出“I Am Forever 25 Years Old.”。12、设计一个程序,把字符串中的字符逆序。如将“I am a student.”逆序为“.tneduts a ma I”。
13、通过指针拼接字符串。如把“china”和“ people” 拼接成“china people”。
14、设计一个程序,将一维数组中的元素从小到大排序(升序排列,冒泡排序法)。
15、设计一个程序,将一维数组中的元素从小到大排序(升序排列,选择排序法)。
16、把键盘输入的数(n)插入到有序序列(num)中,并保持序列有序。
17、设计一个程序,把二维数组中的元素上移一行,其中第 1 行移到最后。
18、设计一个程序用指针判断键盘输入的数是否为自反数。所谓自反数是指正序和反序相同的数,如 1234321 和 123321 都是自反数。
19、找出一维数组中值最大的元素及其位置(下标),最大元素可能不止一个。如{3,5,2,
7,6,1,7,4,7,5}中最大元素为 7,其下标分别为 3、6、8。
20、求键盘输入的 n 个实数的均方差。求均方差的公式为:
在这里插入图片描述

21、求二维数组外围元素(第 1 行、第 1 列、最后一行和最后一列)的和。
22、不使用字符串处理函数,通过指针变量拼接字符串。如把“Good morning.”和“I am Tom.” 拼接成“Good morning. I am Tom.”
23、设计一个程序,通过指针变量求键盘输入的一串字符中单词的个数。例如“ I am a boy.” 中有 4 个单词。
24、设计一个程序,交换一维数组中最大元素与最小元素的位置,如{18,16,19,15,11,8}交换后为{18,16,8,15,11,19}。
25、设计一个程序,通过行指针求二维数组中正数元素与负数元素的平均值。
26、求三个整数的最大公约数
① 定义 gcd 函数求两个整数的最大公约数;

② 调用 gcd 函数,其返回值即为两个整数的最大公约数;复合调用 gcd(gcd(a,b),c), 得到三个数的最大公约数。
27、求解代数式 sum=1k+2k+…+nk,其中 k 为整数。
① 设计函数 powers 用于求 ik 的值。设 p 的值为 1,则 p*=i 循环 k 次,p 就等于ik。
② 设计函数 sum 用于累加求和,通过循环语句 n 次调用 powers 函数便可求得 n 项 ik 的和。
28、定义函数求 ex 的近似解,要求最后一项小于 10-6,其中,求 ex 的近似公式为:
① 定义递归函数 int fun(int n),用以计算 n!。
② 定义递归函数 double f (int n),用以计算 xn。
29、统计二维数组中所有元素的平均值,并将该二维数组中的小于平均值的元素存储到一个一维数组中,并输出这些元素及其个数。
30、设计程序,将二维数组中的每一列的元素按从小到大进行排序(用函数实现)。

源程序

**程序1 **
//阶层累加

#include<iostream>
using namespace std;

int main()
{
   
	int sum=0,j=1;     
	for (int i=1;i<=10;i++)
		{
   
			j*= i;
			sum+=j; 
		}
		cout << "结果是" << sum<<endl;
		system("pause");
}

在这里插入图片描述

程序2
//2-100素数

#include<iostream >
using namespace std;

int main()
{
   
     int j,i;
     int nums= 0; 
	 cout<<"2-100之间的素数:"<<'\n';
     for(i= 2;i<=100;i++)
	 {
    
         for(j=2;j<i;j++)
		 {
   
             if(i%j==0)               //判断数是不是素数
                 break;
		 }
         if(j==i)
		 {
    
             nums++;
             if(nums%5==0)            //控制每行输出5个素数
			 {
   
                cout<<i<<'\t'<<endl;
			 } 
			 else
			 {
   
                cout<<i<<'\t';
			 }

        }
    }
    cout<<endl;
    return  0;
}


或
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main( )
{
   	int x , m , k , i ;
	cout<<setw(8)<<2<<setw(8)<<3 ;		//先输出两个素数:2和3 
	for ( k=2 , x=5 ; x<100 ; x+=2 )		//检测5~100间奇数
	{
   	m=sqrt((double)x) ;
		for ( i=3 ; i<=m ; i++ )        
			if ( x%i==0 ) break ;		//检测x是否为素数
		 if ( i>=m+1 )        		//条件成立,则x为素数,需输出;否则不输出
		 {
   	cout<<setw(8)<<x ;
			k++ ;    				//统计输出素数的个数
			if ( k%5==0 )cout<<'\n' ;	//控制每行输出5个素数
		 }
	 }
	 cout<<'\n';
	 return 0;
}

在这里插入图片描述

程序3
//水仙数

#include<iostream>
using namespace std;
int main( )
{
   
	int a,b,c;
cout<<"水仙数:"<<'\n';
	for(int i=100;i<1000;i++)
	{
   
		a=i/100;                 //取百位
		b=i/10%10;              //取十位
		c=i%10;                 //取个位
		if(i==a*a*a+b*b*b+c*c*c)
			cout<<i<<endl;
	}
	return 0;
}

在这里插入图片描述

程序4
//Fibonacci 数列

#include<iostream>
using namespace std;

int main()
{
   
	int a[20], i;
	cout << "Fibonacci数列前二十项分别为:"<<'\n';
	a[0] = 0;
	a[1] = 1;
	for (i = 2; i < 20; i++)
	{
   
		a[i] = a[i - 1] + a[i - 2];
	}
	for (i = 0; i < 20; i++)
	{
   
		cout << i << '\t';
	}
}

程序5
//三角形面积

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
   
	double a,b,c,s,area;
	cout<<"请输入三条边:"<<'\n';
	cin>>a>>b>>c;
	if((a+b)<=c||(b+c)<=a||(c+a)<=b)                //检测是否构成三角形
		cout<<"输入的三条边不构成三角形,请重新输入!"<<endl;
	else 
	{
   
		s=((a+b+c)/2);
	    area=sqrt(s*(s-a)*(s-b)*(s-c));            //海伦格式求三角形面积
		cout<<"三角形的面积:"<<area<<endl;
	}
	return 0;
}


或
#include<iostream>
#include<cmath>
using namespace std;
#define s(a,b,c)  ((a+b+c)/2)
#define area(a,b,c)   s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)  
int main( )
{
   	
	double a,b,c;
	double ss;
	cout<<"请输入三角形的三边:  ";
	cin>>a>>b>>c;
	ss=area(a,b,c);
	ss=sqrt(ss);
	cout<<"三角形的面积为: "<<ss<<endl;
	return 0;
}

程序6
//累加到1000的s和i值

#include<iostream>
using namespace std;

int main()
{
   
	int s=0,i;
	for(i=0;s>1000;i++)
	{
   
		s+=i;
	}
	cout<<"s的值:"<<s<<'\n';
	cout<<"i的值:"<<i<<'\n';
	return 0;
}

程序7
//三种循环语句

#include<iostream>
using namespace std;

int main()
{
   
	int s=0,i;                  
	for(i=5;i<=
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值