【题目描述】

以下哪项不属于计算机的基本组成部分?

A. 中央处理器(CPU) B. 输入设备 C. 输出设备 D. 风扇

【题目答案】

D

【题目解析】

计算机的基本组成部分包括中央处理器(CPU)、内存、输入设备和输出设备。CPU是计算机的核心部件,负责执行指令和控制计算机的运行。内存用于存储程序和数据。输入设备用于将外部数据传递给计算机,如键盘、鼠标、扫描仪等。输出设备用于将计算机处理后的数据显示或输出,如显示器、打印机、投影仪等。而风扇通常被用来降温,不是计算机的基本组成部分,因此选项D为正确答案。


【题目描述】

以下哪种不属于计算机的主要存储器类型?

A. 内存(NVRAM) B. 硬盘驱动器(HDD) C. 高速缓存(Cache) D. 光盘(DVD)

【题目答案】

D

【题目解析】

计算机的主要存储器类型包括内存(NVRAM)、硬盘驱动器(HDD)和高速缓存(Cache)。内存是计算机用于临时存储数据和程序的地方,NVRAM指的是非易失性随机存取存储器,如固态硬盘(SSD)。硬盘驱动器是计算机用于永久性存储数据的设备,如机械硬盘(HDD)和固态硬盘(SSD)。高速缓存是计算机用于暂时性存储常用数据和指令的快速存储器,作为CPU和内存之间的缓冲区,以提高数据读取速度。

而光盘(DVD)是一种读取数据的外部存储设备,不属于计算机的主要存储器类型。因此选项D为正确答案。


【题目描述】

一幅分辨率为 1920*1080 的位图,每个像素点需要占用 3 个字节来保存其 RGB 值。那么这幅位图占用的内存大小是多少?

A. 5.00 MB B. 6.22 MB C. 5.93 MB D. 7.50 MB

【题目答案】

C

【题目解析】

一个分辨率为 19201080 的位图,共有 19201080=2073600 个像素点,每个像素点需要占用 3 个字节,则该位图占用的内存大小为 2073600*3=6220800 字节。

将字节转换为 MB,得到 6220800/1024/1024=5.93 MB(保留两位小数)。

因此,这幅位图占用的内存大小约为 5.93 MB,选项 C 为正确答案。


【题目描述】

从字母A、B、C、D、E中选出3个字母,可以重复选取。那么共有多少种不同的选法?

A. 10种 B. 20种 C. 100种 D. 125种

【题目答案】

D

【题目解析】

从5个字母中选取3个字母,可以重复选取,相当于每个字母有5种选择的可能性。因此,总的选法数量为 5 * 5 * 5 = 125 种。

所以,共有 125 种不同的选法,选项 D 为正确答案


【题目描述】

给定一个表达式:3 * 4 + 5 / 2,以下哪种表示法是前缀表达式?

A. + * 3 4 / 5 2

B.3 * 4 + 5 / 2

C.3 4 * 5 2 / +

D.* 3 + 4 / 5 2

【题目答案】

A

【题目解析】

  • 前缀表达式:+ * 3 4 / 5 2
  • 中缀表达式:3 * 4 + 5 / 2
  • 后缀表达式:3 4 * 5 2 / +

【题目描述】

阅读程序

#include<iostream>
#include<vector>
using namespace std;
int main() {
	string s;
	cin >> s;
	vector<int> vis(s.length(), 0);
	for (int i = s.length() - 2; i >= 0; i--) {
		if (s[i + 1] >= '5') {
			vis[i] = 1;
			s[i]++;
		}
	}
	if (s[0] > '4') {
		cout << "1";
		for (int i = 0; i < s.length(); i++) cout << "0";
		cout << '\n';
	}
	else {
		for (int i = 0; i < s.length(); i++) {
			if (vis[i]) {
				cout << s[i];
				for (int j = i + 1; j < s.length(); j++) cout << "0";
				break;
			}
			else cout << s[i];
		}
		cout << '\n';
	}
}

假设输入的是字符串是数字字符,且长度不超过 1000.请回答下面问题:

1.假设字符串长度为n,则该程序的时间复杂度为()

A.O(n) B.O(n^2) C.O(logn) D.O(n^3)

2.若输入1,该程序输出结果为()

A.1 B.10 C.5 D.3

3.若输入99,该程序输出结果为()

A.99 B.910 C.100 D.10

4.若输入20445,该程序输出结果为()

A.20445 B.21000 C.30000 D.25000

【题目答案】

1.A

2.A

3.C

4.B

【题目解析】

1.时间复杂度为O(n),虽然有一个循环嵌套,但是其实还是遍历这个字符串

2~4.该程序是可以进行很多次四舍五入让这个字符串s代表的数字尽可能的大(数字本身,不是字典序)

2.1不能四舍五入,最后是本身

3.99最后一位四舍五入变成100

4.20445最后一位四舍五入变成20550,第二位四舍五入变成20600,第三位四舍五入变成21000


【题目描述】

完善程序

你有 nn 个长度为 mm 的单词,第 ii 个单词是 sis_i

在一个操作中,你可以把任何一个单词的任何一个位置上的字母改成它相邻的字母,比如:

  • 你可以把 'e' 改成 'd' 或 'f'。
  • 你只能把 'a' 改成 'b'。
  • 你只能把 'z' 改成 'y'。

sis_isjs_j 的差异度为使 si=sjs_i=s_j 所需的操作次数,如 "best" 与 "cost" 差异度为 1+10+0+0=111+10+0+0=11。

你要找到 sis_isjs_j(满足 i<ji<j)的差异度的最小值,也就是每一对单词差异度的最小值。

下面这段代码的思路是枚举每对字符串,求他们之间差异度的最小值。

#include<iostream>
using namespace std;
string s[109];
int main() {
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> s[i];
	}
	int ans = ①;
	for (int i = 0; i < n; i++) {
		for (int j = ②; j < n; j++) {
			int temp = ③;
			for (int k = 0; k < m; k++) {
				④
			}
			⑤
		}
	}
	cout << ans << '\n';
	return 0;
}

1.①处应填( )

A.0 B.1 C.1e9 D.-1

2.②处应填( )

A.0 B.1 C.i D.i+1

3.③处应填( )

A.0 B.1 C.1e9 D.-1

4.④处应填( )

A.temp+=abs(s[i][j]-s[j][k]);

B.temp+=s[i][j]-s[j][k];

C.temp+=abs(s[i][k]-s[j][k]);

D.temp+=s[i][k]-s[j][k];

5.⑤处应填( )

A.ans=0 B.ans=1e9 C.ans=min(ans,temp) D.ans=temp

【题目答案】

1.C

2.D

3.A

4.C

5.C

【题目解析】

1.ans是存储答案的,要赋值一个很大值

2.j应该从i+1开始

3.temp是存储s[i]和s[j]的差异度的,初始值为0

4.temp加上k下标位置的差异

5.ans和temp取较小值放到ans中

0 comments

No comments so far...