第 1 题 单选题
A.

一款操作系统

B.

一款应用软件

C.

一种通话设备

D.

以上都不对

第 2 题 单选题
第 3 题 单选题
第 4 题 单选题
A.

可以定义指向 int 类型的指针。

B.

可以定义指向自定义结构体类型的指针。

C.

自定义结构体类型可以包含指针类型的元素。

D.

不能定义指向void类型的指针,那没有意义。

第 5 题 单选题
A.

一维数组可以用来表示数列。

B.

二维数组可以用来表示矩阵。

C.

三维数组可以用来表示空间中物体的形状。

D.

世界是三维的,所以定义四维数组没有意义。

第 6 题 单选题
A.

函数调用前必须定义。

B.

函数调用时必须提供足够的实际参数。

C.

函数定义前必须声明。

D.

函数声明只能写在函数调用前。

第 7 题 单选题
A.

两个函数的声明可以相同。

B.

两个函数的局部变量可以重名。

C.

两个函数的参数可以重名。

D.

两个函数可以重名。

第 8 题 单选题
第 9 题 单选题
A.

指针变量 p 的值与变量 n 是相同的。

B.

指针变量 p 的值与变量 n 的地址是相同的。

C.

指针变量 p 指向的值为 'n' 。

D.

指针变量 p 指向的值与变量 n 的地址是相同的。

第 10 题 单选题
第 11 题 单选题
第 12 题 单选题
第 13 题 单选题
A.

一个 try 子句可以有多个 catch 子句与之对应。

B.

如果 try 子句在执行时发生异常,就一定会进入某一个 catch 子句执行。

C.

如果 try 子句中没有可能发生异常的语句,会产生编译错误。

D.

catch 子句处理异常后,会重新执行与之对应的 try 子句。

第 14 题 单选题
第 15 题 单选题
A.

int j = 1; j < n; j

B.

int j = 0; j < n; j

C.

int j = 0; j < i - 1; j

D.

int j = 0; j < i; j

第 16 题 判断题
第 17 题 判断题
第 18 题 判断题
第 19 题 判断题
第 20 题 判断题
第 21 题 判断题
第 22 题 判断题
第 23 题 判断题
第 24 题 判断题
第 25 题 判断题
第 26 题 编程题

进制转换(2023年9月C 四级))

时间限制:1.0 s

内存限制:128.0 MB

问题描述

N进制数指的是逢N进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母 A 至 F 表示十至十五;本题中,十一进制到十五进制也是类似的)。

在本题中,我们将给出N个不同进制的数。你需要分别把它们转换成十进制数。

提示

对于任意一个L位K进制数,假设其最右边的数位为第0位,最左边的数位为第L-1位,我们只需要将其第i位的数码乘以权值Ki ,再将每位的结果相加,即可得到原K进制数对应的十进制数。下面是两个例子:

1. 八进制数 1362 对应的十进制数为1×83 3×82 6×81 2×80=754 ;

2. 十六进制数 3F0 对应的十进制数为 3×162 15×161 0×160=1008。

输入描述

输入的第一行为一个十进制表示的整数N。接下来N行,每行一个整数K,随后是一个空格,紧接着是一个K进制数,表示需要转换的数。保证所有 进制数均由数字和大写字母组成,且不以 0 开头。保证K进制数合法。

保证N≤1000;保证2≤K≤16

保证所有K进制数的位数不超过9。

输出描述

输出N行,每一个十进制数,表示对应K进制数的十进制数值。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。


样例输入 1

2

8 1362

16 3F0

样例输出 1

754

1008

样例输入 2

2

2 11011

10 123456789

样例输出 2

27

123456789

第 27 题 编程题

变长编码(2023年9月C 四级)

时间限制:1.0 s

内存限制:128.0 MB

问题描述

小明刚刚学习了三种整数编码方式:原码、反码、补码,并了解到计算机存储整数通常使用补码。但他总是觉得,生活中很少用到231-1这么大的数,生活中常用的0~100这种数也同样需要用4个字节的补码表示,太浪费了些。

热爱学习的小明通过搜索,发现了一种正整数的变长编码方式。这种编码方式的规则如下:

1. 对于给定的正整数,首先将其表达为二进制形式。例如,(0) {10}=(0) {2},(926) {10}=(1110011110) {2} 。

2. 将二进制数从低位到高位切分成每组7bit,不足 bit的在高位用0填补。例如, (0) {2}变为0000000的一组,(1110011110) {2}变为0011110和0000111的两组。

3. 由代表低位的组开始,为其加入最高位。如果这组是最后一组,则在最高位填上0,否则在最高位填上1。于是,0的变长编码为00000000一个字节,926的变长编码为10011110和00000111两个字节。

这种编码方式可以用更少的字节表达比较小的数,也可以用很多的字节表达非常大的数。例如,987654321012345678的二进制为(0001101 1011010 0110110 1001011 1110100 0100110 1001000 0010110 1001110) {2},于是它的变长编码为(十六进制表示) CE 96 C8 A6 F4 CB B6 DA 0D ,共9个字节。

你能通过编写程序,找到一个正整数的变长编码吗?

输入描述

输入第一行,包含一个正整数N。约定 0≤N≤1018


输出描述

输出一行,输出N对应的变长编码的每个字节,每个字节均以2位十六进制表示(其中,A-F使用大写字母表示),两个字节间以空格分隔。

样例输入1

0

样例输出1

00

样例输入2

926

样例输出2

9E 07

样例输入3

987654321012345678

样例输出3

CE 96 C8 A6 F4 CB B6 DA 0D

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部