根据信息素养大赛C++考点分析:
以上文件显示,考点是电子学会一二级要求知识点:
具体考试知识点分析以及样题:
一、一级知识点(3-5 年级,普及级) 1. 数据类型与变量定义
核心概念:
考察重点:判断变量定义是否合法、不同数据类型的取值范围。
易错点:变量名以数字开头、字符型用双引号(应为单引号)、布尔类型赋值为1/0(规范写法是true/false)。
2. 输入输出
核心概念:
考察重点:基本输入输出语句书写、多变量输入输出、endl换行使用。
易错点:输入用<<、输出用>>(方向写反)、忘记包含头文件。
3. 赋值运算
核心概念:
考察重点:复合赋值运算的计算顺序、连续赋值(如a = b = c = 10)。
易错点:混淆=(赋值)和==(相等判断)。
样题:执行以下代码后,变量a的值为( )
int a = 5; a += 3; a *= 2;
A. 16 B. 13 C. 11 D. 8
答案:A
4. 算术表达式
核心概念:
考察重点:整数除法与取余的结果计算、混合运算的优先级。
易错点:误以为10 / 3结果是3.33、取余运算用于负数。
样题:执行cout << 10 / 3 << " " << 10 % 3;,输出结果为( )
A. 3 1 B. 3.33 1 C. 3 0 D. 3.33 0
答案:A
5. 逻辑表达式
核心概念:
考察重点:逻辑表达式的结果判断、短路特性的理解。
易错点:混淆&&和||的逻辑、连续判断(如1 < a < 5应写为a > 1 && a < 5)。
样题:判断(5 > 3) && (2 < 4)的结果为( )
A. true B. false C. 1 D. 0
答案:A
二、二级知识点(在一级基础上拓展) 1. 条件语句
核心概念:
考察重点:多分支条件的逻辑书写、switch与if-else的适用场景。
样题:输入一个成绩(0-100),输出等级:≥90 为 A,≥60 为 B,<60 为 C。
易错点:if后漏写大括号导致逻辑错误、switch中忘记break导致穿透。
2. 循环语句
核心概念:
考察重点:循环次数计算、嵌套循环、break与continue的区别。
易错点:循环变量初始化错误导致死循环、嵌套循环的逻辑混乱。
样题:计算 1 到 100 的累加和,补全代码:
答案:i <= 100,最终输出5050。
3. 数组
核心概念:
考察重点:数组下标越界判断、数组遍历、初始化方式。
易错点:下标越界(访问arr[5]导致未定义行为)、混淆数组长度与最大下标。
样题:定义数组int arr[5] = {1,2,3,4,5};,访问最后一个元素的正确写法是( )A.arr[5]B.arr[4]C.arr[0]D.arr[6]
答案:B
4. 字符串
核心概念:
考察重点:字符串拼接、字符访问、长度计算。
易错点:忘记包含头文件、混淆string与char数组的操作。
样题:执行以下代码,输出结果为( )
A. 星火 B. 征途 C. 星火征途 D. 编译报错
5. 函数
核心概念:
考察重点:函数定义与调用、返回值使用、参数传递。
易错点:函数声明与定义不一致、返回值类型不匹配、忘记return语句。
样题:定义函数实现 “两数相乘后减第一个数”,补全代码:
调用calc(5,3),结果为( )答案:x * y - x,调用结果为5*3-5=10。
6. 简单排序算法
核心概念:
考察重点:排序过程模拟、算法稳定性判断。
易错点:冒泡排序的边界条件、选择排序的交换时机错误。
样题:对数组{3,1,4,2}进行升序排序,冒泡排序第一轮后数组变为( )A.{1,3,2,4}B.{1,2,3,4}C.{3,1,2,4}D.{1,3,4,2}
答案:A
7. 二分查找算法
核心概念:
考察重点:二分查找的适用条件、中间下标计算、边界更新。
易错点:在无序数组中使用二分查找、边界条件错误导致死循环或漏查元素。
样题:在有序数组{1,3,5,7,9}中查找5,二分查找第一次比较的数组下标是( )A. 0 B. 2 C. 3 D. 4
答案:B
级别
基础依赖
核心能力
一级
掌握 C++ 基础语法,能编写简单顺序执行程序
二级
一级全部知识点
掌握分支、循环、数组等结构化编程,能实现简单算法
青少年软件编程等级考试(C/C++)一 / 二级模拟试卷
考试时间:60 分钟 满分:100 分
一、单项选择题(每题 4 分,共 60 分)
1.下列 C++ 变量定义中,符合命名规则的是( )
A.int 1star = 10;B.float spark_road = 3.14;
C.char ch = "星";D.bool flag = 1;
2.执行代码int a = 5; a += 3; a *= 2;后,变量a的值为( )
A. 16 B. 13 C. 11 D. 8
3.执行cout << 10 / 3 << " " << 10 % 3;,输出结果为( )
A. 3 1B. 3.33 1C. 3 0D. 3.33 0
4.逻辑表达式(5 > 3) && (2 < 4)的结果为( )
A. trueB. falseC. 1D. 0
5.下列关于 C++ 输入输出的说法,正确的是( )
A. 输入语句为cin << n;B. 输出语句为cout >> n;
C. 必须包含头文件才能使用cin/cout
D.endl的作用是清空输出缓冲区,不会换行
6.下列代码中,能正确输出 1-10 中所有偶数的是( )
A.for(int i=1;i<=10;i++){if(i%2==1) cout<
B.for(int i=2;i<=10;i+=2){cout<
C.inti=1;while(i<=10){cout<
D.int i=0;while(i<=10){i+=2;cout<
7.定义数组int road[5] = {2,4,6,8,10};,访问最后一个元素的正确写法是( )
A. road[5]B. road[4]C. road[0]D. road[6]
8.执行以下代码,输出结果为( )
#include;intmain(){string s1="星火",s2="征途";cout<
A. 星火B. 征途C. 星火征途D. 编译报错
9.下列函数定义中,语法正确的是( )
A.intmarch(intx,inty){returnx*y-x;}
B.intmarch(x,y){returnx*y-x;}
C.voidmarch(intx,inty){returnx*y-x;}
D.intmarch(intx,inty){x*y-x;}
10.对数组{3,1,4,2}进行冒泡排序,第一轮排序后数组变为( )
A.{1,3,2,4}B.{1,2,3,4}C.{3,1,2,4}D.{1,3,4,2}
11.在有序数组{1,3,5,7,9}中使用二分查找5,第一次比较的数组下标是( )
A. 0B. 2C. 3D. 4
12.下列关于break和continue的说法,正确的是( )
A.break会跳过本次循环剩余代码,进入下一次循环
B.continue会跳出整个循环,不再执行后续循环
C.break可用于跳出循环或switch语句
D.continue可用于跳出switch语句
13.执行以下代码,循环体执行的次数是( )
for(inti=3;i<8;i++){cout<<"星火征途";}
A. 3 次B. 4 次C. 5 次D. 6 次
14.下列关于 C++ 数组的说法,错误的是( )
A. 数组下标从 0 开始B. 数组定义时必须指定长度
C. 同一数组内元素类型必须相同D. 可直接用=给数组整体赋值
15.输入成绩 85,执行以下代码,输出结果为( )
intscore;cin>>score;if(score>=90)cout<<"A";elseif(score>=60)cout<<"B";elsecout<<"C";
A. A B. B C. C D. 无输出
二、判断题(每题 2 分,共 20 分,对打√,错打 ×)
1.C++ 中变量名可以包含数字、字母和下划线,且必须以字母或下划线开头。( )
2.int a = 5;和int a(5);是等价的变量初始化方式。( )
3.算术表达式中,乘法*的优先级高于加法+。( )
4.逻辑表达式a || b中,若a为真,则b不会被计算。( )
5.if(0)语句中的代码块永远不会被执行。( )
6.for循环的初始化、条件、更新三个部分都可以省略。( )
7.数组int arr[5]的最大下标是 5。( )
8.C++ 中string类型可以直接用+进行拼接。( )
9.函数的形参和实参必须类型、数量完全一致。( )
10.二分查找算法可以在无序数组中使用。( )
三、程序填空题(每空 2 分,共 20 分)
题目 1:星火计数 —— 计算 1-100 累加和
intsum=0;for(inti=1;______;i++){sum+=i;}cout<
填空:________ 最终输出:________
题目 2:征途判断 —— 判断奇偶数
输入一个整数,判断是否为偶数,是则输出 “征途偶数”,否则输出 “征途奇数”。
intn;cin>>n;if(______){cout<<"征途偶数";}else{cout<<"征途奇数";}
填空:________ 输入 7 时输出:________
题目 3:星火数组 —— 遍历数组求和
int star[5]={1,2,3,4,5};int sum =0;for(int i =0; ______; i++){ sum += ______;}cout << sum;
填空 1:________ 填空 2:________ 最终输出:________
题目 4:征途函数 —— 计算两数乘积减第一个数
intcalc(intx,inty){return______;}
填空:________ 调用calc(5,3)结果:________
参考答案一、单项选择题
B 2. A 3. A 4. A 5. C 6. B 7. B 8. C 9. A 10. A 11. B 12. C 13. C 14. D 15. B
二、判断题
√ 2. √ 3. √ 4. √ 5. √ 6. √ 7. × 8. √ 9. √ 10. ×
三、程序填空题
i <= 100;5050
n % 2 == 0;征途奇数
i < 5;star[i];15
x * y - x;10
热门跟贴