如果 256种颜色用二进制编码来表示,至少需要( C)位。
A. 6
B. 7
C. 8
D. 9
解析:8位数ASCII最多能表示0-255,总共是256个不同的数字。
以下不是 CPU 生产厂商的是(C )。
A. Intel
B. AMD
C. Microsoft
D. IBM
Intel是一家全球知名的半导体制造商。
AMD是一家专门为计算机,通信和消费电子行业设计和制造各种创新微处理器。
Microsoft是一家全球知名的科技公司,主要业务包括开发,制造,授权和提供广泛的电脑软件服务,以及开发,制造,授权和支持各种硬件产品。
IBM是一家跨国公司,主要从事多项研究,包括计算机输入,输出技术,生产性研究数学,物理等
ARM虽然不是直接生产cpu的厂商,但是,它设计用于嵌入式系统和移动设备的低功耗,高效能的处理器架构。
cpu的功能是,解释计算机指令以及处理计算机软件中的数据,计算机中的所有操作都由cpu负责读取指令,对指令翻译编码并执行指令。
CPU、内部存储器和输入,输出设备是电子计算机的三大核心部件。
与二进制小数 0.1相等的八进制数是(B)。
A. 0.8
B. 0.4
C. 0.2
D. 0.1
以下关于字符串的判定语句中正确的是(A)。
A. 字符串是一种特殊的线性表
B. 串的长度必须大于零
C. 字符串不可以用数组来表示
D. 空格字符组成的串就是空串
有7个一模一样的苹果,放到3个一样的盘子中,一共有(B)种放法。
A. 7
B. 8
C. 21
D. 37
从一个4×4的棋盘(不可旋转)中选取不在同一行也不在同一列上的两个方格,共有__72__种方法。
阅读程序写结果:
#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count = 0;
int tmp;
cin >> tmp;
if (tmp == 0)//判断tmp不等于0
return 0;
max = min = sum = tmp;
count++;//求有多少个数字。
while (tmp != 0)
{
cin >> tmp;
if (tmp != 0)//在tmp不等于0的时候才会执行。
{
sum += tmp;//求所有数字的和。
count++;
if (tmp > max)
max = tmp;//更新最大值。
if (tmp < min)
min = tmp;//更新最小值。
}
}
cout << max << "," << min << "," << sum / count << endl;//求最大值,最小值,中间值。
return 0;
}
输入: 1 2 3 4 5 6 0 7
输出:6,1,3
阅读程序写结果:
#include <iostream>
using namespace std;
int main(){
int a[6] = {1, 2, 3, 4, 5, 6};
int pi = 0;
int pj = 5;
int t, i;
while (pi < pj)
{
t = a[pi];//把a数组倒过来。
a[pi] = a[pj];
a[pj] = t;
pi++;//更新值。
pj--;//更新值。
}
for (i = 0; i < 6; i++)
cout << a[i] << ",";
cout << endl;
return 0;
}
输出:6,5,4,3,2,1,
完善程序:(读入整数)请完善下面的程序,使得程序能够读入两个 int 范围内的整数,并将这两个整数分别输出。
输入的整数之间和前后只会出现空格或者回车。输入数据保证合法。
#include <iostream>
using namespace std;
int readint(){
int num = 0; // 存储读取到的整数
int negative = 0; // 负数标识
char c; // 存储当前读取到的字符
c = cin.get();
while ((c < '0' || c > '9') && c != '-')//判断c
是不是数字。
c = ①;
if (c == '-')//判断c是不是减号。
negative = 1;
else
②;//否则就是字符型数字,需要减'0'才能变成整数型数字。
c = cin.get();
while (③){//如果c是数字
④;//前几位数字乘10,留出个位,让新加入的数字在最后一位。
c = cin.get();
}
if (negative == 1)//如果他是负数,那么输出负的num
⑤;
return num;
}
int main()
{
int a, b;
a = readint();
b = readint();
cout << a << endl
<< b << endl;
return 0;
}
1.cin.get()
2.num=c-'0'
3.c>='0'&&c<='9'
4.num=num*10+c-'0'
5.num=-num
完善程序:
(郊游活动)有n名同学参加学校组织的郊游活动,已知学校给这 n名同学的郊游总经费为A元,与此同时第i位同学自己携带了Mi元。为了方便郊游,活动地点提供B(≥n)辆自行车供人租用,租用第 j辆自行车的价格为Cj元,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。
本题采用二分法。对于区间[l,r],我们取中间点 mid并判断租用到自行车的人数能否达到 mid。判断的过程是利用贪心算法实现的。
#include <iostream>
using namespace std;
#define MAXN 1000000
int n, B, A, M[MAXN], C[MAXN], l, r, ans, mid;
bool check(int nn) {
int count = 0, i, j;
i = ①;
j = 1;
while (i <= n) {
if(②)//如果自己携带的钱卖不了一辆自行车。
count += C[j] - M[i];
i++;
j++;
}
return ③;//判断需要的钱是否超过公款。
}
void sort(int a[], int l, int r) {
int i = l, j = r, x = a[(l + r) / 2], y;
while (i <= j) {
while (a[i] < x) i++;
while (a[j] > x) j--;
if (i <= j) {
y = a[i]; a[i] = a[j]; a[j] = y;
i++; j--;
}
}
if (i < r) sort(a, i, r);
if (l < j) sort(a, l, j);
}
int main() {
int i;
cin >> n >> B >> A;
for (i = 1; i <= n; i++)
cin >> M[i];
for (i = 1; i <= B; i++)
cin >> C[i];
sort(M, 1, n);
sort(C, 1, B);
l = 0;
r = n;
while (l <= r) {
mid = (l + r) / 2;//求中间值。
if(④){//把中间值放到check里面去判断,mid个车够不够公款。
ans = mid;//更新最大能卖的车辆。
l = mid + 1;//向外拓展,判断能不能买最多的车。
}else
r = ⑤;//缩小边界,寻找在公款内,能卖多少车。
}
cout << ans << endl;
return 0;
}
1.n-nn+1
2.M[i]<C[j]
3.count<=A
4.check(mid)
5.mid-1