




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,数制与编码,二进制与八进制、十六进制之间相互转换 准备知识: 二进制与八进制的对应关系 二进制与十六进制的对应关系,不同数制之间的转换,二进制换算方法,十进制转二进制: 一直除2至结果为1 将余数和最后的1从下向上倒序写 就是结果 如 19和20 19/2=9 120/2=10 0 9/2=4 1 10/2=5 0 4/2=20 5/2=2 1 2/2=1 0 2/2=1 0 倒着写,然后在开头处补上1 所以19的二进制=10011,3,2.5.4 位运算符 位运算符的运算对象为二进制数. 运算符 含义 1. 按位取反 例: 1 结果 0 1010 结果 0101,2. 1 1|0 为1;
2、 0|0为0 . 1100 | 1010 结果 1110,4. 按位异或 例: 11 为0; 00为0; 10为1 . 1100 scanf(%d, ,请读者自行调试,如程序运行时分别输入7、8,输出是什么?为什么?,ch2_2_4.c,输入12,(12) 1 1 0 0 ( 4 ) 0 1 0 0,上次编程回顾,编程求2012年到3000年之间有多少年是 闰年,并把所有闰年输出。 设计思路: 1、让年从2012-3000之间循环 2、循环里面做两件事情,一是判断是否是闰年,如果是打印该年数,如果不是,那就什么也不做。,#include int main() int year=2012; wh
3、ile(year=3000) if(year%400=0 | year%4=0 ,第 3 章 输 入 输 出 程 序 设 计,相关知识: C语言的类型: 一个程序应包括两方面内容: (1). 对数据的描述. 要指定数据的类型和数据的组织形式, 即数据 结构(data structure).,(2). 对操作的描述, 操作步骤,即算 法(algorithm).,C的数据类型 基本类型 构造类型 指针类型 空类型,C中的常量、变量都归属以上类型.,数据类型,常量与变量: 一.常量: 在程序运行中,其值不改变的量,称为常量。,例: (1). 1,27,0 - 整型常量 (2). 4.6,-8.43
4、- 实型常量 (3). a, b - 字符常量 (4). “China” - 字符串常量,(5). 符号常量 - 用一个标识符代表一个常量. 如: #define PRICE 180,此后程序中凡出现PRICE都代表180. 符号常量在程序中代表某一数值,并可参加运算,习 惯上符号常量用大写,变量用小写。,#define是宏定义命令. 属于C语言的编译预处理命令。,三. 整型数据:(不带小数点的数) (一)、整型常量: 1. 十进制整数: 一般占2个字节长(16 bit) 取值范围: -32768 32767,2. 长整型常数: 一般占4个字节长(32 bit) 取值范围:-214748364
5、8 - 2147483647,注: 在c+环境下,占4个字节长. 取值范围: -2147483648 2147483647,3. 八进制常量: 以数字0开头 0123(83) 05(5) 0100(64) 032727(13783) (注:由此可见,在表示十进制时就不能在前面加0了),4. 十六进制常数: 以数字0和字母x(0 x)开头 0 x1f(31) 0 x1A(26) 0 x20(32) 0 x10(16),(二)整型数据在内存中的存放形式: 数据在内存中都是以二进制形式存放的.如: int i ; /* i 定义为整型变量 */ i = 10; /* 给 i 赋以整数10 */,10
6、的二进制形式为: 1010, 每一个整数变量在内存中占二个字节,在内存中的情况为: i :,0000 0000 0000 1010,(三)整型变量的分类: 1. 基本型: 用 int 定义 (2个或4个字节) 2. 短整型: 以 short int 定义 (或用 short 定义, 2个字节),3. 长整型: 以 long int 定义 (或用 long 定义, 4个字节),四.实型数据:(带小数点的数) (一)、实型常量: 实数又叫浮点数。实型常量有二种表示形式: . 十进制形式:3.5 .85 546. 由数字与小数点组成 (必须要有小数点).,. 指数形式 : 728e3,72.8e4
7、都表示:728103 注意:e前必须要有数,指数必须是整数. 如:8.6e3.2 e4 .e2 ( 都有问题 ),(二)、实型变量的分类: 实型变量分: 1、单精度:用 float 定义. (1.0e -38 1.0e+38) 2、双精度:用 double 定义. (1.0e-306 1.0e+306),一般系统: float占用4个字节(48=32位), 6位有效数字 double占用8个字节(88=64位),15位有效数字,说明: 实型常量不分float 和 double型。处理时 一律视为double型。,除以上形式, C还允许一种特殊形式的字符常量。即以一个 “” 开头的字符序列: 如
8、:n (为换行符)。 称为“转义字符”或“转码字符”。,五.字符型数据 (一)、字符常量: 字符常量是用单引号(撇号)括号起来的一个字符。 如: A,a,?, 9 , n 等.,转义字符,因为存在一种非显示字符,如: 换行符,是一种“控制字符”, 难以用通常的形式来表示, 故采用特殊方法(形式)表示:,转义字符 ASCII码值 字符 意义 a 0 x07(7) BEL 响铃 n 0 x0A(10) LF 换行 r 0 x0D(13) CR 回车 t 0 x09(9) HT 水平制表(tab) “ 0 x22(34) “ 双引号 ddd 任意字符 ddd 为1-3个8进制数 xhh 任意字符 h
9、h 为1-2个十六进制数,转义字符的使用方法与其它字符一样 ,如: ch=t; printf(“%c”,ch); /* t 为横向制表符, 横向跳八格.*/ printf(“This is test n”);,如: 101 : A (1018 6510) 0 : null(空操作),(二)、字符变量: 字符变量用来存放一个字符(不是一个字符串). 字符变量用char来定义: char c1,c2 ;,c1,c2 定义为字符变量,c1,c2可存放一个字符, 可以进行赋值: c1=W,c2=b; 一般一个字节存放一个字符,也即一个字符变量在 内存中占一个字节。,将一个字符常量放到一个变量中,实际上
10、并不是把字符放到内存中去,而是将该字符的ASC码值存入相应的单元。以二进制形式存放。,字符 ASCII值 机内码 a 97 01100001 b 98 01100010 由此可见,在内存中,字符数据的存储形式与整数形式相类似。,说明: ASCII字符集列出所有可用的字符(共256个)和其相应的ASCII 码值.如: 0-9 A-Z a-z 等.,1.ASCII字符集有如下特征(课本:P282附录A): (1). 每个字符都有一个不同的ASCII码值. (2). 数字0,1,2,39的次序连续排列(48 - 57). (3). 小写字母a,b,cz连续排列(97 - 122). (4). 大写字
11、母A,B,CZ连续排列(65 - 90).,2. 每个小写字母与相应的大写字母ASC码值相差32. A=65 a=97 B=66 b=98,3. C语言中的字符常量具有数值特征,值就是该字符的 ASCII值,占有一个字节.,比如对字符变量 c3, 作赋值运算: char c3; c3 = B ; 实际上是将B的ASCII码值66赋予变量 c3.,4. 字符既然有数字值,因此可以对字符数据进行算术运 算,此时相当于是它们的机内码(ASC码)进行算术 运算.,又如: B+1 , 其实是B字符的ASCII码值(66)加1. 得到 B字符的下一个字符C. 字符运算在实际编程中是很有用的.,5. 一个字
12、符数据既可以用字符形式输出,由输出格 式:%c 指定, 机器把存储单元中的ASCII码转换成相 应的字符输出。 也可以用整数形式输出,直接将机内码(ASC码) 作为整数输出,由 %d 指定。,例: 已知字符 a 的ASCII码为 97 ,执行下列语句的输 出是_。 printf (%d, %c, b, b+1 ) ; A、 98, b B、 语句不合法 C、 98, 99 D、 98, c,注意 : a与 “a” 是不同的,一个为字符常量,一个为字符 串常量.,(三)、字符串常量 字符串常量是用一对双引号括起来的字符序列,如: “How are you” “a” “$456.76” “浙江大学
13、”,两者有区别: C语言规定: 在每一个字符串的结尾加一个“字符串结束标志”,以便系统判断字符串是否结束. C规定以字符0作为字符串结束标志.,0 ASC值为0的字符,不能显示,不产生动作. 如有一字符串“CHINA”,实际上在内存中是:,C H I N A 0,其长度不是5个,而是6个,0是系统自动加上去的.但在输出时不输出0. 如有: printf(“china”); 输出时一个一个字符输出,直到0.,说明: 没有字符串变量,以后字符串由一维字符数组来处理。,例:_ 是不正确的字符常量. A. n B. 1 C. “a” D. 101,六 变量赋初值 定义变量时,可对变量初始化. 例: i
14、nt a=3; 相当于 int a; a=3; float f=3.5; 相当于 float f; f=3.5 char c=a; 相当于 char c; c=a;,也可: int a,b,c=3; 相当于: int a,b,c; c=3;,各类数值型数据间的混合运算:(基本类型) * 整型,单精度型,双精度数据可以混合运算。 * 整型与字符型数据可通用。 因此 ,整型,字符型、实型可混合运算.,在运算时,不同类型的数据要先转换成同一类型, 然后再进行运算。,转换规则: 高 double float 单精度 long 低 int char, short,1). 横向向左的箭头表示必定转换,在运
15、算中,char型必定转换成 int 型。 Float型必定转换成double 型。,2). 如果当运算对象不同时,低类型直接转换成高类型,再进行运算 . 系统会自动进行这种转换.,必然转换,相关知识: C语言的 数据的输出,输入: 一、数据输出: C语言本身并不提供输入、输出语句,输入输出的操作任务由函数来实现,也就是对输入,输出实行函数化. 如printf( ), scanf( ) 函数,不是C语言的输入,输出语句.,C编译版本都提供了许多函数,以函数库的形式提供。 我们可以采用一定的方法,把自己的源程序与需要的库联起来,一起参加编译连接,最后形成一个可执行文件。,#include的由来,各
16、种版本提供的函数库数量多少不一致,函数名也可能不一定相同。 一般对库函数都进行分类:,如有: (1)标准输入、出函数库 (stdio.h) (2)数学函数库 (math.h) (3)系统时间函数库 (time.h) (4)图形函数库 (graphics.h) . 等等。,(一) putchar( )函数 字符输出函数 功能:向终端(CRT)输出一个字符 . 例:putchar(c2); c2可是:字符变量,转义字符,整形变量,整形常量. putchar( )是属于标准 I/O 函数库中一个函数.,例: #include “stdio.h” main( ) char a, b, c; a=B ;
17、 b=O; c=Y; putchar(a); putchar(b); putchar(c); 结果:BOY,putchar( )也可输出转义字符: 如: putchar( 116 ) 输出字符N putchar( ) 输出单引号 putchar( 015 ) 输出回车,说明: a. 在使用标准I/O函数时,要使用编译预处理命令: #include将stdio.h文件包含到用户的源文件中去。 stdio.h为一个头文件,在它里面包含了标准I/O函 数库中有关函数的一些信息:如:常量的定义,函数 原型的说明等信息。,(二) printf()函数(格式输出函数) printf可以输出多种类型的数据,
18、多个数据.如: printf(“i=%d x=%f , i,x); 1printf函数的一般格式为: printf(格式控制,输出表列),(“格式控制”是用双引号括起来的字符串). 格式说明:由%和格式字符组成如:%d , %f;按指定的格式输出. 普通字符:原样输出的字符.,需要输出的数据,可以是表达式,变量.,2格式字符: 对于不同的数据类型输出,需要用不同的格式字符。 ( a). d 格式符 用来输出十进制整数,%d 按实际长度输出 . %md m为指定的输出字段的宽度. 若数据段m,按实际输出。,%ld 输出长整数。对长整型数据,要用ld格式, 否则出错。,(b). C格式符 输出一个
19、字符 : 如:char b=a; printf(“%c”, b); 字符可用整数形式输出,整数也可用字符形式输出。,(c). S格式 输出一个字符串: 如 : printf(“%s” ,“CHINA”); 输出:CHINA,(1).%ms 输出字符串占m列,若m串长度,右靠齐,左边补空格。 (2).%-ms 若m串长度,左靠齐,右边补空格.,(d)f格式符输出实数(单、双精度) (1).%f 对于单精度系统自动使整个数全部输出, 并带有6位小数。 %f也可输出双精度,有效位数共16位并带有 6位小数.(输出双精度也可用:%lf).,(2).%m.nf m为数据占的列数(包括小数点),n为小数
20、位数。如果数值长度m ,右对齐,左边补 空格。,思考题:(卷例) *写出语句 printf (“%d, %o, %x”, 0 x12, 12, 012); 的输出结果。,18, 14, A,此外还有: %o 8进制不带符号输出整数 %x 16进制不带符号输出整数 %u 10进制无符号形式输出整数 %e 指数形式输出,二、数据输入: (一). 字符输入函数 getchar() 功能:从键盘输入一个字符。 例:#include “stdio.h” main( ) char c1; c1=getchar( ); /*运行到 getchar( )时,等待输入*/ putchar(c1); 输入:a(回
21、车).,(二) scanf 函数 格式输入函数:,如: #include scanf(“%d%f, ,格式控制字符串: 格式控制说明:按指定的格式输入数据,与数据类型有关. int 型 :%d float 型:%f double 型:%lf,普通字符:要原样输入,例如:,scanf(x=%f, ,输入: x=2.5,注: 1. 输入时,以空格,回车,TAB键分隔,(不能以逗号作为 分隔符.),2scanf() 函数使用中注意的问题: a. 在格式控制字符串中,除了格式说明以外(% + 附加格 式说明符+格式字符),还有其它字符,则在输入数 据时应照样输入。,调用scanf函数输入多个数据,如:
22、scanf(“%d,%d” , 应输入:721,题例: 设变量定义为“int a, b;”,执行下列语句时,输入 _ ,则a 和 b的值都是10. scanf(“a=%d,b=%d”, A. 10 10 B. 10,10 C. a=10 b=10 D. a=10,b=10,题例: scanf(“%d%d%d”,_正确的输入. A. 203040 B. 20 30 40 C. 20,30 40 D. 20,30,40,3.1 字符串的输入与输出,在C语言中通常应用系统函数printf实现在屏幕上输出.,3.1.1 字符串的输出,有时也用puts函数输出字符串,其格式如下: puts(字符串数组名
23、);,例3.1_1 在屏幕上显示”Hello,World”: (知识扩展) #include int main() char stri 80= ”Hello,World”; printf(“%sn”, stri ); puts(stri); return 0; ,Ch3_3_1.c,说明: 字符串由若干字符组成,在内存中其未尾会自动添加一个0, 作为字符串的结束符.,Ch3_3_1.c,3.1.2 字符串的输入,在程序设计中通常需要从键盘输入字符串,通常用函数scanf, 也可以用gets函数实现. 其格式如下: gets(字符串数组名);,例3.2: 定义 一字符数组,从键盘上输入一个字符串
24、,然后输出在屏幕上:,#include int main() char string80; printf(请输入你的姓名:n); scanf(%s,string); printf(你好!); puts(string); return 0; ,Ch3_3_2.c,定义了一个名为string 的数组,是一char类型的,数组长度为80.,C语言规定:数组名为该数组在内存的首地址. 从键盘输入一字符串,以回车结束.,/* 从键盘输入一字符串,然后输出字符*/ #include int main() char name20; printf(请输入你的姓名:n); gets(name); printf(
25、你好:%sn,name); return 0; ,Ch3_3_2_2.c,3.2.1 整型数的输出,例3.3: /*按不同格式输出整形数据*/ #include int main() int x=30,y=030,z=0 x30; printf( 十进制 八进制 十六进制 n); printf( 十进制30 %d %o %xn,x,x,x); printf( 八进制30 %d %o %xn,y,y,y); printf( 十六进制30 %d %o %xn,z,z,z); return 0; ,Ch3_3_3.c,3.2.2 整型数的输入,例3.4: #include int main() in
26、t x ,y ; scanf(%d, ,Ch3_3_4.c,#include int main() int x ; printf(“ 1. 输入记录n); printf(“ 2. 输出记录n); printf(“ 3. 查询记录n); printf(“ 4. 输入记录n); printf(“ 0. 删除记录n); printf( 请你选择(04):); scanf(%d, ,例3.5:,Ch3_3_5.c,#include int main() int x,y,z; printf(请输入x,y的值,回车结束输入n); scanf(%d%d, ,例3.6: 变量的输入和输出.,Ch3_3_6.c
27、,其输入格式为: 1、scanf(%c,变量地址); 2、字符变量=getchar(); 其输出格式为: 1、printf(输出字符串%c,字符变量); 2、putchar(字符变量);,3.3 字符的输入输出,3.4 实型数的输入与输出,在C程序设计中实型数的定义用float或double. 使用函数scanf、printf可实现实型数的输入输出. float 用格式符%f,double用格式%lf.,注: 实型数在输入时不能用精度控制,如: scanf(“%6.2f”, 是错误的,例3.8: 实型变量的输入和输出.,#include #include int main() double x
28、,y; scanf(%lf, ,Ch3_3_8.c,%-8.3f表示总共输出8位,小数部分3位,小数点1位,整数部分4位,左靠齐.,第 3 章 输 入 输 出 程 序 设 计结 束,第二章课后习题解答,练习与实践 一、选择题 1( A )是构成C语言程序的基本单位。 (A)函数 (B)过程 (C)子程序 (D)文件,2在下述程序段中,( A,D )是错误的程序注释方法(注:本例多个选择)。 (A) #in/*包含*/clude void main() printf(How are you?n); ,(B) #include void main() int i=3; /*整型数*/ ,(C) #
29、include void main() int x/*初始化*/=10; /*打印*/printf(%d,x); (D) #include void main() int x=10; printf(%d,x); /*打印x/*x=10*/的值*/ ,3(B )是C语言提供的合法的数据类型关键字。 (A)Float (B)signed (C)integer (D)Char 4以下选项中不合法的用户标识符是(A )。 (A)abc.c (B)file (C)Main (D)PRINTF 5合法的语言字符常数是( D )。 (A)084 (B)A (C)ab (D)x43,6C语言中,要求运算数必须是整型的运算符是( A)。 (A)% (B) / (C) (D)! 7以下选项中不正确的实型常量是(B )。 (A)2.607E1 (B)0.8103e2. (C)77.77 (D)456e2 8合法的C语言赋值语句为( B )。 (A)a=b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2人合伙合同样本
- 仿古木结构施工合同样本
- 入厂职工合同样本
- 与美容行业合作合同样本
- 企业订制茶叶合同样本
- 书籍编写合同标准文本
- 买地皮正规合同样本
- 国家电网考试工作效率试题及答案
- 保姆三方合同标准文本
- 乙方租房合同样本
- TB 10012-2019 铁路工程地质勘察规范
- 软件公司销售部管理新规制度
- 2024届高考二轮复习备考 有机化学基础 课件(共35张)
- 抽水蓄能电站工程岩锚梁砼施工监理控制措施
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 老年医学缺血性肠病
- 模型分析:蛛网模型课件
- 拓展天然气在中国的利用
- 2024年黄冈职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 同济堂财务造假案例分析
- 《蚁群算法》课件
评论
0/150
提交评论