考研复试C语言笔记.docx

上传人:b****2 文档编号:1911041 上传时间:2022-10-25 格式:DOCX 页数:11 大小:23.13KB
下载 相关 举报
考研复试C语言笔记.docx_第1页
第1页 / 共11页
考研复试C语言笔记.docx_第2页
第2页 / 共11页
考研复试C语言笔记.docx_第3页
第3页 / 共11页
考研复试C语言笔记.docx_第4页
第4页 / 共11页
考研复试C语言笔记.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

考研复试C语言笔记.docx

《考研复试C语言笔记.docx》由会员分享,可在线阅读,更多相关《考研复试C语言笔记.docx(11页珍藏版)》请在冰豆网上搜索。

考研复试C语言笔记.docx

考研复试C语言笔记

1:

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

2:

算法五个特点:

确定性,有穷性,输入,输出,可行性。

3:

程序流程图、N-S盒图、伪代码

4:

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

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

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

Float32位double64位,longdouble128位。

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

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

6:

‘O'48,‘A65,‘a'97,差值32

7:

级别char

8:

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

9:

i+++j(i++)+j

1O.1:

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

11:

字符给整形赋值,如果是无符号字符型,赋值给整形就

是占据整形低8位,高8位补0,如果是有符号字符型,如

果是负号就补1,正好补O;

12:

intshortlong给char就是把低8位给char

13:

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

14:

putchar()Getchar()

Puts(),gets()

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

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

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%3”d,&a,&b)输入123456.

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

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

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

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

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

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

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

16:

优先级由低到高:

赋值运算符,与和或,大小于,算术运算,非。

17:

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

inta[3][4]={{1},{5},{9}},每行自补0

19:

strcat(si,s2)把s2连接到si。

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

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

Strlwr大写转小写strupr小写转大写20:

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

2i:

多维数组做函数参数,可以且只能省略第一维的大小。

22:

register变量,只有局部变量和形式参数可以作为寄存器变量,寄存器数目有限的,局部静态变量不能,局部静态

变量不能为寄存器变量23:

外部变量跨文件使用的方法是,在文件1中函数外定义

外部变量intA;在文件2中函数外声明externA24:

实际上,编译器遇到extern的时候,现在本文件找外

部变量的定义,如果找到,就在本文件中扩展作用于,如果找不到,就在连接时从其他文件中找外部变量的定义,然后作用域就是跨文件的。

25:

在文件中函数外部定义的变量,如果是一般的定义,intA,其他文件可以通过extern来引用这个变量,但是如果定义staticintA,则其他文件无法通过extern来引用。

26:

如果外部变量不在文件开头定义,则有效范围只在定义处到文件结束,如果定义之前的函数要引用外部变量,就要用extern声明。

如果外部变量定义在函数之前,就没有必要extern了、通常人们喜欢吧变量和函数的extern声明放在一个单独的文件中,即头文件。

声明:

externintA,B

定义:

intA=13,B=8;27:

局部变量:

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

全局变量:

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

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

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

静态局部变量,静态外部变量,外部变量、

动态存储区:

自动,形参

寄存区存储区:

寄存器。

28:

声明与定义,声明就是inta,。

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

外部变量的定义只能有一次,它的位置在所有函数之外,而同一文件中的外部变量的声明可以有很多次,它的位置可以任意。

系统根据外部变量的定义来分配存储空间,对外部变量的初始化只能在定义时进行,外部变量的声明,其作用是声明该变量是一个已在后面已定义的外部变量,仅仅是为了扩展该变量的作用范围。

Static也是一个声明的符号,但是必须加上变量类型。

29:

define后面不要加;

30:

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

31:

数组名a代表数组首元素地址,是一个指针常量,在运行期间固定不变,所以a是常量,a++无法实现。

但是,实

参数组代表一个固定的地址,可是形参不是一个固定的地址值,而是一个指针变量,可以再被赋值。

27:

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

32:

chara[];A=”Ilove”错误

char*a;a=”ILOVE”对即,数组可以再定义的时候赋值,不能再赋值语句中赋值。

同样,这里的数组名也是不能改变的。

但是用指针定义的数组就可以。

33:

int(*p)(intint)指向函数的指针

Int*p(intint)返回值的指针的函数

int(*p)[4],表示一个指向4个整型数组的指针

int*p[4],表示一个含有4个整型指针的数组

34:

对于指向函数的指针,p++等无意义35:

指向指针的指针。

Char*name={“”,””,””,””};

Char**p;

P=name+I;

Printf(*p)

36:

p1指向a[1],p2指向a[3],p2-p1=2,但是p1+p2无意义。

37:

structstudent

{intnum;

Charc;

}stu[3]={{1,'c'},{2,'c'},{3,'c'}}

38:

(*p).num等价于p->num

39:

结构体在定义的时候,不能studentI,j,k;应该

StructstudentI,j,k;

40:

void*malloc(intsize)

41:

共用体所占内存等于最长成员的长度。

42:

枚举类型:

Enumweekday{sum,mon,tue,wed,thu,fti,stu}

EnumweekdayI,j,k;

定义时候自动赋值0-6;printf(“%d”,sum)输出0也可以强制赋值

Enumweekday{sum=7,mon,tue,wed,thu,fti,stu}

则mon自动为8,tue自动为9

但是一个整数不能在定义外直接赋值枚举,

i=7;是错的,应该要i=(enumweekday)2,相当于i=tue;

43:

typedefstruct{intI,intj,intk}NUM

NUMsum即可,不用struct

TypedefintNUM[100];意思是NUM表示一个长度为100的整形数组,到时候NUMn就表示,n为一个长度为100的整型数组。

Typedefint*NUM;意思是NUM表示一个整形指针,到时候NUMn,就表示,n为一个整型指针。

NUMa[10]表示a为一个整形指针数组。

Typedefint(*NUM();意思是NUM表示一个指向函数指针,至U时候NUMn就表示,n为一个指向函数指针。

44:

位与,可以清零,可以取中间某位,45:

异或:

特定位翻转(即与11111111异或),

保留原值(即与00000000异或),

交换两个值不用临时变量A=aAb;b=bAa;a=aAb;

46:

右移特殊,如果为无符号,就左边补0,如果有,就正

数补0,负数补1;

47:

位段:

Structak

{unsigneda:

2;(必须是unsigned)

Unsignedb:

3;

Unsignedc:

4;

Into;

Unsignedd:

5;

Unsigned:

0;

Unsignede:

6;

IntI;}

Structakdata;

一个abc占9位,那个i从第三个字节开始算,d占5位,但是Unsigned:

0;表示下一个位段从下一个单元开始放,

e占6位,从下一个单元开始放i;所以data—共占用8个

字节

如果赋值data.a=9;就会自动把8的低2位给data.a,a里面就是01,再Printf(“%d”,data.a)输出148:

输入一个字符串的时候,用回车结束,但是这个回车也会被接受,要用一个getchar来收下回车符,比如Scanf(“%s”,)

Ch=getchar();

49:

fp=fopen(“a1”,”r”)打开失败则返回NULLfclose(fp);成功返回0,失败返回EOFfputc(ch,fp)把字符ch写到fp中,失败返回EOFch=fgetc(fp)从指定文件读入一个字符,失败返回EOFfeof(fp)判断文件是否结束,fread(buffer,size,count,fp)从buffer数组中读入count个数字进fp文件中,size表示数组中每个元素占字节数。

fwrite(buffer,size,count,fp)

fprintf(fp,”%d”,d)把整型变量d输出到fp文件中fprintf(fp,”%d”,&d),从磁盘文件中读入一个整形putw(10,fp)把整数10输出到fp中i=getw(fp)

fgets(str,n,fp)从fp文件中读n-1个字符,放入str中

fputs(str,fp)把

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1