- 博客(18)
- 收藏
- 关注
原创 1.实现AB进程对话(A发一句,B发一句并不是随时通信)2.AB可以随时通信
思路:还是创建两个管道,同时用上多线程就可以实现了。题目一:思路:创建两个管道就好了,一个发一个收。
2024-06-16 18:34:54
528
原创 1.创建编号为ABC三个线程,三个线程循环打印自己的编号,要求打印出来的结果必须是ABC;2.用线程完成图片拷贝,实现一个进程拷贝一半,另外一个线程拷贝一半。3.进程之间通信(父进程传递信息给子进程)
用到pipe无名管道,管道一定是在fork之前创建的,不然会创建出两个管道出来,因为子进程也会创建一个,这样的话两根管道不好通信。思路:和上题一样主要就是创建两个线程,创建两个信号灯,在第一个完成之后才让第二个开始做。思路:创建三个线程同时创建三个信号灯,那么就可以通过信号灯去实现同步机制。
2024-06-13 20:02:24
582
原创 1.使用文件io对图片进行拷贝。要求子进程拷贝后半部分,父进程拷贝前半部分。拷贝到一个文件中。拷贝完毕后与源文件一致 2.要求将指定路径下,所有文件(除了隐藏文件)的权限及最后一次的访问时间提取出来
照着题目做就好了没什么特别的,用到stat,然后搞个localtime时间出来,不然得到的是秒数。思路只需要先用父进程拷贝前半部分,然后再用子进程拷贝后半部分即可,拷贝后半部分只用子进程去拷贝。
2024-06-11 19:53:48
458
原创 1.用fscanf\fprintf fgetc\fputc fgets\fputs实现文件拷贝。2.输入任意两个文件判断这两个文件的内容是否完全相等
相对于scanf来说他们是很相像的,这个是在文件读取数据所以我们在打开文件的时候需要将权限改为读权限,并且值得注意的是%s是不吸收空格 制表符以及换行符的,所以我们用%c去遍历获取每个字符,%c会吸收空格。指的注意的是我们尽量将fgetc函数的结果用一个变量去存储起来以免后续做连续重复的事情。代码:最后注意要清零,以免不必要的麻烦,建议在操作字符串的时候进行一下。思路:首先要知道这几个函数是干什么的有什么用,要用到什么权限。fputc:打印单个字符!fgetc:获取单个字符!该函数和gets的差距很大。
2024-06-06 19:46:42
541
原创 1. 双向链表2. 顺序栈3. 顺序队列4. 链式队列
链式队列功能代码:这里选择尾插头删,因为用到一个rea去存储尾节点,这样的话插入就不需要遍历了节约时间成本。
2024-06-04 23:44:47
585
原创 单链表基本代码
在这里结构体里面创建了一个联合体,目的在于不想浪费头节点中的数据域,于是我将它用来存储单链表的长度。Makefile.cfg文件存放变量。使用Makefile存放编译规则。main函数(测试代码)
2024-05-31 17:50:21
526
原创 1.用指针写杨辉三角 2.用指针遍历二维数组(不同形式)
传参直接用数组名,因为二维数组的数组名代表二维数组首行的地址,相当于是一个数组指针,所以可以和形参里面的数组指针对应。杨辉三角用二维数组并不陌生,如何用指针呢,如何传参呢这是几个比较重要的点。形式就太多了,就简单列举几个。2.通过数组指针的方式当形参。1.直接通过数组方式当形参。二维数组的形参有三种方式。
2024-05-27 18:49:33
485
原创 用指针方式完成下列题目:1.求出字符串中空格的个数,当遇到换行停止。2.找出数组中最大值。3.判断数字是否在数组里面。4.遍历打印数组
思路:利用指针即可,没有什么好说的。所有的都封装成为一个函数。
2024-05-24 19:33:53
659
1
原创 写shell脚本实现 1.打印九九乘法表 2.打印三角 3.输入字符串获获取空格的数量
思路:和第一题同理,主要就是echo是自带一个换行的,所以要避免换行就要使用-n。思路:通过for循环的嵌套进行打印,注意的是echo的用法。思路:要通过获取子字符串的指令实现对每一个字符进行访问。
2024-05-23 19:39:48
416
1
原创 shell脚本-var=http://www.baidu.com/index.html/cn1.要求获取www.baidu.com2.要求获取baidu3.要求获取cn 4终端输入两个数并交换
思路:read在存放两个变量的时候是不会吸收空格的,第一个变量是空格之前,第二个变量是空格之后的所有字符,但是在只吸收一个变量的时候是会吸收空格的。思路:通过反复获取字串从而得到答案。
2024-05-22 18:08:52
461
原创 1.改写strcmp strcat。2.获取一个字符串,判断该字符串中有几个小写字母,大写字母,数字字符。3.获取一个字符串,要求将该字符串倒置存储。4.获取一个字符串,要求删除字符串中的所有空格。
若str1大于str2,则strcmp会返回大于0的数,若str1等于str2,则strcmp会返回0,若str1小于str2,则strcmp会返回小于0的数,当同时到达'\0'则两个字符串相等。将str2连接到str1的后面,str1会发生变化,但是str2不会变化。注意这个数其实是str1的某一位的ascii码减去str2的对应位的ascii码。strcmp用来比较两个字符串的大小。strcat用来连接字符串。
2024-05-16 16:20:12
865
1
原创 1.在不用string库函数的前提下将strlen函数功能实现。2.在不使用string库函数的前提下将strcpy实现。3.找最大值
这是strcpy函数的函数声明:char* strcpy(char* destination(目标字符串),const char* source(被复制的字符串用const修饰,避免修改掉被拷贝的字符串));注意目标字符串会完全变成被复制字符串。
2024-05-15 19:18:48
512
原创 1.switch case 管理学生成绩。2.猴子吃桃(递归,或者循环)。3.打印100-1000以内的水仙花数。4.打印九九乘法表。5.利用for循环打印特殊图像。 6.利用for循环打印特殊图像。
但是事实上学生的成绩并不一定是一个整形的数据,他有可能是浮点型的。拿到这题的时候由于if else的频繁使用,所以是否有范围这个想法就出现了,但是case后面可以加范围吗。打印九九乘法表,这题主要就是for循环的嵌套使用,然后就是一个何时空行的时机问题。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。水仙花数:是指一个三位数的每一位的立方和还等于这个数,则这个数称之为水仙花类。猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。num =个位数的立方+十位数的立方+百位数的立方。
2024-05-14 19:57:33
866
2
原创 1.输入一个三位数,求个位、十位、百位的和2.实现两个数的交换3.输入三角形的边长,求面积(海伦公式的方法)4.终端输入一个整形数据,判断整形数据是否为偶数。
这题的考点就在如果取到三位数的各个位。这里用到scanf按理来说他是吸收了我的\n(换行符),但是由于我后续没有使用char的打算,所以我就没有去吸收垃圾字符。这个题主要就是对应取余运算的使用了,看对于模2是否为0(因为对2取模运算答案只有1或者0,当答案是0则说明没有余数则该数是偶数,同理答案是1则说明余数为1是奇数),以便判断是否为奇数。我们在用gcc的时候要加-lm 因为数学函数位于libm.so库文件中(通常在/lib目录下)-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找.
2024-05-13 20:02:17
655
原创 1.请计算90的十六进制形式 2.请计算-90的十六进制形式printf(“%#x\n“,-90);3.char型数据在微机中储存值为0xc0,则printf以%d打印值为
第一题:直接转换就好啦,因为正数的原码反码补码是一样的,所以直接转换就好了(先变成二进制再通过四位二进制为1位16进制,变成16进制即可),可以和我纸上写的一样,也可以用90去对16做取余运算,但是我认为稍微有点麻烦了。第三题,由于在微机里面存储的是补码,所以0xc0作为一个补码。但是用%d打印出来的是原码所以我们就需要逆转换。首先写成2进制然后得到反码,再得到原码,就可以得到打印值了。第二题:由于是对一个int类型的常量-90做16进制的转换,我们就必须要通过原码反码补码的转换从而得到了。
2024-05-12 15:24:04
506
1
基于TCP的QT电子词典
2024-07-24
基于TCP协议的电子词典项目
2024-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人