C语言

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言学生信息管理系统

        大一上学期学习了C,学的不好,对C的理解仅限于编写一些简单的小程序,下学期刚开学,老师就要求我们用C编写一个学生信息管理系统,当时就蒙了,后来讲到需要文件操作,更傻了,当时就没怎么学,后来到处查找资料,向同学,老师请教,慢慢的从能够编写简单的文件写入,然后一步步将每一个函数实现,实现对其的写入

2015-06-11 20:39:38

c语言scanf缓冲区问题

今天在递归调用scanf函数获取输入的字符时发现的这个问题,之前也遇到过,现提出来记录一下。 测试用例如下: #include <stdlib.h> #include <stdio.h> int main() { int n = 5; char c[n]; for(int i = 0; i <

2015-06-11 20:39:00

C语言中全局变量的定义与调用

1. 谭浩强 书中对‘全局变量’的定义     在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。     建立全局变量的作用是增加了函数间数据联系的渠道。 2. 

2015-06-11 20:38:48

C语言贪吃蛇70行代码

#include <stdio.h> #include <Windows.h> #include <conio.h> #include <time.h> #define MAX_WIDE 50 #define MAX_HIGH 16 short dx = 1, dy = 0, randx

2015-06-11 20:35:33

C语言 小游戏之贪吃蛇

        还记得很久以前听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,觉得很难,根本没什么思路。 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来。 现在大三,经过了这一年半的编程,现在觉得这个C语言的贪吃蛇还是比较简单的,花的时间不很多! 我觉

2015-06-11 20:35:30

数据结构:循环队列(C语言实现)

生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。这里讲的是循环队列,首先我们必须明白下面

2015-06-11 20:27:35

C++写的一个简单的语法分析器(分析C语言)

本程序实现一个分析C语言的词法分析+语法分析。 注意: 1.文法简略,没有实现的部分,可以在此文法的基础上进行扩充,本程序的采用自顶向下的LL(1)文法。 2.可以自动实现求First 集和 Follow 集。 3.处终结符外(有些硬编码的成分),终结符的文法可以自定义,也就是说读者可以自定义文法。 4.为方便理解,C语言的文法描述写成中文

2015-06-11 20:23:59

数组结构体总结(C语言)

定义:数组是有序的并且具有相同类型的数据的集合。一维数组    int a[10];    a[10]={0,1,2,3,4,5,6,7,8,9};错误。    int a[10]={0,1,2,3,4,

2015-06-11 20:23:46

c语言结构体数组指针

#include<stdio.h> #define N 3 struct student { long int num; char name[20]; float score[3]; float aver; }; int main() { void Input(struct student stu[]); stru

2015-06-11 20:23:45

C语言中scanf函数的实现

接上一篇C语言中可变参数函数实现原理,从理论上详细介绍了C语言中可变参数函数的实现,这一篇从minix内核源码中的scanf函数入手,学习C语言经典可变参数函数的实现过程 在scanf.c文件中,可以看到scanf函数,代码如下: #include <stdio.h> #include <stdarg.h> #

2015-06-11 20:21:35

C语言Scanf函数

  C语言的scanf函数 一、变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节)。相邻房间的房号是连续的,相邻字节的地址

2015-06-11 20:21:34

C语言scanf函数详细解释

函数名: scanf  功 能: 执行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内&#266

2015-06-11 20:21:28

约瑟夫环(C语言单项循环链表)

约瑟夫环(C语言单项循环链表) 约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从

2015-06-11 20:20:25

C语言 认识转换符 fscanf()用法

1 原型 int    fscanf(FILE *stream,  const  char* format, …) 功能:    从stream流中连续读取能够匹配format格式的字符到参数列表中对应的变量里。 参数:  &

2015-06-11 20:15:44

linux下C语言中的flock函数用法 .

  表头文件  #include<sys/file.h>   定义函数  int flock(int fd,int operation);   函数说明  flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。   参

2015-06-11 20:14:58

C语言之算法初步(汉诺塔--递归算法)

  个人觉得汉诺塔这个递归算法比电子老鼠的难了一些,不过一旦理解了也还是可以的,其实网上也有很多代码,可以直接参考。记得大一开始时就做过汉诺塔的习题,但是那时代码写得很长很长,也是不理解递归的结果。现在想起来汉诺塔的算法就3个步骤:第一,把a上的n-1个盘通过c移动到b。第二,把a上的最下面的盘移到c。第三,因为n-1个盘全在b上了,所以把b当做a重复以上步

2015-06-11 20:13:46

C语言单元测试

C语言单元测试  对于敏捷开发来说,单元测试必不可少,对于Java开发来说,JUnit非常好,对于C++开发,也有CPPUnit可供使用,而对于传统的C语言开发,就没有很好的工具可供使用,可以找到的有这么几个工具:  CuTest -- CuTest(Cute Test)是一个非常简单的C语言单元测试工具。在使用它的时候,

2015-06-11 20:13:10

【C语言】-->语法 fgets函数原理初探

问题来源于《 c与指针》 1.7章节中的一个问题: 问题:下面的代码可能出现什么问题?                while ( gets (input) != NULL){}首先我粗略的分析了一

2015-06-11 20:13:00

C语言文件操作之fgets()

    来说一说fgets(..)函数。     原型  char *  fgets(char * s, int n,FILE *stream);     参数:          s: 字符型指针,指向存储读入数据的缓冲区

2015-06-11 20:12:58

C语言结构体(struct)常见使用方法

今天复习一下struct,顺便挖掘一下以前没注意的小细节: 基本定义:结构体,通俗讲就像是打包封装,把一些变量有共同特征(比如同属于某一类事物的属性)的变量封装在内部,通过一定方法访问修改内部变量。 结构体定义: 第一种:只有结构体定义 struct stuff{ char job[20];

2015-06-11 20:12:06