- 博客(57)
- 收藏
- 关注
原创 系统移植&驱动开发试题
1.Makefile/.config/Kconfig的区别2.make menuconfig/make _defconfig/make all的关系3.开发板如何部署Linux操作系统的,写出bootcmd和bootargs的参数设置4.uboot环境变量中mmc read,mmc write命令如何使用addr: 表示保存从mmc读出数据的内存地址blk#: 表示要读取的mmc的sector地址cnt: 表示要读取多少个sector的数据addr。
2024-10-10 20:08:09
1073
原创 10.6假期作业 字符设备驱动框架
字符设备驱动的设计原理主要包括定义一个结构体,该结构体内部定义了一些设备的打开、关闭、读、写、控制函数;device_create是 Linux 内核中的一个函数,用于在内核中创建一个新的设备对象。这个函数是设备驱动开发中非常重要的一部分,它允许你将设备和其对应的类关联起来,并为设备提供一组属性和操作。Linux中提供了两种字符定义方式:第一种方式,就是我们常见的变量定义;第二种方式,是内核提供的动态分配方式,调用该函数之 后,会返回一个struct cdev类型的指针,用于描述字符设备。
2024-10-06 18:24:25
368
原创 3.7 FreeRTOS day2
1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。2.总结DMA+空闲中断接收数据的使用方法。
2024-03-08 00:12:30
490
原创 2.26 Qt day4+5 纯净窗口移动+绘画事件+Qt实现TCP连接服务+Qt实现连接数据库
【代码】2.26 Qt day4+5 纯净窗口移动+绘画事件+Qt实现TCP连接服务+Qt实现连接数据库。
2024-02-26 19:27:37
632
原创 2.23 Qt day4 事件机制+定时器事件+键盘事件+鼠标事件
做一个闹钟,在行编辑器里输入定闹钟的时间,时间到了就语音播报文本里的内容,播报五次。
2024-02-24 17:29:17
567
原创 2.22 Qt day3 多界面跳转+qss登录界面优化+发布软件+对话框
2.如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。要求:基于属性版和基于静态成员函数版至少各用一个。
2024-02-22 21:19:23
634
原创 2.21 Qt day2 菜单栏/工具栏/状态栏/浮动窗口、UI界面、信号与槽
将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空。使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数。
2024-02-21 20:58:50
602
原创 2.20 Qt day1
三. 自由发挥登录窗口的应用场景,实现一个登录窗口页面,要求:每行代码都要有注释。二. 消化常用类的使用,以及常用成员函数对应的功能。
2024-02-20 20:43:28
578
原创 2.18 C++ day6
在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为。比喻:动物园的讲解员和动物表演。
2024-02-18 19:33:16
413
原创 2.15 字符串练习
解析:sizeof求的是字符数组的内存大小,给字符数组申请多大的内存,sizeof求得的值就是多大,所以是7,strlen求出字符串的长度,是字符串中字符的个数,遇到\0就截止,所以只会计算a0\0这点的字符串的长度,为2。使用了冒泡排序算法,通过比较相邻的字符串并交换它们来实现排序,排序后的数组:{"beijing","china" ,"tiananmen" ,"welcome" ,"you"}所以a[3]是welcome。已有定义:char a[]="xyz",b[]={'x','y','z'};
2024-02-15 12:16:22
980
原创 2.14 指针练习
a+2表示数组首地址后移2位,表示a[2]的地址,所以合法,a[5]表示的是数组元素的值,不是地址,所以不合法,a[2]+2表示数组第二个元素的值+2,得到的是一个值,不是地址,所以也不合法,表达式i+2产生的是一个整数值,不能对整数取地址,所以也不合法。所以,程序运行后的输出结果是:1,2,3,4,5,6,7,8,9,0。是一个指向包含3个元素的数组的指针,每个元素都是一个字符数组(实际上是。是一个指向包含3个元素的数组的指针,每个元素也是一个数组。的第三个元素(索引为2的元素),即值为6的那个元素。
2024-02-14 19:33:22
852
原创 2.13 数组练习
字符串中的数字字符有:'0', '1', '2', '3', '4', '3', '4'。后面的内存位置,这个内存位置的值是不确定的,可能是之前存储的数据,也可能是未初始化的内存。意味着将指向数组的指针向前移动一个数组的大小,而不是移动一个整数的大小。将 'w'(其 ASCII 值是 119)加上 2,得到 121,这是字符 'y' 的 ASCII 值。个学生的成绩,存放在一个一维数组中,要求找出其中成绩最高的学生的成绩和该生的序号。数组的索引从0开始,所以一个大小为5的数组的有效索引范围是0到4。
2024-02-13 19:06:49
1145
1
原创 2.12 分支、循环练习
在大多数情况下,你应该在循环中添加一些条件来中断循环,或者提供一个退出循环的方法。然而,从编程习惯和可读性的角度来看,通常推荐使用“常量在前,变量在后”的写法,即第二种判断方式。综上所述,虽然两种写法在功能上是等效的,但从避免错误和提高代码可读性的角度来看,推荐使用第二种判断方式。答:C++中,计算1到100的和的最优化算法是使用高斯求和公式,也被称为等差数列求和公式。赋值表达式的结果是被赋的值,因此。的值是 -1,2 不小于 -1,所以这个条件为假。的结果为-2,这是一个非零值,所以条件为真,但由于。
2024-02-12 18:34:01
890
原创 2.11 运算符
c=(a%b<1)||(a/b>1):首先a%b=10%20=10>1,所以表达式a%b<1为假,a/b=10/20=0,所以a/b>1也为假,在逻辑运算或的规律是有真则真,全假才假,所以表达式(a%b<1)||(a/b>1)为假,所以c=0,即打印出来的是10 20 0。a+=a-=a*=a:从右往左执行:a*=a=a*a=12*12=144,即此时a=144,然后a-=144=a-144=144-144=0,此时a=0,然后a+=0=0+0=0,此时a=0。
2024-02-11 16:44:50
1062
原创 2.8 数据类型与作用域练习
因此,a的值为63。里层:b=4,c=b*3=4*3=12,a+=c:a=a+c=2+12=14,所以first:14,4,12。a=a+c=14+12=26,所以second:26,4,12。类型在C语言中实际上是一个小整数类型,并且在许多情况下可以存储和整型变量相同的信息,但它们的范围和用途是不同的。若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 ___解析:外层:++a:a=1+1=2,b=2,c+=++b:c=c+b+1=6,b=2+1=3。
2024-02-08 18:53:46
961
原创 2.7 第七章 运算符重载
c,第二空:由ostream & stream,const Magic & c可知是要重载插入运算符,所以填ostream&Magic(sqrt(x*x+c.x*c.x));必须传递一个对象c,再使用c里的x,所以填const Magic。1、在下列程序的空格处填上适当的字句,使输出为:0,2,10。3、 增加操作符,以允许人民币与double型数相乘。2、 编写一个时间类,实现时间的加、减、读和输出。注意:两个money对象不允许相乘。解析:第一空:要想返回。
2024-02-07 15:34:06
419
原创 2.6 第五章 静态成员与友元
void SetValue(Animal& ta, int tw, int tn)这个函数不是友元,无法在类外访问受保护的成员变量,应在 friend void SetValue(Animal&, int);(2) 根据(1)编写一个应用程序,创建三个对象,然后显示它们的数据成员和静态数据成员,再析构每个对象,并显示它们对静态数据成员的影响。cout<<"结 果:"<<"姓名"<<setw(6)<<"成绩"<<setw(8)<<"等级"<<endl;strcpy(s.level,"中");
2024-02-06 18:31:32
901
原创 2.5 第四章 堆与拷贝构造函数
申请10个数据类型的空内存,Set_i_j(int a, int b)函数是将传过去的参数给GetMulti ()函数使用:将两个参数进行乘法运算,返回运算的结果,for(int j =0;这句用类A实例化两个对象,x1没有传参,所以调用A(int x=0)函数默认参数x=0,后将x的值赋给x1,即x1=0,x2传了一个参数3,即x=3,赋给x2,即x2=3,A *p=&x2;}着函数,后自加为先赋值a=5后b再自加为6,所以会调用void print()函数,里面a+1后a=6,所有打印出a的值为6。
2024-02-05 16:11:43
2037
原创 2.4 第三章 类与构造函数
这句是给类Test添加一个指针成员p,指向get()有参构造函数,get()函数的返回值是两个形参值的和,所以(t1.*p)(5,10)就是访问有参构造函数,返回的结果为5+10=15。解析]:类的数据成员可以是任意类型,包括整型,浮点型、字符型、数组、指针和引用,也可以是类自身的指针,另一个类的对象,但不能是类自身的对象。2、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( B )3、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。
2024-02-04 13:54:42
2159
原创 2.3 第二章 引用内联重载
解析:函数重载是在同一个作用域下,两个以上的函数,取相同的函数名,其形参的参数个数或者参数类型不同,编译器会根据实参的参数个数或类型,自动调用对应的函数,只要求参数个数或类型不同,返回类型不作要求,也不参与区分函数的重载形式,函数后头有const,表示参数值不能被更改,如果函数体里有对参数的更改操作,则会报错,若为全局函数,也会报错,若为类内的成员函数,则不会报错。解析:执行A(1)是传一个参数1,调用函数之后i为1,j不变,所以i=1,j=0。-->正确,调用的函数为f(int x)
2024-02-03 10:39:25
1203
原创 2.2 第一章 命名空间
解析:第一次循环,i--后i=5,num++后num=3,判断i--后i=4为真,进入第二次循环,i--后i=3,num++后num=4,判断i--后i=2为真,进入第三次循环,i--后i=1,num++后num=5,判断i--后i=0为假,退出循环,num=5,i=0。解析:指针p1指向b,存储b的地址,指针p2指向p1,存储指针p1的地址,p2一次解引用为p1里的值,即b的地址,二次解引用是对一次解引用后的b的地址的再次解引用,就是b的值,所以p2二次解引用的值为b的值20。
2024-02-02 18:13:37
1877
原创 1.26 C++ day3
设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函数、析构函数和拷贝构造函数。
2024-01-26 20:01:25
806
原创 1.25 C++ day2
答:内存泄漏是程序在位变量申请空间之后没有及时释放,随着时间的推移,内存泄漏会导致可用内存逐渐减少,最终导致程序崩溃或者系统运行缓慢。自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height),2. 栈区需要满足栈的思想实现,先进后出,变量先定义后分配内存,从大地址到小地址申请。2. 堆区需要满足队列的思想,先进先出,变量先定义先分配内存,从小地址到大地址申请。4. 堆区申请容易出现碎片化,借助链表实现,在堆区内存中依次遍历变量所需内存大小,一.什么是内存泄漏,如何避免。
2024-01-25 20:33:02
509
原创 1.24 C++ day1
提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数,要求使用C++风格字符串完成。
2024-01-24 19:48:27
500
原创 1.19 第七章+第八章+第九章day1 超时检测+抓包分析+数据库
【代码】1.19 第七章+第八章+第九章day1 超时检测+抓包分析+数据库。
2024-01-22 08:56:16
353
原创 1.18 第六章 IO多路复用
答:当客户端登录服务器时,会给服务器发送一个登录信息,服务器端收到该登录信息后记录该客户端的地址信息到创建的链表中,当客户端给服务器端发送信息后,服务器端将遍历整个链表,然后将该信息逐个发送给所有其他在线用户。答:对于客户端而言,如果不绑定,则系统不会自动绑定一个套接字文件,服务器端接收该客户端的信息没有问题,如果服务器端想要向该客户端发送消息,则要求客户端必须绑定IP地址信息结构体。答:服务器端:socket()--->bind()--->sendto()/recvfrom()--->close()
2024-01-18 20:36:36
463
原创 1.16 第二章+第三章 TCP和UDP基础通信模型day2+TCP并发服务器day1
【代码】1.16 第二章+第三章 TCP和UDP基础通信模型day2+TCP并发服务器day1。
2024-01-16 20:13:05
422
原创 1.15 第一章+第二章 网络通信基础day2+TCP和UDP基础通信模型day1
【代码】1.15 第一章+第二章 网络通信基础day2+TCP和UDP基础通信模型day1。
2024-01-15 21:37:51
360
1
原创 1.10 第三章day4+第四章 进程线程间通信+库的制作
使用信号灯集,完成3个进程的同步,A进程输出字符A,B进程输出字符B,C进程输出字符C,要求输出结果为ABCABCABCABCABCABCABCABC.........
2024-01-11 08:54:56
555
2.26 Qt day4+5 纯净窗口移动+绘画事件+Qt实现TCP连接服务+Qt实现连接数据库
2024-02-26
2.26 Qt day4+5 纯净窗口移动+绘画事件+Qt实现TCP连接服务+Qt实现连接数据库
2024-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人