- 博客(75)
- 收藏
- 关注
原创 华为技术有限公司 C语言编程规范
为提高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可测试、高效、可移植的代码,编程规范修订工作组分析、总结了我司的各种典型编码问题,并参考了业界编程规范近年来的成果,重新对我司1999年版编程规范进行了梳理、优化、刷新,编写了本规范。本规范将分为完整版和精简版,完整版将包括更多的样例、规范的解释以及参考材料(what & why),而精简版将只包含规则部分(what)以便查阅。在本规范的最后,列出了一些业界比较优秀的编程规范,作为延伸阅读参考材料
2025-11-06 21:10:36
824
原创 理解STM32F103的中断优先级分组
对于初学者还有一个比较纠结的问题就是系统中断(比如: PendSV, SVC, SysTick)是不是一定比外部中断(比如 SPI,USART)要高,答案:不是的,它们是在同一个 NVIC 下面设置的。在抢占式优先级相同的情况下,如果有低子优先级中断正在执行,高子优先级的中断要等待已被响应的低子优先级中断执行结束后才能得到响应,即子优先级不支持中断嵌套。在抢占式优先级相同的情况下,有几个子优先级不同的中断同时到来,那么高子优先级的中断优先被响应。
2025-07-08 10:35:17
456
原创 函数指针强制转换
参数 _pCallBack 是 void * 类型(泛型指针),目的是让函数可以接受任意类型的指针(如函数指针、数据指针等)。如果直接用 void * 调用函数,编译器无法生成正确的机器码(不知道如何传参、如何返回值)。函数指针的类型必须严格匹配,包括:返回值类型 和 参数列表(参数个数和类型)void * 是“无类型指针”,仅表示一个内存地址,不包含类型信息。函数名本身就是一个指针,指向该函数在内存中的入口地址。函数调用必须知道:函数的返回类型 和 函数的参数列表。
2025-07-07 16:00:05
302
原创 中国象棋棋盘识别
当象棋爱好者在挑战中国象棋残局或者在阅读象棋杀法书籍的时候遇到问题,往往需要通过象棋软件来辅助提示,此时要将该棋局在象棋软件中摆好,软件才能进行分析,为实现自动识别棋局图片,并导出为标准化FEN象棋文件格式,以便用于软件辅助练习,节省人力。目前存在的最著名的识谱软件为天天象棋,基于以上问题,我想开发一种可以自动识别象棋棋盘摆放并生成标准化棋谱格式的程序。
2023-10-23 20:36:34
10626
2
原创 C++面向对象编程题 第22题
22. 试定义一个类 NUM,实现将一维数组中各整数元素去年去掉相同数字后再对数组从小到大排序。将一个整数去掉相同数字是指:如果一个整数中有相同的数字,则保留从左数起,第一次看到的那个数字,而将其它的数字去掉。例如:数字 12324151 中有三个 1,两个 2,则去掉相同的数字后变为 12345。具体要求如下:1. 私有数据成员- int a[5];存放需要处理的数据。2. 公有成员函数- NUM( int t[],int n) ;构造函数,用 t 初始化 a, n 为 t 的元素个数。
2022-11-22 09:58:54
574
3
原创 C++面向对象编程题 第17题
重载运算符“^”实现数组各对应元素相乘方。如: a[3]={ 2, 2, 2 } , b[3]={ 3, 3, 3 } ,则 a^b={ 8,8, 8 } 。具体要求如下:1. 私有数据成员:- int a[3];2. 公有成员函数:8- 构造函数:初始化数据成员;- 重载运算符“^” 的友元函数;- void print():输出数组成员的函数;3. 在主函数中定义对象t1 (以数组a作参数)、t2 (以数组b作参数)和t3 (无参),通过语句“t3=t1^t2;”对类进行测试。
2022-11-12 09:15:50
382
原创 给定一个数字字符串,长度不超过100,判断它是否是回文数字
题目描述给定一个数字字符串,长度不超过100,判断它是否是回文数字。例如: 121, 1221是回文数字, 123不是回文数字。输入要求输入一个数字字符串。输出要求若是回文输出 Yes, 否则输出 No输入样例123321输出样例Yes提示1被认为是回文数字
2022-11-11 10:08:18
1739
原创 C++面向对象编程题 第15题
15.把描述直角坐标系上的一个点的类作为基类,派生出描述一条直线的类和描述一个三角形的类。定义成员函数求出两点间的距离和三角形的面积。提示:先定义描述点的类 Point;类 Point 的派生类 Line 为直线类,一直线有两个端点,所以它在点类的基础上新增一组点的坐标(x2,y2);三角形类 T 在直线的基础上再新增一组点的坐标(x3,y3), 求出三角形的面积。 具体要求如下:1. 定义点类 Point- int x1,y1; //保护的数据成员(点坐标)- 公有构造函数 Point( int
2022-11-11 09:23:10
997
原创 C++面向对象编程题 第14题
14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。具体要求如下:- 从正方体、球体和圆柱体的各种运算中抽象出一个公共基类 container 为抽象类,在其中定义求表面积和体积的纯虚函数(该抽象类本身是没有表面积和体积可言的)。在抽象类中定义一个公共的数据成员 radius,此数据可作为球的半径、正方体的边长、圆柱体底面圆半径。- 由此抽象类派生出要描述的 3 个类,即 cube、 sphere 和 cylinder,在这 3 个类中都具有求表面积和体积的重定义版本
2022-11-10 10:15:18
1101
原创 写一程序判断某一年是否是闰年
题目描述写一程序判断某一年是否是闰年。输入要求输入一个整数表示年份输出要求判断该年份是否为闰年,如果不是就输出no ,是就输出yes输入样例2000输出样例yes提示判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
2022-11-09 10:47:58
2875
原创 C++面向对象编程题 第13题
13.定义一个字符串类 STR,实现字符串的拼接。通过重载运算符“+=”,实现类中数据成员(字符串)的拼接。 如有必要,可定义其他辅助函数,如赋值运算符重载函数。具体要求如下:1. 私有数据成员:- char *s; 数据成员,存放字符串2. 公有成员函数:- STR(char *p=0):构造函数,以形参初始化数据成员;- friend STR &operator+=( STR &str1,STR &str2):重载函数,实现类中字符串的拼接;- void print():输出数据成员;-
2022-11-09 09:00:47
302
原创 C++面向对象编程题 第12题
12.定义一个集合类 SET,处理整型数组。通过成员函数重载运算符“= =”,判断一个数是否属于集合; 通过友元重载运算符“= =”,判断两个集合是否相同,即集合中的所有元素相同,但顺序可不同。具体要求如下:1. 私有数据成员:- int *a; //数据成员,存放整型数组,集合为数组中的所有元素- int len; //数据成员, 数组的长度2. 公有成员函数:- SET(int *p,int n):构造函数,以形参初始化数据成员;- int operator = =(int m):重载函数
2022-11-08 08:45:30
389
原创 C++面向对象编程题 第11题
11.建立一个类 String_Integer,把一个字符串中的数字字符转换为正整数。具体要求如下:1.私有数据成员- char *s:用动态空间存放字符串。2. 公有成员函数- String_Integer(char *str):用参数 str 初始化数据成员 s。- operator int(): 转换函数,数据成员 s 转换整数并返回该数。- void show():输出数据成员 s。- ~String_Integer():释放动态空间。3. 在主函数中对定义的类进行测试。定义字符数
2022-11-07 09:19:02
314
原创 C++面向对象编程题 第10题
10.定义一个数组类 Array,实现二维数组的旋转。通过重载正号运算符“+”,顺时针旋转 90°,即使元素b[i][j]变成 b[j][ M-1-i]; 通过重载负号运算符“-”,逆时针旋转 90°,即使元素 b[i][j]变成 b[M-1-j][i]。1. 私有数据成员:- int b[M][M]; //数据成员,存放数组2. 公有成员函数:- Array(int (*p)[M]):构造函数,以形参初始化数据成员;- void operator +( ):重载函数,使数组顺时针旋转90o;-
2022-11-06 09:43:07
391
原创 C++面向对象编程题 第9题
9.设计评选优秀教师和优秀学生候选人的程序。如果学生的分数大于 90,则可评为优秀生;如果教师发表的论文数大于 3,则可评为优秀教师。具体要求如下:1. 定义基类Base:保护数据成员:- char name[8]; //存放姓名- int num; //存放分数或论文数公有成员函数:- Base( ): 构造函数,输入姓名;- void print( ):功能函数,输出数据成员;- virtual int Isgood( )=0:纯虚函数,用于判断是否满足条件;2. 由基类派生学生类S
2022-11-05 09:57:51
1099
原创 C++面向对象编程题 第8题
8.对于一个有正数和负数的数组,将其中所有小于 0 的元素放到所有大于 0 的元素的前面。使用的算法是:从左右两个方向扫描数组,从左向右找到大于等于 0 的元素,从右向左找到小于 0 的元素,将两者交换。依此类推,直到扫描完为止。试建立一个类 ARR,完成上述工作。
2022-11-04 09:33:01
176
原创 C++面向对象编程题 第7题
7.试定义 RECT 类(长方形)及其派生类 CUB(长方体),具体要求如下:1. 类 RECT 的成员如下:保护数据成员:- double x,y; 分别表示长方形的长和宽。公有成员函数:- RECT(double x1,double y1);构造函数,分别用 x1、 y1 初始化 x 和 y。- virtual double area( ); 虚函数,计算长方形的面积,计算公式:面积=长×宽。- double peri( ); 计算长方形的周长。计算公式:周长=2×长+2×宽。- vir
2022-11-03 09:35:59
680
原创 C++面向对象编程题 第6题
6.建立一个类 STR,连接两个字符串后,将结果字符串中的字符排成升序。例如,字符串 s1 的值为“pear”,字符串 s2 的值为“apple”,将 s1 与 s2 连接后得到字符串“pearapple”,存入字符数组 s3,排序后得41. 私有数据成员:char s1[80], s2[80],分别存放两个原始字符串;char s3[160],存放结果字符串。2. 公有成员函数:STR(char a[], b[]),构造函数,用字符串参数 a 和 b 分别初始化数据成员字符串 s1 和 s2;
2022-11-02 08:35:28
433
原创 C++面向对象编程题 第5题
定义一个数组类 Array,求整型一维组中值为素数的元素的平均值。具体要求如下:1. 私有成员数据:- int *p,k; // p 表示维组, k 为数组大小- float *s; //维组中素数元素的平均值2. 公有成员函数:- Array(int*ptr,int n):根据参数初始化 p 和 k,然后初始化 s 并为 s 赋初值;- int fun(int n):判断 n 是否为素数,若是返回 1,否则返回 0;- void sum ( ):求素数元素的平均值;- void show(
2022-11-01 09:33:03
549
原创 cin、cin.getline、getline
cin可以接受单个字符或一个字符串,遇到空格或回车结束cin.getline()第二个参数为5,实际上只接受了4个字符,最后一个为'\0'
2022-10-31 09:31:07
88
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅