信息学竞赛路上,选择题是绕不开的基本功。本文从CSP‑S提高组模拟题中精选16道高频单选题,涵盖C/C++程序基础与计算机基础知识两大板块,每道题附详细解析,适合考前自查与日常巩固。
一、C/C++程序基础(11题)
1. 字符与整数的本质
题目:若有定义:char c = 'A'; int i = 65;,则下列叙述正确的是( )A. c和i中存储的都是字符'A'B. c中实际存储的是整数65,i中存储的是字符'A'C. c和i中存储的都是整数65D. c中存储的是字符'A', i中存储的是整数65,但内存中均以二进制补码形式表示
答案:C解析:C语言中char类型存储的是ASCII码整数值,'A'的ASCII码为65。因此c和i在内存中存储的都是整数65。注意:字符常量本质是整型,并非真正存储字符图形。
2. 浮点数四舍五入保留三位小数
题目:设double型变量num已赋值,若要实现保留小数点后3位且四舍五入,正确语句是( )A. num = (int)(num * 1000 + 0.5) / 1000.0;B. num = (num * 1000 + 0.5) / 1000;C. num = (int)num * 1000 + 0.5 / 1000.0;D. num = (num + 0.5) * 1000 / 1000.0;
答案:A解析:经典写法——放大1000倍,加0.5后强制取整,再除以1000.0还原。B选项未取整;C选项只对原整数部分操作;D选项逻辑错误。
3. 表达式求值(运算符优先级与类型转换)
题目:已知定义:int b = 9; double m = 3.6, n = 5.4; 表达式 (int)m + b % 4 * (int)(m + n) / 2.0 的值为( )A. 7.500000 B. 8.000000 C. 9.000000 D. 10.000000
答案:A解析:
(int)m = 3b % 4 = 1(int)(m + n) = (int)(9.0) = 9乘除从左到右:
1 * 9 / 2.0 = 4.5最终:
3 + 4.5 = 7.5
4. 解释器的工作特点
题目:解释器的主要工作特点是( )A. 逐行翻译并执行源程序,不生成目标文件B. 一次性编译全部代码生成可执行文件C. 将低级语言转换为高级语言D. 优化程序代码结构
答案:A解析:解释器边翻译边执行,不生成独立的可执行文件;B描述的是编译器;C、D概念错误。
5. 指针的基本概念
题目:以下关于C++指针的叙述中,错误的是( )A. 指针变量可以指向同类型的变量B. 可以通过delete释放new分配的内存C. 指针的值是一个内存地址D. 两个任意类型的指针可以直接相互赋值而不需要强制类型转换
答案:D解析:不同类型指针不能直接赋值,需强制类型转换。A、B、C均正确。
6. Dijkstra算法时间复杂度(邻接矩阵)
题目:求单源最短路径的Dijkstra算法,在采用邻接矩阵存储图且未使用优先队列优化的情况下,其时间复杂度为( )
A.O(n) B.O(n^2) C.O(m\log n) D.O(n^3)
答案:B
解析:邻接矩阵、无堆优化 Dijkstra:两层循环,O(n^2)。用优先队列 + 邻接表才是 O(m\log n).
7. Linux文件复制命令
题目:在Linux系统中,用于将文件从一处复制到另一处的命令是( )A. mv B. cp C. rm D. touch
答案:B解析:cp复制;mv移动/重命名;rm删除;touch创建空文件或更新时间戳。
8. 补码表示:-1的十六进制
题目:在32位有符号整数补码表示中,-1的十六进制表示是( )A. 0x00000001 B. 0x7FFFFFFF C. 0xFFFFFFFF D. 0x80000001
答案:C解析:-1的补码为全1,即32位全1,对应0xFFFFFFFF。A为1,B为最大正数,D为-2147483647。
9. 内存地址范围计算
题目:内存按字节编址,一块内存地址从0x2000到0x5FFF,一共有多少字节( )A. 0x3FFF B. 0x2000 C. 0x4000 D. 0x5000
答案:C解析:字节数 = 结束地址 - 起始地址 + 1 = 0x5FFF - 0x2000 + 1 = 0x4000。
10. Cache块数量计算
题目:某计算机按字节编址,Cache块大小为64字节,主存地址按字节给出。若某变量起始地址为0x1000,大小为200字节,则它占用的Cache块数量为( )A. 2 B. 3 C. 4 D. 5
答案:B
解析:Cache 块 64B。200 字节。 200 / 64 =3.125,不足一块也要占一块,所以需要3 块。
11. 未压缩视频存储空间估算
题目:一段10分钟未压缩视频,帧率30fps,每帧为1920×1080像素,24位真彩色,其存储空间约为( )A. 50GB B. 100GB C. 150GB D. 200GB
答案:C解析:时间:10min = 600s;总帧数 = 600 X 30 =1800 帧; 每帧字节:1920 x 1080 x 24 /8 字节; 总字节:18000 x 1920 x 1080 x 3 换算 GB(1GB =1024^3 )≈140GB,约 150GB,选 C。
二、计算机基础知识(5题)
1. 进制转换与比较大小
题目:下列四个数中,最小的是( )
A.(2E)_16 B.(57)_8 C.(48)_10 D.(101101)_2
答案:D 把全部转为十进制:
2. 信息论奠基人
题目:信息论的奠基人是( )A. 图灵 B. 冯·诺依曼 C. 牛顿 D. 香农
答案:D解析:香农创立信息论;图灵提出图灵机;冯·诺依曼提出计算机体系结构;牛顿为物理学家。
3. 未压缩音频存储空间计算
题目:一段音频采样频率为44.1kHz,量化位数为16位,双声道,录制10分钟,不压缩存储需要的字节数约为( )A. 50MB B. 100MB C. 150MB D. 200MB
答案:B解析:公式:字节数 = 采样率 × 量化位数/8 × 声道数 × 秒数
44100 × (16/8) × 2 × (10×60) 字节≈101MB,选 B。
4. 香农定理解决的问题
题目:1949年,香农提出了著名的“香农定理”,它主要解决了( )问题A. 图灵机可计算性B. 最短路径存在性C. 有噪信道的最大可靠传输速率D. 布尔代数完备性
答案:C解析:香农定理给出了有噪信道中无差错传输的最大信息速率(信道容量)。
5. 哈夫曼编码的压缩类型
题目:哈夫曼编码是一种( )压缩技术A. 无损 B. 有损 C. 对称 D. 不可逆
答案:A解析:哈夫曼编码属于无损压缩,解码后可完全还原原始数据。有损压缩如JPEG、MP3。
结语
以上16 道题覆盖了字符存储、类型转换、运算优先级、内存地址、Cache、音视频存储、进制转换、信息论等高频考点,是CSP‑S初赛和复赛前选择题训练的优质素材。建议同学们不仅记住答案,更要理解每一步的推理过程,真正做到“知其然,更知其所以然”。
刷题不贪多,搞懂一类是一类。 如果你觉得有帮助,欢迎点赞、在看、转发给更多备战CSP的小伙伴!
夜雨聆风