C语言知识总结c语言概要
第一章、概述
1、c语言的基本知识
1.1、c语言的执行步骤
编辑-程序代码的录入,生成源程序*.c
编译-语法分析查错 , 翻译生成目标程序*.obj
(语法或逻辑错误,从第一个开始改,变量定义,语句格式 , 表达式格式等)
链接-与其他目标程序或库链接装配,生成可执行程序*.exe
执行
1.2、main函数的基本知识
main()函数的位置
c程序总是从main( )函数开始执行
一个c程序可以包含一个主函数,即main()函数;也可以包含一个main()函数和若干其它函数
1.3、c程序的结构
函数与主函数
程序由一个或多个函数组成
必须有一个且只能有一个主函数main()
程序执行从main开始,在main中结束,其他函数通过嵌套调用得以执行
程序语句
C程序由语句组成
用“;”作为语句终止符
注释
//
或
/**/ 为注释 , 不能嵌套
不产生编译代码
1.4、c 程序书写的规则
习惯用小写字母 , 大小写敏感
不使用行号,无程序行概念:通常一个语句占一行
可使用空行和空格
常用锯齿形的书写格式;同一层次结构的语句上下对齐 。
第二章、基本数据类型与运算
2.1、c程序的数据类型
注意类型和变量含义的不同(类型是固定好的名字,变量是自己起的名字)
变量占用的存储空间
数据类型
基本类型:整型、字符型、浮点型(单精度型,双精度型)
构造类型:数组类型、结构体类型
指针类型
空类型
【c语言课程函数重点知识 c语言函数课件】注意基本类型赋初值的方式
基本数据类型的表示形式
整形数据
十进制:以非0数字开头,如:123,-9,0
八进制;以0数字开头,如:0123,067
十六进制:以0x开头,如:0x123,0xff
实型数据
十进制:必须带小数点,如:123.0,-9.0
指数形式;如:1.23E3,0.9e-2,5e2
字符型数据
普通字符:如:’a’,’2’,’H’,’#’
转义字符:如:’\n’,’\167’,’\xlf,’\\’
(实现几列的对齐:指定宽度 。如0\‘\t’制表位)
(字符串长度 。“abc\n\t\\”strlen6;sizeof7)
基本数据类型的存储长度
整型
Int 字节数 2 位数 16 数的表示范围 -32768—32767
Short216-32768—32767
Long432-2147483648—2147483647
实型
Float4323.4e-38---3.4e38
Double8641.7e-308---1.7e308
字符型
Char18-128----127
2.2、标识符命名规则
C语言标志符命名规则
标识符有数字,字母 , 下划线组成
标识符的首字符必须为字母和下划线
标识符不能为c语言的保留字(关键字)
如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
算术运算符-*/%
关系运算符====!=
逻辑运算符 !||
位运算符~|^
赋值运算符= 及其扩展赋值运算符
条件运算符?:
逗号运算符,
指针运算符*
求字节数运算符sizeof
强制类型转换运算符(类型)
分量运算符.-
下标运算符[ ]
其他如函数调用运算符()
运算符的优先级
由高到低:单目运算符 , 算数运算符,关系运算符,赋值运算符
说明:单目运算符:自增运算符,自减运算符,类型装换运算符 。结合方向:自右至左
如:--I先—i. 。
算术运算 结合方向自左至右
2.3基本运算和表达式
关系表达式和逻辑表达式
(ab)(xy)(a==b)||(x==y)!=a||(ab)
Ab.a为0.不执行b
A||b a为1.不执行b
在 c 中逻辑运算结果:1代表“真”,0代表“假”;
判断一个表达式是否真:0代表“假”,非0代表“真”
条件表达式逗号表达式
如:k=5,k
逗号值为5;k为6.
表达式1?表达式2 :表达式3
K=56 ? 1 : 0
2.4、混合运算的数据类型转换
2/3 0.5双精度浮点型
第三章、顺序结构程序设计
3.1、c语句的分类
简单语句
表达式语句表达式 分号
空语句只有分号的语句
复合语句用花括号将若干语句括起来
流程控制语句
选择语句if,switch
循环语句while,dowhile,for
转移语句break,continue,returngoto
3.2、格式输入函数scanf
一般形式:scanf(“格式控制字符串“,地址列表);
使用scanf函数时,需要注意:
格式字符的个数必须与输入项的个数相同,数据类型必须一一对应,非格式字符串(说明性的)要原封不动的输入 。
输入实行数据时,可以不带小数点,即按整型数据输入
数值型数据与字符或字符串混合输入时 , 需要注意输入方式 。
3.3、格式输出函数printf
Printf(“格式控制字符串“ , 输出列表);
指定输出格式,由格式字符串和非格式字符串两种组成,非格式字符串照原样输出 。
%[标志][输出最小宽度][.精度][长度]类型
标志:- 左对齐;右对齐;
%f, %d, %c, %s
3.4、其他输入输出函数
Putchargetcharputsgets
第四章、选择结构程序设计
If选择结构
单分支
If(表达式)
语句
双分支
If(表达式)
语句1
Else
语句2
多分支
If (表达式1)
语句1
Else if(表达式2)
语句2
。。。
Else if(表达式m)
语句m
Else
语句n
Switch(表达式)
{
Case 常量表达式1:语句1;break;
Case 常量表达式2:语句2;break;
。。。
Case 常量表达式m:语句m;break;
Default:语句n;break;
}
注意break的使用
第五章、循环结构程序设计
循环三要素
初始条件 ;终止条件 ;在初始条件和终止条件间反复做某件事情(循环体)
While(表达式)
语句
Do
语句
While(表达式);
For(循环体变量赋初值;循环条件;循环变量增量)
( for() ;// ; 进行时间延迟 。在信息交换等时用 。如for(i=0,i100);互相通讯的时间延迟 。Delay)
Break语句 :不能用于循环语句和switch语句之外的任何其他语句;跳出循环 。
Continue语句 :跳过循环体中剩余的语句而强行执行下一次循环;跳出本次循环 。
第六章、函数与编译预处理
6.1、函数的定义和调用
类型标识符函数名 (形式参数列表)
{声明部分
语句
}
例:
Intmax (int x,int y)
{int z;brZ=xy?x:y;brReturn(z);}
6.2、局部变量和全局变量
注意函数中静态变量的定义和使用
6.3、变量的存储类型
局部变量的存储类型
自动变量(auto)动态存储
局部静态变量(static) 静态存储
寄存器变量(register)静态存储
全局变量的存储类型
自动变量(auto) 动态存储
外部变量 (extern) 静态存储
全局静态变量(static )静态存储
Extern 外部引用
Static 不能用extern 引用 。
第七章、数组
7.1、一维数组的定义和使用
特别需要注意循环体的初值,终止条件
例:
Main()
{
Int I,a[10];
For(i=0;i=9;i)
A=I;
For(i=9;i=0;i--)
Printf(“%d”,a);
}
注意下标问题
7.2、二维数组的定义和使用
二维数组的初始化
例如:
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
例如:int a[3][3]={{1},{2},{3}};
是对每一行的第一列元素赋值,未赋值的元素取0
7.3、字符数组和 字符串
字符串用字符数组来处理,结束标志符 ‘\0’
如:char c[ ]={“I am happy”};
用字符串常量使字符数组初值化
Char c[ ]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’,’\0’};
第八章、指针
8.1、地址和指针的概念
Int I;
Int *i_point;
8.2、指针变量和变量的地址
操作符:*
8.3、指针和一维数组
若有定义
Int a[10];
Int *p=a;
分析下面表达式的含义:
A,a,
*(a i),a I,
*(p i),p i
A=*(a i)=*(P i)
a=a i=p i
8.4、指针与字符串
Main()
{
Charstring[ ]=”I love china!”;
Printf(“%s\n”,string);
}
Main()
{char*string=”I love china!”;
Printf(“%s\n”,string);
}
8.5、指针变量作为函数参数
形参的定义方式;实参的形式;参数的传递方式 。
第九章、结构体
9.1、结构体类型和变量的定义
Struct 结构体名
{成员列表};
Struct student
{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};
Stuct student
{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};
Struct student stu1, stu2;
9.2、结构体变量的引用
一般形式为:
结构体变量名.成员名
9.3、结构体数组
结构体数组结构体数组元素.成员名
指向结构体的指针变量
(*p).成员名
p-成员名
其他
Strcpy(字符数组1,字符串2)
Strcat(字符数组1,字符数组2)
Strcmp(字符串1,字符串2)
Strlen(字符数组)
C语言程序设计这门课程第八章函数进阶(中级)的知识点有哪些?C语言程序设计这门课第八章函数进阶(中级)的知识点包含【中级】第48讲-参数的2种传递方式,【中级】第49讲-编写一个strlwr函数,【中级】第50讲-数组作为函数参数,【中级】第51讲-指针数组作为函数参数,【中级】第52讲-指向指针的指针作为函数参数,【中级】第53讲-结构体作为函数参数,【中级】第54讲-函数的作用范围,【中级】第55讲-变量的作用范围, 。
c语言常用函数有哪些?主要掌握的要点是什么函数1 。absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上 , sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中 。参数:drive=0对应A盘,drive=1对应B盘 。返回值:0:成功;-1:失败 。头文件:dos.h函数2 。abswrite()写磁盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer)drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址 。功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行 。返回值:0:成功;-1:失败 。头文件:dos.h函数3 。atof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s所指向的字符串转换成double类型 。s格式为:符号 数字.数字 E符号 数字返回值:字符串的转换值 。头文件:math.h、stdlib.h函数4 。atoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型 。s格式为:符号 数字返回值:字符串的转换值 。若出错则返回0 。头文件:stdlib.h函数5 。atol()将字符串转换成长整型数的函数原形:long atol(const char *s)功能:把s所指向的字符串转换成long int类型 。s格式为:符号 数字返回值:字符串的转换值 。若出错则返回0 。头文件:stdlib.h函数6 。bcd()把一个数转换成对应的BCD码的函数原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意:BCD码的精度可达17位 。参数decimals是可选的,用来指定转换后小数点后的位数 。头文件:bcd.h函数7 。bdos()原形∶int bdos(int fnum,unsigned dx,unsigned al)其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;功能∶DOS系统调用(INT21H)返回值∶AX中的值函数8 。biosdisk()调用BIOS磁盘驱动程序函数原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中断0x13,直接调用BIOS进行磁盘操作参数:(1)cmd:2-数据以每扇区512字节的格式读入buffer,起始扇区由head、track和sector定,扇区数由nsects定 。3-将buffer中的数据按每扇区512字节写入磁盘 。4-对扇区进行数据校验 。6-格式化一个磁盘并对化扇区设置化标志 。8-返回当前驱动器参数在buffer的前4个字节中 。10-长读,每扇区读入512字节加上额外的4个字节 。11-长写,每扇区写入512字节加上额外的4个字节 。(2)drive:0-第一个软驱;1-第二个软驱;0x80-第一个硬驱(3)head:磁头(4)track:磁道(5)sector:扇区(6)nsects:扇区数(7)buffer:数据缓冲区 , 定义为unsigned char buffer[];返回值:0x00-操作成功0x01-错误命令0x03-企图写具有写保护的磁盘0x07-驱动器参数设置错误0x10-磁盘读/CRC/ECC错误头文件:bios.h注:对于硬盘主引导记录扇区head=0,track=0,sector=1函数9 。biosprint()调用BIOS打印机I/O接口的函数原形:int biosprint(int cmd,int abyte,int port)功能:通过BIOS中断0x17在由参数port指定的打印机上完成各种打印机功能 。port=0(LPT1)=1(LPT2);cmd=0(打印字符abyte)1(初始化打印机端口)2(读打印机状态);abyte=0-255;返回值:打印机状态位0(设备超时);位3(I/O出错);位4(打印机已选择);位5(没纸);位6(打印机确认);位7(不忙)头文件:bios.h函数10 。calloc()分配内存函数原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一块内存,将该内存的内容全部清0 。返回值:返回指向新分配内存的指针 。空间不够则返回NULL 。头文件:stdlib.h、calloc.h函数11 。ceil()原形∶double ceil(double num)功能∶求不小于num的最小双精度整数头文件∶math.h函数12 。cgets()读字符串函数原形:char *cgets(char *str)功能:从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中 。注意:在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数 。实际字符串内容从str[2]开始 , 以空字符(\0)结尾 。返回值:指向str[2]的指针 。头文件:conio.h函数13 。chdir()改变当前目录的函数原形:int chdir(const char *path)功能:把由path指定的目录改为当前目录 。path参数中可以指定驱动器号,如"a:\\ddd", 但只是改变该驱动器上的当前目录 , 对当前活动驱动器上的当前目录无影响 。返回值:0(成功);-1(失败)头文件:dir.h函数14 。_chmod()改变文件存取权限的函数原形:int _chmod(const char *path,int func[,int attrib])功能:读取(func=0时)或设置(func=1时)DOS文件属性 。attrib=FA_RDONLY 只读attrib=FA_HIDDEN 隐藏文件attrib=FA_SYSTEM 系统文件attrib=FA_LABLE 卷标attrib=FA_DIREC 目录attrib=FA_ARCH 档案 返回值:失败时返回-1 。成功时返回文件的属性字节,如果 返回值FA_RDONLY 不等于0,则文件是只读文件;......头文件:io.h、dos.h函数15 。chmod()改变文件存取权限的函数原形:int chmod(const char *path,int amode)功能:根据amode的值,设置由path所指文件的存取权限 。amode的值存取权限S_IWRITE允许写S_IREAD允许读(只读)S_IREAD|S_IWRITE可读可写 返回值:0(成功);-1(失败)头文件:io.h、sys\stat.h函数16 。clock()原形∶long clock(void)功能∶测得从程序开始到调用处处理机所用的时间头文件∶time.h函数17 。close()关闭文件函数原形:int close(int handle)功能:关闭由文件句柄所指向的文件 , 句柄是调用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时得到的 。该函数并不在文件末尾写一个Ctrl-Z字符 , 如果想用该字符结束文件,必须显式地给出该字符 。返回值:0(成功);-1(失败)头文件:io.h函数18 。closegraph()关闭图形函数原形:void far closegraph(void)功能:释放图形系统分配的所有内存,将屏幕恢复到调用initgraph之前的模式 。头文件:graphics.h函数19 。cos()原形∶double cos(double arg)功能∶计算arg(弧度)的余弦值头文件∶math.h函数20 。ctrlbrk()设置ctrl-break处理程序的函数原形:void ctrlbrk(int(*handle)(void))功能:修改中断向量0x23,使用新的ctrl-break中断处理函数 。用法:ctrlbrk(函数名);先定义函数:int 函数名(void){...}头文件:dos.h函数21 。delay()暂停函数原形:void delay(unsigned milliseconds)功能:暂停当前所执行的程序milliseconds毫秒 。头文件:dos.h函数22 。disable()屏蔽中断的宏原形:void disble(void)功能:屏蔽中断,只允许从外部设备来的不可屏蔽中断(NMI) 。头文件:dos.h函数23 。enable()开硬件中断的宏原形:void enable(void)功能:开放中断,允许接受任何设备产生的中断 。头文件:dos.h函数24 。exec()加载并运行其它程序的函数族execl(),execle(),execlp(),execlpe(),execv(),execve(),execvp(),execvpe()原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execv(char *path,char *argv[])int execve(char *path,char *argv[],char **env)int execvp(char *path,char *argv[])int execvpe(char *path,char *argv[],char **env)其中 , path是调用的子程序的文件名,在exec后面的后缀具有某种功能:p表示函数能够在由DOS环境变量PATH的目录中搜索子进程文件,如果path中未指明文件所在目录,函数将首先在当前目录中找 , 然后在DOS环境变量指定的目录中找 。l表示参数指针(arg0,...,argn)按单独参数传送 。当预先知道要传送的参数个数时,通常用带后缀l的函数 。v表示参数指针(arg0,...,argn)按指针数组传送 。当要传送的参数可变时,使用带后缀v的函数 。e表示参数env可以传送到子进程 , 该函数可用来修改子进程的环境 。若无e后缀,子进程将继承父进程的环境 。注意:arg0 ... argn,或arg[0] ... arg[n]的总长度必需小于128字节 。当调用exec函数时,原先已经打开的文件在子进程中仍然是打开的 。功能:加载并运行其它程序,调用时必须有足够的内存空间用于加载和执行子程序,子程序将覆盖父程序 。头文件:process.h 函数25 。farcalloc()从远堆中分配内存的函数原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)功能:从远堆中为包含nunits个元素的数组分配内存 , 每一区unitsz字节长 。用法:fptr=farcalloc(数目,sizeof(char));先定义:char far *fptr;注意:所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块 。微模式不能用 。返回值:返回指向新分配块的指针,若内存不够,则返回NULL 。头文件:alloc.h函数26 。farfree()从远堆中释放一块已分配内存的函数原形:void farfree(void far *block)头文件:alloc.h函数27 。farmalloc()从远堆中分配内存的函数原形:void far *farmalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字节数);先定义char far *fptr;功能:从远堆中分配长nbytes字节的内存 。注意:所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块 。微模式不能用 。返回值:返回指向新分配内存的指针,若内存不够,则返回NULL 。头文件:alloc.h函数28 。farrealloc()调整远堆中已分配块的函数原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回调整后的新内存地址 。若不能重新分配,则返回NULL 。头文件:alloc.h函数29 。fclose()关闭一个流函数原形:int fclose(FILE *stream)使用方式:fclose(文件指针名);其中文件指针名=fopen();功能:关闭指定的流,关闭前清除所有与stream相联的缓冲区,释放系统分配的缓冲区,但由setbuf设置的缓冲区不能自动释放 。返回值:0(成功);EOF(失败)头文件:stdio.h函数30 。fcloseall()关闭打开的流的函数原形:int fcloseall(void)功能:关闭所有打开的流 , 由stdin、stdout、stdprn、stderr和stdaux设置的流除外 。返回值:关闭流的总数 。如果发现错误则返回EOF 。头文件:stdio.h 函数31 。feof()检查文件是否结束的函数原形∶int feof(FILE *fp)返回值∶文件结束返回非0值 , 否则返回0 。头文件∶stdio.h函数32 。fgets()从流中读取一字符串的函数原形:char *fgets(char s[],int n,FILE *stream)使用格式:fgets(字符串指针,字符个数,文件指针)功能:从输入流stream中读入字符存到s串中 。当读了n-1个字符或遇到换行符时,函数停止读过程 。fgets在s串尾保留换行字符 。读入的最后一个字符后面加一个空字符 。返回值:成功时返回字符串参数s,出错或遇到文件结束时,返回NULL 。头文件:stdio.h函数33 。findfirst()函数和findnext()函数调用方式:整形数=findfirst(文件名,结构变量名,属性常数组合(如0x26));其中定义struct ffblk 结构变量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;//要检索的文件名struct ffblk{char ff_reserved[21];char ff_attrib;//被检索的文件属性unsigned ff_ftime;//最后修改的时间//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)unsigned ff_fdate;//最后修改的日期//(0-4位:日;5-8位:月;9-15位:年减1980)long ff_fsize;//文件大小char ff_name[13];//组名}*buffer;int attr;//要检索的文件属性功能:检索由path和attr指定的文件,把结果返回到buffer 。findfirst返回关于第一个指定文件的信息,findnext继续检索 。返回值:0(检索成功),-1(没有找到指定的文件)属性常数:FA_NORMAL(0x00)含意:Normal file, no attributesFA_RDONLY(0x01)含意:只读FA_HIDDEN(0x02)含意:隐含文件FA_SYSTEM(0x04)含意:系统文件FA_LABEL(0x08)含意:卷标FA_DIREC(0x10)含意:子目录FA_ARCH(0x20)含意:修改的文件Archive头文件:dir.h(dos.h)函数34 。floodfill()填充区域的函数原形:void far floodfill(int x,int y,int border)功能:在图形设备上用颜色border围起来的区域将用当前填充颜色填充 。(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;若起点在封闭区域外,则区域外被填充 。头文件:graphics.h函数35 。floor()原形∶double floor(double num)功能∶求不大于num的最大双精度整数头文件∶math.h函数36 。fnmerge()建立文件路径函数原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:\dir\name.ext , 放在path头文件:dir.h函数37 。fnsplit()分解完整的路径名函数原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路径path分成4个部分存放 。其中drive中有冒号;dir中有开始和结尾的反斜杠;ext包括开始圆点返回值:如果有扩展名,则 返回值EXTENSION!=0如果有文件名,则 返回值FILENAME!=0如果有目录名,则 返回值DIRECTORY!=0如果有驱动器号,则返回值DIRVE!=0头文件:dir.h 函数38 。fopen()打开一个流函数原形:FILE *fopen(const char *filename,const char *mode)功能:打开用filename指定的文件,并使其与一个流相联 。使用方式:文件指针名=fopen("文件名","处理方式")”处理方式”?。?"rt"打开一个文本文件,只能读 。"wt"生成一个文本文件,只能写 。若文件存在则被重写 。"at"打开一个文本文件,只能在文件尾部添加 。"rb"打开一个二进制文件,只能读 。"wb"生成一个二进制文件,只能写 。"ab"打开一个二进制文件,只能在文件尾部添加 。"rt "打开一个文本文件,可读可写 。"wt "生成一个文本文件,可读可写 。"at "打开一个文本文件,可读可添加 。"rb "打开一个二进制文件,可读可写 。"wb "生成一个二进制文件,可读可写 。"ab "打开一个二进制文件,可读可添加 。返回值:指明流的指针(成功时)或NULL(失败时)注:需先定义 FILE *文件指针名;"文件名"若用 argv[1]代替,则可使用命令行形式指定文件名函数39 。FP_OFF()获取远地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和设置远指针*p的偏移量返回值:偏移量头文件:dos.h 函数40 。fprintf()传送输出到一个流中的函数原形:int fprintf(FILE *stream,const char *format[,argument,...])功能:①向文件指针指向的文件输出ASCⅡ代码②向显示器输出错误信息 使用形式:①fprintf(文件指针,"输出格式",输出项系列);②fprintf(stderr,"错误信息");使用实例:fprintf(stream,"%d %c %f",i,c,f);其中定义FILE *stream;int i; char c; float f;返回值:成功则返回输出的字节数,错误则返回EOF 。头文件:stdio.h函数41 。FP_SEG()获取远地址段值的宏原形:unsigned FP_SEG(void far *p)功能:取得和设置远指针*p段地址值返回值:段地址值头文件:dos.hfree()释放已分配内存的函数原形:void free(void *block)功能:释放由calloc、malloc、realloc函数调用所分配的内存 。头文件:stdlib.h、alloc.h函数42 。fscanf()格式化输入函数原形:int fscanf(FILE *stream,const char *format[,address,...])功能:从一个流中扫描输入字段,一次扫描一个字符,每个输入字段根据format所指格式指示符格式化后,把输入字段存在format后面由地址参数给出的位置上 。使用格式:fscanf(文件指针,"输入格式",输入项系列);使用实例:fscanf(fp,"%d",b);从fp指向的文件中读取十进制整数 (ASCⅡ形式)赋予变量b注:当文件指针是stdin时,与scanf功能完全相同头文件:stdio.h函数43 。fseek()移动文件指针函数原形:int fseek(FILE *stream,long offset,int whence)作用:强制一个文件的位置指针指向某个特定的位置(甚至超出文件的尾部) 。使用格式:fseek(*文件指针,偏移(长整型),起点)定义 FILE *文件指针名;"起点"取值:0或SEEK_SET(表示文件开头)1或SEEK_CUR(表示当前位置)2或SEEK_END(表示文件尾端)返回值:0表示成功,非0值表示失败头文件:stdio.h函数44 。fwrite()把参数写入流中的函数原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)功能:附加n个数据项(每个数据项长度为size个字节)到指定的输出文件后,数据从ptr处开始添加 。ptr是指向任意对象的指针 。返回值:调用成功时返回实际写的数据项数,出错时返回一短整形数值 。头文件:stdio.h例:fwrite(s,sizeof(s),1,stream);其中s是一结构变量,stream=fopen();函数45 。gcvt()把双精度数转化成字符串的函数原形∶char*gcvt(value,ndigit,buf)其中∶double value是待转化数int ndigit是转化长度char *buf保存转化后的地址头文件∶stdlib.h函数46 。geninterrupt()执行中断函数原形:void geninterrupt(int n)调用方式:geninterrupt(软中断号)功能:产生一个8086软中断注:需先向寄存器传递入口信息(用伪变量)例如伪变量=要赋的值(入口信息);调用geninterrupt()函数后得接受出口信息例如变量名=伪变量伪变量∶Turbo C 允许使用伪变量直接访问相应的8086寄存器 。伪变量的类型有两种 。① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH函数47 。getc()从流中取字符的宏原形:int getc(FILE *stream)功能:返回输入流stream中一个字符,移动文件指针使之指向下一个字符 。使用格式:字符变量=getc(文件指针)(正常情况下读取到代码值,读到文件尾或出错时返回EOF)注:需定义 char 字符变量;FILE *文件指针;头文件:stdio.h函数48 。getch()从键盘无回显地读取一字符的函数功能:将键盘上输入的单个字符的值(ASCⅡ 码)立刻赋给字符型变量调用方式:字符形变量=getch()注:需先定义 char 字符形变量;头文件:conio.h函数49 。getchar()从stdin流中读取一个字符的函数功能:将键盘上输入的单个字符的值(ASCⅡ 码)回车后赋给字符型变量调用方式:字符型变量=getchar()注:需先定义 char 字符型变量;头文件:stdio.h函数50 。getcurdir()读取指定驱动器的当前目录的函数原形:int getcurdir(int drive,char directory)drive=0(缺省);1(A驱动器);...directory用来存放目录名,不包括驱动器名,不以反斜杠开始 。返回值:0(调用成功);1(出错)头文件:dir.h函数61 。getcwd()读取当前目录的函数原形:char *getcwd(char *buf,int buflen)功能:读取当前目录的完整路径名(包括驱动器名) , 最长为buflen个字节 , 存放在buf中 。如果buf为NULL , 函数将分配一个buflen字节长的缓冲区,以后可将本函数的返回值作为free函数的参数来释放该缓冲区 。返回值:若buf非空 , 调用成功返回buf,出错返回NULL;若buf为NULL,返回指向已经分配的内存缓冲区地址 。头文件:dir.h函数62 。getdate()读取系统日期函数原形:void getdate(pdate)struct date{int da_year;int da_day;int da_mon;};struct date *pdate;头文件:dos.h函数63 。getdfree()读取磁盘空闲空间的函数原形:void getdfree(drive,dtable)unsigned char drive;驱动器号(0-当前;1-A;2-B;...)struct dfree{unsigned df_avail;//可使用的簇数unsigned df_total;//每个驱动器的簇数unsigned df_bsec;//每个扇区的字节数unsigned df_sclus;//每个簇的扇区数(出错时返回0xffff)}*dtable;功能:把由drive指定的关于驱动器的信息返回到dtable函数64 。getdisk()读取当前磁盘驱动器号函数原形:int getdisk(void)功能:取得当前驱动器号(0=A;1=B;....)头文件:dir.h函数65 。getenv()读取环境变量的当前值的函数原形:char *getenv(const char *name)用法:s=getenv("环境变量名");需先定义char *s;功能:返回一给定的环境变量值,环境变量名可大写或小写 。如果指定的变量在环境中未定义,则返回一空串 。头文件:stdlib.h函数66 。getimage()将指定区域的位图象存入内存的函数原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)功能:将图像(矩形区域)从屏幕拷贝到内存,*bitmap指向内存中存放图像的区域 。该区域的前两个字节用于存放矩形的高和宽 。头文件:graphics.h函数67 。getmaxx()返回屏幕上最大的X坐标值的函数原形:int far getmaxx(void)功能:返回当前图形驱动程序和图形模式下最大的X坐标值 。头文件:graphics.h函数68 。getmaxy()返回屏幕上最大的Y坐标值的函数原形:int far getmaxy(void)功能:返回当前图形驱动程序和图形模式下最大的Y坐标值 。头文件:graphics.h函数69 。getpixel()读取像素颜色的函数原形:unsigned far getpixel(int x,int y)头文件:graphics.h函数70 。getpsp()原形∶unsigned getpsp(void)功能∶使用DOS系统调用0x62,返回程序段前缀(PSP)的段地址头文件∶dos.h函数71 。gets()从标准输入流stdio中读取一字符串的函数功能:将键盘上输入的字符串立刻赋予字符串变量并显示出来调用方式:gets(字符串变量名)注:需定义 char *字符串变量名;函数72 。gettime()读取系统时间的函数原形:void gettime(ptime)struct time{unsigned char ti_min;unsigned char ti_hour;unsigned char ti_hund;//百分之一秒unsigned char ti_sec;};struct time *ptime;函数73 。getvect()读取中断向量函数原形:void interrupt(*getvect(int interruptno))功能:读入由interruptno(0-255之间)所指定的中断向量值,并把该中断向量值作为中断函数的远指针返回 。返回值:指定中断向量的当前4字节值 。头文件:dos.h使用实例:oldfunc=getvect(5);先定义void interrupt(*oldfunc)();用后恢复setvect(5,oldfunc);函数74 。getx()返回当前图形方式下位置的X坐标值的函数原形:int far getx(void);头文件:graphics.h函数75 。gety()返回当前图形方式下位置的Y坐标值的函数原形:int far gety(void);头文件:graphics.h函数76 。imagesize()返回保存图像缓冲区大小的函数原形:unsigned far imagesize(int left,int top,int right,int bottom)功能:确定保存图像所需的存储区大小 。返回值:返回存储区的大小(字节),若所需内存大于等于64K-1字节,则返回0xffff(-1) 。头文件:graphics.h函数77 。initgraph()显示模式控制函数(初始化图形系统函数)功能:把图形适配器设置为一种图形模式,将选择的图形驱动程序(在BGI文件中)装入到内存 。调用方式: void far initgraph(int far *driver,int far *mode,char far*path) 其中: *driver可以是数值(0-10),也可是符号值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270) 。*mode参数从图形系统为各种常用的图形适配器设置的图形模式中(CGAC0、...、IBM8514HI--见头文件graphics.h)选取 。常用的有:VGAMED或1
C语言基础知识点C语言基础知识点集锦
【知识点1】C程序
C语言程序结构有三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)
【知识点2】main函数
每个C语言程序中main 函数是有且只有一个 。读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择) 。
【知识点3】存储形式
计算机的数据在电脑中是以二进制的形式保存 。最低的存储单元是bit(位) , 位是由为 0 或者1构成 。byte 是指字节, 一个字节 = 八个位 。数据存放的位置就是它的地址 。
【知识点4】注释
是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束 , 其间任何内容都不会被计算机执行,注释不可以嵌套 。
【知识点5】书写格式
每条语句的后面必须有一个分号,分号是语句的一部分 。一行内可写多条语句,一个语句可写在多行上 。
【知识点6】标识符
合法的用户标识符考查:
合法的要求是由字母 , 数字,下划线组成 。有其它元素就错了 。
并且第一个必须为字母或则是下划线 。第一个为数字就错了 。
C语言标识符分如下3类
(1)关键字 。它们在程序中有固定的含义,不能另作他用 。如int、for、switch等 。
(2)预定义标识符 。预先定义并具有特定含义的标识符 。如define、include等 。
(3)用户标识符 。用户根据需要定义的标识符,符合命名规则且不与关键字相同 。
关键字不可以作为用户标识符号 。main define scanf printf 都不是关键字 。迷惑你的地方If 是可以做为用户标识符 。因为If 中的第一个字母大写了,所以不是关键字 。
【知识点7】实型数据
实型数据的.合法形式:小数形式和指数形式 。掌握判定指数形式合法性 。
2.333e-1 就是合法的 , 且数据是2.333×10-1 。
【知识点8】字符
字符数据的合法形式::
1 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号) 。
0 的ASCII 数值表示为48,a 的ASCII 数值是97,A的ASCII 数值是65 。
字符型和整数是近亲:
char a = 65 ;
printf(“%c”, a); 得到的输出结果:a
printf(“%d”, a); 得到的输出结果:65
一般考试表示单个字符错误的形式:65 "1"
字符是可以进行算术运算的 , 记?。?0-0=48
大写字母和小写字母转换的方法: A 32=a 相互之间一般是相差32 。
【知识点9】整型数据
整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节:
考试时候一般会说,在16 位编译系统,或者是32 位系统 。碰到这种情况,不要去管 ,
一样做题 。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节就可以了 。
【知识点10】转义字符
转义字符的考查:
在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x 必须存在 。
在程序中 int a = 06d, 是一个八进制的形式 。
在转义字符中, ’x6d’ 才是合法的,0 不能写,并且x 是小写 。
‘141’ 是合法的,0 是不能写的 。
‘108’是非法的,因为不可以出现8 。
【知识点11】算术运算
算术运算符一共有 、—、*、/、%这五个 。%符号两边要求是整数 。不是整数就错了 。
三种取整丢小数的情况:不是四舍五入是舍掉小数部分 。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知识点12】强制类型转换
将一个运算对象转换成指定类型,格式为(类型名)表达式
一定是 (int)a 不是 int(a),注意类型上一定有括号的 。
注意(int)(a b) 和(int)a b 的区别 。前是把a b 转型,后是把a 转型再加b 。
【知识点13】赋值
是表达式就一定有数值 。
赋值表达式:表达式数值是最左边的数值 , a=b=5;该表达式为5,常量不可以赋值 。
复合赋值运算符:注意:a*=m 2 是 a=a*(m 2)
自加、自减表达式:假设a=5 , a(表达式的值为6),a(表达式的值为5);
j=a;等价于j=a;a=a 1; 而j=a;等价于a=a 1;j=a; 。
考试口诀:在前先加后用 , 在后先用后加 。
【知识点14】逗号运算
逗号表达式:优先级别最低; 表达式的数值逗号最右边的那个表达式的数值 。
(2,3,4)的表达式的数值就是4 。
【知识点15】数制转换
一定要记住二进制 如何转换成十进制 。
八进制是没有8 的 , 逢8 进1,018 的数值是非法的 。
关于c语言课程函数重点知识和c语言函数课件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 在word里怎么加下划线,如何在word中加下划线
- 小程序软件怎么开发的,开发一款小程序软件需要多少钱
- 小白装机u盘怎么重装系统,小白系统u盘装机教程
- 3d虚拟主机,3d虚拟游戏机怎么玩
- 在运行windows系统的简单介绍
- c语言编程加减法怎样加入小数,c语言加减程序
- charts_flutter,charts_flutter_new
- 关于linuxlast命令的信息
- 外贸人如何推广产品销售,如何外贸营销推广