#6579. 【客观题】2.1程序基本常识
【客观题】2.1程序基本常识
一、单项选择题(共 15 题,每题 4 分,共计 60 分;每题有且仅有一个正确选项)
- 下列选项中,不属于算法必备特征的是( )。 {{ select(1) }}
- 有穷性
- 确定性
- 高效性
- 输入与输出
- 在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。 {{ select(2) }}
- 程序运行时理论上所占的内存空间
- 程序运行时理论上所占的硬盘空间
- 程序源文件理论上所占的硬盘空间
- 程序运行时理论上所占的栈空间
- 如果用递归函数计算斐波那契数列的第n项(函数定义为F(n)=F(n-1)+F(n-2),边界条件F(1)=F(2)=1),则该算法的时间复杂度为( )。 {{ select(3) }}
- O(1)
- O(n)
- O(n²)
- O(2ⁿ)
- 设某算法的计算时间满足递推关系式T(n)=T(n-1)+n(n为正整数)及初始条件T(0)=1,则该算法的时间复杂度为( )。 {{ select(4) }}
- O(log n)
- O(n)
- O(n log n)
- O(n²)
- 下列关于算法的说法中,正确的是( )。 {{ select(5) }}
- 算法可以没有输出
- 算法的每一步操作必须有确切的含义,不允许有歧义
- 死循环构成的程序也属于一个合法的算法
- 算法必须有至少一个输入
- C++程序中,程序执行的入口函数是( )。 {{ select(6) }}
- main函数
- cout函数
- include函数
- 自定义函数
- 下列C++数据类型中,不属于基本数据类型的是( )。 {{ select(7) }}
- int
- bool
- 结构体struct
- char
- 若定义变量int a=7; float x=2.5, y=4.7;,则表达式x + a%3 * (int)(x+y) % 2 / 4的值是( )。 {{ select(8) }}
- 2.500000
- 2.750000
- 3.500000
- 0.000000
- 有如下程序段,其中s、a、b、c均为已定义的整型变量,且a、c均已赋值(c>0):
s = a;
for(b=1; b<=c; b++)
s += 1;
与上述程序段功能等价的赋值语句是( )。 {{ select(9) }}
- s = a + b;
- s = a + c;
- s = c;
- s = b + c;
- 以下代码用于统计一个非负整数二进制形式中1的个数,空格处应填入的语句是( )。
int CountBit(int x){
int ret = 0;
while (x){
ret++;
__________;
}
return ret;
}
{{ select(10) }}
- x >>= 1
- x &= x - 1
- x |= x >> 1
- x <<= 1
- 递归过程或函数调用时,处理参数和返回地址,通常使用的数据结构是( )。 {{ select(11) }}
- 队列
- 栈
- 线性表
- 多维数组
- 在程序运行过程中,如果递归调用的层数过多,最可能引发的错误是( )。 {{ select(12) }}
- 系统分配的栈空间溢出
- 系统分配的堆空间溢出
- 系统分配的队列空间溢出
- 系统分配的数组空间溢出
- 有如下C++程序,运行后的输出结果是( )。
#include <iostream>
using namespace std;
int main(){
int k=4, n=0;
while(n<k){
n++;
if(n%3 == 0) continue;
k--;
}
cout<<k<<","<<n<<endl;
return 0;
}
{{ select(13) }}
- 2,2
- 2,3
- 3,2
- 3,3
- 设变量x为float型且已赋值,以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。 {{ select(14) }}
- x = (x*100 + 0.5) / 100.0;
- x = (int)(x*100 + 0.5) / 100.0;
- x = (x*100) + 0.5 / 100.0;
- x = (x/100 + 0.5) * 100.0;
- 下列关于C++语言注释的说法中,正确的是( )。 {{ select(15) }}
- 注释内容会被编译器一同编译,影响程序运行速度
- 单行注释只能写在代码行的末尾,不能单独占一行
- 注释的核心作用是对代码进行解释说明,提升可读性
- 注释内容会导致程序编译失败
二、判断题(共 10 题,每题 4 分,共计 40 分;判断下列说法的正误,每题有且仅有一个正确选项)
- 一个算法可以有零个或多个输入,但必须有一个或多个输出。( ) {{ select(16) }}
- 正确
- 错误
- 时间复杂度为O(n log n)的算法,执行效率一定高于时间复杂度为O(n²)的算法。( ) {{ select(17) }}
- 正确
- 错误
- C++中,单行注释以//开头,在行末结束;多行注释以/开头,以/结尾。( ) {{ select(18) }}
- 正确
- 错误
- do-while循环的循环体,无论循环条件是否成立,至少会被执行一次。( ) {{ select(19) }}
- 正确
- 错误
- 递归函数只要子问题与原问题一致,即使没有递归出口,也能正常执行并得到结果。( ) {{ select(20) }}
- 正确
- 错误
- C++程序中,所有语句都必须以分号作为结束符。( ) {{ select(21) }}
- 正确
- 错误
- break语句的作用是跳过本次循环的剩余语句,直接进入下一次循环。( ) {{ select(22) }}
- 正确
- 错误
- 算法的可行性,是指算法中的每一个操作都可以通过执行有限次来实现。( ) {{ select(23) }}
- 正确
- 错误
- 并列循环的时间复杂度计算遵循加法规则,嵌套循环的时间复杂度计算遵循乘法规则。( ) {{ select(24) }}
- 正确
- 错误
- 用递归能够实现的功能,都可以通过循环迭代的方式实现。( ) {{ select(25) }}
- 正确
- 错误
相关
在以下作业中: