C++基础编程题

 

一、第一种类型题,普遍是简单运算

  1. 计算球的体积V=4/3πr^3,输入球的半径r,求出体积保留3位小数

#include<bits/stdc++.h>

using namespace std;

int main()

{

double pi = 3.14,r,v;

cin>>r;

v = 4/3.0*pi*r*r*r;

printf("%.3f",v);

  return 0;

}

  1. 计算圆的面积s = pi*r^2,输入半径r,求出面积保留2位小数

#include<bits/stdc++.h>

using namespace std;

int main()

{

double pi = 3.14,r,s;

cin>>r;

s = pi*r*r;

printf("%.2f",s);

  return 0;

}

  1. 计算长方体体积v = 长*宽*高,长宽高分别用a,b,c代替并输入,保留两位小数

如输入1.2 4.5 3.7,输出19.98

#include<bits/stdc++.h>

using namespace std;

int main()

{

double a,b,c,v;

cin>>a>>b>>c;

v = a*b*c;

printf("%.2f",v);

  return 0;

}

二、if-else的判断题

  1. 输入三个整数,输出较大值

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c;

cin>>a>>b>>c;

if(a>b&&a>c)cout<<a;

else if(b>a&&b>c)cout<<b;

else cout<<c;

  return 0;

}

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c;

cin>>a>>b>>c;

cout<<max(a,max(b,c));

  return 0;

}

  1. C++编写程序判断一个正整数54是否是两位数(即大于等于10小于等于99)。若该正整数是两位数,则输出1,否则输出0。

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n=54;

if(n>=10&&n<=99)cout<<1;

else cout<<0;

  return 0;

}

  1. 【问题描述】

贝贝约晶晶下周一起去看展览,但晶晶每周的周二和周五有课必须上课,请帮晶晶判断她能否接受贝贝的邀请。

【输入】

一个整数,贝贝邀请晶晶去看展览的日期,数字1~7分别表示周一至周日。

【输出】

一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。

【样例输入】

3

【样例输出】

YES

【参考答案】

#include <iostream>

using namespace std;

int main(){

int day;

cin >> day;

if(day==2||day==5){

   cout << "NO";

}else{

cout << "YES";

}

return 0;

}

 

 

 

三、循环类型题目,需要使用循环来计算

1.水仙花数是一个特殊的三位数,它们的每一位数的立方和恰好等于它们本身,如153 = 1^3+5^3+3^3,请你用编程写出100-999以内的水仙花数并输出

#include<bits/stdc++.h>

using namespace std;

int main()

{

for(int i=100;i<=999;i++)

{

int a = i/100; //获取i的百位数

int b = i/10%10; //获取i的十位数

int c = i%10; //获取i的个位数

if(i==a*a*a+b*b*b+c*c*c) //满足条件则输出

cout<<i<<endl;

}

  return 0;

}

 

  1. 【问题描述】

蜗牛在n米深的井底往上爬,每天从白天向上爬x米,夜晚下滑y米,蜗牛需要爬多少天才能爬上井口呢?

【输入】

  一行,三个正整数,分别表示井深度n米,蜗牛白天爬x米,夜晚下滑y米。

【输出】

  一行,表示爬出井需要的天数。

【输入样例】

  10 5 3

【输出样例】

  4

【参考答案】

#include<iostream>

using namespace std;

int main() {

 int n,x,y;

 cin >> n >> x >> y;

 int sum=0,day=1;

 while(true) {

  sum+=x;

  if(sum>=n) {

    break;

  }

  sum-=y;

  day++;

 }

 cout << day ;

 return 0;

}

 

  1. 【问题描述】

输入一行字符(长度不超过100字符),统计其中数字字符的个数。

【输入】

  一行字符串,总长度不超过100字符。

【输出】

  一行,一个整数,表示字符串中数字字符的个数。

【输入样例】

 It'sthe5thofMarch.

【输出样例】

  1

【参考答案】

#include <iostream>

#include <cstring>

using namespace std;

int main(){

 char s[101];

 int num=0;

 cin >> s;

 int len=strlen(s);

 for(int i=0;i<len;i++){

  if(s[i]>='0'&&s[i]<='9'){

    num++;

  }

 }

 cout << num;

 return 0;

}

 

 

  1. 【问题描述】

输入一行字符(长度不超过100字符),统计其中大写字母和小写字母的个数。

【输入】

  一行字符串,总长度不超过100字符。

【输出】

  一行,一个整数,表示字符串中大写字母和小写字母的个数。

【输入样例】

 It'sthe5thofMarch.

【输出样例】

  2 13

#include<bits/stdc++.h>

using namespace std;

int main()

{

char a[101];

cin>>a;

int x=0,y=0,len = strlen(a);

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

{

if(isupper(a[i]))x++;

if(islower(a[i]))y++;

}

cout<<x<<" "<<y;

  return 0;

}

 

  1. 你手上拿着100元钱去买100只鸡,鸡的种类有3种:小鸡,母鸡,公鸡,这3种鸡的价格也有所区别,小鸡是13只,母鸡是31只,公鸡是51

【输出】所有可能的购买方案。

【样例输出】

0 25 75

4 18 78

8 11 81

12 4 84

【参考代码】

#include<iostream>

using namespace std;

int main(){

    int x,y,z;

    for(x=0;x<=20;x++)

        for(y=0;y<=33;y++){

            z=100-x-y;

            if(5*x+3*y+z/3==100&&z%3==0){

                cout<<x<<" "<<y<<" "<<z<<endl;

            }

        }

 return 0;   

}

 5.输入一个数,判断是否是质数,是输出1,不是输出0

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,sum = 0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        if(n%i==0)sum++;
    }
    if(sum>2)cout<<"no";
    else cout<<"yes";
     return 0;
}

//输入一个数,判断是否是质数,
//质数指的是只有2两个因数的数,如2,3,5,7,11等等
//质数 2 3 5
//非质数 4 6 8 

 

四、数组类型题目,需要用到数组的运算,比如数列问题

  1. 有这样一个数列,1、1、2、3、5、8、13... ,同学们请观察这个数列规律,你会发现数列中每个位置(位置>=3)上数字的值等于它前面两个数字之和,现在输入任意整数,求以这个整数为位置,数列中的值。(输入的位置最大上限不超过50)

【样例输入】

6

【样例输出】

8

 

【参考代码】

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[51] = {0,1,1}; //初始化前两位

int n;

cin>>n;

for(int i=3;i<=n;i++) //计算从第3位到第n位的值

a[i] = a[i-1]+a[i-2]; //第i位 = 前两位相加

cout<<a[n]; //输出数列的第n项

  return 0;

}

  1. 给定一组数列 1,2,9,33,126,477,...,观察数列规律,请计算第6项的数据及前6项的和

解析:分析数列规律可以得出除了第1,2项是固定为1,2,从第3项开始都等于前两项的和乘以3

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[51] = {0,1,2}; //初始化前两位

int sum = 1+2; //求和

for(int i=3;i<=6;i++) //计算从第3位到第6位的值

{

a[i] = (a[i-1]+a[i-2])*3;

}

cout<<a[6]; //输出数列的第6项

  return 0;

}

posted @ 2023-02-05 12:02  CRt0729  阅读(395)  评论(0编辑  收藏  举报