C++系列作业

本文提供了一系列C++编程基础练习题目,包括用户输入判断、菜单程序、循环语句、函数应用、递归、数学计算等多个方面,旨在帮助学习者巩固C++编程基础。
摘要由CSDN通过智能技术生成

  1.编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N。若输入为Y,显示“现在正在下雨。”;若输入为N,显示“现在没有下雨”;否则继续提问“现在正在下雨吗?”

#include<iostream>
#include<string>
using namespace std;
int main() {
    string input;    //用户输入的是一个字符串,要用cin接收一行的输入
    while (1) {    //永远执行此循环
        cout << "现在正在下雨吗?";
        getline(cin, input);
        if (input == "Y") {
            cout << "现在正在下雨" << endl;
            break;    //结束循环
        }
        else if (input == "N") {
            cout << "现在没有下雨" << endl;
            break;    //结束循环
        }
        else {
            continue;
        }
    }
    system("pause");
    return 0;
}

 

  2. 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来,规则为90到100优,80到90良,60到80中,0到60差。

#include<iostream>
using namespace std;
int main(){
    float number;
    while(1){
        //    第一次输入。
        cout << "你考试考了多少分?(0~100):";
        cin >> number;
        //    检测是否输入的是符合要求的数字
        while(cin.fail()){
            cout<<"你输入的不是数字,请重新输入!"<<endl;
            cin.clear();
            cin.sync();
            cout<<"你考试考了多少分?(0~100):";
            cin >> number;
        }
        //    当输入的是数字后,进入判断
        if(number >= 90 && number <= 100){
            cout << "你的等级是优" << endl;
        }
        else if(number>=80 && number<90){
            cout << "你的等级是良" << endl;
        }
        else if(number>=60 && number<80){
            cout << "你的等级是中" << endl;
        }
        else if(number>=0 && number<60){
            cout << "你的等级是差" << endl;
        }
        else{
            cout << "你输入的成绩不在判断等级的范围内,请重新输入!" << endl;
        }
    }
    return 0;
}

 

  3. 实现一个简单的菜单程序,运行时显示“Menu: A(dd) D(elete) S(ort) Q(uit),Select one:”,提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”,输入为Q时程序结束。
      (1)要求用if…else语句进行判断,用break,continue控制程序流程。
      (2)要求使用switch语句。

#include<iostream>
#include<string>
using namespace std;
/*
    利用if...else语句进行判断,用break,continue控制流程。
*/
int main() {
    string input;
    while (1) {
        cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
        getline(cin, input);
        if (input == "A" || input == "a") {
            cout << "数据已经增加!" << endl;
            continue;
        }
        else if (input == "D" || input == "d") {
            cout << "数据已经删除!" << endl;
            continue;
        }
        else if (input == "S" || input == "s") {
            cout << "数据已经排序!" << endl;
            continue;
        }
        else if (input == "Q" || input == "q") {
            break;
        }
        else {
            cout << "你输入的参数有误,请重新输入!" << endl;
            continue;
        }
    }
}
/*
    利用switch语句进行编写
*/
//int main() {
//    char input;
//    while (1) {
//        cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
//        cin >> input;
//        switch (input) {
//        case 'A': 
//            cout << "数据已经增加!" << endl;
//            continue;
//        case 'D':
//            cout << "数据已经删除!" << endl;
//            continue;
//        case 'S':
//            cout << "数据已经排序!" << endl;
//            continue;
//        case 'Q':
//            break;
//        default:
//            cout<<"你输入的参数有误,请重新输入!" << endl;
//            continue;
//        }
//    }
//    return 0;
//}

 

  4. 输入一个两位整数,要求将该数逆序输出。例如,输入68,输出86。

#include<iostream>
using namespace std;
/*
    上机习题4
    输入一个两位整数,要求将该数逆序输出。
*/
int main() {
    int input;    //    定义要输入的整数
    int digit, unit;    //    定义十位数和个位数
    //    为了让程序可以重复输入输出,使用循环
    while (1) {
        cout << "请输入一个两位整数(10-99):";
        cin >> input;
        //    绝对值超过100的数字不符合题目要求
        if (input >= 100 || input <= -100) {
            cout << "你输入的数字不是两位整数,请重新输入" << endl;
            //    清除cin流的缓存,方便下次输入不会有问题。
            cin.clear();
            cin.sync();
            continue;
        }
        else {
            //    input整除10就能取出十位数
            digit = input / 10;
            //    input减去十位数乘以10就是个位数
            unit = input - digit * 10;
            //    重新组合输出数字
            cout << unit * 10 + digit << endl;
        }
    }
    return 0;
}
/*
    输出测试:
    -568    "你输入的数字不是两位整数,请重新输入"
    -89        -98
    89        98
    7        70
    -6        -60
    589        "你输入的数字不是两位整数,请重新输入"
    可以循环输入,每次都会有提示:"请输入一个两位整数(10-99):"
*/

 

  5. 求表达式的值

#include<iostream>
using namespace std;
/*
    上机习题5
*/
int main() {
    float x1 = 2.5;
    int a1 = 7;
    float y1 = 4.7;
    cout << "x1+a1%3*(int)(x1+y1)%2/4 ="<< x1 + a1 % 3 * (int)(x1 + y1) % 2 / 4 << endl;
    //    a1%3=1,(int)(x1+y1)=7
    //    1*7%2/4=7%2/4=1/4=0
    //    2.5+0=2.5
    int a2 = 2;
    int b2 = 3;
    float x2 = 3.5;
    float y2 = 2.5;
    cout << "(float)(a+b)/2+(int)x%(int)y =" << (float)(a2 + b2) / 2 + (int)x2 % (int)y2 << endl;
    //    (float)(a2+b2)=5.0,(int)x2=3,(int)y2=2
    //    5.0/2+3%2=2.5+1=3.5
    int a3 = 12;
    int n3 = 5;
    cout << "a%=(n%=2) =" << (a3 %= (n3 %= 2)) << endl;
    //    n3=n3%2=5%2=1
    //    a3=a3%1=12%1=0
    int a4 = 12;
    cout << "a+=a-=a*=a =" << (a4 += a4 -= a4 *= a4) << endl;
    //    a4=a4*a4=12*12=144
    //    a4=a4-a4=144-144=0
    //    a4=a4+a4=0+0=0
    system("pause");
    return 0;
}

 

  6. 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来,规则为90到100优,80到90良,60到80中,0到60差。

#include<iostream>
using namespace std;
/*
    用if语句实现
*/
#include<iostream>
using namespace std;
int main(){
    float number;
    while(1){
        //    第一次输入。
        cout << "你考试考了多少分?(0~100):";
        cin >> number;
        //  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值