C语言程序设计基础知识要点.docx

上传人:b****3 文档编号:26968451 上传时间:2023-06-24 格式:DOCX 页数:56 大小:36.04KB
下载 相关 举报
C语言程序设计基础知识要点.docx_第1页
第1页 / 共56页
C语言程序设计基础知识要点.docx_第2页
第2页 / 共56页
C语言程序设计基础知识要点.docx_第3页
第3页 / 共56页
C语言程序设计基础知识要点.docx_第4页
第4页 / 共56页
C语言程序设计基础知识要点.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

C语言程序设计基础知识要点.docx

《C语言程序设计基础知识要点.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础知识要点.docx(56页珍藏版)》请在冰豆网上搜索。

C语言程序设计基础知识要点.docx

C语言程序设计基础知识要点

01.C 程序基本结构

一、C 语言的特点:

1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主

函数,其余的函数名称可由编程者自行设定。

2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其

他函数都是在 main()函数开始执行以后,通过其他函数的调用才得以运行。

3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该

库函数的头文件包含进去。

二、C 程序的书写格式:

1、语句可从分开放在任意多行内;

如:

printf(“To C,”);

printf(“ or not to C:

”);

与 printf(“To C , or not to C:

”);是等价的

2、一行中可以有若干个语句;

如:

a=123;b=345;

3、每个语句和数据定义的最后必须有一个分号;

三、C 语言程序的运行:

1、编译(Compile):

将 C 源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程

序每一条语句的语法错误。

2、建造(Bulid):

C 语言程序示例:

显示“Hello”

#include

int main(void)

{

printf(“Hello.\n”);

return 0;

}

说明:

#include 是必不可少的,它包含了 C 语言标准输入输出库的相关信息;

printf 函数来自”标准输入输出库”,可以产生格式化输出;

\n 告诉 printf 函数执行完信息显示后要进行换行操作;

return 0 表明程序终止时会向操作系统返回值 0;

{ }来标出 main()函数的起始和结束。

02.数据类型

一、C 语言的特点:

1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主

函数,其余的函数名称可由编程者自行设定。

2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其

他函数都是在 main()函数开始执行以后,通过其他函数的调用才得以运行。

3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该

库函数的头文件包含进去。

二、C 程序的书写格式:

1、语句可从分开放在任意多行内;

如:

printf(“To C,”);

printf(“ or not to C:

”);

与 printf(“To C , or not to C:

”);是等价的

2、一行中可以有若干个语句;

如:

a=123;b=345;

3、每个语句和数据定义的最后必须有一个分号;

三、C 语言程序的运行:

1、编译(Compile):

将 C 源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程

序每一条语句的语法错误。

2、建造(Bulid):

 

C 语言程序示例:

显示“Hello”

#include

int main(void)

{

printf(“Hello.\n”);

return 0;

}

说明:

#include 是必不可少的,它包含了 C 语言标准输入输出库的相关信息;

printf 函数来自”标准输入输出库”,可以产生格式化输出;

\n 告诉 printf 函数执行完信息显示后要进行换行操作;

return 0 表明程序终止时会向操作系统返回值 0;

{ }来标出 main()函数的起始和结束。

 

03,运算符和表达式

1、算术运算符和表达式

+:

加法运算符,如 3+5;

-:

减法运算符,如 5-3;

*:

乘法运算符,如 5*8;

/:

除法运算符,如 3/6;参与运算量均为整型时,结果也为整型,舍去小数;若运算量中有一个是实型,则结果为

双精度实型。

%:

模运算符,也称“取余运算符”,用于计算两数相除后的余数,如 5%3=2;

2、赋值运算符和赋值表达式

赋值运算符:

”=”,其作用是将一个表达式的值赋给一个变量;

其一般形式为:

变量=表达式

如:

x=a+b;

赋值表达式的功能是计算表达式的值再赋予左边的变量。

赋值运算符具有右结合性。

因此a=b=c=5可理解为

a=(b=(c=5));

复合赋值运算符:

+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=

构成复合赋值表达式的一般形式为:

变量  双目运算符=表达式

它等价于:

变量=变量 运算符 表达式

如:

a+=5等价于 a=a+5

x*=y+7等价于 x=x*(y+7)

r%=p等价于 r=r%p

3、类型转换

如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。

具体规定

如下:

1)实型赋予整型,舍去小数部分。

前面的例子已经说明了这种情况。

2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为 0)。

3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的 ASCII 码值放到整型量的低八位中,高

八位为 0。

整型赋予字符型,只把低八位赋予字符量。

4、自增、自减运算符:

 自增运算符:

“++”,功能是将变量的值加 1;

 自减运算符:

“--”,功能是将变量的值减 1;

可有以下几种形式:

++ii 自增 1 后再参与其它运算。

--ii 自减 1 后再参与其它运算。

i++i 参与运算后,i 的值再自增 1。

i--i 参与运算后,i 的值再自减 1。

注:

(1)”++”、”--“的操作对象只能是变量;

(2)”++”、”--“运算优先级相同,且结合方向自右向左;-i++应理解为-(i++),

【例】自增、自减运算、

#include

main()

{

int i=8;

printf("%d\n",++i); /* i 先加 1,再输出 i ,输出结果为 9 */

printf("%d\n",--i);/* i 先减 1,再输出 i ,结果为 8 */

printf("%d\n",i++); /* 先输出 i ,输出结果为 8,i 再加 1, */

printf("%d\n",i--); /* 先输出 i ,输出结果为 9,i 再减 1, */

printf("%d\n",-i++); /* 先加输出-i,输出结果为-8,i 再加 1 */

printf("%d\n",-i--); /* 先输出-i ,输出结果为-9,i 再减 1 */

}

5、求字节运算符

计算表达式的结果所占字节数或某种数据类型的定义字节数。

一般格式:

sizeof(数据类型标识符) 或 sizeof(表达式)

如:

 sizeof(float)的值为 4,占 4 个字节;

sizeof(2*3)的值为 2,占 2 个字节;

6、关系运算符和关系表达式

 关系运算符:

“<”(小于)、 “<=”(小于等于) 、”>”(大于)、”>=”(大于等于) 、”==”(等于)、 “!

=”(不等于)

 关系表达式:

若关系表达式成立,其值为“真”,否则为“假”;在 C 语言中,用 0 代表“假”,用 1 代表“真”;

7、逻辑运算符和逻辑表达式:

 逻辑运算符:

 “!

” (非)、 “&&” (与)、 “||”(或);运算优先级:

 !

>&&>||

 逻辑表达式:

用逻辑运算符将表达式连接起来的式子;逻辑表达式的结果仍然是逻辑量(“真”或“假”)

8、条件运算符:

一般格式:

 <表达式 1>?

<表达式 2>:

<表达式 3>

先计算表达式 1,若表达式 1 的值为真,则计算表达式 2 的值,且表达式 2 的值为整个条件表达式的值;否则,计算

表达式 3 的值,且表达式 3 的值即为整个条件表达式的值。

9、逗号运算符和逗号表达式

 逗号运算符:

”,”作为运算符,其功能是将多个表达式组成一个表达式;

一般形式:

表达式 1,表达式 2,…,表达式 n

求解过程:

先计算表达式 1,再计算表达式 2,依此计算表达式 n,最终,表达式 n 的值即为整个表达式的值。

 

04.顺序结构

一、概述:

顺序语句按照语法形式分为:

表达式语句、函数调用语句、复合语句、流程控制语句和空语句。

1、表达式语句:

语法格式:

表达式;

如:

a+4;

其中赋值语句为最典型的表达式语句,如:

a=5;

a=b+3;

特别提示:

分号(;)是表达式语句中不可缺少的一部分。

2、函数调用语句:

如:

printf(”I am a student!

”);

其中:

printf()为系统提供的函数,用于显示信息。

3、复合语句:

所谓“复合语句”即由一对“{}”括起来的一组语句,也称“块语句”或“分程序”。

一般形式为:

{

语句 1

语句 2

...

语句 n

}

如:

{

i++;

j=a+3;

printf("%d,j=",i,j);

}

特别提示:

复合语句中的最后一条语句的分号不得缺少;复合语句的“}”之后不得有分号。

4、空语句:

“空语句”即为一个独立的分号。

如:

main()

{

...

;

...

}

二、数据的输入输出

C 语言提供了一些输入输出函数,如 printf()和 scanf(),在程序中调用这些输入输出函数时,必须将标准输入输出头文

件“stdio.h”包含到用户所编写的源程序中。

如:

#include 

其中:

#include 命令一般写在程序的开头位置。

1、格式输入输出

1、格式输出函数 printf()

(1)一般格式:

 printf(格式字符串,输出列表)

其中:

“格式字符串”包括“输出字符”和“格式控制字符”(由%和格式字符组成,指定输出项的输出格式)。

• d 格式符:

用于输出十进制整数;

%d:

以十进制形式显示输出变量的值;

%5d:

以十进制形式显示变量的值,且至少占用 5 个字符的空间,若不够 5 位数字,则左侧补空格;

%-5d:

以十进制形式显示变量的值,且至少占用 5 个字符的空间,左对齐;

%5.3d:

以十进制形式显示变量的值,且至少占用 5 个字符的空间并至少有 3 位数字,若不够 3 位数字,则

左侧补 0;

如:

#include

main()

{

int i;

i=40;

printf(“%d\n”,i);

printf(“%5d\n”,i);

printf(“%-5d\n”,i);

printf(“%5.3d\n”,i);

}

• f 格式符:

用于以小数形式输出实数;

%10.3f:

以定点十进制形式显示变量的值,且总共用 10 个字符,其中,整数位 6 位,小数位 3 位,小数点

1 位;

如:

#include

main()

{

float x;

x=839.21f;

printf(“%10.3f\n”,x);

}

• c 格式符:

用于输出一个字符;

如:

  x=”a”,y =”b”,

则 printf(%c %c",x,y)的输出结果为:

a b

若变量的值为整数,则输出该整数值为 ASCII 码的字符:

如 x=65,y=98,则 printf(“%c, %c”,x,y)的输出结果为:

 A, b;

同理,一个字符的数据也可以以整数的形式输出;

如 x=’a’,y=’B’,则 printf(“%d,%d”,x,y)的输出结果为:

97,66

• s 格式符:

用于输出一个字符串。

如:

printf(“%s”,”I am a student !

”)

• e,E 格式符:

用于以指数形式输出实数。

如:

printf(“%e”, 123.456),则输出结果为:

1.234560e+002;

• g,G 格式符:

用于输出实数,根据数值的大小自动选择 f 格式或 e 格式。

2、格式输入函数 scanf()

(1)一般格式:

scanf(格式字符串,变量地址表)

其中:

格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入)、格式控制字符”(由%和格式

字符组成,用来标定输入数据的格式)。

变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。

• d 格式:

用于输入十进制整数;

如:

scanf(“%d,%d”,&x,&y);则输入格式为:

123 ,3456

•u 格式:

用于输入十进制无符号整数;

•f 格式:

用于输入以小数形式的实数;

如:

scanf(“%f,%f”,&x,&y);则输入格式为:

123.23,23.456

•c 格式:

用于输入一个字符;

如:

scanf(“%c,%c”,&x,&y);则输入格式为:

a,b

•s 格式:

用于输入一个字符串;

如:

scanf(“%s”,a);假定 a 为字符数组,则输入格式为:

abcdef

注:

输入的字符串中间不能包含空格。

特别说明:

• 对于变量,”&”加变量名即为该变量的地址;如:

&a、&b 等分别表示变量 a 和变量 b 的地址;

•对于字符串数组或字符指针型变量,数组名和指针变量名本身即为其地址;

•可以在%和格式字符之间加表示位数的数字;如:

scanf(“%5s”,p);表示只能输入 5 个字符给字符串指针 p;

3、字符数据的输入输出:

(1)putchar()函数:

是向标准输入输出设备输出一个字符;

其调用格式为:

putchar(ch); 其中:

ch 为一个字符变量或常量;

putchar()函数作用等同于 printf(“%c”,ch);

(2)getch() getche()和 getchar()函数:

•getch():

从键盘上读入一个字符,但不显示在屏幕上;

•getche():

从键盘上读入一个字符,显示在屏幕上;

•getchar():

从键盘上读入一个字符,并显示在屏幕上,但直到输入回车键时才结束输入,第一个字符为其函数的

返回值。

 

05.选择结构

一、if 语句:

一般格式:

if(表达式) 语句;

表示:

当“表达式”成立时,则执行“语句”;否则跳过“语句”;

如:

if (a>b) printf(“a>b!

”);

例:

若用户输入的数为 3 的倍数,则显示”OK”

#include

main()

{

int a;

scanf(“%d”,&a);

if(a %3==0) printf(“OK”);

}

二、if-else 语句:

一般格式:

if (表达式)

语句 1;

else

语句 2;

例:

给出用户输入的两个整数的较大者

#include

main()

{

int a,b;

scanf(“%d,%d”,&a,&b);

if(a>b)

printf(“the max=%d”,a);

else

printf(“ the max=%d”,b);

}

三、if 语句的嵌套

1、if 子句中嵌套:

• if(表达式 1)

if(表达式 2) 语句 1;

else 语句 2;

else 语句 3;

• if(表达式 1)

{ if(表达式 2) 语句 1; }

else 语句 2;

2、else 子句中嵌套

• if (表达式 1) 语句 1;

else

if(表达式 2) 语句 2;

else 语句 3;

• if(表达式 1) 语句 1;

else

if(表达式 2) 语句 2;

3、嵌套一般格式:

if (表达式 1) 语句 1;

else if (表达式 2) 语句 2;

else if (表达式 3) 语句 3 ;

else if(表达式 n) 语句 n;

else 语句 n+1;

例:

将用户输入的成绩按以下规则转换成等级成绩:

分数:

 90~100等级:

分数:

 80~89等级:

分数:

 70~79等级:

分数:

 60~69等级:

及格

分数:

 60 以下等级:

不及格

# include

main()

{

int d;

printf(“输入分数:

”);

scanf(“%d”,&d);

if(d>=90 ) printf(“优”);

else if(d>=80) printf(“ 良”);

else if(d>=70) printf(“ 中”);

else if(d>=60) printf(“ 及格”);

else printf(“ 不及格”);

}

四、条件语句:

表达式 1 ?

 表达式 2 :

表达式 3

执行的过程:

若表达式 1 的值为非 0 时,该条件语句的职位表达式 2,否则为表达式 3;

例:

求一个整数的绝对值

#include

main()

{

int i,absi;

scanf(“%d”,&i);

absi=i>0 ?

 i :

 -i;

printf(“%d 绝对值是%d\n”,i,absi);

}

五、switch 语句

switch (表达式)

{

case 常量表达式 1:

语句 1 ;

break;

case 常量表达式 2:

语句 2 ;

break;

case 常量表达式 n:

语句 n ;

break;

default:

语句 n+1;

}

例:

商店卖货物,每一件 3.5 元,按购买的数量给与优惠:

购买 100 件,优惠 5%;

购买 200 件以上,优惠 6%;

购买 300 件以上,优惠 8%;

购买 400 件以上,优惠 10%;

购买 500 件以上,优惠 15%;

#include

main()

{

int n;

float p,price;

scanf("%d",&n);

switch(n/100)

{

case 1:

p=0.05;

break;

case 2:

p=0.06;

break;

case 3:

p=0.08;

break;

case 4:

p=0.10;

break;

case 5:

p=0.15;

break;

}

price=3.5*n*(1-p);

printf("%应付款=%7.2f\n",price);

}

06.循环结构

一、for 语句:

一般格式:

 for( 表达式 1 ;表达式 2;表达式 3) 语句;

表示:

先计算表达式 1 的值,再计算表达式 2 的值,若表达式 2 的值为 0,则跳出循环体,转去执行循环体后面的程

序命令;若表达式 2 的值非 0,则执行循环体中的语句,接着计算表达式 3 的值;而后,再从计算表达式 2 的值开始重

复上诉操作,直到表达式 2 的值为 0 时结束。

例:

计算 sum=1+2+3+…+100 的值”

#include

main()

{

int i,sum;

sum=0;

for(i=1;i<=100;i++)

sum=sum+i;

printf(“sum=%d”,sum);

}

二、while 语句:

一般格式:

while<表达式>

语句;

表示:

先计算表达式的值,若为非 0,则执行循环体语句,然后再计算表达式的值,重复上述过程,直到计算表达

式的值为 0 时结束循环。

例:

计算 sum=1+2+3…+100 的值

#include

main()

{

int i,sum;

i=1;

sum=0;

while(i<=100)

{

sum=sum+i;

i++;

}

printf(“sum=%d”,sum);

}

三、do-while 语句

1、一般格式:

Do

语句;

While<表达式>;

表示:

先执行一次循环语句,然后计算表达式的值,若表达式的值非 0,则再执行循环语句,然后从计算表达式的值

开始重复上述过程,直到计算表达式的值为 0,循环结束。

例:

计算 sum=1+2+3…+100 的值

#include

main()

{

int i,sum;

i=1;

sum=0;

do

{

sum=sum+i;

i++;

}while(i<=100);

printf(“sum=%d”,sum);

}

四、break 和 continue 语句:

1、break 语句:

使用 break 语句可以提前结束由 while、for、do-while 语句构成的循环,而去执行循环下面的语句。

例:

判定用户输入的一个数是否为素数

#include

main()

{

int a,d;

printf(“请输入一个整数:

”);

scanf(“%d”,&a);

for(d=2;d

if(a%d==0)

break; // 跳出当前的循环,执行循环后面的语句

if(d

printf(“%d 不是素数”, a);

else

printf(“%d 是素数 “,a);

}

2、continue:

continue 语句用于 for、while、do-while 语句中,其作用是结束本次循环,接着进入下一次是否执行循环的判断。

例:

输入 10 个非 0 的整数并求和。

#inclu de

main()

{

int i,n=0,sum=0;

while(n<10)

{

printf(“ 请输入整数:

”);

scanf(“%d”,&i);

if(i==0)

continue; // 若为 0,则继续输入下一个数

sum+=i;

n++;

}

printf(“%d”,sum);

}

五、三种循环的比较:

1、三种循环可以处理同一个问题,一般情况下可以相互代替;

2、while 和 do-while 循环语句只在 while 语句之后指定循环条件,在循环体内应包含使循环趋于结束的语句;for

循环语句可以在<语句 3>中包含使循环趋于结束的语句;

3、对于 while 和 do-while 循环语句,循环变量的初始化应在 while 和 do-while 语句之前完成;for 循环语句可以在<

表达式 1>中进行;

4、while 和 for 语句是先判断表达式,后执行循环;do-while 循环语句是先执行循环,后判断表达式;

07 数组

数组是一组具有同一名字、不同下标的变量。

数组中带下标的变量称为数组元素,每个数组元素由数组名字和下标唯一

地来确定;同一数组中的元素数据类型相同。

一、一维数组:

1、定义:

只有一个下标的数组。

2、定义格式:

 类型说明符 数组名[常量表达式]

如:

 int a[3]; //定义了一个一维数组,名称为 a,数据类型为整型,含 3 个数组元素 a[0]、a[1]、a[2];

说明:

•类型说明符:

是指数组的数据类型;

•常量表达式:

是一个值为正整数的表达式,用来表示该数组的元素的个数,即数组的大小;

3、数组的引用:

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

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

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

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