c语言第二次课_第1页
c语言第二次课_第2页
c语言第二次课_第3页
c语言第二次课_第4页
c语言第二次课_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

请将您的手机铃声

设置为震动

1QQ群:110300172作2业

实验教程:3.阅读程序(第23页)

本:习

1.4(第10页)复习回顾3位:计算机中所有的数据都是以二进制来表示的,一个二进制代码称为一位,记为

bit。位是计算机中最小的信息单位。例:0、1字节:在对二进制数据进行存储时,以八位二进制代码为一个单元存放在一起,称为一个字节,记为Byte。字节是计算机中次小的存储单位。例:11111111、00000011不同进制的转换4、常用进制基数数

符二十进进制制RR==2100、1、2、3、4、5、6、7、8、9八二进进制制RR==2800、、11、2、3、4、5、6、7八十进进制制RR==81000、、11、、2、2、3、3、4、45、、56、、67、、87、十十六六进进制制RR==116600、、11、、22、、3、3、4、45、、65、、7、6、8、798、、A9、、BA、、CB、、DC、、E、DF、E、F二进制、八进制转换5八进制数01234567二进制数000001010011100101110111例:(100111011)2=(100

111

011)2=(473)8十六进制数01234567二进制数00000001001000110100010101100111十六进制数89ABCDEF二进制数100010011010101111001101111011116二进制、十六进制转换例:

(100111011)2==((11

0011

10111))2=(13B)16不同进制的转换7二、八、十六进制向十进制转换十进制数(154)10=1*102+5*101+4*100154(101)2=1*22+0*21+1*205(154)8=1*82+5*81+4*80108(15B)16=1*162+5*161+11*160347836/2=18不同进制的转换(36)10=(100100)2十进制向二进制转换余数(36)10=(?)2018/2=909/2=414/2=202/2=101/2=01原码符号位用数字0或1表示的二进制数例:设表a=示10正01,数b=

111表0,

机示器负存数储字长为8位[a]原

[b]原=

00001001 =

10001110符号位正符号位负9原码、反码及补码原码符号位用数字0或1表示的二进制数反码[x]反=xi表示对x的第i

位数值求反[x]原

x>01x1x2…xN

x

<

0[b]原=10001110[b]反=1111000110[a]原=00001001[a]反=00001001原码、反码及补码原码符号位用数字0或1表示的二进制数[x]原

x

>0[x]原1x1x2…xN

x

<

0x>0反码[x]反=补码[x]补=[x]反+111x

<

0原码、反码及补码[b]原=10001110[b]反=11110001[b]补=11110010例机器字长为8位,a=1001,

b=

1110[a]原=00001001[a]反=00001001[a]补=00001001采用补码目的是把减法运算化作加法运算[a]补=00001001[b]补=11110010

+12[c]补=11111011[c]补=11111011[c]反=11111010[c]原=10000101a=9

b=-14

c=9-14=-5特殊示例-1的原码:10000000

00000001-1的反码:11111111

11111110-1的补码:11111111

111111118进制:

17777716进制:

ffff13C程序格式#include"头文件.h"void

main(){

定义变量变量赋值加工处理结果输出}14例子#include

"stdio.h"void

main(

){

int

a,b,c;scanf("%d,%d",&a,&b);c=a+b;printf("%d\n",c);}包含文件#include命令:把另一个文件的全部内容包含到本文件之中。(P9)两种使用格式:#include

"stdio.h"#include

<stdio.h>定义结加变变果工量量输处赋出理值15第二章数据类型及基本运算16C的数据类型基本数据类型及其表示不同类型数据间的转换运算符和表达式C的数据类型内存以字节为单元组成每个字节有一内存地址每字节由8个位组成每个位的值是0或10000H0001H0002H0003H0004H数据存储规律:171010001000110011……18C数据类型构造类型指针类型枚举类型enum空类型void自定义类型typedef数组结构体struct共用体union<基本类型类型单精度型float浮点型字符类型char双精度型double短整型short长整型long型

整型intC的数据类型整数值C的数据类型19字符型类型符号关键字占字节数数的表示范围整型有(signed)int2-215~

215-1(signed)long4-231~

231-1无unsigned

int20~

216-1unsigned

long40~

232-1实型有float43.4e-38~3.4e38有double81.7e-308~1.7e308有char1-128~127无unsigned

char10~2550111111110000000例子011111111111111111111111200001H..0008H0009H000000000127-127-12800000000111111110255有符号字符型(-128~127)

0000H无符号字符型(0~255)0000H0001H..0111111111

1111111000000000000000111111111111111100000000000000001111111101111111……11111111111111111111111111

1111112132767-32767-3276800000000000000000例子有符号整型(-32768~32767)无符号整型(0~65535)065535

0008H0009H基本数据类型及其表示标识符定义:标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字(P7)长度:最长32个字符命名原则:见名知意,不宜混淆

如l与1,

o与022day23student_namelotus_1_2_3_aboveM.D.Johnchar$123例子判断下列标识符号合法性sum

Sumdat

3days#33a>b义格式:#define

符号常量

常量值一般用大写字母是宏定义预处理命令24基本数据类型及其表示常量定义:程序运行时其值不能改变的量(常数)分类:符号常量:用标识符代表常量(P13)定符号常量举例#include

<stdio.h>#define

PRICE

30void

main(){ intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}基本数据类型及其表示25常量定义:程序运行时其值不能改变的量(常数)分类:符号常量:用标识符代表常量直接常量:整型常量实型常量字符常量字符串常量由数字0开头,后接数26三种形式:十进制整数:由数字0~9和正负号表示.根据其值所在范围确定其数据类型

整型常量(整常数)八进制整数:十六进制整数整型常量的类型:字0~7,a~f,A~F:由0x开头,后接0例:123, -456,

0例:0123,

011~9例:0x123,

0X2f后加字母l或L,认为它是lg

int 整常量型常量55520

为long例:30000

为int型

on例:12

与12Lint型数形式:e或E之前必须有数字;指数必须为整数)例:12.3e-3,123E2,

e-5,1.23e4,

1.2E-3.5

实型常量(实数或浮点数)表示形式:十进制数形式:(必须有小数点)

指(

例:0.123,

.123,

123.0,

0.0,

123.27{ char

a,b;a=33;b='!';printf("%c,%c\n",a,b);printf("%d,%d\n",a,b);}

字符常量定义:用单引号括起来的单个普通字符或转义字符.字符常量的例值::'该a'

字'A符'

的'?'A'S\nC'II码值(P277)例:

#in例clu:de'A<'s:t6d5io'.ah'>:

9728void

ma'i0n'(:4)8

'!':

33

字符常量定义:用单引号括起来的单个普通字符或转义字符.转义字符:反斜线后面跟一个字符表示转义字符含义转义字符含义\n换行\t水平制表\v垂直制表\b退格\r回车\0字符串结束\a响铃\\反斜线\'单引号\"双引号\ddd8进制数代表的字符\xhh16进制数代表的字符29rogram\\");30

字符常量例转义字符举例

#include

<stdio.h>void

main(){ printf("I

say:\"How

are

you?\"\n");printf("\\C

P}运行结果:(屏幕显示)I

say:"How

areyou?"\CProgram\定义:用单引号括起来的单个普通字符或转义字符.转义字符:反斜线后面跟一个字符表示

字符串常量31hello\0例:

空串""在内存中表示为\0定义:用双引号括起来的字符序列存储:每个字符串尾自动加一'\0'作为串结束标志例:

字符串“hello”在内存中表示为

字符串常量a\0例:

'a'

a

"a"例:

char

ch;

例:ch='A';char

ch;ch="A";定义:用双引号括起来的字符序列存储:每个字符串尾自动加一'\0'作为串结束标志字符常量与字符串常量的区别:32基本数据类型及其表示变量概念:其值可以改变的量格式:数据类型变量1[,变量2,…,变量n];决定分和数字配的字节数的表示范围合法标识符33例:

int

a,b,c;float

sum;34基本数据类型及其表示变量概念:其值可以改变的量格式:数据类型变量1[,变量2,…,变量n];特点:变量初始化--定义时赋初值用数开头量的使用--先定义,后使量定义位置--一般放在函float

data=3.char

ch='A';int x=1,y=1,变

例:

int a=2,

b,

c=4;变

例:int

student;

67;Undefinstadent=19;

z=1;ed

symbol

'stadent'

in

function

mainint

x=y=z=1;例: #include

<stdio.h>void

main(

)printf("%d,%d,%d",a,b,c);{

int a=1,b,c=3;}350105H0100H0102H内存0101H

a0103H

b0104Hc2字节2字节2字节1xx3随机数例子int a=1,b,c=3;编译程序根据变量定义为其分配指定字节的内存单元36#include

<stdio.h>#define

PRICE

12void

main(){ intnum=3,total;char

ch1,ch2;scanf("%c",&ch1);total=num*PRICE;ch2=ch1-'A'+67;printf("%d,%c\n",total,ch2);}例子符号常量变量定义输出结果输入值不同类型数据间的转换说明:double

floatlongunsignedint

char,short必定的转换运算对象类型不同时转换低高37不同类型数据间的转换隐式转换运算转换:不同类型数据混合运算时不同的变量时将值赋给与其类型换:实参与形参类赋值转换:

例: inta=52;c型;

不一致时转换float

b=1.2,c=a+b;函数调用转

例: inta=52;void

main()s=add(a,b);printf("%d\n",s);}#include

<stdio.hf>loat

fblo;

at

add(float

x,float

y)38b=a;

{z=x+y;return(z);}{不in同t

a类=型10数,b据=5运,s算;时先fl自oa动t

转z;

换成同一类型39#include

<stdio.h>void

main(){ float

x=3.6;inti;i=(int)x;printf("%f,%d",x,i);}不同类型数据间的转换显式转换例子:

(double)(3/2)(int)3.6形式:(类型名)(表达式)较高类型向较低类型转换时可能发生精度损失问题结果:x=3.600000,i=3精度损失运算符和表达式40算术运算符:+

-

*

/

%

++

--关系运算符:<

<=

==

>

>=!=逻辑运算符:!

&&

||位运算符

:<<

>>

~

|

^

&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*

&求字节数

:sizeof强制类型转换:(类型)分量运算符:. ->下标运算符:[]其它 :(

)

-例

5%2

=-5%2

=1%10

=5%1

=5.5%2例

5%2 =

1-5%2 =-11%10 =

15%1 =

05.5%2

(

)例

5/2

=-5/2.0

=例

5/2 =

2-5/2.0

=-2.541基本算术运算符:

+-*

/%“-”可为

温馨提示

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

评论

0/150

提交评论