数组排序:关于数组的插入与删除以及排序

数组的插入: #include stdio.h #define size 10 int main() { int a[size]={10,12,14,16,18,20,13,200,134,59}; /* 初始化数组 */ int b[size+1]={0},i,j,x,v; /* b数组为插入后的数组,新插入了一个元素,所以要在原数组的基础上加1 */ printf(\"please input... [阅读全文]

c语言画图:用C语言实现键盘画图

1.引言  笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题。由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用c语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好。2.使用方法 程序中定义了几个特殊键:\"v”:画笔提起\"w”:开始画... [阅读全文]

c语言链表排序:C语言链表的创建与排序

includestdio.h #includestdlib.h typedef struct struct { int value; struct struct *next; }ts; main() { #define n 9 int a[n],i; ts *head,*p; ts *createlink(int *,int); void sort(ts **); randomize(); for... [阅读全文]

linux下c语言编程:Linux下C语言编程--时间概念

前言: 这一章我们学习linux的时间表示和计算函数 1.时间的表示 2.时间的测量 3.计时器的使用 1:时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果.这个时候我们可以使用下面两个函数 #include time_t time(time_t *tloc); char *ctime(const time_t *clock); time函数返回从1970年1... [阅读全文]

linux多线程编程:Linux下C语言编程--线程操作

前言:linux下线程创建 介绍在linux下线程创建和基本使用. linux下线程是个非常复杂问题,由于我对线程学习不时很好,我在这里只是简单介绍线程创建和基本使用,有关线程高级使用(如线程属性,线程互斥,线程同步等等问题)可以参考我后面给出资料. 现在有关线程资料在网络上可以找到许多英文资料,后面我罗列了许多链接,对线程高级属性感兴趣话可以参考下. 等到我对... [阅读全文]

环境变量:C语言中使用环境变量的技巧

实例1: 程序readenv.c显示了在c语言中存取环境变量的若干技巧。该程序将以与dos的set命令相同的格式打印出当前所有的环境变量,然后寻找path变量,打印出整个路径字符串。该程序中有两个重要的子程序,find_env_string(),它的主要作用是:根据从调用这传来的要求,或者从环境空间的起点开始,或者从上一次搜索後停留的地方开始,寻找随后的第一个环境字符串,具体程序清单如下。 /**... [阅读全文]

网络安全编程:安全编程 HOWTO:文件

文件 对于所有类unix系统最主要信息存放地点是根为“/”文件树文件树是个目录分级结构每个目录都可以保护文件系统对象(fso) 在linux中文件系统对象(fso)可以是普通文件、目录、符号连接、命名管道(fo)、套接字(参见下文介绍说明)、特殊(设备)文件或特殊块(设备)文件(在linux下可以用find(1)命令显示其列表)其它类unix系统有同样或相似组f... [阅读全文]

内 存 问 题

一、\"delete p\" 会删去 \"p\" 指针,还是它指到的资料,\"*p\" ? 该指针指到的资料。\"delete\" 真正的意思是:「删去指针指到的东西」(delete the thing pointed to by)。同样的英文误用也发生在 c 语言的「释放」指标所指向的记忆体(\"free(p)\"真正的意思是:\"free_the_stuff_pointed_to_by(p)\... [阅读全文]

vista自带驱动备份:使用C中自带的驱动去改变字体和颜色

一.c语言中字体的问题 c语言中有两种显示方式,即文本方式和图形方式。就我所知,只能在图形方式下控制字体. 先看一下c中定义的几种字体 名称 索引值 字体说明 default_font 0 8x8 bit-mapped font triplex_font 1 stroked triplex font small_font 2 stroked small font sans_serif_font 3... [阅读全文]

ring3:向 Ring3 层发消息

问题: 使用vtoolsd写vxd时,在vxd中如何使用postmessage向ring3层的应用程序发送消息? 解答: no1: 哈哈,这问题太简单了: shell_postmessage(g_hwnd, (spm_um_donotwaitforcrit16 and g_umousemsg), (word)state,(dword)(wdeltay16 and wdeltax),null,0);... [阅读全文]

进程线程:C语言进程vs线程选择

进程vs线程,如何选择? 我们编写程序,到底是采用多线程还是多进程?这里是有区别的,采用不同的机制能够获得的效率也不一样。如何选择适合我们自己的程序的机制呢?下面是一些常见的选择的看法,不过也只是提供给大家参考参考,具体设计的时候还是要自己处理。 ¨ 一个程序里面的所有的线程都在同一个运行空间中执行。而一个程序的子进程则是运行在另外的执行空间中的,这里是通过调用了exec函数来实现的。 ¨ 同一个... [阅读全文]

套接字:C语言套接字和网络连接

chapter 3. linux和unix安全特性概要 套接字用于通信,特别是在网络上。套接字起初是由unix系统的bsd分支开发出来的,但现在一般可以移植到其它类unix系统上:linux和system v的变种同样支持套接字,而且支持套接字是open group的单一unix规格[open group 1997]所要求的。system v系统传统上使用一个不同(不兼容)的网络通信接口,但这对像... [阅读全文]

服务器端脚本语言:在C语言下使用I/O端

1. 正规的方法 用来存取 i/o 埠的常式 (routine) 都放在档案 /usr/include/asm/io.h 里 (或放在核心原始码程式集的 linux/include/asm-i386/io.h 档案里). 这些常式是以单行巨集 (inline macros) 的方式写成的, 所以使用时只要以 #include 的方式引用就够了; 不需要附加任何函式馆 (libraries). 译注... [阅读全文]

C语言创建自己的设备(一个最最简单的例子)

作者:王辉 我们在内核里面有时候项纪录一些自己的东西,其中有个好方法就是创建一个自己的特有的设备。这样我们可以在需要记录东西的地方,就调用这个设备的接口函数,这样很方便。 这里我们创建一个很基本的设备驱动,主要是看看一个设备驱动的框架,这个例子重的设备驱动没有任何实际的功能。:) #define module #define __kernel__ #include linux/module.h #... [阅读全文]

c语言编译器:C编译器对结构空间的分配及其应用

c编译器对结构空间缺省的分配    在c语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间;各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。在缺省情况下,c编译器为每一... [阅读全文]

模拟精灵:用模拟精灵解百度编程大赛试题

原题要求用c++做的,不过用模拟精灵比较快,但未仔细分析优化。    第一题 连续正整数(10分)    题目描述:一个正整数有可能可以被表示为n(n =2)个连续正整数之和,如:    15=1+2+3+4+5    15=4+5+6    15=7+8    请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。    输入数据:一个正整数,以命令行参数的形式提供给程序。... [阅读全文]

内码转换:用C语言实现常见的三种中文内码转换

常见的中文内码一般有gb2312(简体中文),gbk和台湾那边用的big5(繁体中文),有时候看一些台湾编程论坛里的资料,都是乱码,如果在ie中浏览,则要求安装繁体字库的支持。网上也有很多中文内码的转换工具,什么专家,大师,巨匠之类所有光辉灿烂的名字都被使用了,但是在自己的程序中集成这些功能岂不是更好。以前曾广泛流传过使用码表来转换中文内码的code,但毕竟不完美,而且还要携带或内置一个巨大的表,... [阅读全文]

递归函数实现:八皇后问题的非递归实现

我们都知道八皇后问题是一个很经典的问题,当时很多解决八皇后问题的编程解法都是用递归解法,下面我用非递归的解法来实现如下:  其中有关设置标志位来表示该位是否可以下皇后的原理,请看郑启华的《pascal程序设计(第二版)〉清华大学出版社出版的。代码如下:#include#define available 1 //用来标志该位是否可用,availabel表示可用,unailable表示不可用#defi... [阅读全文]

c语言小程序:利用C语言小程序来解决大问题

我们知道c语言的功能非常强大, 很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意dos版本或在windows中更改子目录的名称、在任意dos 版本中使用带空格的目录名等等。这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用c语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。   一、拷贝隐含或系... [阅读全文]

c程序设计技巧:C语言程序设计技巧

在许多应用软件运行时都带有命令行参数,其实这些命令行参数在c语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果。  c语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数,其中,int argc表示命令行参数的个数(包括可执行程序名本身),char *argv[]表示每个参数的具体内容,argv... [阅读全文]

用C语言解决鬼谷算题

在鬼谷算题中有这样一个著名的题目:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”这属于高等数学中的数论。我国宋代学者对这类题目钻研已颇为精深,总结出了“三人同行七十稀,五树梅花廿一枝,七子团圆正半月,去百零五便得知。”这样的口诀,意思是说“以三三数之,余数乘以七十;五五数之,余数乘以二十一;七七数之,余数乘十五。三者相加,如不大于一百零五,即为答数;否则须减去一百零五或其... [阅读全文]

java中日期处理:在C语言中如何处理时间和日期

chuck allison 是盐湖城圣 latter day 教堂总部下耶稣教堂家族历史研究处的软件体系设计师。他拥有数学学士和数学硕士学位。他从1975年起开始编程,从1984年起他开始从事c语言的教学和开发。他目前的兴趣是面向对象的技术及其教育。他是x3j16,ansi c ++标准化委员会的一员。  大部分的操作系统有办法得到当前的日期和时间。通过定义在time.h的库函数,ansi c能以... [阅读全文]

c语言static:水滴石穿C语言之static辨析

1、概述  static 声明的变量在c语言中有两方面的特征:  1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。  2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。  2、问题:static的理解  关于static变量,请选择下面所有说法正确的内容:  a、若全局变量仅在单... [阅读全文]

c语言extern:水滴石穿C语言之extern声明辨析

  1 基本解释  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。  另外,extern也可用来进行链接指定。  2 问题:extern 变量  在一个源文件里定义了一个数组:char a[6];  在另外一个文件里用下列语句进行了声明:extern char *a;  请问,这样可以吗?   答案与分析:  1)、不... [阅读全文]

c语言语法:水滴石穿C语言之声明的语法

  概述   在很多情况下,尤其是读别人所写代码的时候,对c语言声明的理解能力变得非常重要,而c语言本身的凝练简约也使得c语言的声明常常会令人感到非常困惑,因此,在这里我用一篇的内容来集中阐述一下这个问题。  问题:声明与函数   有一段程序存储在起始地址为0的一段内存上,如果我们想要调用这段程序,请问该如何去做?   答案  答案是(*(void (*)( ) )0)( )。看起来确实令人头大,... [阅读全文]

计算机图像处理:利用C语言实现计算机图像处理的方法

1.图像平移  图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。  假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 + dx, y0 + dy),右下角坐标为(x1 + dx, y1 + dy)。坐标平移变换公式为:  x′ = x + dx  y′ = y + dy  在屏幕上实现图像的移动分为... [阅读全文]

水滴石穿C语言之代码检查工具

概述  pc-l是个历史悠久功能异常强劲静态代码检测工具它使用历史可以追溯到计算机编程远古时代(30多年以前)经过这么多年发展它不但能够监测出许多语法逻辑上隐患而且也能够有效地帮你提出许多在空间利用、运行效率上改进点在很多专业级软件Software公司比如microsoft pc-l检查无无警告是代码首先要过第关我个人觉得对于小公司和个人开发而言pc-l也非常重... [阅读全文]

可变参数:水滴石穿C语言之可变参数问题

概述  c语言中有一种长度不确定的参数,形如:\"…\",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。  原型:int printf( const char *format [, argument]... );  使用例:printf(\"enjoy yourself everyday!\\n\");printf(\"the value is %d!\\n\", va... [阅读全文]

单链表的基本运算:链表的C语言实现之单链表的插入运算

假设在一个单链表中存在2个连续结点p、q(其中p为q的直接前驱),若我们需要在p、q之间插入一个新结点s,那么我们必须先为s分配空间并赋值,然后使p的链域存储s的地址,s的链域存储q的地址即可。(p->link=s;s->link=q),这样就完成了插入操作。  下例是应用插入算法的一个例子:#include <stdio.h>#include <malloc.h>#include <string... [阅读全文]

单链表的基本运算:链表的C语言实现之单链表的查找运算

建立了一个单链表之后,如果要进行一些如插入、删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作。单链表的基本运算包括:查找、插入和删除。下面我们就一一介绍这三种基本运算的算法,并结合我们建立单链表的例子写出相应的程序。  1、查找  对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,若是返回该结点的指针,否则返回null。  因为在单链表的链域... [阅读全文]
<< < 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 > >> 共853条 分29页