#4421. 2024csp-j 完善程序

2024csp-j 完善程序

2024csp-j 完善程序

(单选题,每小题 3 分,共计 30 分)

完善程序(一)

  1. (判断平方数) 问题:给定一个正整数 n,判断这个数 是不是完全平方数,即存在一个正 整数 x 使得 x 的平方等于 n 试补全程序。
#include<iostream>
#include<vector>
using namespace std;
bool isSquare(int num){
    int i = (1) ;
    int bound = (2) ;
    for(;i<=bound;++i){
        if( (3) ){
            return (4) ;
        }
    }
    return (5) ;
}
int main(){
    int n;
    cin>>n;
    if(isSquare(n)){
        cout<<n<<" is a Square number"<<endl;
    }else{
        cout<<n<<" is not a Square number"<<endl;
 }
  1. ①处应填( ) {{ select(33) }}
  • 1
  • 2
  • 3
  • 4
  1. ②处应填( ) {{ select(34) }}
  • (int)floor(sqrt(num)-1)
  • (int)floor(sqrt(num))
  • floor(sqrt(num/2))-1
  • floor(sqrt(num/2))
  1. ③处应填( ) {{ select(35) }}
  • num=2*i
  • num==2*i
  • num=i*i
  • num==i*i
  1. ④处应填( ) {{ select(36) }}
  • num=2*i
  • num==2*i
  • true
  • false
  1. ⑤处应填( ) {{ select(37) }}
  • num=i*i
  • num!=2*i
  • true
  • false

完善程序(二)

(汉诺塔问题)给定三根柱子,分别标记为 A、B 和 C。初始状态下,柱子 A 上有若干个 圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到柱子 c 上,且 必须保持原有顺序不变。在移动过程中,需要遵守以不规则: 1.只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。 2.每次只能移动一个圆盘 3.小圆盘必须始终在大圆盘之上。 试补全程序。

#include <bits/stdc++.h>
using namespace std;
void move(char src, char tgt) {
    cout << "从柱子" << src << "挪到柱子上" << tgt << endl;
}
void dfs(int i, char src, char tmp, char tgt) {
    if(i == (1) ) {
        move( (2) );
        return;
    }
    dfs(i-1, (3) );
    move(src, tgt);
    dfs( (5) , (4) );
}
int main() {
    int n;
    cin >> n;
    dfs(n, 'A', 'B', 'C');
}
  1. ①处应填( ) {{ select(38) }}
  • 0
  • 1
  • 2
  • 3
  1. ②处应填( ) {{ select(39) }}
  • src,tmp
  • src,tgt
  • tmp,tgt
  • tgt,tmp
  1. ③处应填( ) {{ select(40) }}
  • src, tmp, tgt
  • src, tgt, tmp
  • tgt, tmp, src
  • tgt, src, tmp
  1. ④处应填( ) {{ select(41) }}
  • src, tmp, tgt
  • tmp, src, tgt
  • src, tgt, tmp
  • tgt, src, tmp
  1. ⑤处应填( ) {{ select(42) }}
  • 0
  • 1
  • i-1
  • i