
C语言
文章平均质量分 64
zjq_smile
这个作者很懒,什么都没留下…
展开
-
GCC从源文件如何蜕变成可执行文件
GCC的编译过程一、预处理:对源程序中的伪指令(即以#开头的指令)和特殊符号进行处理的过程,即进行头文件的展开,宏替换,条件编译如以下的一段简单程序:#includeint main(){int a; int b;int sum;sum = a + b ;printf("add = %d\n",sum);return 0;原创 2016-07-06 20:38:12 · 1615 阅读 · 0 评论 -
牛客网的面试题(一)(前缀,中缀,后缀)
1.题目:unsigned int a = 0x1234;Unsigned char b = *(unsigned char *)&a;在32位大端模式处理器上变量b等于()?A 0X00 B 0X12 C 0X34 D 0X1234解析:int 是4个字节,大端存储,所以补齐的话是a = 0x00 00 12 34;而b是char型,按照大端存储的话,就只取了a中原创 2016-08-18 11:24:53 · 963 阅读 · 0 评论 -
二级计算机公共基础知识
1.1 数据结构与算法1.1.1 算法1.算法的基本概念(1)概念:算法是指一系列解决问题的清晰指令。(2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。(3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时间的顺序)。(4)设计的基本方法:列举法、归纳法、递归法、递推法、减半递推技术和回溯法。2.算法的复杂度(1)算法的时间复杂度:执行算原创 2016-09-24 21:49:40 · 1520 阅读 · 0 评论 -
数据结构——基本概念和术语
第一章 绪论1.1 什么是数据结构数据结构研究的主要内容: 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。1.2 基本概念和术语·数据(data):所有能被输入到计算机中,且被计算机处理的符号的集合是计算机操作对 象的总称。·数据元素(data element)转载 2016-09-26 23:10:29 · 3755 阅读 · 0 评论 -
C语言简单填空题——11.25
一、填空选择题1、请写出 char *p 与“零值”比较的 if 语句 if (p == NULL) 2、写出打印结果____255___ #include #include int main() { char a[1000]; int i; for(i=0;i {原创 2016-12-01 00:51:48 · 4684 阅读 · 0 评论 -
C语言习题整理
一、填空选择题1、请写出 float x 与“零值”比较的 if 语句 if(x>=-0.000001f && x 解析: 不可将浮点变量用“==”或“!=”与任何数字比较。千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“形式。 假设浮点变量的名字为x,应当将 i原创 2016-12-11 23:31:55 · 858 阅读 · 0 评论 -
输出蛇形代码
1. 编写一个程序,输出类似的蛇形代码:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9 [cpp] view plain copy print?#include #include int m转载 2016-12-10 00:08:16 · 382 阅读 · 0 评论 -
C语言———42道自整理面试题
1、C语言之父?丹尼斯里奇 2、C语言的特点?具有出色的可移植性,能够在多种不同的体系的软硬件平台运行具有简单紧凑,使用灵活的语法机制,能够直接访问硬件运行效率高 3、什么是库文件和库函数库文件:只能使用函数和变量,但是看不见函数和变量的实现库函数:只能使用函数,但是无法看到实现 4、动态库和静态库的区别静态库:编译速度慢,可执行文件体积大,代码原创 2017-07-13 19:11:24 · 476 阅读 · 0 评论 -
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
有双向循环链表结点定义为: struct node { int data; struct node *front,*next; }; 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除 BOOL DeteleNode(Node *pHeader, DataType Value) { if (pHeader == N转载 2017-08-02 12:46:35 · 1152 阅读 · 0 评论 -
生产者和消费者(PV操作、共享内存)
生产者一直在往共享内存中写数据#include<sys/sem.h>#include<sys/shm.h>#include<stdio.h>#include<stdlib.h>#include<errno.h>#include"shm.h"int main(){ int ret; int shmid; int semid; int running;原创 2017-08-09 17:12:31 · 3365 阅读 · 0 评论 -
把文件中的一组整数排序后输出到另一个文件中(c/c++)
我是自己先建立一个文本文件a.txt,里面写了整数: 1 23 45 67 89 0C语言实现:#include<stdio.h>#include<errno.h>#include<stdlib.h>void sort(int *a,int len){ int i; int j; for(i = 0; i < len-1; i++) { for(原创 2017-08-14 12:45:46 · 2593 阅读 · 0 评论 -
自己实现memcpy函数
#include<stdio.h>void* Mymemcpy(void *dest,const void* src,size_t count){ char *tmpDest = (char *)dest; char *tmpSrc = (char *)src; size_t i;//内存有覆盖的区域,从尾部开始复制 if((tmpDest > tmpSrc) &&原创 2017-09-04 19:40:41 · 1591 阅读 · 1 评论 -
消息队列 传动图片
server.c`#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mqueue.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/stat.h>...原创 2019-07-26 08:15:38 · 843 阅读 · 0 评论 -
链表(单链表,带表头的链表,单向循环链表,双向循环链表)
一、单项链表:以单链表为例,详说写链表的过程:1、 定义节点,即写结构体原创 2016-07-25 11:28:56 · 813 阅读 · 0 评论 -
在VM虚拟机上安装VMWARE TOOLS
VMware Tools是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主原创 2016-07-01 17:01:20 · 626 阅读 · 0 评论 -
GDB调试程序的使用
GDB的使用:举下面的程序为例:写完程序之后输入“gcc -g gdb.c”,"gdb a.out",启动GDB对test进行调试,图如下:原创 2016-07-08 20:48:44 · 529 阅读 · 0 评论 -
Makefile简单总结
MAKE的概述:Makefile文件 Makefile 一个工程中源文件不计数,其按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,提高了编译速度。Makefile基本格式如下:target ... : prerequisites ... command原创 2016-07-09 23:21:28 · 440 阅读 · 0 评论 -
C语言简述
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。C语言是世界上最流行、使用最广泛的高级程序设计语言之一。C语言的特点:(为什么嵌入式开发选择C语言?)1)具有出色的可移植性,能够在多种不同体系的软硬件平台上运行。UNIX、MS-DOS、Microsoft Wind原创 2016-07-11 13:55:25 · 521 阅读 · 0 评论 -
左右法则——教你如何读懂一个定义
左右法则——教你如何读懂一个定义我们看到类似int * (* (*fp1) (int) ) [10]; 这样的例子时常常会傻眼,但是根据左右法则却会很好的帮助我们解决这个难题。什么是左右法则呢?顾名思义,就是先找到一个变量,先读它的右边,在读它的左边。 举几个例子:int a; //读a是一个变量,再读右边,是个分号,再读左边是个int,即这个式子为整形变量。int *p原创 2016-07-11 15:02:52 · 965 阅读 · 0 评论 -
小数在内存中的存储方式
小数的存储跟其他类型数据的存储方式有很大的不同,我们通常用科学技术法来表示很大或者很小的数,即用一个尾数(Mantissa),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。比如123.456 用十进制科学计数法可以表达为 1.23456× 10^2 ,其中1.23456 为尾数,10为基数,2为指数。浮点数利用指数达到了浮动原创 2016-07-14 13:59:29 · 1613 阅读 · 0 评论 -
计算机的组成系统
(一)计算机硬件计算机硬件系统由五大部分组成:运算器、控制器、存储器、输入设备、输出设备。(如下图所示)CPU由运算器、控制器和一些寄存器组成;运算器进行各种算术运算和逻辑运算;控制器是计算机的指挥系统;存储器的主要功能是用来保存各类程序的数据信息。 存储器可分为主存储器和辅助存储器两类。 ①主存储器(也称为内存储器),属于主机的一部分。用于存放系统当转载 2016-07-23 09:57:27 · 612 阅读 · 0 评论 -
浅谈函数(二)(函数规范、函数指针)
一、函数的代码规范:我陈列几个对我来说比较重要的1) 对所调用函数的错误返回码要仔细、全面地处理。不同的错误返回码标志这不同地方的错误,全面的处理利于提高我们的调试速率。这点尤为重要。 函数的返回值要清楚、明了,让使用者不容易忽视错误情况。函数的每种出错返回值的意义要清晰、明了、准确,防止使用者误用、理解错误或忽视错误返回码。 2) 防止将函数的参数作为工作变量原创 2016-07-21 15:54:35 · 694 阅读 · 0 评论 -
浅谈函数(一)
为什么我们会用到函数?函数的优点:1)提高了代码的复用性。 2)在一个函数中,尽量少定义其他的函数,以便于提高函数的扩展性。 3)写函数讲究得叠代开发。函数的三要素:函数名,函数的返回值,函数的形参。函数名:要做到“自注释性”,即增加代码的可读性, 一般为动宾结构原创 2016-07-21 11:17:37 · 256 阅读 · 0 评论 -
分配空间的三种函数——malloc,calloc,realloc
给变量分配空间的有三种函数——malloc ,calloc,reallocMalloc: malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。函数声明(函数原型):void *malloc(int size);malloc 向系统申请分配指定size个字节原创 2016-07-19 14:42:22 · 1130 阅读 · 0 评论 -
如何避免野指针?
野指针是指随机访问了内存空间,归根到底是由于不良的编码习惯,有个良好的编程习惯是避免“野指针”的唯一方法。如何避免野指针:1)初始化:char*p = NULL;(为何赋值为NULL:一是NULL是一个宏,高亮,检查段错误的时候比较显眼。二是NULL为值,不能对NULL值赋值或者访问。)2)对指针赋值时,先检查是否分配内存,如果没有分配空间,用malloc分配内存。 如:Cha原创 2016-07-19 14:40:42 · 526 阅读 · 0 评论 -
位运算符&指针运算符
一、位运算符(&、|、^、>>、、~)常用到掩码(mask),操作的都是无符号的数,但是常量一般都为有符号的数,所以对于与最高位上是1的无符号常亮进行位运算时,要在前面添unsigned int以防止数据出错。常用的位运算符与运算(&)0与任何数相与都为0,所以只要有0出现,相与的结果就为0。只有两个1相与才为1。应用:1清零特定位(mask中特定位置0,其它位为1原创 2016-07-16 11:31:01 · 876 阅读 · 0 评论 -
整数数组的遍历
对整数进行遍历有三种方法:分别是用数组,数组的首地址和指针。一、数组法:二、数组的首元素:数组的首元素表示的是数组首元素的地址,a+i 相当于&a[i],指针里保存的地址为数组元素的地址。三、指针在两个FOR循环之间,有一条输入句 p = a; 是因为在输入的循环里,指针P已经指向了最后一位,重新把首元素的地址就给了P,以方便下面输出时不会继续往后,否则会输原创 2016-07-14 18:14:28 · 1107 阅读 · 0 评论 -
新人作业之基于TCP连接,用消息队列实现图片发送功能,
具体要求是:1、客户端接受图片,服务器发送图片,建立TCP 连接2、每次有客户端过来,服务器创建一个线程单独实现图片发送功能3、最多5个客户端同时连接服务器,超过5个就会失败4、服务器本地存储一张图片,在服务器处输入“start”之后,服务器就开始向在线的客户端发送图片5、客户端收到图片之后,保存到一个目录中,目录名是年月日,文件名为时分秒简单来说:就是服务器向客户端发送图片。。。。。...原创 2019-07-26 19:46:18 · 1104 阅读 · 0 评论