C语言

 

1、链表是一种常见的重要的数据结构。它是动态的进行存储分配的一种结构。

2、处理动态链表所需的函数:

Malloc:在内存的动态存储区内分配一个长度为“size”的连续空间。此函数的值(即“返回值”)是指向分配域起始地址的指针。

Calloc:在内存的动态存储区内分配n个长度为“size”的连续空间。函数返回一个指向分配域的起始地址的指针。

Free:释放由P指向的内存区,是这部分内存区能被其它变量使用。P是指向最近一次调用calloc或malloc函数时返回的值。无返回值。

3、共同体(union):几个不同的变量共占同一段内存的结构。

4、结构体与共同体:

结构体变量所占内存长度是各成员占的长度之和。每个成员分别占有其自己的内存单元。

共同体变量所占的内存长度等于最长的成员的长度。

5、共同体特点:

A:同一个内存段可以存储几种不同类型的成员,但在每一瞬间只能存放其中一种,而不是几种。即,每一瞬间只有一个成员起作用,其他成员不起作用,即不是同时都存在和起作用。

B:共同体变量中其作用的成员是最后一次存放的成员。

C:共同体变量地址和它的各成员地址都是同一地址。

D:不能对共同体变量名赋值,也不能企图引用变量名来取得一个值,又不能在定义共同体变量时对它初始化。

E:不能把共同体变量作为函数参数,也不能使函数带回共同体变量,但可以使用指向共用体变量的指针(与结构体变量这种用法相似)。

F:共同体类型可以出现在结构体类型定义中,也可以定义共同体数组。反之,也可以。

6、所谓“枚举“是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。(enum)

7、c语言中,对枚举元素做常量处理,故称枚举常量。它们不是变量,不能对它们赋值。

8、枚举值的比较规则是按其在定义时的顺序号比较的。如果定义时没有人为定义则第一个枚举元素的值认作0.

9、一个整数不能直接赋给一个枚举变量。

10、Typedef可以声明各种类型名,但不能用来定义变量。用Typedef可以声明可以将数组类型与数组变量分离开来。,利用数组类型定义多个数组变量。同样适用于字符串类型、指针类型等。注意与#define(简单替换)的区别。

Typedef可以只是对已经存在的类型增加一个类型名,而没有创造新的类型。

11、位运算:

A:位运算符中除“~“外,均为二目(元)运算符。

B:运算量只能是整型或字符型的数据,不能为实型数据。&|^~<<>>:分别是:按位“与、或、异或、取反、左移、右移”

12、位段:C语言允许在一个结构体中以位单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段或位域”。利用位段能够用较少的位数存储数据。

A:位段成员的类型必须指定为unsigned或int类型。

B:一个位段必须存储在同一存储单元中,不能跨两个单元。如果第一个单元空间不能容纳下一个位段,则该空间不用,而从下一个单元起存放该位段。

13、打开一个文件时,通知编译系统三个信息:

A:需要打开的文件名;B:使用文件的方式(读还是写?)C:让那一个指针变量指向被打开的文件。

关于文件的处理指令:

Fopen:文件的打开;Fclose:文件的关闭;Fputc:把一个字符写到磁盘文件上;Fgetc:从指定的文件读入一个字符,该文件必须是以读或写的方式打开的。

Fread、Fwrite和Fputc、Fgetc的不同在于针对的对象,前者是针对数据块,而后者是针对一个字符。

Fprintf、Fscanf与printf、scanf相仿,不同的是后者的读写对象不是终端而是磁盘文件。

Getw、putw用来对磁盘读写一个字(整数)。

Puts、gets从指定文件读写一个字符串。

14、文件的定位:

Rewind:使位置指针重新返回文件的开头,没有返回值。

Fseek:是想改变文件的位置指针。

Ftell:得到流式文件的当前位置,用相对于文件开头的位移量来表示。

Ferror:检查输入输出函数调用中的错误。

Clearerr:使文件错误标志和文件结束标志置位0.

2008-4-10

A.M.

1、你犯了这样的错误吗?

A:忘记定义变量;

B:输入输出的数据类型与所用格式说明符不符;

C:未注意整型数据的数值范围;

D:在输入语句scanf中忘记使用变量地址符;

E:输入数据的格式与要求不符;(两次输入的数据应该用空格、Tab键、回车符来分隔);

F:把“=”(赋值运算符)作为“等于”运算符;

G:语句后面漏分号;

H:在不该加分号的地方加分号;

I:多应该有花括号的复合语句,忘记加花括号;

J:括号不配对;

K:在用标识符时,忘记了大写字母和小写字母的区别;

L:引用数组元素时,误用了圆括号;

M:在定义数组时,将定义的“元素个数”误认为是“可使用的最大下标值”;

N:对二维和多维数组的定义和引用的方法不对;

O:误以为数组名代表数组中全部元素;

P:混淆字符数组与字符指针的区别;

Q:在引用指针变量之前没有对它赋予确定的值;

R:switch语句的分支中漏写“break”语句;

S:混淆字符与字符串的表示形式;

T:使用自加(++)和自减(--)运算符时出的错误;

U:所调用的函数在调用语句之后才定义;

V:对函数声明与函数定义不匹配;

W:在需要加头文件时,没有用“#include”命令去包含头文件;

X:误认为形参值的改变会影响实参的值;

Y:函数的形参与实参类型不一致;

Z:不同类型的指针混用;

a:没有注意函数的求值顺序;

b:混淆变量名与指针变量的区别;

c:混淆结构体类型与结构体变量的区别,对一个结构体类型赋值;

d:使用文件时忘记打开,或打开方式与使用情况不匹配。

2、程序错误情况:语法错误、逻辑错误、运行错误。

3、程序调试步骤:a:先进性人工检查(静态检查);b:上机调试;c:语法错误纠正后,连接得到可执行的目标程序;d:在对比流程图纠正逻辑错误。

 

 

http://hi.baidu.com/c407jjw/blog/item/c461a4098cbc75ca3bc76382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值