04_C 学习
xiaopangzi313
编程爱好者
展开
-
实现链表中存储数据的逆序
思路: 1.先存入数据到链表,然后将最后的元素插到链表头,然后删除链表尾元素,再依次将链表尾元素顺序插到链表头 2.新建两个链表,.先存入数据到链表1,再将,链表1的数据从表头拷贝到链表2即可 注意:两种方法均采用头插法 #include #include typedef struct _linkode_{ int data; struct _linkode_ *next;原创 2013-06-16 17:27:04 · 1201 阅读 · 0 评论 -
很经典的数据结构
1.Numbered 1, 2,... N n individuals sitting around a circle, contract number is k (1 < = k < = n), people started to count off from 1 to m the man out, it's the next and started to count off from 1, c原创 2013-07-08 17:09:56 · 643 阅读 · 0 评论 -
学生管理系统
项目功能:主要能实现用户对学生信息的增、删、改、查以及排序等 项目名称:学生管理系统 开发环境:linux /C 开发工具:GCC/GDB 开发流程: 编译流程: 1.cc *.c -lsqlite3 运行l流程: 1. ./a.out 调试效果: 项目源文件由以下三个组成: 1. stu原创 2013-06-18 17:18:06 · 1082 阅读 · 0 评论 -
在线词典的制作
在线词典的功能是用户能够通过自己注册 的账号登陆,查询单词或词组的含义。 项目名称:在线词典 开发环境:linux /C 开发工具:GCC/GDB SQlite 开发流程: 编译流程: 1.cc load_dict.c dict.txt data.deb -lsqlite3 //注意dict.txt为词典txt文件 ,data.deb为sqlite数据库 2.原创 2013-06-18 16:49:01 · 1786 阅读 · 0 评论 -
C语言实现面向对象
众所周知,面向对象大行其道,其中以C++、JAVA等这样的高级语言为代表,而这样的高级OO语言其实也是以C为蓝本的,以下本文就着重分析C语言如何实现面向对象。 面向对象具备3大特性:封装、继承和多态。大多数语言都具有封装特性,只不过面向对象在封装上进一步增强,并且将数据和方法进行糅合。在面向对象中顶级存在是类和对象,而在过程式语言中函数则是顶级存在。 1.定义子类和父类表现形式 C语言中没有原创 2017-01-23 19:19:35 · 943 阅读 · 0 评论 -
在main函数执行之前和之后执行一段代码
方法1: 声明一个全局变量,或者全局对象,这个全局对象在man函数之前被执行。 #include using namespace std; class App { public: App() {cout "I was born!" endl;} }; App a; int main(int argc, char** argv) {转载 2013-11-26 11:11:12 · 636 阅读 · 0 评论 -
GCC 编译 C++
原来一直以为gcc是c的linux下的编译器,g++是c++的linux下的编译器,今天偶尔看到一个说明文档,大体内容是gcc已经不单纯的可以编译C语言,它支持C, C++, Objective-C, Fortran, Java, Ada的编译,如果不指名编译语言,默认由后缀名决定。感觉好神奇,就亲自想用gcc来编译一个c++的helloworld。步骤如下: 1.用vim直接打开hel转载 2013-11-10 08:06:56 · 595 阅读 · 0 评论 -
创建守护进程
创建方法: 1.创建子进程,杀死父进程 2.建立新的会话 3.设立当前目录为根文件目录 4.重设文件掩码 5.关闭不需要的文件描述符 题目:写一个程序,有守护模式和常规模式,写一个日志文件,每隔一秒向文件中写入当前日期时间 运行时:./a.out 1(daemon mode ) /log 运行效果: #include #include #include #i原创 2013-06-20 22:02:24 · 591 阅读 · 0 评论 -
pthread_cond_wait用法解析与案例
pthread_cond_wait用法解析与案例 pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)函数传入的参数mutex用于保护条件,因为我们在调用pthread_cond_wait时,如果条件不成立我们就进入阻塞,但是进入阻塞这个期间,如果条件变量改变了的话,那我们就漏掉了这个条件。因为这个线程还没有放到等原创 2013-06-22 11:50:16 · 2100 阅读 · 0 评论 -
用exec函数族实现shell脚本
简介:exec 函数族,非常强大可以执行我们在linux下操作的shell脚本命令 思路:考虑到exec函数每执行一次即开辟一个进程,故我们要考虑到回收子进程的操作 运行结果: 具体源码为myshell.c 注意我使用是execvp,大家可以使用execv,execl,execp等 #include #include #include int main(int argc, c原创 2013-06-22 12:02:57 · 1438 阅读 · 0 评论 -
进程管理--回收僵尸态子进程
大家都知道一个子进程结束后会变成僵尸态进程,编程时往往会调用wait函数,但是wait()函数通常会引发阻塞,故我们常采用wait_pid()函数: wait_pid()函数原型为 pid_t wait_pid(pid_t pid,int *status,int options); 参数status:返回进程改变的状态 参数options: WUNTRANCED ------R->T原创 2013-06-22 14:28:49 · 917 阅读 · 0 评论 -
关于链表的常见考题
/* 1.已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。 */ slnodetype *delete(slnodetype *head,int key) { if(head->number==key) { head=pointer->next; free(pointer); break; } back = pointer; point原创 2013-07-08 19:42:06 · 1425 阅读 · 0 评论 -
实现一句英文的逆序输出----微软面试题
实现一句英文的逆序输出----微软面试题 如: 输入 i love china; 输出 china love i 方法一: #include #define N 32 int get_data(char *dest, int num); int reverse_word(char *str); int main() { char buff[N]; get_data(buf原创 2013-06-25 21:47:43 · 1040 阅读 · 0 评论 -
float精度浅析
1 范围 float和double的范围是由指数的位数来决定的。 float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bits(指数位) 23bits(尾数位) double: 1bit(符号位) 11bits(指数位) 52bits(尾数位) 在数学中,特别是在计算机相关的数字(浮点数)问题的表述中,转载 2013-11-04 21:18:41 · 870 阅读 · 0 评论 -
使用VC脚本编译本地dll调用
1. 激活环境变量,path,lib,include等 运行C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>vcvars32.bat 注意观察Path, LIB,INCLUDE这几个环境变量,若这里出现异常,后面编译链接会报错 2.编写本地源程序(本文使用C语言)Math.c和Math.h //Math原创 2018-01-18 21:26:44 · 716 阅读 · 1 评论