C++ 信息学奥赛入门系列教材—期中模拟试卷
- 2026-11-04 11:38:01
一、选择题(每题2分,共30分)
1. 在C++中,以下哪个不是合法的标识符?( )
A. _abc
B. 123abc
C. abc_123
D. ABC
2. int类型变量占用的字节数是?( )
A. 2
B. 4
C. 8
D. 16
3. 表达式 5 / 2 + 5 % 2 的值是?( )
A. 2.5
B. 3
C. 2
D. 3.5
4. 以下哪个是正确的C++程序入口?( )
A. void start()
B. int main()
C. int Main()
D. void main()
5. 若 char c = 'A';('A'的ASCII码为65),则 cout << c + 1 << endl; 输出?( )
A. B
B. 66
C. 65
D. A1
6. 以下哪个类型可以存储最大范围的整数?( )
A. int
B. short
C. long long
D. char
7. 表达式 (3 > 2) && (5 < 1) 的值是?( )
A. true
B. false
C. 1
D. 不确定
8. switch语句中,case后不能出现以下哪种?( )
A. 常量表达式
B. 变量名
C. 整数
D. 字符
9. 以下关于常量的说法,错误的是?( )
A. const定义的常量值不能改变
C. const int a = 10; 是正确的常量定义
D. #define PI = 3.14; 是正确的写法
10. 闰年的判断条件,以下哪个是正确的?( )
A. year%4==0
B. year%400==0
C. (year%4==0 && year%100!=0) || year%400==0
D. year%4==0 || year%100!=0
11. 表达式 a > b ? a : b 的功能是?( )
A. 求a和b的和
B. 求a和b的最大值
C. 求a和b的最小值
D. 判断a是否等于b
12. 以下哪个头文件是NOI竞赛常用的"万能头文件"?( )
A. <iostream>
B. <bits/stdc++.h>
C. <stdio.h>
D. <math.h>
13. cout输出浮点数时,默认保留几位有效数字?( )
A. 4位
B. 6位
C. 8位
D. 10位
14. 以下关于if语句的说法,正确的是?( )
A. if后面必须有大括号
B. else可以单独使用
C. else总是与最近的未配对if配对
D. if条件可以不用括号
15. 若 int a = -5; cout << a % 3 << endl; 输出结果是?( )
A. 2
B. -2
C. 1
D. -1
二、判断题(每题1分,共10分,正确打√,错误打×)
1. C++程序中,main函数可以放在程序的任意位置。 ( )
2. 变量名中可以包含数字,且数字可以放在开头。 ( )
3. 两个浮点数可以直接用 == 判断是否相等。 ( )
4. char类型变量可以存储一个英文字符。 ( )
5. 在switch语句中,break语句是必须的。 ( )
6. 自动类型转换总是从低精度向高精度转换。 ( )
7. 逻辑与 && 运算具有"短路"特性。 ( )
8. 0是八进制常量的前缀。 ( )
9. const修饰的变量可以在程序运行过程中修改。 ( )
10. 赋值运算符 = 和相等判断 == 是同一个运算符。 ( )
三、读程序写结果(每题4分,共20分)
1. 以下程序的输出结果是?
#include<bits/stdc++.h>using namespace std;intmain(){int a = 10, b = 3;cout << a / b << " " << a % b << endl;cout << a / (double)b << endl;return 0;}
输出:
2. 以下程序的输出结果是?
#include<bits/stdc++.h>using namespace std;intmain(){char c = 'M';cout << c << endl;cout << (char)(c + 32) << endl;cout << (int)c << endl;return 0;}
输出:
3. 以下程序的输出结果是?
#include<bits/stdc++.h>using namespace std;intmain(){int x = 5;if (x > 3)if (x > 4)cout << "A" << endl;elsecout << "B" << endl;elsecout << "C" << endl;return 0;}
输出:
4. 以下程序的输出结果是?
#include<bits/stdc++.h>using namespace std;intmain(){int score = 85;if (score >= 90) cout << "A";else if (score >= 80) cout << "B";else if (score >= 70) cout << "C";else cout << "D";cout << endl;return 0;}
输出:
5. 以下程序的输出结果是?
#include<bits/stdc++.h>using namespace std;intmain(){int a = 3, b = 5;int maxVal = (a > b) ? a : b;cout << maxVal << endl;bool flag = (a == b);cout << flag << endl;return 0;}
输出:
四、编程题(共40分)
1. (12分)温度转换
题目描述:输入一个华氏温度F,输出对应的摄氏温度C,保留2位小数。转换公式:C = 5 × (F - 32) / 9输入格式:一个实数F输出格式:摄氏温度C,保留2位小数样例输入:100样例输出:37.78
2. (13分)判断三角形类型
题目描述:输入三个正整数a, b, c,表示三角形的三条边长。判断:① 如果三边不能构成三角形(任意两边之和不大于第三边),输出"Not a Triangle"② 如果三边相等,输出"Equilateral"(等边三角形)③ 如果有两边相等,输出"Isosceles"(等腰三角形)④ 否则输出"Scalene"(不等边三角形)输入格式:三个正整数a, b, c,用空格隔开输出格式:按上述规则输出对应文字样例输入:3 4 5样例输出:Scalene
3. (15分)简单计算器
题目描述:输入两个整数和一个运算符(+、-、*、/),输出运算结果。注意:除法运算时如果除数为0,输出"Error: Divided by zero";除法如果是整数除法,结果为整数(截断小数部分)。输入格式:两个整数和一个字符运算符,格式如:3 + 5输出格式:运算结果(整数除法输出整数)样例输入:10 / 3样例输出:3