CPU、存储器、I/O 设备是通过( B)连接起来的。

[ ] A. 接口

[ ] B. 总线

[ ] C. 控制线

[ ] D. 系统文件

电脑接口主要的作用是实现电脑和外部设备进行连接,进行数据传输,音频输出,,视频显示,网络连接的功能。

总线是计算机中用于连接和传输数据的公共通信干线。

控制线是指在电路中用于传输控制信号的导线或电缆。

系统文件基本文件和数据。

断电后会丢失数据的存储器是( A)。

[ ] A. RAM

[ ] B. ROM

[ ] C. 硬盘

[ ] D. 光盘

RAM是随机存储内存,这种储存器在断电时将丢失其存储内容,故主要用于,存储短时间使用的程序。

ROM只读存储器,以非破坏性读出方式工作,只能读出无法写入信息,信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。

硬盘是计算机最主要的存储数据信息的设备之一。

光盘以光的信息作为存储物的载体,用来存储数据的一种物品。

链表不具有的特点是(B )。

[ ] A. 不必事先估计存储空间

[ ] B. 可随机访问任一元素

[ ] C. 插入删除不需要移动元素

[ ] D. 所需空间与线性表长度成正比

下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( D)。

[ ] A. 296

[ ] B. 133

[ ] C. 256

[ ] D. 199

下列几个32位IP地址中,书写错误的是(C )。

[ ] A. 162.105.135.27

[ ] B. 192.168.0.1

[ ] C. 256.256.129.1

[ ] D. 10.0.0.1

32位IP地址最多是255.255.255.255。

要求以下程序的功能是计算:s=1+1/2+1/3+⋯+1/10。

#include <iostream>  
using namespace std;  
int main(){ 
    int n;     
    float s;     
    s = 1.0; 
    for(n = 10; n > 1; n--)       
        s = s + 1 / n;     
    cout << s << endl;     
    return 0;   
}

程序运行后输出结果错误,导致错误结果的程序行是(C )。

[ ] A. s = 1.0;

[ ] B. for(n = 10; n > 1; n--)

[ ] C. s = s + 1 / n;

[ ] D. cout << s << endl;

解析:因为n是int类型的变量,1/n总会变成0。

设变量x为 float 型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是(C )。

[ ] A. x = (x * 100) + 0.5 / 100.0;

[ ] B. x = (x * 100 + 0.5) / 100.0;

[ ] C. x = (int)(x * 100 + 0.5)/100.0;

[ ] D. x = (x / 100 + 0.5) * 100.0;

(变量名)(要变化的量)

有向图中每个顶点的度等于该顶点的(C )。

[ ] A. 入度

[ ] B. 出度

[ ] C. 入度和出度之和

[ ] D. 入度和出度之差

阅读程序写结果:

#include <iostream>
using namespace std;
const int SIZE = 100;
int main()
{
	int	p[SIZE];
	int	n, tot, i, cn;
	tot = 0;
	cin >> n;
	for ( i = 1; i <= n; i++ )
		p[i] = 1;
	for ( i = 2; i <= n; i++ )
	{
		if ( p[i] == 1 )
			tot++;
		cn = i * 2;
		while ( cn <= n )
		{
			p[cn] = 0;
			cn += i;
		}
	}
	cout << tot << endl;
	return(0);
}

输入:30 输出:(10)

(数字删除)下面程序的功能是将字符串中的数字字符删除后输出。请填空。(每空 3 分,共 12 分)

#include <iostream>
using namespace std;
int delnum( char *s )
{
	int i, j;
	j = 0;
	for ( i = 0; s[i] != '\0'; i++ )
		if ( s[i] < '0'   ①  s[i] > '9' )//判断它不是数字。
		{
			s[j] = s[i];
			②;
		}
	return(③);//返回j
}


const int SIZE = 30;
int main()
{
	char	s[SIZE];
	int len, i;
	cin.getline( s, sizeof(s) );
	len = delnum( s );
	for ( i = 0; i < len; i++ )
		cout << ④;//输出非数字的字符
	cout << endl;
	return(0);
}

1.||

2.j++

3.j;

4.s[i];

(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。

输入第一行包含两个整数m和n,即矩阵的行数和列数。之后m行,每行n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。

#include <iostream>
using namespace std;
const int SIZE = 100;
int matrix[SIZE + 1][SIZE + 1];
int rowsum[SIZE + 1][SIZE + 1]; /* rowsum[i][j]记录第i行前j个数的和 */
int m, n, i, j, first, last, area, ans;
int main()
{
	cin >> m >> n;
	for ( i = 1; i <= m; i++ )
		for ( j = 1; j <= n; j++ )
			cin >> matrix[i][j];
	ans = matrix①;//定义初始值。
	for ( i = 1; i <= m; i++ )
		②;//清零。
		for ( i = 1; i <= m; i++ )
			for ( j = 1; j <= n; j++ )
				rowsum[i][j] = ③;//预处理第i行前j个数的和。
	for ( first = 1; first <= n; first++ )
		for ( last = first; last <= n; last++ )
		{
			④;//每一次循环都要归零。
			for ( i = 1; i <= m; i++ )
			{
				area += ⑤;//累加这一行的和。
				if ( area > ans )
					ans = area;
				if ( area < 0 )
					area = 0;
			}
		}
	cout << ans << endl;
	return(0);
}

1.[1][1]*2

2.rowsum[i][0]=0*2

3.rowsum[i][j-1]+matrix[i][j]*2

4.area=0*2

5.rowsum[i][last]-rowsum[i][first-1]*2