C程序设计(第四版)(谭浩强编)教程-第3章 最简单的C程序.ppt

上传人:qwe****56 文档编号:90029086 上传时间:2023-05-13 格式:PPT 页数:95 大小:898.50KB
返回 下载 相关 举报
C程序设计(第四版)(谭浩强编)教程-第3章 最简单的C程序.ppt_第1页
第1页 / 共95页
C程序设计(第四版)(谭浩强编)教程-第3章 最简单的C程序.ppt_第2页
第2页 / 共95页
点击查看更多>>
资源描述

《C程序设计(第四版)(谭浩强编)教程-第3章 最简单的C程序.ppt》由会员分享,可在线阅读,更多相关《C程序设计(第四版)(谭浩强编)教程-第3章 最简单的C程序.ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 C 程序设计程序设计第第2页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010数据类型,运算符和表达式数据类型,运算符和表达式1.数据类型、常量,变量的定义2.运算符的种类、优先级和结合方向3.表达式的类型和求值4.简单的C程序设计及基本输入输出第第3页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010C的数据类型的数据类型(Data Types)n基本类型l整型、字符型、浮点型(实型)、枚举类型n构造类型l数组类型、结构体类型、共用体类型n指针类型n空类型第第4页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲

2、义 2010数据类型、常量和变量数据类型、常量和变量n一个程序的算法设计必须考虑数据结构n数据结构是各种类型数据的组织形式nC语言的数据有常量和变量之分n常量和变量都分别属于某一数据类型n程序中用到的所有数据都具有一定类型第第5页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010常量常量(Constants)n常量l程序运行过程中,其值不能被改变的量l例如:12、-6.7、an符号常量(Symbolic Constants)l用一个标识符代表的常量,相当于用标识符把一个常量 替换下来l习惯上符号常量名用大写字母l优点:含义清楚直观;修改时一改全改第第6页页中国科学

3、技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010#define PRICE 30#define NUM 12int main().total=NUM*PRICE;total2=84*PRICE2;printf(total=%d,total);.常量示例常量示例不会被替换=total=12*30;常量符号常量第第7页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010变量变量(Variables)n其值可以改变的量称为变量n变量有一个名字,即标识符n变量在存储器中占据一定的存储单元n变量占据存储空间的大小由其类型决定n程序中的变量参与计算时,从这

4、个变量所占据的存储单元里取出存储的数据的值n变量要“先定义,后使用”第第8页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010标识符标识符(Identifier)n标识符标识符l变量名、符号常量名、函数名、类型名n标识符命名规范l由字母、数字、下划线(Underscore,_)组成l第一个字符必须为字母或下划线lC语言标识符是大小写敏感的l标识符的名称一般应具有一定的含义l不要与C语言关键字(Keywords)重复l一般不要使用以下划线开头的标识符第第9页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010ANSI C共有共有32个关键

5、字个关键字 autobreakcasecharconstcontinuedefaultdo double else enum extern float for goto if int long register return short signed static sizof struct switch typedef union unsigned void volatilewhile第第10页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010标识符示例标识符示例n正确的标识符lstudent、num1、_SUM、_1_2_3lMyName、myname、my_n

6、amen错误的标识符lroom3-1包含了其他字符(减号)l2men以数字开头llong与关键字重复lMr.Zhu 包含了其他字符(小数点)第第11页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010变量的存储变量的存储34a变量名存储单元(地址)变量值第第12页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型整型(Integer)n整型常量的表示方法n整型变量l整型数据在内存中的存放形式l整型变量的类型l整型变量的定义l整型数据的溢出n整型常量的类型第第13页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲

7、义 2010整型常量的表示方法整型常量的表示方法n十进制(Decimal)l例如,123、-456、0n八进制(Octal)l以0开头,不得含有8或9l例如,0123、-0456l错例,0138、-0912n十六进制(Hexadecimal)l以0 x或0X开头,用af或AF表示1015l例如,0 x123、-0X45、0 x3AB、-0 xabc第第14页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型数据在内存中的存放方式整型数据在内存中的存放方式n二进制形式l举例,int i=50;/*int类型占2字节*/n补码(Complement)l正数:与原码

8、一致,首位为0l负数:绝对值取反加一,首位为1l零:各位全为00000000000110010高地址字节低地址字节第第15页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010补码举例补码举例n举例lint i=-50;/*int类型占2字节*/00000000001100101111111111001101111111111100111050的原码-50的补码取反加一第第16页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型变量的分类整型变量的分类n按占用存储空间的大小划分l基本整型 intl短整型short intl长整型lo

9、ng intn按有无符号划分l有符号signedl无符号unsignedn上述两种分类方式组合,可得到6种类型第第17页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整数的长度整数的长度n整数的类型与长度 教材p43lshort:占2字节(16bit)llong:占4字节(32bit)lint:占2或4字节(16或32bit)l2Bytes=short int long=4Bytesl若需要精确的长度,可选用short或longn举例lBC3.1:int长度为2Byteslgcc:int长度为4Bytes数据长度由编译器指定,而编译器的设计受处理器的限制。第第

10、18页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010有符号数与无符号数有符号数与无符号数n有符号数l二进制补码表示,首位为符号位l指定signed或缺省情况,即为有符号数n无符号数l没有符号位,只能表示非负数l无符号数类型必须指定为unsignedl若把负数赋值给无符号数,则把该负数的补码当作无符号数进行处理第第19页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010有符号数与无符号数举例有符号数与无符号数举例int main()int i;unsigned j;i=j=-50;i=i/2;/*-25*/j=j/2;/*32743

11、*/*除以除以2相当于右移相当于右移1位位*/1111111111001110-50的补码i,j/211111111111001110111111111100111i/2-25的补码j/232743的补码/原码第第20页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型数据的取值范围整型数据的取值范围类类 型型长度长度(bit)取值范围取值范围signed short int16-215 215-1unsigned short int160 216-1signed int16 or 32-215(31)215(31)-1unsigned int16 or 32

12、0 216(32)-1signed long int32-231 231-1unsigned long int320 232-1第第21页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型变量的定义整型变量的定义(Definition)n定义形式lint a,b;lunsigned c;llong d;lunsigned short e;n变量的定义一般放在一个函数开头的声明部分,关于变量定义的具体内容在以后相关章节里详细介绍第第22页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型变量的定义与使用举例整型变量的定义与使用举

13、例int main()int a;/*定义有符号基本整型变量a*/unsigned b;/*定义无符号基本整型变量b*/long c;/*定义有符号长整型变量c*/a=-23;/*a的值为-23*/b=45;/*b的值为45*/c=a+b;/*c的值为22*/第第23页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型数据的溢出整型数据的溢出(Overflow)n溢出l数据超出了变量能够存储的范围,造成数据丢失或数值改变等n举例(假定int类型数据用16位表示):int main()int a=32767;a+;/*32768?*/01111111111111

14、111000000000000000+132767的补码-32768的补码第第24页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型整型常量常量的类型的类型n常量的类型后缀(Suffix)ll、L表示常量是一个长整型lu、U表示常量是一个无符号整型数l两种后缀可以一起使用n举例l123l长整型常数123l456U无符号整型常数456l789ul无符号长整型常数789l101Lu无符号长整型常数101第第25页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010整型常量使用中的类型问题整型常量使用中的类型问题n对整型变量赋值l常量的

15、值不要超过变量的取值范围n直接使用常量l带有l、L、u、U等后缀的整型常量一般用于函数调用l不带有后缀的整型常量的类型,是根据其数值大小所处的范围来确定的第第26页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型浮点型(Floating Point)n浮点型常量的表示方法n浮点型变量l浮点型数据在内存中的存放形式l浮点型变量的类型l浮点型数据的舍入误差n浮点型常数的类型第第27页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型常量的表示方法浮点型常量的表示方法n十进制小数形式l由符号、数字和小数点(必须)组成l整数和小

16、数部分都可省略,但不能同时省略l举例,12.3、-.123、123.、0.、.0n指数形式l由整数(或小数)、e(或E)、整数顺序组成le或E之前必须有数字,之后必须是整数l举例,123.4e-5表示123.410-5l错例,e1、12e、1.2e3.4、.e5、e第第28页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010规范化指数形式规范化指数形式n规范化指数形式l类似于“科学计数法”le或E之前的小数中,小数点前面有且仅有一个非零数字n举例,123.456l规范化形式,1.23456e2、1.23456E+002l非规范化形式,123.456、12.3456

17、e1、12345.6e-2、0.123456e3、12345600e-5第第29页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型数据在内存中的存放方式浮点型数据在内存中的存放方式n二进制规范化指数形式n小数部分长度与能表示的精度有关n指数部分长度与能表示的数值范围有关1101100110110010指数部分e小数部分f符号s第第30页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型变量的类型浮点型变量的类型n分类l单精度 floatl双精度 doublel长双精度 long doublen长度和取值范围类类 型型长度

18、长度(bit)有效数字有效数字绝对值范围绝对值范围float326710-371038double64151610-30710308long double128181910-4931104932第第31页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型数据的舍入误差浮点型数据的舍入误差n由于浮点型变量能够表示的有效数字有限,将有效位以外的数字舍去造成误差n举例float a=123456.789e5,b;b=a+20;/*b=12345678920?*/printf(a=%fnb=%fn,a,b);运行结果 a=12345678848.000000 b=1

19、2345678848.000000第第32页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010浮点型常量的类型浮点型常量的类型n类型后缀lf、F表示常量是一个单精度型浮点数ll、L表示常量是一个长双精度型浮点数l无任何后缀的浮点型常量视作双精度型n对浮点型变量赋值l一个浮点型常量可以赋值给任何类型的浮点型变量l根据变量类型截取常量的相应有效数字l注意防止出现溢出第第33页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符型字符型(Character)n字符型常量字符型常量n字符型变量字符型变量n字符型数据在内存中的存放形式字符型数

20、据在内存中的存放形式n字符型数据的使用方法字符型数据的使用方法n字符串常量字符串常量第第34页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符型常量字符型常量n单引号括起来的单引号括起来的一个一个字符字符l举例,举例,a、A、1、?l错例,错例,abc、我我n转义字符转义字符l以以开头的特殊字符开头的特殊字符lddd 1到到3位位8进制数进制数ASCII码代表的字符码代表的字符lxhh 1到到2位位16进制数进制数ASCII码代表的字符码代表的字符l举例,举例,n、t、123、x3A第第35页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计

21、讲义 2010字符型变量字符型变量n字符型变量只能存放一个字符n定义与使用:int main()char c1,c2;/*定义字符型变量c1和c2*/c1=a;/*c1的值为a*/c2=2;/*c2的值为2*/第第36页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010n一个字符型数据占一个字节的空间n字符型数据以其ASCII码(P.364)形式存放n字符型数据的存放形式与只占一个字节长度的整型数据完全相同字符型数据在内存中的存放形式字符型数据在内存中的存放形式01100001c1=a(ASCII=97)00110010c1=2(ASCII=50)第第37页页中国

22、科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符型数据的使用方法字符型数据的使用方法n可以把字符型数据视作一种长度为1字节的整型数据处理l当使用字符型数据时,与使用这个字符的ASCII码(一个8位整数)是完全一样的l字符型数据的用法与整型数据完全一样,包括运算、赋值、输入、输出等l字符型数据使用过程中,同样需要注意溢出、符号等问题n是字符还是整数,只有在输出时才有意义第第38页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符型数据使用举例字符型数据使用举例int main()char c;int i,j;c=97;/*同同 c=

23、a*/i=c+20;/*同同 i=117*/j=2;/*同同 j=50*/printf(%c,%dn,c,c);/*a,97*/第第39页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符型变量的符号字符型变量的符号n字符型变量与整型变量一样,也分为有符号数与无符号数n无符号字符lunsigned char c;l举例,表示一个班级的人数(=!=n逻辑运算符逻辑运算符!&|n位运算符位运算符|&n赋值运算符赋值运算符=+=-=*=/=%=n下标运算符下标运算符n其他运算符其他运算符()第第47页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计

24、讲义 2010运算符的优先级运算符的优先级n优先级l运算符的运算次序按优先级由高到低执行l可以用圆括号()改变运算符的执行次序n举例la+b*cd/e 计算顺序:计算顺序:(a+(b*C)-(d/e)/*先算乘除,后算加减*/*乘除比加减优先级高*/l(a+b)*(c-d)/e/*先算加减,后算乘除*/第第48页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010运算符的结合方向运算符的结合方向n结合方向l当一个操作数两侧的运算符优先级相同时,运算次序按照结合方向的规定进行n举例la+b-c/*+和-的结合方向都是从左向右*/*b先与+结合计算a+b,然后执行减法*

25、/la=b=1/*=的结合方向是从右向左,先计算b=1*/第第49页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010运算符的结合方向规则运算符的结合方向规则1.单目运算符的结合方向都是“从右向左”l!、+、-、+(正号正号)、-(负号负号)l*(指针运算符指针运算符)、&(地址运算符地址运算符)lsizeof(type)2.赋值运算符的结合方向是“从右向左”3.三目运算符的结合方向是“从右向左”l唯一的三目运算符:条件运算符?:n其他运算符的结合方向都是其他运算符的结合方向都是“从左向右从左向右”第第50页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语

26、言程序设计讲义 2010优先级与结合方向总结优先级与结合方向总结n不同优先级的运算符,运算次序按优先级由高到低执行n同一优先级的运算符,运算次序按结合方向的规定执行n可以使用圆括号()明确运算次序l圆括号()具有最高的优先级第第51页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010表达式表达式(Expression)n表达式的概念n表达式的类型n表达式求值l算术运算符和算术表达式l赋值运算符和赋值表达式l逗号运算符和逗号表达式第第52页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010表达式的概念表达式的概念n表达式l用运算符把操作

27、数连接起来,并符合C语言语法规则的式子l操作数包括常量、变量、函数调用、表达式l广义上,常量、变量、函数调用也可以看作属于表达式的范畴n举例la+2.5*b-6/c+z-max(x,y)l!(a1e-6)&(b=(c+sqrt(f)第第53页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010表达式的类型表达式的类型n表达式的类型l表达式的值的类型l取决于操作数的类型以及它们所做的运算n举例la+2.5*b-6/c+z/*混合类型算术运算,值为double类型*/l!(a 5*/b=(int)(x+y);/*b=6,(int)(6.5)*/c=(int)x;prin

28、tf(x=%f,c=%dn,x,c);/*x=2.800000,c=2*/z=(float)d/e;/*z=2.5*/第第60页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010自增自增+、自减、自减-运算符运算符n形式l+i,-i使用i之前,先使i的值加/减1li+,i-使用i之后,再使i的值加/减1n说明l+i和-i的值是加/减1之后i的值li+和i-的值是加/减1之前i的值l+和-只能用于变量,不能用于常量和表达式l+和-的结合方向是“自右向左”第第61页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010自增、自减运算符举例自增

29、、自减运算符举例int i=3,j,a,b=1,c=2;j=+i;/*i=i+1,j=i,i=4,j=4*/j=i+;/*j=i,i=i+1,i=5,j=4*/j=-i+;/*-(i+),i=6,j=-5*/j=i+*2;/*(i+)*2,i=7,j=12*/a=(b+c)+;/*非法!*/a=34+;/*非法!*/j=+i+;/*非法!*/第第62页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010有关表达式使用的特殊问题有关表达式使用的特殊问题1.C的标准中,表达式中子表达式的求值顺序没有统一规定i=3;j=(i+)+(i+)+(i+);/*j=9?=12?*

30、/实验结果实验结果92.C编译程序自左向右尽可能多的将若干字符组合成一个运算符、标识符、关键字i+j/*(i+)+j?i+(+j)?*/结果解释为结果解释为(i+)+j3.调用函数时,实参的求值顺序没有规定i=3;printf(%d,%dn,i,i+);/*3,3?4,3?*/结果结果 4,3第第63页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010赋值运算符赋值运算符赋值运算符赋值运算符 (Assignment Operators)(Assignment Operators)n赋值运算符 =l把右侧表达式的值赋给左侧的变量l一般情况下,赋值运算符左侧只能是变量

31、l赋值运算符的优先级较低,“自右向左”结合l运算符两侧类型不一致时,要进行类型转换l注意“赋值”与“等于”的区别,例如i=i+2;n复合赋值运算符l=前加上算术运算符或位运算符,如+=、|=l举例,z*=x+y;/*z=z*(x+y);*/第第64页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010赋值表达式赋值表达式n赋值表达式ll赋值表达式的值就是所赋的值l运算符右侧的表达式可以是一个赋值表达式n举例la=5;/*表达式的值为5*/la=b=3;/*a=(b=3)*/la=b=c=1;/*a=(b=(c=1)*/la=(b=4)+(c=3);/*b=4,c=3

32、,a=7*/第第65页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010逗号运算符逗号运算符n逗号运算符 ,lexp1,exp2l逗号运算符的优先级最低,“自左向右”结合l逗号表达式的值是exp2的值lexp1和exp2都可以又是“逗号表达式”l把多个表达式组合成一个表达式使用n举例lx=(a=3,6*a)/*a=3,x=18*/lx=a=3,6*a /*a=3,x=3*/第第66页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010逗号运算符举例逗号运算符举例#include int main()int a=2,b=4,c=6,x,y

33、;y=(x=a+b),(b+c);/这里y得到b+c的值 printf(y=%d,x=%d,y,x);第第67页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010语句类型语句类型nC语言包括5类语句:1.控制类:1.if().else2.for()3.while()4.do.while()5.continue6.break7.switch8.return9.goto第第68页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010语句类型(续)语句类型(续)nC语言包括5类语句:2.函数调用语句3.表达式语句4.空语句5.复合语句 第第69

34、页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010数据输入输出的概念数据输入输出的概念数据输入输出的概念数据输入输出的概念(一).所谓输入输出是以计算机主机为主体而言的输出输出:从计算机向外部输出设备(显示器,打印机)输出数据输入输入:从输入设备(键盘,鼠标,扫描仪)向计算机 输入数据.(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar 字符输出函数:putchar格式输入函数:scanf 格式输出函数:printf字符串输入函数:gets 字符串输出函数:puts第第70页页中国科学技术大学中国科

35、学技术大学 C语言程序设计讲义语言程序设计讲义 2010(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.例如:在调用标准输入输出库函数时,文件开头应该有:#include“stdio.h”或:#include 头文件第第71页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010基本输入输出基本输入输出n头文件l#include n输入输出函数l字符输出函数 putcharl字符输入函数 getcharl格式输出函数 printfl格式输入函数 scanfl字符串输出函数putsl字符串输入函数gets第第72页页中

36、国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符输出函数字符输出函数putcharn函数说明lint putchar(int c);l输出一个字符到标准输出设备n参数说明lint c 要输出的字符,可以是整数或字符,若超出字符型范围,则只使用低字节n返回值l若成功,返回输出字符的ASCII码值l若失败,返回EOF(End of File)第第73页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数putchar举例举例int c,i;putchar(a);/*输出a*/putchar(n);/*输出换行符*/putchar(

37、101);/*输出e Ascii=101*/putchar(101);/*输出A ascii=65*/c=1000;i=putchar(c);/*输出,i=232*/第第74页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010字符输入函数字符输入函数字符输入函数字符输入函数getchargetcharn函数说明lint getchar(void);l从标准输入设备输入一个字符l需要输入回车后,函数才返回n参数说明l无参数n返回值l若成功,返回输入字符的ASCII码值l若失败,返回EOF(End of File)第第75页页中国科学技术大学中国科学技术大学 C语言程

38、序设计讲义语言程序设计讲义 2010函数函数getchar举例举例 int c;c=getchar();/*输入a后回车*/putchar(c);/*输出a*/c=getchar();/*是否需要输入?*/printf(c=%dn,c);/*输出c=?10*/c=getchar();/*输入abcd后回车*/putchar(c);/*输出a*/putchar(getchar();/*输出b*/第第76页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010格式输出函数格式输出函数格式输出函数格式输出函数printfprintfn函数说明lint printf(char

39、*format,args.);l格式化输出若干任意类型数据n参数说明lchar*format 格式控制字符串largs 需要输出的数据列表,可以多个或没有n返回值l若成功,返回输出的字节数,包括换行符l若失败,返回EOF(End of File)第第77页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数printf的参数说明的参数说明n格式字符串l包括“格式说明”和“普通字符”l“格式说明”由%和“格式字符”组成,将输出数据按指定格式输出l“普通字符”按原样输出n输出列表l需要输出的数据l可以是变量、常量、表达式、函数调用等l输出数据按顺序与“格式说明”

40、对应输出第第78页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数printf的格式举例的格式举例printf(a=%d b=%d,a,b);格式说明格式说明普通字符普通字符输出列表输出列表输出结果a=3 b=4第第79页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010格式字符格式字符格式字符格式字符说说 明明d,i有符号十进制整数,正数不输出符号有符号十进制整数,正数不输出符号o无符号八进制整数,不输出前导无符号八进制整数,不输出前导0 x,X无符号十六进制整数,不输出前导无符号十六进制整数,不输出前导0 x或或0Xu无

41、符号十进制整数无符号十进制整数c转换为无符号字符型,以此为转换为无符号字符型,以此为ASCII码输出一个字符码输出一个字符s输出字符串,直到遇到输出字符串,直到遇到0或达到指定宽度或达到指定宽度f小数形式单、双精度数,缺省精度为小数形式单、双精度数,缺省精度为6位小数位小数e,E以规范化指数形式输出浮点数,缺省精度为以规范化指数形式输出浮点数,缺省精度为6位小数位小数g,G以以f(F)和和e(E)两种格式中较短的一种输出两种格式中较短的一种输出%输出一个输出一个%第第80页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010常见的格式符的修饰符:常见的格式符的修饰符

42、:nl用于长整型整数,可加在格式符d,o,x,u前面nm(代表一个正整数):数据最小宽度nn(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数n-输出的数字或字符在域内向左靠第第81页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数printf举例举例(02-03.C)(02-03.C)int i=1234;float f=-56.78;printf(i=%+6d,i);/*i=+1234*/printf(%c,i);/*/printf(%10.5E,f);/*-5.67800E+01*/printf(%7.4f%,f);/*-5

43、6.7800%*/printf(%+6.3G,f);/*-56.8*/第第82页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010格式输入函数格式输入函数格式输入函数格式输入函数scanfscanfn函数说明lint scanf(char*format,addrs.);l格式化输入若干任意类型数据n参数说明lchar*format 格式控制字符串laddrs 需要输入的地址列表,可以有多个n返回值l返回输入并赋值的数据项的个数第第83页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数函数函数scanfscanf使用说明使用说

44、明使用说明使用说明n“地址列表”中是变量的地址,而非变量lscanf(%d,&i);n关于输入格式l格式字符串中的普通字符须按相应位置输入l除字符型(%c)外,输入项之间用一个或多个空白字符分隔,包括空格、回车、制表符l空白字符会作为%c对应的输入,如果需要输入下一个非空白字符,可以用%1sl如规定了最大宽度,且输入数据超出宽度,则按宽度截取数据第第84页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010格式字符格式字符格式字符格式字符格式字符格式字符格式字符格式字符说说说说 明明明明d有符号十进制整数有符号十进制整数i有符号整数,可以是八进制有符号整数,可以是八

45、进制(带前导带前导0)或十六进制或十六进制(带前导带前导0 x或或0X)o有符号八进制整数,可以带或不带前导有符号八进制整数,可以带或不带前导0 x,X有符号十六进制整数,可以带或不带前导有符号十六进制整数,可以带或不带前导0 x或或0Xu无符号十进制整数无符号十进制整数c输入一个字符,包括空白字符输入一个字符,包括空白字符s输入无空白字符的字符串,不需要用输入无空白字符的字符串,不需要用括起来括起来f,e,E,g,G浮点数,可以用小数形式或指数形式浮点数,可以用小数形式或指数形式%输入一个输入一个%第第85页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010附加

46、格式字符附加格式字符格式字符格式字符说说 明明h有符号或无符号短整型有符号或无符号短整型l有符号或无符号长整型或双精度型有符号或无符号长整型或双精度型L长双精度型长双精度型m一个正整数,输入数据的最大宽度一个正整数,输入数据的最大宽度*需要输入数据,但是在赋值时被跳过需要输入数据,但是在赋值时被跳过第第86页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010函数函数函数函数scanfscanf举例举例举例举例 int i,j;char c;scanf(%d%d,&i,&j);/*2 3 or 23 or 23*/scanf(i=%d,j=%d,&i,&j);/*i

47、=2,j=3 or i=2,j=3*/scanf(%d%c%d,&i,&c,&j);/*2 a 3=i=2,c=,j出错*/*2a 3 =i=2,c=a,j=3*/第第87页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010n例1:输入球体半径,求球的体积。n例2:输入大写字母,转换为小写字母。简单的简单的C程序设计程序设计第第88页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010例例例例1 1:球体体积:球体体积:球体体积:球体体积 (02-05.C)(02-05.C)#include#define PI 3.1415926int

48、 main()float r,V;printf(r=);scanf(“%f”,&r);/若若r为为double型,则用型,则用%lf V=4.0/3*PI*r*r*r;printf(V=%fn,V);第第89页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010例例2:字母大小写转换:字母大小写转换(02-06.C)(02-06.C)#include int main()char cup,clow;cup=getchar();clow=cup+a-A;printf(%cn,clow);第第90页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义

49、2010【例例例例】输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。已知三角形的三边长a,b,c,则该三角形的面积公式为:,其中s=(a+b+c)/2。源程序如下:#includemain()float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s);printf(“area=%7.2

50、fn”,area);第第91页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010【例例】求求ax2+bx+c=0方程的根方程的根 na,b,c由键盘输入,设b2-4ac0。n求根公式为:n 令,则x1=p+qnx2=p-qn源程序如下:第第92页页中国科学技术大学中国科学技术大学 C语言程序设计讲义语言程序设计讲义 2010#includemain()float a,b,c,disc,x1,x2,p,q;scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁