C C++程序设计 第2版 教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3

上传人:E**** 文档编号:89191008 上传时间:2019-05-21 格式:PPT 页数:49 大小:201KB
返回 下载 相关 举报
C C++程序设计 第2版  教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3_第1页
第1页 / 共49页
C C++程序设计 第2版  教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3_第2页
第2页 / 共49页
C C++程序设计 第2版  教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3_第3页
第3页 / 共49页
C C++程序设计 第2版  教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3_第4页
第4页 / 共49页
C C++程序设计 第2版  教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《C C++程序设计 第2版 教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3》由会员分享,可在线阅读,更多相关《C C++程序设计 第2版 教学课件 ppt 作者 陈卫卫 电子教案 C第1章PPT-3(49页珍藏版)》请在金锄头文库上搜索。

1、第1章 C语言基础(续),主要内容 1.1 一般概念 1.2 C语言和基本语法成分 1.3 数据的输入和输出 1.4 编译预处理,1.3 数据的输入和输出,1.3.1 cin和cout,使用预编译命令: #include /输入输出流库,1cout的简单用法 一般格式: cout 表达式1表达式2表达式n;,1.3 数据的输入和输出,1.3.1 cin和cout,1cout的简单用法 一般格式: cout 表达式1表达式2表达式n;,输出换行符: cout n; /或cout endl;,1.3 数据的输入和输出,1.3.1 cin和cout,2cin的简单用法 一般格式: cin变量1变量2

2、变量n;,一般格式: printf(格式控制串,输出项序列); 输出项序列列出本句要输出的数据项(表达式) 格式控制串指出各输出项所要求的格式,1.3.2 printf,格式段一般形式: %附加格式说明 格式控制字符,示例(A整型,B实型,C字符型) printf(“%d %f %cn“A,B,C);,1.3.2 printf,全套格式段: % + - 0 域宽 补充格式 格式字符,1.3.2 printf,+:要求输出数值的正负号(缺省:不输出正号),- :要求左对齐(缺省:右对齐),0 :左对齐情况下,左侧空位用0填充(缺省:填空格),域宽 :指定输出项所占宽度(缺省:按标准域宽) 单域宽

3、 :m(具体数值),总共占m位 双域宽:m.n(仅对实数),总共占m位,其中小数占n位,补充格式 l:输出长整型 h:输出短整型,若a=123(整型),b= -234.321(实型) printf(“a=%d,b=%7.2fn“, a,b+1); 输出结果: a=123, b= -233.32 格式控制串分5段:“a=”、“%d”(a的格式) “,b=”、“%7.2f”(b+1的格式) “n”(原样输出的换行符,引起换行),常用(输出)格式字符,%d 十进制带符号的整数(正数不输出符号) %o 八进制无符号的整数(不输出前导符0) %x (X) 十六进制无符号整数(不输出前导符0x) %u 十

4、进制无符号的整数 %c 输出一个字符 %s 输出一个字符串 %f 小数形式输出单、双精度实数 %e(E) 指数形式输出单、双精度实数 %g 小数或指数(取短的)输出单、双精度实数,注意事项,1)不同类型用不同的格式字符,2)若指定的域宽过小,或没指定域宽 则按实长输出,3)域宽大,“右对齐,左补空”; 带附加格式“-”时,“左对齐,右补空”,4)“%m.nf”只用于输出实数 共占m列,小数占n列,5)带附加格式控制“+”时,则输出正/负号; 否则,正数和0不输出正负号,6)“%m.ns”输出字符串时,占m列,只输出串左起n个字符“左对齐右补空” 若mn,则在保证n的前提下,按实长输出,7)用o

5、、x、u格式输出整数时,表示不带符号位(符号位看作数值的一部分) 若输出负的整数值时,输出结果不代表该数的真实值,注意事项,8)连续两个%,表示要输出一个“%”,9)格式应当与输出项相等。若不等(不报错),但可能产生意想不到的结果,10)如果前面一个格式说明出现错误,也会出现意想不到的结果,注意事项,示例1: #include void main( ) int x=10; float y=123.14; char ch; printf(“input ch=“); ch=getchar( ); printf(“x=%d,y=%f, ch=%c“, x,y,ch); ,输出结果:(VC环境下) i

6、nput ch=a (运行时输入字母a) x=10,y=123.139999, ch=a,示例2 整数的输出 #include void main( ) int a=123, b=2197,c=-321; long k=123456789; printf(“%d%+6d%8dn“,a,b,c); printf(“%12ldn“,k); ,输出结果: 123 +2197 -321 123456789,长整型要用ld格式 不能用d格式(会出错),示例3 字符和字符串的输出 #include void main( ) char c=a, j=97; printf(“%c%4dn“,c,j); pri

7、ntf(“%4d%cn“,c,j); printf(“%sn“,“CWW“); printf(“%10.6s“,“CHINA JIANGSU“); printf(“%-6.5sn“,“NANJING“); ,输出结果: a 97 97a CWW CHINA NANJI,示例4 实数的输出 #include void main( ) float x=-1234.5678; double y=987654321.123456789; printf(“x=%f,y=%fn“,x,y); printf(“x=%14f,y=%18fn“,x,y); printf(“x=%12.3f,y=%15.4fn“

8、,x,y); printf(“x=%e,y=%en“,x,y); printf(“x=%12.5e,y=%13.6en“,x,y); printf(“x=%g,y=%gn“,x,y); printf(“x=%12.5g,y=%13.6gnnn“,x,y); ,x=-1234.567749,y=987654321.123457,x= -1234.567749,y= 987654321.123457,x= -1234.568,y= 987654321.1235,x=-1.23457e+03,y=9.87654e+08,x= -1.2346e+03,y= 9.87654e+08,x=-1234.57

9、,y=9.87654e+08,x= -1234.6,y= 9.87654e+08,实数的三种输出格式:f、e、g,f 格式: 1)若不指定域宽或只指定单域宽,整数部分按实际长度输出,输出小数点后,再输出6位小数(但最后几位数字可能不准确) 2)若双域宽(即m.n形式),共占m列,输出n位小数,实数的e格式输出,1)若不指定域宽,则按标准形式输出 尾数部分形如: Y.XXXXX /Y代表非0数字,取5位小数 (在VC中,取6位小数) 指数部分形如: eXX /表示正/负号,指数占2位 共占11位(对于正数),或12位(对于负数) 2)若指定域宽m.n时,同样按标准形式输出,只是尾数部分取n位,总

10、域宽占m列 (或按实长输出),实数的g格式输出,系统自动地按数值大小,或采用f格式输出,或采用e格式输出(取短格式),输出实数时,不同的系统,小数位数和指数位数可能不同,主要应掌握d,c,s,f 输出格式的基本用法,一般格式: scanf(格式控制串,地址序列); 格式控制串与printf类似 地址序列列出需要读取数据的变量地址(&变量名),1.3.3 scanf,格式段一般形式: %附加格式说明 格式控制字符,scanf(“%d%d”, /读入两个整数,分别赋给a和b,全套格式段: % * 域宽m 补充格式 格式字符,*:抑制符 (跳过指定的列数 ),域宽 m :读入 m列,补充格式 l:输

11、入长整型 h:输入短整型,1.3.3 scanf,示例,#include void main( ) int a,b; scanf(%d%d, ,或输入: 123 456,输入: 123 456,至少要有一个空格(或Tab),常用(输入)格式字符,%d 输入十进制整数 %o 输入八进制整数 %x 输入十六进制整数 %c 输入字符 %s 输入字符串 %f 输入实数(整数、小数、指数形式) %e 同%f,使用方法和注意事项,1)格式项必须与地址表中的项个数相同,否则将出错 2)输入数值型数据(整数或实数) 不指定数据所占列数,数据之间要用空格(或Tab)分开,也可以每行敲一个数据 指定所占列数,系统

12、自动按指定宽度读取数据,数据之间可不加分隔符,3)若含有“原样输入”字符,输入数据时必须在相应的位置上输入这些字符,否则会读入错误的数据 例: scanf(“%d,%d“, 输入时,两数之前必须带“a=”和“, b=” 比如输入成: a=123,b=-45,只起“事后提示”作用,例: scanf (“%d %d“, 应输入:a=3,b=4 若输入:3 4 (错) 3, 4 (错) a=3 b=4 (错),4)f格式只能用于输入float类型(且不能使用“双域宽”),double类型用%lf,或%le输入 5)地址序列中变量名前必须加地址运算符& 6)特别注意“%c”的用法(所敲的任何内容都算作

13、有效字符) 7)控制符“*”用于抑制输入,表示读数据时要跳过相应的列数,1.4 编译预处理,编译时,预先对源程序进行处理,再编译 预编译命令 三种预编译命令: 宏定义 文件包含 条件编译(不讲) 以#开头,后面跟命令名和命令内容,1. 文件包含命令,功能:指示编译器,将一个文件内容,插在另一个源程序文件的内容中,合在一起编译,两种格式: #include “文件名“ # include ,要包含的函数库文件 或C源程序文件,例 #include “myfile1.c“ 用双引号括起被包含文件myfile1.c 指示编译系统 先在用户的当前目录中找myfile1.c 再按系统设定的标准目录找my

14、file1.c 常用于包含用户文件(一般在当前目录中),格式一,例 #include 用尖括号将被包含文件括 stdio.h 起来 指示编译系统 按系统设定的标准目录找stdio.h 常用于包含库文件(通常放在预设的标准目录下),可节省查找时间,格式二,说明:,习惯上,文件包含命令都放在源程序文件的开头处 希望编译系统将被包含文件内容,加在源程序前面编译 被包含文件称为“头部文件”(头文件),文件后缀通常为“.h”,文件包含命令作用,文件f.c的内容,文件g.c的内容,要编译的内容,内容B,注意事项,1)一条命令只能指定一个被包含文件 例,使用多种标准库函数时,要一一包含 #include /

15、标准I/O函数 #include /标准数学函数 #include /标准字符串库函数 #include /标准字符库函数 不能写成: #include ,,2)使用文件包含命令可以减轻设计人员的工作 将公用的宏定义、函数或外部变量的声明等做成一个文件(包含起来) 若要修改,只需修改相应的头部文件,有利于程序的更新维护,2. 宏定义,1不带参数的宏定义 格式: #define 宏名 宏代换串,标识符,字符串源程序的一段内容,使用宏命令分为三步: 1)在程序前部进行宏定义 2)在程序中使用宏(宏调用) 3)编译预处理时,进行宏代换(自动宏展开),1不带参数的宏定义,命令含义:程序中本该写宏代换串

16、的地方,写成宏名 预处理操作:系统将程序中所有宏名都置换成宏代换串 宏置换,宏展开 还原用户的本来用意,主要用法,1)定义符号常量 例如: #define PI 3.14159 用PI代表3.14159。预处理时,将所有的标识符PI都置换成3.14159,2)用宏名代替一个较长的字符串 例 #define newptr (ptr)malloc(sizeof(snode) 简化程序的书写 3)用宏名代替某项操作(很少用),几点说明,1)习惯上宏名用大写 区别于变量名(用小写) 防止置换错误 2)宏定义的末尾不加分号 若加分号,则连同分号一起置换,例 #define PI 3.14159; 那么: s=PI*r*r; 宏展开后,该语句被置换成: s=3.14159;*

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号