c++真题解析

一级标准

1、理解变量的概念;

1、变量的含义:变量是程序中用于存储和表示数据的一种方式。通过给变量赋值,我们可以向计算机提供各种不同类型的数据,在程序执行过程中使用这些数据进行计算和处理。每个变量都有一个名称和一个对应的值,可以通过名称来引用和操作变量的内容。

2、掌握变量的定义、类型和转换方法;

变量类型:变量可以是不同的类型,如整数(int)、浮点数(float)、字符串(string)等。不同类型的变量在内存中占用的空间大小和存储方式也不同,因此在使用变量之前需要先确定其类型。

变量命名规则:变量名称由字母、数字和下划线组成,但不能以数字开头。变量名称应具有一定的描述性,以便于程序的可读性和维护性。

练习1

大写字母的判断

输入一个字符,判断是否是英文大写字母,即是否是A-Z中的一个。

时间限制:1000

内存限制:65536

输入

一个字符。

输出

如果是英文大写字母,则输出YES,否者输出NO。

样例输入

样例输出

 

有的同学可能会用到if 和 与来判断,但是这个题最好的方法是借助ascll码表,因为大写字母的范围刚好是连续的范围,所以我们只需要把他转换成int类型,来看看他的ascll码int值是否正确。,

3、掌握变量的赋值方法;

变量的赋值:通过赋值语句(如x = 5),我们可以将一个具体的值赋给变量。这样,变量就可以代表这个值,并在程序中使用。

变量的作用域:变量的作用域指的是变量可以被访问的范围。在不同的代码块中定义的变量具有不同的作用域,有些变量只能在特定的代码块中使用。

4、掌握编程中基本的输入输出方法;

 

练习

 

 

练习1:

输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。

时间限制:1000

内存限制:65536

输入

一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。

输出

一行两个数,分别为保留2位小数输出的F,以及整数N,以一个空格分开。

 

解析:

1、printf("%.2f", F) 来使得他的精度保留小数点后两位。那其他的还有什么?

printf(格式化输出函数)_百度百科 (baidu.com)

2、输出的顺序,输入要求先输入了整数,后输入了小数,而输出刚好相反

3、如何输出空格

 

 

5、掌握编程基础的算术表达式;

练习1

(a/b)*c**的值**

给定整数a、b、c,计算(a / b)*c的值,这里的除法为实数除法。

时间限制:1000

内存限制:65536

输入

一行,三个整数a、b、c,整数间以空格分隔。(1 ≤ a,b,c ≤ 1000)

输出

将计算结果保留6位小数输出。

样例输出

解析:

实数的运算贯穿于初中数学的始终,是学好初中代数的基础。熟练掌握实数的运算法则、运算律以及运算顺序并能正确、灵活地运用它们解决计算问题是学好数学的关键。 1、加法法则:互为相反数的两个数相加,和为0;同号相加,取相同的符号,然后把它们的绝对值相加;异号相加,取绝对值较大的符号,然后用较大的绝对值减去较小的绝对值;任何数与0相加,和仍然是该数。 2、减法法则:减去一个数等于加上这个数的相反数。 3、乘法法则:同号相乘得正(如果有偶数个负数为因数,则积为正数),异号相乘得负(如果有奇数个负数为因数,则积为负数);任何数与0相乘,积为0. 4、除法法则:除以一个不为0的数,等于乘以这个数的倒数。 5、混合运算:先算幂,再乘除,后加减;如果有括号,要先算括号里面的。混合运算遵循交换律、结合律

1、定义正确的类型,为什么不能用int? 想想除法的问题

2、虽然考试不见得会检查while来让0不能做除数,但是我们为了程序严谨,尽量保证输入输出的正确。

 

 

 

6、能够完成一个顺序结构的程序;
7、理解逻辑运算的基本概念;
8、掌握编程基础的逻辑表达式;
9、掌握选择语句的功能和写法;
10、能够完成一段选择结构的程序;
11、掌握循环语句的功能和写法;
12、能够完成一段循环结构的程序 。

练习1

如果一个数能够被7整除或者十进制表示中含有数字7,那么我们称这个数为幻数,比如17,21,73是幻数,而6,59不是。

对于给定的N,求出1~N中所有幻数的和。

时间限制:1000

内存限制:65536

输入

一个整数N(1 < N < 10000)。

输出

一个整数,表示1~N中所有幻数的和。

样例输入

样例输出

练习2:比N小的最大素数

解析:

 

练习3:开灯翻转

#include using namespace std;

int main() { int N, M; cout << "请输入假设有多少展灯 (N): "; cin >> N; cout << "请输入多少个人 (M): "; cin >> M;

// //遍历出所有灯的状态 // for (int i = 0; i < N; i++) { // cout << "第" << (i + 1) << "个灯是" << (Deng[i] == 0 ? "关" : "开") << "的" << endl; //// if (Deng[i] == 0) { //// cout << "第" << (i + 1) << "个灯是灭的" << endl; //// } // }

}

 

13、能够使用上述方法编写指定功能的正确完整的程序。

 

一级练习

1、输入输出

练习1:输出HelloWorld;

 

练习2:输入三个整数,a,b,c,把三个数中的第二个数输出

样例输入 12,4,5 输出 4

练习3:输入三个整数,a,b,c,把三个数反着输出

样例输入 12 4 5 输出 5 4 12

练习4:输入三个数,一个数一行,右对齐,最长整数位数是八位。

样例输入 12345678,-1,20 输出

练习6:同样是输入三个数,一个数一行,右对齐,但是这三个数是要求用户自己输入的,不知道长度,最长整数位数是八位。

//1、"" 双引号里面的换行,用\n //2、printf里面的%d表示占个位置,我随后就到 //3、想要对齐,不够长的位置补足空格可以用%+数字+d printf("%5d\n%5d\n%5d", c, b, a);

样例输入 12345678,-1,20 输出

练习5:输出字符三角形

样例输出

 

2、加减乘除练习

练习1:给定两个整数A和B,输出A+B的值

样例输入:1 2

样例输出:3

练习2:计算(a+b)*c的答案 ;

样例输入:2,3,5

输出:25

练习3:计算(a+b)/c的答案 ;

样例输入:1,1,3

输出:0

练习4:带余数的除法

输入两个数,要求给a除以b的商,和余数

样例输入:10 3

输出:3 1

 

二级标准

1、理解数制的基本概念;理解数制的基本概念;
2、能够进行二进制、十进制以及十六进制之间的转换;能够进行二进制、十进制以及十六进制之间的转换;
3、掌握一维数组、二维数组及多维数组的用法;掌握一维数组、二维数组及多维数组的用法;
4、理解编码的概念;理解编码的概念;
5、掌握字符串的用法;掌握字符串的用法;
6、掌握在数组中进行顺序查找的方法;
7、掌握对数组中数据进行简单排序简单排序的方法;
8、对于排序了的数组,能否利用对于排序了的数组,能否利用二分查找二分查找的方法找到满的方法找到满足条件的数据
9、理解函数及过程抽象的概念
10、理解函数的参数和返回值的概念;
11、能够自己创建一个带参数的函数;
12、能够自己创建一个有返回值的函数。
13、能够使用上述方法编写指定功能的正确完整的程序。

 

三级标准

1、掌握算法以及算法性能、算法效率的概念;
2、掌握 基本算法中枚举 的概念;
3、掌握 基本算法中递归 的概念;
4、掌握自调用函数的应用,实现基本算法中的递归方法;
5、掌握 基本算法中由递归变递推 的方法 。
6、能够使用上述方法编写指定功能的正确完整的程序。

 

四级标准

1、掌握基本算法中的动态规划方法
2、能够使用上述方法编写指定功能的正确完整的程序。

 

五级标准

1、掌握基本算法中的分治技术;
2、掌握基本算法中的搜索剪枝技术;
3、掌握基本算法中的贪心算法 。
4、能够使用上述方法编写指定功能的正确完整的程序。

 

 

六级标准

1、掌握 数据结构及结构 的概念;
2、掌握数据结构中的指针和链表
3、掌握数据结构中的栈
4、掌握数据结构中的队列
5、掌握数据结构中的哈希 。

能够使用上述方法编写指定功能的正确完整的程序。

 

七级标准

1、掌握数据结构中的二叉树
2、掌握数据结构中的堆
3、掌握数据结构中的图
4、掌握 空间效率分析 的基本方法 。

能够使用上述方法编写指定功能的正确完整的程序。

 

八级标准

1、掌握各种高级排序算法;
2、掌握对算法的时间效率进行分析的方法
3、掌握基本的数论知识;
4、掌握常用的图论算法;

能够使用上述方法编写指定功能的正确完整的程序。

 

九级标准

1、掌握用分治技术做算法设计的方法;
2、能够使用各种优化方法提高动态规划算法的优化;
3、能够设计比较复杂的贪心算法并进行算法正确性证明;
4、能够设计比较复杂的搜索算法,并对算法进行优化;
5、能够使用网络流算法解决实际问题;
6、能够对描述复杂的问题进行抽象和简化,并通过使用各种算法予以解决。

十级