今天考试了,我把我错的题总结一下。

1:1TB代表的字节数量是()

A. 2的10次方

B. 2的20次方

C. 2的30次方

D. 2的40次方

1TB=2的10次方GB=2的20次方MB=2的30次方KB=2的40次方Byte

2:CPU,存储器,I/O 设备通过()连接起来的

A. 接口

有很多种接口:如:USB接口用于快速数据传输和设备连接。

B. 总线 控制总线计算机内部用于传输指令、数据和控制信号的一种总线。它可以将中央处理器CPU)、存储器和输入/输出设备之间的通信协调起来

C. 控制线

  1. 连接所有主要计算机组件,协调不同组件之间的通信。
  2. 提供安全和可靠的数据传输。
  3. 实现各种计算机操作,如进程调度、存储器管理和输入/输出操作等^1^
  4. 在电子设备、自动化控制系统以及各种电路中,控制线连接和传输控制信号,使设备或系统能够按照预定的要求进行操作和控制^2^

D. 系统文件

文件系统的作用包括:1. ​组织数据​:提供层次化的目录结构,方便存取和管理文件。

  1. 数据保护​:通过权限和所有权机制,防止未授权访问。
  2. 磁盘空间管理​:分配和回收磁盘空间,确保有效利用。
  3. 提供文件的安全措施​:加密、压缩、备份等保护措施,确保数据完整性和安全性。
  4. 实现文件信息的共享​。

3:以下哪一种是属于电子邮件收发的协议( )

A. SMTP//简单邮件传输

B. UDP//用户数据报协议

C. P2P//传输协议

D. FTP//文件传输协议

IP:Internet协议

ICMP:Internet控制报文协议

ARP:地址解析协议

TCP:传输控制协议

elnet:运程登录协议

HTTP:超文本传输协议

DNS:域名系统,用于实现网络设备域名到IP地址映射的网络服用

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

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

B. 可随机访问任一元素

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

D. 所需空间与线性表长度liebiao'biao

链表的访问需要从第一位开始,链表的访问的时间复杂度为 O(n).

5:下列无符号十进制整数中,能用8位二进制数表示的数中的最大值是()

A. 296

B. 133

C. 256

D. 199

8位二进制数最大值为(11111111)-1=255

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

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;

我们假设X为1.23

A是不可能的,因为先算除法。

B:123.5/100=1.235 ×

C:(int) 123.5/100=124/100=1.24 bingo

7:设有100个数据元数,采用折半搜索法时,最大比较次数为()

A. 6

B. 7

C. 8

D. 10

2x>1002^x>100 x=7x=7

8:阅读程序然后回答问题

#include <iostream>   
using namespace std;   
int fun(int n)    
{  
    if(n == 1)     
    {   
         return 1;     
    } 
    if(n == 2)        
    {
         return 2;  
    }
return fun(n -2) - fun(n - 1);    
}   
int main()    
{  
    int n;      
    cin >> n;  
    cout << fun(n) << endl;     
return 0;    
}

输入:7 输出:——

递推:

f(7)=f(5)-f(6)

f(6)=f(4)-f(5)

f(5)=f(3)-f(4)

f(4)=2-f(3)

f(3)=1-2

回溯:

f(3)= -1

f(4)=2- -1=3

f(5)=-1-3=-4

f(6)=3- -4=7

f(7)= -4-7=-11

9:数字删除

#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(③);
}


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);
}

①:|| //因为一个数不可能 >9 <0

②:j++ //因为存完一个数了,j要加1

③:j //因为我们要的是它的长度

④:s[i] //输出非数字的一项

10:最大子矩阵和

#include <iostream>
using namespace std;
const int SIZE = 100;
int matrix[SIZE + 1][SIZE + 1];
int rowsum[SIZE + 1][SIZE + 1];
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] = ③;
	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] //ans的初值

②:rowsum=0 //rowsum归零

③:rowsum[i][j-1]+matrix[i][j] //这一位的值=上一位的值+这一位的数

④:area=0 //area的初值

⑤:rowsum[i][last]-rowsum[i][first-1] //求前缀和