#GOBJ203H. GESP 2级客观题|嵌套分支|课后作业

GESP 2级客观题|嵌套分支|课后作业

GESP 2级客观题|嵌套分支|课后作业

考试频率:高频。本卷共 6 题。

  1. 以下C++代码判断一个正整数N的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如N=2024时输出“是”。则横线处应填入( )。
int N,Flag;
cin >> N;
Flag = true;
while (N != 0){
    if (N %2 != 0){
        Flag = false;
        _____________
    }
    else
        N /= 10;
}
if(Flag == true)
    cout << "是";
else
    cout << "否";

{{ select(1) }}

  • break
  • continue
  • N = N / 10
  • N = N % 10
  1. 有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第n天小杨是在打鱼还是晒网,横线处应填写?( )
int n,i;
cin >> n;
i = n % 5;
if (__________________) // 在此处填写代码
    cout << "晒网";
else
    cout << "打鱼";

{{ select(2) }}

  • i == 0
  • i == 4
  • i == 0 && i == 4
  • i == 0 || i == 4
  1. 一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 1016886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?( )
int n,a,k;
cin >> n;
a = 0;
k = n;
while (n > 0){
    a = __________; // 在此处填写代码
    n /= 10;
}
if (a == k)
    cout << "是回文数";
else
    cout << "不是回文数";

{{ select(3) }}

  • 10 * a + n % 10
  • a + n % 10
  • 10 * a + n / 10
  • a + n / 10
  1. 如下图所示,输出 N 行 N 列的矩阵,对角线为1,横线处应填入()。
请输入行列数量:9
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1
int N = 0;
cout << "请输入行列数量:";
cin >> N;
for(int i = 1; i < N + 1; i++){
    for(int j = 1; j < N + 1; j++)
        if(______)//此处填写代码
            cout << 1 << " ";
        else
            cout << 0 << " ";
    cout << endl;
}

{{ select(4) }}

  • i = j
  • j != j
  • i >= j
  • i == j
  1. 今天星期六,其后第N天星期几?如果是星期一到星期六输出形如:星期1、星期2等,星期天则输出星期天。下面的C++代码用于完成上述要求,横线处应填上的代码是( )。
int N, remainder;
cin >> N;
remainder = _____________;
if(remainder == 0)
    printf("星期六后第%d天是星期天\n", N);
else
    printf("星期六后第%d天是星期%d\n", N, remainder);

{{ select(5) }}

  • (N + 6) / 7
  • (N + 6) // 7
  • N % 7
  • (N + 6) % 7
  1. 判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如25的平方是625,其尾数是25,所以25是自守数。相关说法错误的是( )。
int N, N1, M1;
cout << "输入一个正整数:";
cin >> N;
N1 = N, M1 = N * N;
bool Flag = true;
while (N1 > 0){
    if (N1 % 10 != M1 % 10){
        Flag = false;
        break;
    }
    else{
        N1 = N1 / 10, M1 = M1 / 10;
    }
}
if (Flag == true)
    printf("%d的平方是%d,是自守数", N, N * N);
else
    printf("%d的平方是%d,不是自守数", N, N * N);

{{ select(6) }}

  • 如果Flag在循环中不被改为false,则说明该数是自守数
  • 代码 if (N1 % 10 != M1 % 10) 用于判断其个位数是否相等,如果不等,则表明不是自守数
  • 代码 N1 = N1 / 10, M1 = M1 / 10 将个位数去掉
  • N1 > 0 改为 N > 0 效果相同
蜀ICP备2025119001号-1