(考研复试)C语言笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1:用高级语言编写的程序叫做源程序,然后用编译程序吧源程序翻译成二进制的目标程序,然后将该目标程序与系统函数库以及其他目标程序连接,形成可执行程序。

2:算法五个特点:确定性,有穷性,输入,输出,可行性。3:程序流程图、N-S盒图、伪代码

4:int 无论有符号无符号,都是16位

Short 无论是有符号还是无符号都是16位

Long 无论是有符号还是无符号都是32位

Float 32位 double 64位,long double 128位。

一个整型常量后面加u就是无符号,加l就是长整型

5:\t,\b退格,\r移到本行开头

6:‘0’48,‘A’65,‘a’97,差值32

7:级别char

8:(int)x+y 只是int化 x;

9:i+++j (i++)+j

10.1:float 32位,24位表示小数部分(其中包括了符号位),8位表示指数部分。

11:字符给整形赋值,如果是无符号字符型,赋值给整形就是占据整形低8位,高8位补0,如果是有符号字符型,如果是负号就补1,正好补0;

12:int short long 给char 就是把低8位给char

13:整形给long,同char给int一样,

14:putchar() Getchar()

Puts(),gets()

Printf(“%md”,d) %d,%c,%f,%ld,%o,%x,%u,%s

%d的原意是,按十进制整形数据输出

M表示输出字段的宽度,数字靠右拜访。如果数字太大,就输出数字,不管m.

Printf(“%m.ns”,d)

输出占m列,靠右端,只取字符串中的前n个字符,如果n大于m,则不管m

Printf(“%-m.ns”,d)

输出占m列,靠左端

Printf(“%m.nf”,d)

%f输出实数,包括单精度和双精度,只能输出六位小数, 输出n位小数

Printf(“%m.ne”,d)

N指的是输出小数的位数,

Scanf输入整形,分割可以用回车或者tab或者空格但是不能用逗号

Scanf(“%3d%3d”,&a,&b)输入123456.

系统自动把123赋值给a,456赋值给b;同理,如果系统输入abc三个字符,但是ch只能容纳一个,就吧a给ch,bc给后面的。

Scanf(“*%3d”)表示读入三位整数,但是不赋值。,

Scanf的字符串中,除了格式说明符以外还有其他的字符,输入的时候要在对应位输入这些字符。

Scanf(“%c%c%c”,&c1&c2&c3) 输入的abc,不应该是有空格的、

Scanf(“%s%s%s”,str1,str2,str3);

Scanf输入多个字符串的时候,用空格分隔

15:大小于的优先级高于等于。

16:优先级由低到高:赋值运算符,与和或,大小于,算术运算,非。

17:break是跳出循环,continue是跳出本次循环,

18:int a[3][4]={{1},{5},{9}},每行自补0

19:strcat(s1,s2)把s2连接到s1。

Strcpy(s1,s2)把s2复试到s1中,覆盖s1.注意这个复制的时候‘\0’也复制进去

Strncpy(s1,s2,n)把s2的前n个字符复试到s1中

Strlwr 大写转小写 strupr 小写转大写

20:数组做形参的时候,大小可以不指定,其实本质上还是把首地址给参数传递了

21:多维数组做函数参数,可以且只能省略第一维的大小。22:register变量,只有局部变量和形式参数可以作为寄存器变量,寄存器数目有限的,局部静态变量不能,局部静态

变量不能为寄存器变量

23:外部变量跨文件使用的方法是,在文件1中函数外定义外部变量 int A;在文件2中函数外声明 extern A

24:实际上,编译器遇到extern的时候,现在本文件找外部变量的定义,如果找到,就在本文件中扩展作用于,如果找不到,就在连接时从其他文件中找外部变量的定义,然后作用域就是跨文件的。

25:在文件中函数外部定义的变量,如果是一般的定义,int A,其他文件可以通过extern来引用这个变量,但是如果定义 static int A,则其他文件无法通过extern来引用。26:如果外部变量不在文件开头定义,则有效范围只在定义处到文件结束,如果定义之前的函数要引用外部变量,就要用extern声明。,如果外部变量定义在函数之前,就没有必要extern了、通常人们喜欢吧变量和函数的extern声明放在一个单独的文件中,即头文件。

声明:extern int A,B

定义:int A=13,B=8;

27:局部变量:自动,静态局部变量,寄存器。

全局变量:静态外部变量,外部变量

动态存储:自动,寄存器,形参

静态存储:静态局部,静态外部,外部变量

静态存储区:静态局部变量,静态外部变量,外部变量、

动态存储区:自动,形参

寄存区存储区:寄存器。

28:声明与定义,声明就是 int a,。

声明有两种,一种是int a是分配存储空间的,叫定义性声明(简称定义),一种是extern a 是不分配存储空间的,叫引用性声明,所以,声明包含定义,定义是分配存储空间的声明。

外部变量的定义只能有一次,它的位置在所有函数之外,而同一文件中的外部变量的声明可以有很多次,它的位置可以任意。系统根据外部变量的定义来分配存储空间,对外部变量的初始化只能在定义时进行,外部变量的声明,其作用是声明该变量是一个已在后面已定义的外部变量,仅仅是为了扩展该变量的作用范围。Static 也是一个声明的符号,但是必须加上变量类型。

29:define 后面不要加;

30:(*a)++不等于*a++,*a++等价于*(a++)

31:数组名a代表数组首元素地址,是一个指针常量,在运行期间固定不变,所以a是常量,a++无法实现。但是,实参数组代表一个固定的地址,可是形参不是一个固定的地址值,而是一个指针变量,可以再被赋值。

27:二维数组的指针中,取值的只有,*(a[1]+2)

*(*(a+1)+2),a[1][2]

相关文档
最新文档