第二章C语言基本元素和语句_第1页
第二章C语言基本元素和语句_第2页
第二章C语言基本元素和语句_第3页
第二章C语言基本元素和语句_第4页
第二章C语言基本元素和语句_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西北大学信息科学与技术学院. All rights reserved 2011 第 1 页第第2章章 基本元素和语句基本元素和语句 2.1 数据的表示及存储 2.2 程序的基本元素 2.3 输入输出语句 2.4 条件语句 2.5 循环语句西北大学信息科学与技术学院. All rights reserved 2011 第 2 页第第2章章 C语言基本元素和语句语言基本元素和语句2.1.1 数字化信息编码2.1.2 进制及进制转换2.1.3 数值的表示和存储2.1 数据的表示及存储2.1.4 字符的表示和存储2.1.5 指令的表示和存储西北大学信息科学与技术学院. All rights reser

2、ved 2011 第 3 页2.1 2.1 数据的存储数据的存储2.1.1 2.1.1 数字化信息编码数字化信息编码 计算机中的信息也称为数据。由于二进制电路简单、可靠且具有很强的逻辑功能,因此数据在计算机中均以二进制表示,并用它们的组合表示不同类型的信息。 在计算机中只能识别二进制数码信息,因此一切非二进制数码的信息,如数字、字母、汉字等都要用二进制数的特定编码表示。当然编码可以有多种方法, 但为了便于交换、处理,必须采用统一的编码方法。西北大学信息科学与技术学院. All rights reserved 2011 第 4 页2.1 2.1 数据的存储数据的存储2.1.2 2.1.2 进制及

3、进制转换进制及进制转换(1)数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值(2)数制(二进制,八进制,十进制,十六进制)数制的概念数制之间的转换(整数)数制之间的转换(小数)西北大学信息科学与技术学院. All rights reserved 2011 第 5 页 各种进制之间的转换(整数)二进制、八进制、十六进制转换成十进制 方法:按权相加10012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF西北大学信息科学与技术学院. All rights re

4、served 2011 第 6 页 各种进制之间的转换(整数)二进制、八进制、十六进制转换成十进制 方法:按权相加十进制转换成二进制、八进制、十六进制11 0 21101101201100(.)22.222 (22.2 )2nnnnnnnnnnNaaaaaaaaaaaaNa 是 的余数 方法:连续除以基,从低到高记录余数,直至商为0西北大学信息科学与技术学院. All rights reserved 2011 第 7 页l各种进制之间的转换(整数)二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制:用3位二进制数代替每一位八进

5、制数例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7西北大学信息科学与技术学院. All rights reserved 2011 第 8 页二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一位十六进制数例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(10010111001

6、1110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 各种进制之间的转换(整数)西北大学信息科学与技术学院. All rights reserved 2011 第 9 页 各种数制之间的转换(小数) 二进制到十进制之间的转换(整数加小数)(111010.1111010.1)2 2=1=12 25 51 12 24 41 12 23 30 02 22 21 12 21 10 02 20 0+1+12 2-1-1 32+16+8+2+0.532+1

7、6+8+2+0.5 58.558.5西北大学信息科学与技术学院. All rights reserved 2011 第 10 页例例 : 将(将(35.6875)10转换为二进制数。转换为二进制数。 用除用除2取余法将整数部分取余法将整数部分(35)10转换为二进制整数:转换为二进制整数: 2 35 余数为余数为1 低位低位 2 17 余数为余数为1 2 8 余数为余数为0 2 4 余数为余数为0 2 2 余数为余数为0 2 1 余数为余数为1 高位高位 0故:故:(35)10 = (100011)2 验证:验证:125+0 24+0 23+0 22+1 21+1 20=32+2+1=35十进

8、制转换成二进制西北大学信息科学与技术学院. All rights reserved 2011 第 11 页 用乘用乘2取整法将小数部分取整法将小数部分(0.6875)10转换为二进制形式:转换为二进制形式: 0. 6875 2 1.3750 整数部分为整数部分为1 高位高位 0. 3750 2 0. 7500 整数部分为整数部分为0 0. 7500 2 1. 5000 整数部分为整数部分为1 0. 5000 2 1. 0000 整数部分为整数部分为1 低位低位即:即:(0.6875)10 = (0.1011)2 西北大学信息科学与技术学院. All rights reserved 2011 第

9、 12 页 整数部分与小数部分合并,可得:整数部分与小数部分合并,可得:(35.6875)10 = (100011.1011)2注意:注意:在上例中,将十进制小数转换成为二进制小数在上例中,将十进制小数转换成为二进制小数的过程中,乘积小数部分变成的过程中,乘积小数部分变成“0”,表明转换,表明转换结束。实际上将十进制小数转换成二进制、八结束。实际上将十进制小数转换成二进制、八进制、十六进制小数过程中小数部分可能始终进制、十六进制小数过程中小数部分可能始终不为零,因此只能限定取若干位为止。不为零,因此只能限定取若干位为止。将十进制数转换为八进制、十六进制数的规则将十进制数转换为八进制、十六进制数

10、的规则和方法与之相同,只是和方法与之相同,只是R(基数)的取值不同。(基数)的取值不同。 西北大学信息科学与技术学院. All rights reserved 2011 第 13 页二进制和八进制之间的转换(整数加小数)例: (10100.1011)2(?)8 010 100 . 101 100 2 4 . 5 4例: (326.125)8(?)2 3 2 6 . 1 2 5011 010 110 . 001 010 101西北大学信息科学与技术学院. All rights reserved 2011 第 14 页 二进制和十六进制之间的转换(整数加小数) (11010111100.11011

11、)(11010111100.11011)2 2 = ( = (0 0110110 1011 1011 11001100. .11011101 1 1000000) )2 2 = (6BC.D8) = (6BC.D8)1616八进制到十六进制之间的转换 可通过二进制来间接进行。 例(457)8=(100101111)2=(12F)16西北大学信息科学与技术学院. All rights reserved 2011 第 15 页2.1.3 2.1.3 数值的表示及存储数值的表示及存储 (1)字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或101

12、234567012345678910.7643251西北大学信息科学与技术学院. All rights reserved 2011 第 16 页(2)原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反 补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加13126912457810119-5=49+7=16=(4)12西北大学信息科学与技术学院. All rights reserved 2011 第 17 页原码反码补码+7000001110000011100000111-71000011

13、11111100011111001+0000000000000000000000000-0100000001111111100000000数的范围0111111111111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)(2)原码、反码和补码 负数补码转换成十进制数:最高位不动,其余位取反加1例 补码:11111001 取反:10000110 加1: 10000111=-7(2)原码、反码和补码(2)原码、反码和补码西北大学信息科学与技术学院. All rights reserved 2011 第 18 页(3)

14、小数的表示及存储-数的定点表示-数的浮点表示 小数点在符号位之后 小数点在数据之后 符号位 符号位 阶符阶 码数符尾 数计算机中浮点数的表示 西北大学信息科学与技术学院. All rights reserved 2011 第 19 页2.1.4 2.1.4 字符的表示及存储字符的表示及存储ASCIIASCII码 表示文字信息和控制信息的基础是各种字符,各种字符表示文字信息和控制信息的基础是各种字符,各种字符必须按一定规则用二进制编码表示,才能为计算机所识别。必须按一定规则用二进制编码表示,才能为计算机所识别。ASCIIASCII码码 (American Standard Code for In

15、formation American Standard Code for Information InterchangeInterchange)ASCIIASCII码是由美国国家标准委员会制定的一种码是由美国国家标准委员会制定的一种包括数字、字母、通用符号、控制符号在内的字符编码集,包括数字、字母、通用符号、控制符号在内的字符编码集,全称叫美国国家信息交换标准代码。全称叫美国国家信息交换标准代码。ASCIIASCII码是一种码是一种7 7位二进制编码,能表示位二进制编码,能表示27=12827=128种国际上最通种国际上最通用的西文字符,是目前计算机中,特别是微型计算机中使用用的西文字符,是目

16、前计算机中,特别是微型计算机中使用最普遍的字符编码集。最普遍的字符编码集。西北大学信息科学与技术学院. All rights reserved 2011 第 20 页7位ASCII码表7657654321432100000000100101001001101110010010110111011011111100000000NULNULDLEDLESPSP0 0 P Pp p00010001SOHSOHDC1DC1!1 1A AQ Qa aq q00100010STXSTXDC2DC2”2 2B BR Rb br r00110011ETXETXDC3DC3# #3 3C CS Sc cs s01

17、000100EOTEOTDC4DC4$ $4 4D DT Td dt t01010101ENQENQNAKNAK% %5 5E EU Ue eu u01100110ACKACKSYNSYN& &6 6F FV Vf fv v西北大学信息科学与技术学院. All rights reserved 2011 第 21 页7657654321432100000000100101001001101110010010110111011011111101110111BELBELETBETB7 7G GW Wg gw w10001000BSBSCANCAN(8 8H HX Xh hx x10011001HTH

18、TEMEM)9 9I IY Yi iy y10101010LFLFSUBSUB* *:J JZ Zj jz z10111011VTVTESCESC+ +;K K k k 11001100FFFFFSFS, N Nn n 11111111SISIVSVS/ /?O Oo oDELDEL西北大学信息科学与技术学院. All rights reserved 2011 第 22 页汉字编码在ASCII码编码方案中,用到了一个字节的低7位,最多只能表示128个字符,但对于汉字来说,日常使用的汉字就有7000多个,只用一个字节对汉字进行编码是不可能的,所以通常用多字节对汉字进行编码。(1)国标码(GB23

19、12-80编码集)。 (2)汉字内码。 (3)区位码。 (4)BIG5码。 (5)中、日、韩统一大汉字编码字符集。 西北大学信息科学与技术学院. All rights reserved 2011 第 23 页2.1.5 2.1.5 指令的表示及存储指令的表示及存储指令指令(Instruction)就是一组计算机能识别并能执行的各种基本操作命令。指令构成如图示:指令系统指令系统(Instruction System)是一台计算机的所有指令的集合。指令系统反映了计算机的基本功能,不同的计算机其指令系统不尽相同。操作码指明该指令要完成的操作码指明该指令要完成的操作,如加、减、乘、除。操作,如加、减、

20、乘、除。操作数是指参加运操作数是指参加运算的数据或者数据算的数据或者数据所在的地址。所在的地址。 操作码 操作数西北大学信息科学与技术学院. All rights reserved 2011 第 24 页CPUCPU发出命令发出命令C CP Pu u CPU对根据该指令的内容进行运算或者控制 内存内存内存送出所需指令内存送出所需指令计算机运行计算机运行指令的过程指令的过程CPU将要执行的指令从内存调入CPU判断该指令所要完成的操作,然后向相应部件发出完成操作的控制信号,从而完成该指令的功能。内存代码区函数(1)1:-2: -3:-:函数(2)1:-2:-函数 main1:-2:-内存数据区西北

21、大学信息科学与技术学院. All rights reserved 2011 第 25 页第第2章章 C语言基本元素和语句语言基本元素和语句 2.1 数据的存储 2.2 程序的基本元素 2.3 简单语句 2.4 条件语句 2.5 循环语句西北大学信息科学与技术学院. All rights reserved 2011 第 26 页第第2章章 C语言基本元素和语句语言基本元素和语句2.2.1 C语言的发展历史及特点2.2.3 常量、变量2.2.4 运算符和表达式2.2 程序的基本元素2.2.2 C语言的数据类型西北大学信息科学与技术学院. All rights reserved 2011 第 27

22、页 产生背景:从面向机器的语言到面向过程的语言 产生过程时间:19721973地点:美国贝尔实验室目的:UNIX操作系统设计人: Ken.Thompson和Dennis.M.Ritchie C标准标准C: K&R合著The C Programming LanguageANSI C: 1983年87 ANSI C: 1987年1990年国际标准的ANSI C 2.2.1 C 语言发展历史及特点西北大学信息科学与技术学院. All rights reserved 2011 第 28 页语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好有少量可以访问硬件的语句

23、中级语言 2.2.1 C 语言发展历史及特点西北大学信息科学与技术学院. All rights reserved 2011 第 29 页2.2.2 C语言的数据类型程序=数据描述+数据计算方法 一般的计算机语言在进行数据描述的时候必须规定数据的类型方便存储便于运算西北大学信息科学与技术学院. All rights reserved 2011 第 30 页C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void定义类型定义类型typedef数值类数值类型型字符类型字符类型char枚举类型枚举类型enum整整 型型浮点型浮点型单精度型单精度型float双精度型双精

24、度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union2.2.2 C语言的数据类型西北大学信息科学与技术学院. All rights reserved 2011 第 31 页常量:程序中其值不发生变化的量。常量:程序中其值不发生变化的量。语言中有数值常量字符常量字符串常量符号常量整型实型十进制八进制(由数字开头) 十六进制( 由0 x 或0X 开头)常用形式(3.14159 , -0.555 , .666)指数形式(0.55e5 , 3.33E-3 , 4e+2(用单引号括起来的一个字符。如: a, D)(用双引号括起来的

25、一串字符。如:abcd)(用一个标识符代表一个常量)注意: a 和a的区别2.2.3 常量和变量西北大学信息科学与技术学院. All rights reserved 2011 第 32 页 标识符 定义:用来标识变量、常量、函数等的字符序列 组成:只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线大小写敏感不能使用系统已用的关键字 长度:最长32个字符 命名原则:见名知意不易混淆 如1与I, o与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M

26、.D.John3days#33char$123ab2.2.3 常量和变量西北大学信息科学与技术学院. All rights reserved 2011 第 33 页变量名,函数名等必须望文知意,不可用a,b,c, i,j,k 之类的简单变量名,除非确实是没有特别意义的练习题。采用匈牙利变量命名法, 变量起名规则: 以小写字母代表变量类型 n 代表整型,f代表实型,c代表字符型,an代表整型数组,af代表实型数组,p代表指针类型,pn代表整型指针类型等等(详见变量起名规则)变量名一般是主谓结构,单词首字母大写例如: nCharNum, cString, 等等函数名一般是动宾结构,单词首字母大写例

27、如:PrintStar( ), CalculateLine 等等2.2.3 常量和变量西北大学信息科学与技术学院. All rights reserved 2011 第 34 页符号常量定义方法符号常量定义方法#define PRICE 30 main() int num,total; num=10; /*Calculate total price*/ total=num*PRICE; /Output result printf(total=%d,total); 仿照练习: 写一个程序,定义半径R为35,求圆面积整型数:125 , 0125 , 0 x125 , +35 , -235 , -0

28、35实型数:3.14159 , -555.6 , 888.0 , 0.88 , 8.88e+18 注意: 用指数形式表示的浮点数必须有尾数,指数部分必须是整数。如:e4 , .e3 , 0.25e4.5 , e 等是错误的。字符常量: b D 字符串常量: “Hello World !”常量例子西北大学信息科学与技术学院. All rights reserved 2011 第 35 页字符形式功能n 换行t 横向跳格(即跳到下一个输出区8列) v 竖向跳格 b 退格 r 回车 f 走纸换页 反斜杠字符“” 和 ” 单引号字符();双引号字符(”) ddd 1到3位8进制数所代表的字符 xhh

29、1到2位16进制数所代表的字符转义字符常量:用转义字符常量:用“”开头后跟一个字符,但含义非常特殊。开头后跟一个字符,但含义非常特殊。西北大学信息科学与技术学院. All rights reserved 2011 第 36 页转义字符例子转义字符例子巩固练习:-请上机自己练习 printf( ab ct derftgn); printf(“htibbj k”); 程序实践练习:例 /*练习 n t b r*/main() printf(“This is a c program.n”); printf(“Hello world!n); 西北大学信息科学与技术学院. All rights rese

30、rved 2011 第 37 页变量:程序中其值可发生变化的量。变量:程序中其值可发生变化的量。每一个变量都应有一个名字,称为变量名。而且在内存中占据一定的存储空间,用来存放变量的值。 *变量起名除符合标识符起名原则之外, 还要注意“望文知意”的原则语言规定对使用的变量必须语言规定对使用的变量必须先定义先定义,后使用后使用。目的:保证程序中变量名的正确使用。可分配相应的存储空间。便于检查变量所进行的运算是否合法。2.2.3 2.2.3 常量和变量常量和变量西北大学信息科学与技术学院. All rights reserved 2011 第 38 页整型变量:(四种类型) 类型 所占位数 数的范围

31、 基本型(int) 16 -3276832767 短整型(short int) 16 -3276832767 长整型(long int) 32 -21474836482147483647 无符号整型(unsigned int) 16 065535 无符号短整型(unsigned short) 16 065535 无符号长整型(unsigned long) 32 04294967295 无符号型整型变量整型变量西北大学信息科学与技术学院. All rights reserved 2011 第 39 页变量的定义格式变量的定义格式: 类型类型 变量名表列;变量名表列; 程序练习: main() i

32、nt a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(a+u=%d,b+u=%dn,c,d); 整型变量定义的例子整型变量定义的例子西北大学信息科学与技术学院. All rights reserved 2011 第 40 页实型变量:(两类) 类型 所占位数 数的范围 单精度实型(float) 32 10 10 双精度实型(double) 64 10 10 单精度实型提供7位有效数字,双精度实型提供1516位有效数字。 如:float a; a=111111.111 (最后两位小数不起作用) 而:double a; a=111

33、111.111 (全部接收)-3838 -308308实型变量实型变量西北大学信息科学与技术学院. All rights reserved 2011 第 41 页字符变量:char 用来存放一个字符常量。占一个字节(8位),存放该字符的ASCII码值。 如:char c1,c2; c1=a;c2=b;字符型变量字符型变量例 main() char c1,c2; c1=97;c2=98; printf(%c %c,c1,c2); 97980110000101100010c1c1c2c2西北大学信息科学与技术学院. All rights reserved 2011 第 42 页例 main() c

34、har c1,c2; c1=a;c2=b; c1=c1-32;c2=c2-32; printf(%c %c,c1,c2); c1=a;c2=b;a=A+32ASCII码表中大小写字母之间具有:C语言中允许字符型数据与整型数据互相赋值。如: int i; i=a; char c; c=97;例 main() int i; char c; i=a; c=97; printf(%c,%dn,c,c); printf(%c,%dn,i,i); 输出结果:a,97 a,97字符型数据的计算和赋值字符型数据的计算和赋值西北大学信息科学与技术学院. All rights reserved 2011 第 43

35、 页变量赋初值:在定义变量的同时给变量初始化。如:int a=10; float f=5.55; char c=a; int a=15,b=15,d=15;不能写成:int a=b=d=15;格式为:类型变量名常量值 请分析下面程序:相当于:int a; a=10;变量赋初值变量赋初值main() int a; printf(n%d,a); 输出结果是什么?没有赋初值的变量,其值为一个不定的值。引用该变量,就回出现上面程序中的问题,产生莫名奇妙的结果。西北大学信息科学与技术学院. All rights reserved 2011 第 44 页2.2.4 2.2.4 运算符和表达式运算符和表达式

36、 运算符: 提供不同计算和处理方式的符号 (目, 优先级, 结合性) 表达式:由运算符和运算对象(常量和变量)组成的式子,结果是一个确定的值和一个确定的类型西北大学信息科学与技术学院. All rights reserved 2011 第 45 页34种运算符:算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 :sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :( ) -C程序的运算符注意运算符的运算对象目数优先级结合性西北大学信息科学与技

37、术学院. All rights reserved 2011 第 46 页(1 1)算术运算符和算术表达式)算术运算符和算术表达式基本算术运算符:+ 、 - 、 * 、 / 、 %(注:两个整数相除,结果为整数。)算术表达式和运算符的优先级与结合性:用算术运算符和括号“( )”将运算对象连接起来,符合语法规则的式子称为算术表达式。 目: 双目运算对象:常量、变量、函数等。优先级:先乘除后加减。结合性:自左至右。例如:a*b/c-1.5+a ; a-(b*c)西北大学信息科学与技术学院. All rights reserved 2011 第 47 页 C语言允许不同类型的数值型数据可以混合运算,运

38、算时系统自动将数据转换成同一类型数据。doublelongunsignedintfloatchar,short低级高级必定的转换必定的转换数据类型转换数据类型转换西北大学信息科学与技术学院. All rights reserved 2011 第 48 页例如: 若有 int i, float f, double d, long e 则 10+a+i*f-d/e 表达式运算次序为: 将a转换成97,然后10+a运算。 将i和f都转换成double型,然后i*f运算。 将的结果转换为double型,然后与的结果相加。 将e转换成double型,然后d/e运算。 用的结果减的结果。强制类型转换:格式

39、如下例如:(double) a、(int)(x+y)、(float)(5%3)、(int)x+y(类型名)(表达式)强制类型转换西北大学信息科学与技术学院. All rights reserved 2011 第 49 页赋值符号:(将赋值符右边表达式的值赋给赋值符左边的一个变量。) 赋值运算符的数据类型若不一致,则要进行类型转换。转换方式为: 将实型数据赋给整型变量时,舍弃实数的小数部分。如:i=5.65 , i 的值为 5。 将整型数据赋给实型变量时,数值不变。 将字符数据赋给整型变量时,将字符数据放到整型变量低8位中。 两种情况: 若字符最高位为1,整型变量的高8位置1,否则高8位置0。若

40、把字符处理为无符号的量,整型变量的高8位置0。1 1 11 11 1011 11 11 101 1 11 11 11C=37611 11 11 10 11 11 11 100 0 00 00 00C=376i的值为254i的值为-2(2 2)赋值运算符和赋值表达式)赋值运算符和赋值表达式西北大学信息科学与技术学院. All rights reserved 2011 第 50 页 将整型数据赋给长整型变量时,将整型数据放入长整型变量的低16位,若整型数为负数,长整型变量的高16位置1,否则长整型变量的高16位置0。 将长整型数据赋给整型变量时,取长整型数据低16位。 将unsigned int

41、赋给 long int 时,将unsigned int 放入long int的低16位,高16位置0。 unsigned int 赋给 int 将unsigned long 赋给 long 时,原样赋值。 unsigned short 赋给 short 例如:若unsigned int a=65535; int b; b=a; 则:b的值为-1。 int 赋给 unsigned int 将 long 赋给 unsigned long 时,原样赋值。 short 赋给 unsigned short 例如:main() unsigned a; int b=-1; a=b; printf(“%u”,

42、a); 应注意数值的范围,超出则数据出错在负数时,数值发生变化。11 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ba11 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ba西北大学信息科学与技术学院. All rights reserved 2011 第 51 页自增、自减运算符:+ , - (使变量的值增或减)结合性:自右至左。 例如: +i , -i (先自增或自减,后引用) i+ , i- (先引用,后自增或自减) i=3; printf(“%d”,+i); i=3; printf(“%d”,i+);

43、自增自减运算符自增自减运算符注意:自增自减只能用于变量西北大学信息科学与技术学院. All rights reserved 2011 第 52 页+= , = , *= , /= , %= , = , &= , = , |=(算术自反赋值运算符)例如:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子。格式为: 位运算注:若右边为表达式应加圆括号“( )”!复合的赋值运算符复合的赋值运算符西北大学信息科学与技术学院. All rights reserved 2011 第 53 页 赋值

44、运算符结合性为:“自右而左”。 例如: a=b=c=5 a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a+=a =a*a 若 a=5, 则赋值表达式的值为40。 若x的值是8, 则表达式x*=x-=x+=x的值?西北大学信息科学与技术学院. All rights reserved 2011 第 54 页逗号运算符: , 自左向右格式:表达式1,表达式2,表达式3,表达式n优先级:最低。逗号表达式的值为表达式n的值。例如: a=3*5,a*4 (a=3*5,a*4),a+5 x=(a=3,6*3) x=a=3,6*a(3)逗号运算符和逗号表达式西北大学信息科学与技

45、术学院. All rights reserved 2011 第 55 页关系运算符用于两个数值之间的比较运算。语言提供6种关系运算符,它们是:、=、=、!=优先级相同优先级相同高到低关系运算符、算术运算符和赋值运算符的优先级为:算术运算符关系运算符赋值运算符低高(4 )关系运算符和关系表达式西北大学信息科学与技术学院. All rights reserved 2011 第 56 页 例如: ca+b 等效于 c(a+b) ab!=c 等效于 (ab)!=c a=bc 等效于 a=(bc 等效于 a=(bc)关系表达式:用关系运算符将两个表达式连接起来的式子。关系表达式运算结果为:“真”或“假”

46、值。语言用1代表“真”值,用0代表“假”值。同时系统在运算时以非0为“真”值,以0为“假”值。例如:若 a=3,b=2,c=1 f=abc 则f的值为0。西北大学信息科学与技术学院. All rights reserved 2011 第 57 页语言提供3种逻辑运算符:逻辑运算符逻辑运算符 结合性结合性 优先级优先级& 与 自左至右 中 | 或 自左至右 低 ! 非 自右至左 高(5)逻辑运算符和逻辑表达式西北大学信息科学与技术学院. All rights reserved 2011 第 58 页逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子。运算结果为:“真”或“假”值。系统在运

47、算时以非0为“真”值,以0为“假”值。逻辑运算:ab&00010011ab|0111001101a!a例如: 4&0|2 的值为1 5&!0 的值为1与运算或运算非运算西北大学信息科学与技术学院. All rights reserved 2011 第 59 页 运算符 优先级 逻辑非! 高算术运算符 关系运算符 &和| 赋值运算符 低逻辑、关系、算术和赋值运算符的优先级为:例如:(ab)&(xy) 可以写成ab&xy (a=b)|(x=y) 可以写成 a=b|x=y (!a)|(ab) 可以写成 !a|ab 53&2|8b)&n=c4) 设 a=1,b=2,c=3,m=1,n=1。 则 m为0

48、 , n 为 1。请问表达式 x0&xb?a:b 条件运算符的优先级低于逻辑、关系、算术运算符高于赋值运算符。如: ab?a:b+1 相当于 (ab)?a:(b+1) (6)条件运算符和表达式西北大学信息科学与技术学院. All rights reserved 2011 第 62 页条件运算符的结合性为:“自右至左”。如: ab?a:cd?c:d 相当于 ab?a:(cd?c:d)注意:条件表达式中的表达式1、表达式2、表达式3可以是不同的类型。 main() float p; char x,y;scanf(%c%c,&x,&y); /*Input x and y*/ p=xy?1:1.5;

49、printf(n%f,p); /* Output the result*/ 西北大学信息科学与技术学院. All rights reserved 2011 第 63 页第第2章章 C语言基本元素和语句语言基本元素和语句 2.1 数据的存储 2.2 程序的基本元素 2.3 简单语句 2.4 条件语句 2.5 循环语句西北大学信息科学与技术学院. All rights reserved 2011 第 64 页第第2章章 C语言基本元素和语句语言基本元素和语句2.3.1 C语句概述2.3.3 输出语句2.3.4 输入语句2.3 简单语句2.3.2 赋值语句西北大学信息科学与技术学院. All rig

50、hts reserved 2011 第 65 页2.3 简单语句2.3.1 2.3.1 语句概述语句概述语言的语句是用来向计算机系统发出操作指令。每语言的语句是用来向计算机系统发出操作指令。每一个为实现特定目的的程序都包含若干个语句。一个为实现特定目的的程序都包含若干个语句。 五种五种分类:分类: 控制语句:完成一定的控制功能。控制语句:完成一定的控制功能。 函数调用语句:由一次函数调用加一个分号构成。函数调用语句:由一次函数调用加一个分号构成。 如:如:scanf(%dn,&a); 表达式语句:由表达式加一个分号构成。表达式语句:由表达式加一个分号构成。如:如:i=i+1; 空语句:由一个分

51、号构成。空语句:由一个分号构成。 复合语句;由一对大括号复合语句;由一对大括号“”组成。组成。 如:如:z=x+y; b=15; printf(%d,b); 西北大学信息科学与技术学院. All rights reserved 2011 第 66 页程序的三种基本控制结构程序的三种基本控制结构顺序结构:从前向后顺序执行程序。顺序结构:从前向后顺序执行程序。选择结构:根据判断条件的结果选择执行程序。选择结构:根据判断条件的结果选择执行程序。 其中包括:单条件选择语句其中包括:单条件选择语句 多条件选择语句多条件选择语句 循环结构:根据条件反复的执行某一段程序若干次循环结构:根据条件反复的执行某一

52、段程序若干次。西北大学信息科学与技术学院. All rights reserved 2011 第 67 页2.3.2 赋值语句由赋值表达式加一个分号构成。由赋值表达式加一个分号构成。 如:如:h=49; 注意:赋值语句与赋值表达式的区别。注意:赋值语句与赋值表达式的区别。 如:如:if (a=b)0) t=a;赋值表达式赋值语句西北大学信息科学与技术学院. All rights reserved 2011 第 68 页2.3.3 2.3.3 输出语句输出语句语言数据输出,是由调用输出函数来完成。语言数据输出,是由调用输出函数来完成。putchar函数函数功能:向终端输出一个字符。功能:向终端输

53、出一个字符。 格式:格式: putchar (ch) 函数名参数西北大学信息科学与技术学院. All rights reserved 2011 第 69 页 例例2.3.1 #include stdio.h main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n); 结果结果: BOY 格式输出函数格式输出函数printf() 功能:输出若干个任意类型的数据。功能:输出若干个任意类型的数据。格式:格式:printf(格式控制格式控制,参数参数1,参数参数2,参数参数3, )由格式说明和普通字符构成输出

54、数据。由表达式构成。西北大学信息科学与技术学院. All rights reserved 2011 第 70 页 格式字符:格式字符:格式字符格式字符 作用作用 d 用来输出十进制整数。用来输出十进制整数。 o 用来输出用来输出8进制整数。进制整数。 x 用来输出用来输出16进制整数。进制整数。 c 用来输出单个字符。用来输出单个字符。 用来输出字符串,在输出时以非空白字符开始,以第一个空白字符用来输出字符串,在输出时以非空白字符开始,以第一个空白字符 s 结束。字符串以串结束标志结束。字符串以串结束标志0作为其最后一个字符。作为其最后一个字符。 f用来输出实数,可以用小数形式或指数形式输出。

55、用来输出实数,可以用小数形式或指数形式输出。 e (g) 与与f作用相同,作用相同,e与与f可以互相替代。可以互相替代。格式说明:由格式说明:由%后跟一个格式字符组成。中间可插入后跟一个格式字符组成。中间可插入l、m、n、和几个附加符号。、和几个附加符号。 普通字符:照原样输出。普通字符:照原样输出。西北大学信息科学与技术学院. All rights reserved 2011 第 71 页例:long a=135790; printf(%ld,a );例:a=-1; printf(%d,%o,%x,a,a,a);例:main() unsigned int a=65535; int b= -2

56、; printf(a=%d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x,%un,b,b,b,b); 例:main() int i=234; char c=a; printf(%d,%5d,%c,%3c,i,i,c,c); 1 1 11 11 11 11 11 11 11a=135790输出为:-1,177777,ffffa=-1,177777,ffff,65535b=-2,177776,fffe,65534结果为234, 234,a, a结果为指定输出宽度。数据宽度不够,前面补空格,超过则原样输出。西北大学信息科学与技术学院. All rights reserv

57、ed 2011 第 72 页 附加格式说明字符: 字 符 作用 字母 l 用于长整型整型,可加在格式符d、o、x、u前面。 m(代表一个正整数) 数据最小宽度。 .n(代表一个正整数) 对实数,表示输出n位小数;对字符串,表示截取的字符个数。 - 输出的数字或字符在域内向左靠。例:main() printf(%3s,%7.2s,%.4s,%-5.3sn, CHINA, CHINA, CHINA, CHINA); 例:main() float f=123.456; printf(%f %10f %10.2f %.2f %-10.2fn,f,f,f,f,f); 输出为: CHINA, CH,CHI

58、N,CHI 输出为: 123.455994 123.455994 123.46 123.46 123.46西北大学信息科学与技术学院. All rights reserved 2011 第 73 页例:main() float f=123.456; printf(%e %10e %10.2e %.2e %-10.2en,f,f,f,f,f); 输出结果为: 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 1.23e+002 13列13列10列9列10列例: main() float f=123.456; printf(%f %10e %gn,f,

59、f,f); 输出为:123.456000 1.234560e+002 123.45613列10列10列格式控制字符串中用连续两个%,表示输出一个%。 如:printf(“%f%”,1.0/3); 输出为:0.333333%西北大学信息科学与技术学院. All rights reserved 2011 第 74 页2.3.4 2.3.4 输入语句输入语句语言数据输入,是由调用输入函数来完成。语言数据输入,是由调用输入函数来完成。getchar函数函数功能:功能: 从输入设备输入一个字符。从输入设备输入一个字符。 格式:格式: getchar () 例例2.3.2 : #include stdio

60、.h main() char c; c=getchar(); putchar(c); 格式输入函数格式输入函数scanf() 功能:输入若干个任意类型的数据。功能:输入若干个任意类型的数据。 格式:格式:scanf(“格式控制格式控制”,输入变量地址表输入变量地址表 ) 只能接收一个字符!由格式说明和普通字符构成变量的地址或字符串的首地址。西北大学信息科学与技术学院. All rights reserved 2011 第 75 页格式说明:由格式说明:由%后跟一个格式字符组成。后跟一个格式字符组成。中间可插入中间可插入l、h、m、几个附加字符。、几个附加字符。 普通字符:照原样输入。普通字符:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论