目录
Symantec 公司曾发布一款个人信息安全产品 Norton Antivirus,也便是大名鼎鼎的诺顿杀毒;在美国,诺顿是市场占有率第一的杀毒软件。但事实上,诺顿杀毒软件的名字却来源于一个不相信电脑病毒存在的程序员,这个程序员曾出版《计算机概论》,为计算机的发展带来了许多贡献。
这位程序员的名字叫什么?
| A | 詹姆·诺顿(Jame Norton) |
| B | 彼得·诺顿(Peter Norton) |
| C | 玛丽·诺顿(Mary Norton) |
| D | 爱德华·诺顿(Edward Norton) |
答案:彼得·诺顿(Peter Norton)
Unix 是一个多任务、多用户的计算机操作系统家族,前身为 1964 年启动的 Multics;由于 Multics 项目缓慢,1969 年贝尔实验室退出项目,由三名程序员完成了对其衍生作品 Unix 的自研。Unix 直接影响了如今流行的所有操作系统。
以下哪一位程序员没有参与开发 Unix?
| A | 肯·汤普森 |
| B | 道格拉斯·麦克罗伊 |
| C | 蒂姆·伯纳斯·李 |
| D | 丹尼斯·里奇 |
答案:蒂姆·伯纳斯·李
RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),简单解释为开源软件运动相对应的一种“开源硬件”;如今 RISC-V 基金会的创始人在广东的清华-伯克利深圳学院(TBSI)建立了 RISC-V 的国际开源实验室,而这个人也是 2017 年的图灵奖得主。
这个人是谁?
| A | 唐纳德·克努特(Donald ErvinKnuth) |
| B | 约翰·巴克斯(John Backus) |
| C | 约翰·轩尼诗(John Hennessy) |
| D | 大卫·帕特森(David Patterson) |
答案:大卫·帕特森(David Patterson)
【问题描述】 输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。
【输入形式】
先从标准输入读入整数的个数(大于等于1,小于等于100),然后在下一行输入这些整数,各整数之间以一个空格分隔。
【输出形式】
在标准输出上输出出现次数最多的整数及其出现次数,两者以一个空格分隔;若出现次数最多的整数有多个,则按照整数升序分行输出。
【样例输入】
10
0 -50 0 632 5813 -50 9 -50 0 632
【样例输出】
-50 3
0 3
【样例说明】
输入了10个整数,其中出现次数最多的是-50和0,都是出现3次。
以下程序实现了这一功能,请你填补空白处的内容:
- #include <stdio.h>
- int main()
- {
- int a[50], b[50], c[50], n, i, j, t, max;
- scanf("%d", &n);
- for (i = 0; i < n; i++)
- {
- scanf("%d", &a[i]);
- }
- for (i = 1; i < n; i++)
- for (j = 0; j < n - 1; j++)
- {
- if (a[j] > a[j + 1])
- {
- t = a[j];
- a[j] = a[j + 1];
- a[j + 1] = t;
- }
- }
- j = 0;
- t = -1;
- for (i = 0; i < n - 1; i++)
- {
- ____________________;
- }
- b[j] = n - 1 - t;
- c[j] = n - 1;
- max = b[0];
- for (i = 1; i <= j; i++)
- {
- if (max < b[i])
- {
- max = b[i];
- }
- }
- for (i = 0; i <= j; i++)
- if (b[i] == max)
- {
- t = c[i];
- printf("%d %d\n", a[t], b[i]);
- }
- return 0;
- }
| A | if (a[i] != a[i + 1]) { b[j] = i + t; c[j] = i + 1; t = i; j++; } |
| B | if (a[i] != a[i + 1]) { b[j] = i + t; c[j] = i - 1; t = i; j++; } |
| C | if (a[i] != a[i + 1]) { b[j] = i + t; c[j] = i; t = i; j++; } |
| D | if (a[i] != a[i + 1]) { b[j] = i - t; c[j] = i; t = i; j++; } |
答案:
- if (a[i] != a[i + 1])
- {
- b[j] = i - t;
- c[j] = i;
- t = i;
- j++;
- }
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
示例 1:
输入: num1 = "2", num2 = "3" 输出: "6"
示例 2:
输入: num1 = "123", num2 = "456" 输出: "56088"
说明:
num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。以下程序实现了这一功能,请你填补空白处内容:
- #include <bits/stdc++.h>
- using namespace std;
- class Solution
- {
- public:
- string multiply(string num1, string num2)
- {
- string res(num1.length() + num2.length(), '0');
- for (int i = num2.length() - 1; i >= 0; i--)
- {
- int j, carry = 0;
- for (j = num1.length() - 1; j >= 0; j--)
- {
- _____________________;
- }
- res[i + j + 1] = carry + '0';
- }
- int i;
- for (i = 0; i < res.length() - 1; i++)
- {
- if (res[i] != '0')
- {
- break;
- }
- }
- return res.substr(i);
- }
- };
| A | carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j + 1] - '0'); res[i + j + 1] = carry % 10 + '0'; carry /= 10; |
| B | carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j - 1] - '0'); res[i + j - 1] = carry % 10 + '0'; carry %= 10; |
| C | carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j] - '0'); res[i + j] = carry % 10 + '0'; carry %= 10; |
| D | carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j] - '0'); res[i + j] = carry % 10 + '0'; carry /= 10; |
答案:
- carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j + 1] - '0');
- res[i + j + 1] = carry % 10 + '0';
- carry /= 10;
题目描述
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出
对于每组输入,请输出结果。
样例输入
- 4
- 1 2 3 4
- 3
样例输出
2
以下程序实现了这一功能,请你填补空白处的内容:
- #include <iostream>
- using namespace std;
- int main()
- {
- int n = 0;
- cin >> n;
- int *ptr = new (nothrow) int[n];
- for (auto i = 0; i < n; i++)
- {
- cin >> ptr[i];
- }
- int x = 0;
- cin >> x;
- auto j = 0;
- auto status = 0;
- for (; j < n; ++j)
- {
- ______________;
- }
- if (status == 0)
- {
- j = -1;
- }
- cout << j << endl;
- delete[] ptr;
- cin.get();
- cin.get();
- return 0;
- }
| A | if (ptr[j] <= x) { status = 1; continue; } |
| B | if (ptr[j] == x) { status = 1; continue; } |
| C | if (ptr[j] == x) { status = 1; break; } |
| D | if (ptr[j] >= x) { status = 1; continue; } |
答案:
- if (ptr[j] == x)
- {
- status = 1;
- break;
- }