火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

几个阅读程序题

作者: 作者的头像   huolong , 时间:2025-09-04 16:23:09 , 所有人可见, 阅读  38

题目1

#include <iostream>
using namespace std;
void f(int &i) {
    i = i - 2;
}
int main() {
    int i = 6, k = 14;
    do {
        switch (i) {
            case 6:
            case 1:
                cout << i + k << endl;
                break;
            case 2:
                cout << i << endl;
            case 5:
                cout << i + 1 << endl;
                break;
            default:
                cout << k + 3 * i << endl;
        }
        f(k);
        --i;
    } while (k > 0);
    return 0;
}

题目2

#include <iostream>
using namespace std;

void modify(int &x, int y) {
    x = x / 2;
    y = y + 3;
}

int main() {
    int a = 8, b = 20;

    while (b >= 8) {
        switch (a) {
            case 4:
                cout << a * 2;
                break;
            case 2:
                cout << a - 1;
            case 3:
                cout << b / 2;
                break;
            default:
                cout << a + b % 3;
        }

        modify(a, b);
        b -= 4;
        cout << "-";
    }
    cout << "END" << endl;
    return 0;
}

题目3

#include <iostream>
#include <cctype>
using namespace std;
class MachtNix {
    private:
        char c;
    public:
        MachtNix(char c) {
            this->c = c;
            cout << "+" << c << endl;
        }
        ~MachtNix() {
            cout << "-" << c << endl;
        }
};
MachtNix x('G');
int main() {
    MachtNix x('M');
    for (int k = 0; k < 2; k++) {
        MachtNix x('F' + k);
        if (k > 0) {
            MachtNix x('i');
        }
    }
    MachtNix y('Y');
    return 0;
}

题目4

#include <bits/stdc++.h>

using namespace std ;
int add(int i) {
    short result = 32767 + i;

    /*
    short 2字节  16位  -32768 ~ 32767
    int 4字节 32位  -21473648~21473647
    */

    return result;
}


bool greater5(int a) {
    unsigned int b = 5;
    if (a > b) {
        return true;
    } else {
        return false;
    }
}

unsigned int dec(unsigned int i) {
    i--;
    return i;
}

int main() {

    //3个函数改错

    return 0;
}

题目5

#include <iostream>
using namespace std;

// 函数 f:按值传递参数 k
// 对 k 的修改不会影响外部变量
void f(int k) {
    for (int i = 0; i < 5; i++) {
        k = k - 1;  // 修改的是形参 k 的副本
    }
    // 函数结束后,k 被销毁,外部无影响
}

// 函数 g:递归函数,参数为指针 i 和整数 a
// 通过指针修改外部变量,并递归累加
int g(int* i, int a) {
    (*i) -= 1;  // 通过指针将 *i 减 1(副作用)

    if (a == 0) {
        return *i;  // 终止条件:返回当前 *i
    } else {
        return *i + g(i, a - 1);  // 递归调用,累加每次修改后的 *i
    }
}

// 函数 h:按引用传递 k
// 直接修改外部变量 k
void h(int& k) {
    for (int i = 0; i < 4; i++) {
        k = k * 2;  // 每次乘以 2,共 4 次 → k *= 16
    }
}

// 主函数
int main() {
    int k = 5;

    // Step 1: 调用 f(k) —— 值传递,无副作用
    f(k);
    cout << k << endl;  // 输出:5

    // Step 2: 调用 g(&k, 3) —— 指针传递,递归修改 k
    cout << g(&k, 3) << endl;

    // Step 3: 调用 h(k) —— 引用传递,k 被放大 16 倍
    h(k);
    cout << k << endl;

    return 0;
}

题目6 代码改错!!!

#include <iostream
using std::cout;

int main() {
    int k[] = {1, 6, 4, 3, 5, 2};
    int result = 0

    for (int i = 0; i < 7; i++) {
        resutl += k[i];
    }

    cout << "result = " << result << endl;

    return 0;
}

题目7

#include <iostream>
using namespace std;

void adjust(int &val) {
    val = val - 5;
}

int main() {
    int x = 5, y = 15;

    do {
        y -= 3;
        switch (x) {
            case 5:
                cout << x + y;
                adjust(x);
                // 注意:没有 break!
            case 0:
                cout << x;
                break;
            case 1:
                cout << y - x;
                break;
            default:
                cout << y / x;
        }

        x++;
        cout << ",";
    } while (y > 0);

    cout << "STOP" << endl;
    return 0;
}

题目8

#include <iostream>
using namespace std;

void f(int i) {
    i = i - 2;  // 修改的是形参 i(局部变量),不影响外部
}

int main() {
    int i = 7, k = 12;

    do {
        k -= 2;
        switch (i) {
            case 6:
            case 1:
                cout << i + k;
                break;
            case 2:
                cout << i;
                // 注意:这里没有 break!
            case 5:
                cout << i + 1;
                break;
            default:
                cout << k + 3 * i;
        }

        f(k);      // 调用函数 f,但无影响
        --i;       // i 减 1
        cout << ",";
    } while (k > 0);

    cout << endl;
    return 0;
}

题目9


题目1


题目10


—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码