如果 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