C语句的作用和类型C 语句的作用和C语句分类,我来为大家科普一下关于c语言基本结构和使用语句?下面希望有你要的答案,我们一起来看看吧!
c语言基本结构和使用语句
C语句的作用和类型
C 语句的作用和C语句分类
一个函数包含声明部分和执行部分,执行部分是由语句组成的,语句的作用是向计算机系统发出操作指令,要求执行相应的操作。一个 C 语句经过编译后
产生若干条机器指令。声明部分不是语句,它不产生机器指令,只是对有关数据的声明。
一个 C 程序可以由若干个源程序文件(编译时以文件模块为单位)组成,一个源文件可以由若干个函数和预处理指令以及全局变量声明部分组成。一个函数由数据声明部分和执行语句组成。
C 语句分为以下5类。
(1)控制语句。
控制语句用于完成一定的控制功能。 C 语言只有9种控制语句,它们的形式是:
(条件语句)
if ()… else …
(循环语句)
for ()…
(循环语句)
while ()…
(循环语句)
do … while()
(结束本次循环语句)
continue
(中止执行 switch 或循环语句)
break
(多分支选择语句)
switch
(从函数返回语句)
return
(转向语句,在结构化程序中基本不用 goto 语句)
goto
上面9种语句表示形式中的(表示括号中是一个“判别条件”,“…”表示内嵌的语句。
例如上面的“ if ()… else …”的具体语句可以写成
if ( x > y ) z=x; else z=y ;
其中,x> y 是一个“判别条件”,“ z = X ;”和“Z=y;”是 C 语句,这两个语句是内嵌在 if …· else 语句中的。这个 if … else 语句的作用是:先判别条件“ x > y ”是否成立,如果 x > y 成立,就执行内嵌语句“ z = x ;”,否则就执行内嵌语句“ z = y ;”。
选择结构语句
if语句
if(条件)语句1;else语句2;
if(条件){复合语句};else语句2;
if嵌套
if(条件1)语句1;
else if(条件2)语句2;
else if(条件3)语句3;
else if(条件4)语句4;
…
②条件表达式
条件?表达式1:表达式2
C语言中唯一的三目运算。
③switch语句
switch(整型)
{case 常量:语句1;break;
case 常量:语句2;break;
case 常量:语句3;break;
…
default:语句n;}
(2)函数调用语句。
由一个函数调用加一个分号构成,例如 printf (" This is a C statement .");
其中 printf (" This is a C statement .”)是一个函数调用,加一个分号成为一个语句。
(3)表达式语句。表达式语句由一个表达式加一个分号构成,最典型的是由赋值表达式构成一个赋值语句。例如a=3是一个赋值表达式,一个表达式的最后加一个分号就成了一个语句。一个语句必须在最后有一个分号,分号是语句中不可缺少的组成部分,而不是两个语句间的分隔符号。任何表达式都可以加上分号而成为语句,例如;
i ;是一个语句,作用是使 i 值加1。
x y ;所以它并无实际意义,没有赋值给其他变量。
表达式能构成语句是 C 语言的一个重要特色。其实"函数调用语句”也属于表达,因为函数调用(如 sin ( x ))也属于表达式的一种。只是为了便于理解和便用,才把“函调用语句”和“表达式语句(不带函数的语句)”分开来说明。
(4)空语句。
一个空语句只有一个分号。可以用来作为流程的转向点(从程序其他地方转到此语句处,或预留端口),也可用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
(5)复合语句。把一些语句和声明括起来成为复合语句。
//定义变量
float pi =314159, r =2.5, area ;
area=pi * r * ri
printf (" area =%f”,area );
可以在复合语句中包含声明部分, 习惯上把它放在语句块开头位置。复合语句常用在 if 语句或循环中,
此时程序需要连续执行一组语句,复合语句中最后一个语句末尾的分号不能忽略不写。
最基本的语句一一赋值语句
C 程序最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句。程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。
在安排输出时,常用`\ t '来调整输出的位置,使输出的数据整齐、美观。以后凡在程序中要用到数学函数库中的函数,都应当在本文件的开头包含math.h 头文件。
赋值有关的一些问题。
1.赋值运算符
赋值符号“=”就是赋值运算符,将一个数据赋给一个变量。如 a =3的作用是执行一次赋值操作,把常量3赋给变量 a 。也可以将一个表达式的值赋给一个变量。
2.复合的赋值运算符
在赋值符=之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“ ”达算符就成了复合运算符“+=”。如:
a+=3
等价于a=十3
x*= y 8等价于 x=x *( y 8)
3.赋值表达式
赋值语句是在赋值表达式的末尾加一个分号构成的。由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:变量 赋值运算符 表达式
赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能。
如 a =3*5是一个赋值表达式。对赋值表达式求解的过程是:先求赋值运算有右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。既然是一个表达式,就应该有一个值,表达式的值等于赋值后左侧变量的值。如:赋值表达式 a =3*5,对表达式求解后,变量 a 的值和表达式的值都是15。
赋值运算符左侧应该是一个可修改值的“左值”( left value)。左值的意思是它可以出现在赋值运算符的左侧,它的值是可以改变的。并不是任何形式的数据都可以作为左值的,左值应当有存储地址空间并可以被赋值。变量可以作为左值,而算术表达式 a + b 就不能作为左值,常量也不能作为左值,因为常量不能被赋值,没有存储地址。能出现在赋值运算符右侧的表达式称为“右值”( right value )。显然左值也可以出现在赋值运算符右侧,可以作为右值。
赋值表达式中的“表达式”又可以是一个赋值表达式。如:a =(Ь=5)括号内的 b =5是一个赋值表达式,它的值等于5。执行表达式“ a =(b=5)”,就是执行 b=5和a= b 两个赋值表达式。因此 a 的值等于5,整个赋值表达式的值也等于5。赋值运算符按照“自右而左”的结合顺序,因此,( b =5)外面的括号可以不要,即 a =( b =5)和 a = b =5等价,都是先求 b =5的值,然后再赋给 a 。
把赋值表达式作为表达式的一种,使得赋值操作不仅可以出现在赋值语句中,而且可以以表达式的形式出现在其他语句中(如输出语句、循环语句等),如
printf (“*% d”, a = b );
如果 b 的值为3,则输出 a 的值(也是表达式 a = b 的值)为3。在一个 printf 函数中完成了赋值和输出双重功能。
4,赋值过程中的类型转换
如果赋值运算符两侧的类型一致,则直接进行赋值。
如果赋值运算符两侧的类型不一致,但都是基本类型时,在赋值时要进行类型转换,转换的规则:
1)将浮点型数据(包括单,双精度)赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变量。
(2)将整型数据赋给单,双精度变量时,数值不变,但以浮点数形式存储到变量中。
(3)将一个 double 型数据赋给 float 变量时,先将双精度数转换为单精度,即只取6~7位有效数字,存储到 float 型变量的4个字节中。注意双精度数值的大小不能超出 float 型变量的数值范围。
将一个 float 型数据赋给 double 型变量时,数值不变,在内存中以8个学节存储.有效位数扩展到15位。
(4)字符型数据赋给整型变量时,将字符的 ASCII 代码赋给整型变量。
(5)将一个占字节多的整型数据赋给一个占字节少的整型变量或学符变量(如:把4个字节的 int 型数据赋给占2个字节的 short 变量或占1个学节的 char 变量)时,只将低字节原封不动地送到被赋值的变量(即发生“截断”)。要避免把占字节多的整型数据向占字节少的整型变量赋值,因为赋值后数值可能发生失真。如果一定要进行这种赋值,应当先保证赋值后数值不会发生变化,即所赋的值在变量的允许数值范围内。只要知道整型数据之间的赋值,存储单元中的存储形式直接传送。实型数据之间以及整型与实型之间的赋值,是先转换(类型)后赋值。
5.赋值表达式和赋值语句
在 C 程序中,赋值语句是用得最多的语句。
C 语言的赋值语句属于表达式语句,由一个赋值表达式加一个分号组成。
在一个表达式中可以包含另一个表达式。赋值表达式既然是表达式,那么它就可以出现在其他表达式之中。如:if (( a = b )>0) max=a;
先进行赋值运算(将b的值赋给 a ).然后判断 a 是否大于0,如大于0,执行 max = a 。请注意,在 if 语句中的 a = b 不是赋值语句未带分号,而是赋值表达式。在 if 的条件中可以包含赋值表达式,但不能包含赋值语句。
注意区分赋值表达式和赋值语句。赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。
6.变量赋初值:用赋值语句对变量赋值,也可以在定义变量时对变量赋以初值,如:int a =3
//指定 a 为整型变量,初值为3
float f =3.56;
//指定f为浮点型变量,初值为3.56
char c =' a' ;
∥指定 c 为字符变量,初值为 a
也可以使被定义的变量的一部分赋初值。
如:
int a , b , c =5;
指定 a , b , c 为整型变量,但只对 c 初始化, c 的初值为5。
如果对几个变量赋予同一个初值,应写成表示 a,b,c 的初值都是3。不能写成int a = b=c =3;定义时不能这么做,单独赋值语句可以这么做。
赋值可以单独出现,不能与变量被定义时写在一起。
c语言