友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
29书城 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』
我的美母教师 | 乡村精品合集 | 乡村活寡 | 乡村欲爱 | 乡村春潮 | 乡村花医 | 欲望乡村(未删) | 乡村艳福 | 乡村春事 | 人妻四部曲

C语言程序设计-第7部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!

++ii自增1后再参与其它运算。
ii自减1后再参与其它运算。
i++i参与运算后,i的值再自增1。
ii参与运算后,i的值再自减1。
在理解和使用上容易出错的是i++和i。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。
【例3。16】
main(){
  int i8;
  printf(〃%dn〃;++i);
  printf(〃%dn〃;i);
  printf(〃%dn〃;i++);
  printf(〃%dn〃;i);
  printf(〃%dn〃;i++);
  printf(〃%dn〃;i);
}  
i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出8之后再加1(为9),第7行输出9之后再减1(为8)。
【例3。17】
main(){
  inti5;j5;p;q;
  p(i++)+(i++)+(i++);
  q(++j)+(++j)+(++j);
  printf(〃%d;%d;%d;%d〃;p;q;i;j);

  这个程序中,对P(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
3。9赋值运算符和赋值表达式
1。赋值运算符
简单赋值运算符和表达式:简单赋值运算符记为“”。由“ ”连接的式子称为赋值表达式。其一般形式为:
变量表达式
例如:
xa+b
wsin(a)+sin(b)
yi+++j
赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。因此
  abc5
可理解为
  a(b(c5))
在其它高级语言中,赋值构成了一个语句,称为赋值语句。 而在C中,把“”定义为运算符,从而组成赋值表达式。 凡是表达式可以出现的地方均可出现赋值表达式。
例如,式子:
x(a5)+(b8)
是合法的。它的意义是把5赋予a,8赋予b,再把a;b相加,和赋予x,故x应等于13。
在C语言中也可以组成赋值语句,按照C语言规定,任何表达式在其未尾加上分号就构成为语句。因此如
x8;abc5;
都是赋值语句,在前面各例中我们已大量使用过了。
2。类型转换
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:
1)实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。
2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。
3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。
【例3。18】
main(){
  int a;b322;
  float x;y8。88;
  char c1'k';c2;
  ay;
  xb;
  ac1;
  c2b;
  printf(〃%d;%f;%d;%c〃;a;x;a;c2);

本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8。88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。
3。复合的赋值运算符
在赋值符“”之前加上其它二目运算符可构成复合赋值符。如+;;*;/;%;;&;^;|。 
构成复合赋值表达式的一般形式为:
变量  双目运算符表达式
它等效于
变量变量 运算符 表达式
例如:
a+5  等价于aa+5
x*y+7等价于xx*(y+7)
r%p  等价于rr%p
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。
3。10逗号运算符和逗号表达式
在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。
其一般形式为:
表达式1,表达式2
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
【例3。19】
main(){《 BR》  inta2;b4;c6;x;y;
  y(xa+b);(b+c);
  printf(〃y%d;x%d〃;y;x);

本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:
1)逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。
例如:
表达式1,(表达式2,表达式3)
形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
表达式1,表达式2,…表达式n
整个逗号表达式的值等于表达式n的值。
2)程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
3。11小结
3。11。1C的数据类型
基本类型,构造类型,指针类型,空类型
3。11。2基本类型的分类及特点
 类型说明符字节数值范围
字符型char1C字符集
基本整型int232768~32767
短整型short int232768~32767
长整型long int4214783648~214783647
无符号型unsigned20~65535
无符号长整型unsigned long40~4294967295
单精度实型float43/4E38~3/4E+38
双精度实型double81/7E308~1/7E+308
3。11。3常量后缀
L或l长整型
U或u   无符号数
F或f浮点数
3。11。4常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
3。11。5数据类型转换
?自动转换:在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
?强制转换:由强制转换运算符完成转换。
3。11。6运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
3。11。7表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。 
?c语言 4
4  最简单的C程序设计—顺序程序设计  
4。1  C语句概述  
4。2  赋值语句  
4。3  数据输入输出的概念及在C语言中的实现  
4。4  字符数据的输入输出  
4。4。1  putchar 函数(字符输出函数)  
4。4。2  getchar函数(键盘输入函数)  
4。5  格式输入与输出  
4。5。1  printf函数(格式输出函数)  
4。5。2  scanf函数(格式输入函数)  
4。6  顺序结构程序设计举例  
4  最简单的C程序设计—顺序程序设计
从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其在顺序结构中的应用,使读者对C程序有一个初步的认识, 为后面各章的学习打下基础。
4。1  C语句概述
C程序的结构:
C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。
C语句可分为以下五类:
1)  表达式语句
2)  函数调用语句
3)  控制语句
4)  复合语句
5)  空语句
1。  表达式语句:表达式语句由表达式加上分号“;”组成。
其一般形式为:
表达式;
执行表达式语句就是计算表达式的值。
例如:
xy+z;  赋值语句;
y+z;加法运算语句,但计算结果不能保留,无实际意义;
i++;自增1语句,i值增1。
2。  函数调用语句:由函数名、实际参数加上分号“;”组成。
其一般形式为:
函数名(实际参数表);
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值 (在后面函数中再详细介绍) 。
例如:
printf(〃C Program〃);调用库函数,输出字符串。
3。  控制语句:控制语句用于控制程序的流程, 以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有九种控制语句。 可分成以下三类:
1)  条件判断语句:if语句、switch语句;
2)  循环执行语句:do while语句、while语句、for语句;
3)  转向语句:break语句、goto语句、continue语句、return语句。
4。  复合语句:把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。
例如:
{ xy+z;
  ab+c;
  printf(“%d%d”,x,a);
 }
是一条复合语句。
复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。
5。  空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。
例如
while(getchar()'n')

本语句的功能是,只要从键盘输入的字符不是回车则重新输入。
这里的循环体为空语句。
4。2  赋值语句
赋值语句是由赋值表达式再加上分号构成的表达式语句。
其一般形式为:
变量表达式;
赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。
在赋值语句的使用中需要注意以下几点:
1。  由于在赋值符“”右边的表达式也可以又是一个赋值表达式,
因此,下述形式
   变量(变量表达式);
是成立的,从而形成嵌套的情形。
其展开之后的一般形式为:
  变量变量…表达式;
例如:
  abcde5;
按照赋值运算符的右接合性,因此实际上等效于:
e5;
de;
cd;
bc;
ab;
2。  注意在变量说明中给变量赋初值和赋值语句的区别。
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
例如:
int a5;b;c;
3。  在变量说明中,不允许连续给多个变量赋初值。 
如下述说明是错误的:
 intabc5
必须写为
 inta5;b5;c5;
而赋值语句允许连续赋值。
4。  注意赋值表达式和赋值语句的区别。
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的:
  if((xy+5)》0) zx;
语句的功能是,若表达式xy+5大于0则zx。
下述语句是非法的:
  if((xy+5;)》0) zx;
因为xy+5;是语句,不能出现在表达式中。
4。3  数据输入输出的概念及在C语言中的实现
1)  所谓输入输出是以计算机为主体而言的。
2)  本章介绍的是向标准输出设备显示器输出数据的语句。
3)  在C语言中,所有的数据输入/输出都是由库函数完成的。 因此都是函数语句。
4)  在使用C语言库函数时,要用预编译命令
#include
将有关“头文件”包括到源文件中。
使用标准输入输出库函数时要
返回目录 上一页 下一页 回到顶部 0 0
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!