2024年4月29日发(作者:)

C语言常用语句总结

一:常用函数

1、putchar函数:

putchar函数(字符输出函数):向终端输出一个字符。

一般形式为:

putchar(c) // 输出字符变量c的值。 ==

2、getchar函数

getchar函数(字符输入函数):从终端输入一个字符。

getchar函数没有参数,一般形式为:

c=getchar() //将输入的字符赋值给c

3、printf函数

printf函数(格式输入函数):向终端输出若干个任意类型的数据。

printf的一般格式为:

printf(“%c”,c)

printf(“格式控制”,对应变量名) // 例如:printf

(”%d,%cn”,i,c)

4、scanf函数

scanf(格式输入函数):从终端输入若干个任意类型的数据。

一般形式为:

scanf(“格式控制”,&变量名)

二:基本语句(除if语句外,switch和三种循环语句都需要{大括号}的支持)

(1)条件语句if和switch

1、if语句:

*********************

if(表达式)

语句1;

语句2; // if下的各独立语句用分号分隔。

*********************

if(表达式)

语句1;

else

语句2;

*********************

if(表达式1)

语句1;

else if(表达式2)

语句2;

....

else if(表达式n)

语句n;

else

// 每一个if与他最近的一个else对应。

语句n+1;

*********************

If语句的嵌套

if(表达式)

if(表达式)语句1

else语句2

else

if(表达式)语句3

else语句4

2、switch语句

switch (表达式)

{

case 常量表达式1:

语句1

case常量表达式2:

语句2 // 每一个case表达式后都需要加上break跳出,否

case常量表达式n: 将依次执行下去。

语句n

default : // 大括号划分switch内语句

语句n+1

}

(2)三种循环语句

1、 while语句

while语句用来实现“当型”循环结构。

一般形式如下:

while(表达式) // 当表达式非0值时(逻辑表达式),执行while语句中的内嵌

套语句,

{ 先判断后执行。

语句1; // 分号间隔每一个独立语句。

语句2; // 大括号划分出while内语句。

}

2、do… while 语句

do… while 语句 先执行循环体,然后判断循环条件是否成立。

一般形式为:

do

{

循环体语句1; // 分号间隔每一个独立语句。

循环体语句2; // 大括号划分do内语句。

}

while(表达式) // 当表达式非0值时(逻辑表达式),执行while语句中的内嵌

套语句,

先判断后执行。

3、for语句

for语句不仅可以用于循环次数已经确定的循环,而且可以用于循环次数不确定的循环

而只给出循环结束条件。

for(循环变量赋初值;循环终止条件;循环变量增值)

{

语句1; // 分号间隔每一个独立语句。

语句2; // 大括号划分for内语句。

}

它的执行过程如下:

(1)、先求解表达式1。

(2)、求解表达式2,若其值为真(值非0),则执行for循环中指定的内嵌语句,然

后执行下面的(3)。若表达式2为假(值为0),则结束循环,转到第(5)步。

(3)、求解表达式3。

(4)、转回上面第(2)步继续执行。

(5)、循环结束,执行for语句下面的一个语句。

(3)其他语句:

1、break语句

break语句可以是流程跳出switch结构,继续执行switch下面的语句。

break语句也可以用来从循环体内跳出循环体,提前结束循环,接着执行循环体下面

的语句。

break语句的一般形式为:break;

说明:break语句不能用于循环语句和switch语句之外的任何其他语句。

2、continue语句

在循环体中遇到continue语句,程序将跳过continue语句后面尚未执行的语句,

开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。

三:其他语句

1.唯一的三元运算符:条件运算符

表达式: 判断表达式1?表达式2:表达式3 // 例如:a>b?a:b

(条件成立取表达式2的值,否则取表达式3的

2.宏定义:#define 标识符 字符串 // 例如:#define N 300

为300

3.结构体:

一般形式如下:

struct 结构体名

{

类型名1 结构成员名1;

类型名2 结构成员名2;

类型名n 结构成员名n;

}s; // 属于该结构体的变量名(类似于 int

定义N

a 中a的

角色);

引用结构体变量中的数据:(对结构体成员变量的引用)

1)结构体变量名.成员名 // s.成员名1 (引用后即可当普通变量操作)

2)指针变量名->成员名

3)(*指针变量名).成员名

4.共同体

一般形式如下:

union 共用体标识名

类型名1 共用体成员名1;

类型名2 共用体成员名2;

。。。

类型名n 共用体成员名n;

共用体变量中成员的引用:

共用体变量名.成员名

指针变量名->成员名

(*指针变量名).成员名

三:文件的操作:文件指针实际上是批向一个结构体类型的指针。

(1) 文件的打开,关闭:

FILE *指针变量名; // 定义文件指针

fopen(“文件名”,“文件使用方式”); // (打开文件) 例如:

fopen(“c:file_a”,”r”);

fclose(文件指针) // (关闭文件) 例如:fclose(fpout);

判断文件是否能打开,需写入:

FILE * fp;

if((fp=fopen("文件名","打开方式"))==NULL) // 打开文件出错的话

{

printf("cannot open filen");

exit(0); // exit(1)出错退出。exit(0) 正常退

}

文件打开方式说明:

1. r ,凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出

2. w,用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文

件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

3. a,要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该

文件必须是存在的,否则将会出错。

4. +, 与上面的字符串组合,以读和写的方式打开文件

(2).文件的读写

读写数据将通过调用标准输入输出函数来完成。这些函数主要包括:

1).fgetc()和getc():从制定文件中一次读取一个字符

fputc()和putc():一次输出一个字符到指定文件

2).fgets():从指定文件中一次读取一个字符串

fputs():一次输出一个字符串到指定文件

3).fread():从指定文件中一次读取一个数据块

fwrite():一次输出一个数据块到指定文件

4).fscanf():从指定文件中按格式读取数据

fprintf():按指定格式将数据输出到指定文件中

详细介绍:

1.读写字符fgetc和fputc:字符读写函数是以字符(字节)为单位的读写函数。每次可

从文件读出或向文件写入一个字符。

形式: 字符变量=fgetc(文件指针)

例如:ch=fgetc(fp); // 从打开的文件fp中读取一个字符并送入ch中。

形式: fputc(变量名,文件指针);

例如:

fputc(a,fp) // 把变量a的值写入fp所指向的文件中。

判断是否出错,需写入:

while((ch=fgetc(fp))!=EOF) // 当文件内容没有执行错误时,顺利执行下一句

2.读写字符串fgets和fouts:从指定的文件中读写一个字符串到字符数组中。

形式: fgets(字符数组名,n,文件指针)

其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最

后一个字符后加上串结束标志'0'。

例如:

fgets(str,n,fp) //从fp所指的文件中读出n-1个字符送入字符数组str中。

形式: fputs(字符串,文件指针);

其中字符串可以是字符串常量,也可以是字符数组名,或指针变量。

例如:

fputs(“abcd“,fp) // 其意义是把字符串“abcd”写入fp所指的文件之

中。

3.数据块读写函数fread和frite:用来读写一组数据。

读数据块函数调用的一般形式为: fread(buffer,size,count,fp);

写数据块函数调用的一般形式为: fwrite(buffer,size,count,fp);

其中:

buffer 是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函

数中,它表示存放输出数据的首地址。

size 表示数据块的字节数。

count 表示要读写的数据块块数。

fp 表示文件指针。

例如:

fread(fa,4,5,*fp);

其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续读5

次,即读5个实数到fa中。

fread(&stu[i],sizeof(struct 结构体名),1,fp);

其意义是从fp所指的文件中,每次读结构体的一个变量名送入数组stu[i]中,连续读

1次,即读1个结构体到stu[i]中。

3.格式化读写函数fscanf和fprintf: 函数的读写对象不是键盘和显示器,而是文件.

函数的调用格式为:

fscanf(文件指针,格式字符串,输入表列);// fscanf(fp,"%d%s",&i,s);

fprintf(文件指针,格式字符串,输出表列); // fprintf(fp,"%d%c",j,ch);

(3).文件定位

使“读写位置指针”直接指向指定的读写位置。函数包括:

fseek():可移动位置指针到指定位置上

ftell():可获得当前位置指针的位置

rewind():“反绕”函数,可使位置指针回到文件的开头

详细介绍:

()函数:

一般形式:

fseek(fp, offset, origin)

fp是文件指针,offset是以字节为单位的位移量,为长整型数;origin是起始点,用

以指定位移量是以哪个位置为基准的,起始点既可用标识符来表示,也可用数字来代表。

标识符 数字 代表的起始点

SEEK_SET 0 文件开始

SEEK_END 2 文件末尾

SEEK_CUR 1 文件当前位置

例如:

fp已指向一个二进制文件,能使位置指针从文件的开头向文件尾部移动20个字节的

fseek()函数的

调用形式如下:

fseek(fp, 20L, SEEK_SET)

例如:

fp已指向一个二进制文件,能使位置指针从文件尾部向文件开头移动10个sizeof(int)

的函数的调

用形式如下:

fseek(fp, -10L*sizeof(int), SEEK_END)

对于文本文件,位移量必须为0。

例如:fp已指向一个文本文件,能使位置指针移到文件起始位置的fseek()函数形式如

下:

fseek(fp, 0L, SEEK_SET)

例如:fp以指向一个文本文件,能使位置指针移到文件末尾的fseek()函数的调用形式

如下:

fseek(fp, 0L, SEEK_END)

()函数:

调用ftell()函数可以得到当前位置指针相对于文件起始位置的字节数。函数调用出错

时,返回-1L.

例如:当打开一个文件时,通常并不知道该文件的长度,通过以下程序段可以求出该

文件的字节数:

fseek(fp, 0L, SEEK_END); //把位置指针移到文件末尾

t = ftell(fp); //求出文件的总字节数

再例如:某二进制文件中存放的struct st结构体类型数据,可以通过以下程序,可求

出该结构体类型

数据块的个数:

fseek(fp, 0L, SEEK_END);

t = ftell(fp);

n = t/sizeof(struct st);

()函数:

又称“反绕”函数,能使位置指针回到文件的开头。函数调用形式如下:

rewind(fp);

fp为文件指针,此函数没有返回值。