#6734. 智汇少年的选择和判断题模拟卷1(高)

智汇少年的选择和判断题模拟卷1(高)

一、判断题

  1. 枚举法的核心是将问题的所有可能解逐一列举并验证是否符合条件。 {{ select(1) }}
  • 正确
  • 错误
  1. 执行代码
int arr[5]={1,2,3,4,5};
for(int i=0;i<5;i++)
{
    if(arr[i]==3) break;
    cout<<arr[i];
}

会输出123。 {{ select(2) }}

  • 正确
  • 错误
  1. 模拟法解决问题时,必须严格按照实际问题的时间顺序执行。 {{ select(3) }}
  • 正确
  • 错误
  1. strlen("abc\0def")的计算结果是6。 {{ select(4) }}
  • 正确
  • 错误
  1. 递归函数没有终止条件会导致栈溢出,程序崩溃。 {{ select(5) }}
  • 正确
  • 错误
  1. 函数的默认参数可以在函数调用时重新赋值。 {{ select(6) }}
  • 正确
  • 错误
  1. 二维数组 int arr[2][4]; 定义后,所有元素的初始值均为0。 {{ select(7) }}
  • 正确
  • 错误
  1. 多层if-else嵌套中,else默认与最近的未匹配的if配对。 {{ select(8) }}
  • 正确
  • 错误
  1. 执行以下代码,输出的结果是3。
int a=10,b;
b=(double)a/3;
cout<<b;  

{{ select(9) }}

  • 正确
  • 错误
  1. 文件操作中,ofstream的open函数默认以覆盖方式打开文件。 {{ select(10) }}
  • 正确
  • 错误

二、单选题

  1. 下列代码中,能正确实现将一维数组逆序输出的是() {{ select(11) }}
  • int arr[4]={1,2,3,4}; for(int i=3;i>=0;i--) cout<<arr[i];
  • int arr[4]={1,2,3,4}; for(int i=0;i<4;i++) cout<<arr[4-i];
  • int arr[4]={1,2,3,4}; for(int i=3;i>0;i--) cout<<arr[i];
  • int arr[4]={1,2,3,4}; for(int i=4;i>=0;i--) cout<<arr[i];
  1. 定义函数 void swap(int &a, int &b){int t=a;a=b;b=t;},调用int x=3,y=5;swap(x,y);后,x和y的值是() {{ select(12) }}
  • x=3,y=5
  • x=5,y=3
  • x=3,y=3
  • x=5,y=5
  1. 下列关于枚举法的说法,错误的是( ) {{ select(13) }}
  • 枚举法需要明确的判断条件
  • 枚举范围越小,执行效率越高
  • 枚举法可以解决所有编程问题
  • 枚举法又称穷举法
  1. 执行代码
int mat[2][3]={{1,2,3},{4,5,6}};
int sum=0;
for(int i=0;i<2;i++)
{
    for(int j=0;j<3;j++)
    {
        if(j%2==0) sum+=mat[i][j];
    }
}
cout<<sum;

输出结果是( ) {{ select(14) }}

  • 9
  • 14
  • 15
  • 18
  1. 递归函数的终止条件的作用是( ) {{ select(15) }}
  • 提高函数执行效率
  • 防止无限递归导致程序崩溃
  • 让函数可以嵌套调用
  • 使函数能接收多个参数
  1. 下列关于字符数组的说法,正确的是() {{ select(16) }}
  • 字符数组不能存储字符串
  • 字符数组的结束符\0需要手动添加
  • strcpy函数可以复制字符串到字符数组
  • 字符数组的长度必须与存储的字符数一致
  1. 执行代码
int i=0;
for(;i<6;i++)
{
    if(i==3) break;
    if(i==1) continue;
    cout<<i;
}

输出结果是() {{ select(17) }}

  • 02
  • 0245
  • 023
  • 012
  1. 下列属于显式类型转换的是( ) {{ select(18) }}
  • double a=3; int b=a;
  • int a=6; char b='0'+a;
  • long a=10; int b=(int)a;
  • char a='5'; int b=a-'0';
  1. 下列代码中,能正确将文件test.txt中的内容读取并输出的是() {{ select(19) }}
  • #include #include using namespace std; int main(){ ifstream fin; fin.open("test.txt"); string s; fin>>s; cout<<s; fin.close(); return 0; }
  • #include using namespace std; int main(){ ifstream fin; fin.open("test.txt"); string s; fin>>s; cout<<s; return 0; }
  • #include #include using namespace std; int main(){ ofstream fin; fin.open("test.txt"); string s; fin>>s; cout<<s; fin.close(); return 0; }
  • #include #include using namespace std; int main(){ ifstream fin; string s; fin>>s; cout<<s; fin.close(); return 0; }
  1. 定义函数 int add(int a, int b=2){return a+b;},调用add(5)的结果是() {{ select(20) }}
  • 2
  • 5
  • 7
  • 10
  1. 下列关于多层循环的说法,错误的是() {{ select(21) }}
  • 多层循环可以嵌套for、while、do-while循环
  • 外层循环执行一次,内层循环执行全部次数
  • 多层循环的循环体只能是单一语句
  • 可以通过break跳出当前层循环
  1. 执行语句 int a=15, b=4; cout<<a%b + a/b; 输出结果是() {{ select(22) }}
  • 2
  • 4
  • 6
  • 8
  1. 下列枚举法的应用场景,最合适的是() {{ select(23) }}
  • 求1000以内的所有素数
  • 求任意数的平方根
  • 模拟银行排队叫号
  • 计算斐波那契数列
  1. 执行代码
int arr[5]={2,4,6,8,10};
int *p=arr;
cout<<*(p+2);

输出结果是() {{ select(24) }}

  • 4
  • 6
  • 8
  • 10
  1. 下列关于模拟法的描述,正确的是() {{ select(25) }}
  • 模拟法无需模仿实际问题的流程
  • 模拟法适合解决无明确流程的问题
  • 模拟法的核心是还原实际问题的执行步骤
  • 模拟法比枚举法执行效率更高
  1. 使用数学函数 pow(2,3) 计算2的3次方,必须包含的头文件是() {{ select(26) }}
  1. 执行语句 char str[]="hello"; cout<<strlen(str); 输出结果是() {{ select(27) }}
  • 5
  • 6
  • 4
  • 7
  1. 下列属于头文件中的函数是() {{ select(28) }}
  • sqrt()
  • strlen()
  • pow()
  • abs()
  1. 调用递归函数 int f(int n){if(n==0)return 1;return n*f(n-1);},f(4)的结果是() {{ select(29) }}
  • 4
  • 12
  • 24
  • 48
  1. 下列关于函数参数传递的说法,正确的是() {{ select(30) }}
  • 值传递中形参修改会影响实参
  • 数组作为函数参数时采用值传递
  • 形参是实参的副本属于值传递特征
  • 函数参数不能是浮点型数据
  1. 执行代码
int i=0, sum=0;
while(i<=5)
{
    if(i%2==1)
    {
        sum+=i;
        i++;
        continue;
    }
    i++;
}
cout<<sum;

输出结果是() {{ select(31) }}

  • 6
  • 9
  • 12
  • 15
  1. 定义二维数组 int mat[3][4] = {{1,2},{3}}; 则mat[1][1]的值是() {{ select(32) }}
  • 3
  • 0
  • 2
  • 随机值
  1. 下列代码中,属于合法的多层if-else嵌套的是() {{ select(33) }}
  • if(x>0) if(y>0) cout<<1; else cout<<2;
  • if(x>0) { if(y>0) cout<<1; } else cout<<2;
  • if(x>0) cout<<1; else if(y>0) cout<<2; else cout<<3;
  • 以上均合法
  1. 执行语句 double a=5.6, b=2; int c=(int)(a/b); cout<<c; 输出结果是() {{ select(34) }}
  • 2
  • 2.8
  • 3
  • 5
  1. 下列关于C++文件读写的说法,正确的是() {{ select(35) }}
  • 读取文件时无需包含头文件<fstream>
  • ofstream用于创建并写入文件
  • ifstream的open函数无法指定打开方式
  • 文件操作完成后无需关闭文件

三、多选题

  1. 下列关于字符数组和函数的说法,正确的有( ) {{ multiselect(36) }}
  • strlen () 函数计算的长度不包含结束符 '\0'
  • strcat () 函数可以将两个字符串拼接
  • strcmp () 函数比较两个字符串时区分大小写
  • 字符数组初始化时可以直接用字符串赋值
  1. 下列关于多层循环的说法,正确的有( ) {{ multiselect(37) }}
  • 可以在循环中使用 continue 跳过本次循环
  • 外层循环和内层循环的循环变量可以同名
  • 可以通过 goto 语句跳出所有嵌套循环
  • 多层 for 循环嵌套的语法一定合法
  1. 下列关于模拟法和枚举法的区别,正确的有( ) {{ multiselect(38) }}
  • 模拟法侧重还原流程,枚举法侧重逐一验证
  • 模拟法不需要判断条件,枚举法需要明确判断条件
  • 模拟法和枚举法可以结合使用
  • 枚举法适合解决有明确取值范围的问题,模拟法适合解决有明确流程的问题
  1. 下列属于头文件中的常用函数的有( ) {{ multiselect(39) }}
  • abs()
  • sqrt()
  • strcat()
  • pow()
  1. 下列关于递归函数的说法,正确的有() {{ multiselect(40) }}
  • 递归函数是自己调用自己
  • 递归函数的执行分为递推和回归阶段
  • 递归函数的参数可以是任意类型
  • 递归函数的执行效率一定比非递归函数高
  1. 下列关于函数的说法,正确的有() {{ multiselect(41) }}
  • 函数可以有默认参数,默认参数必须放在参数列表末尾
  • 函数可以重载,重载的函数参数个数或类型必须不同
  • 函数的返回值类型可以是数组
  • 空函数的返回值类型为void
  1. 下列关于二维数组的说法,正确的有() {{ multiselect(42) }}
  • 二维数组的行和列下标均从 0 开始
  • 二维数组可以部分初始化,未赋值元素为 0
  • 二维数组的行数和列数定义后不可修改
  • 可以通过一维数组的方式访问二维数组元素
  1. 下列关于多层分支结构的说法,正确的有() {{ multiselect(43) }}
  • if-else 可以和 switch 语句嵌套使用
  • 多层 if-else 嵌套可以通过大括号明确配对关系
  • switch 语句可以实现多层分支逻辑
  • 多层分支结构的条件判断顺序不影响结果
  1. 下列关于类型转换的说法,正确的有() {{ multiselect(44) }}
  • 隐式类型转换由编译器自动完成
  • 显式类型转换可能会造成数据丢失
  • int 类型可以隐式转换为 char 类型
  • double 类型转换为 int 类型会保留小数部分
  1. 下列关于C++文件操作的说法,正确的有() {{ multiselect(45) }}
  • 头文件包含了文件读写的相关类
  • ofstream可用于向已存在的文件追加内容
  • ifstream只能读取文本文件,不能读取二进制文件
  • 文件打开失败时,open函数会返回错误标识