C程序设计教程第2章_第1页
C程序设计教程第2章_第2页
C程序设计教程第2章_第3页
C程序设计教程第2章_第4页
C程序设计教程第2章_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

主讲:刘永春

校内邮箱:liuychu@

办公地点:理工楼4—31室联系电话:(办)6288891

(手机/p>

C程序设计教程

2第1章课程内容复习第2章数据类型、运算符与表达式

2.1C语言的数据类型

2.2常量与变量2.3整型数据2.4浮点型数据2.5字符型数据2.6各类数值型数据间的混合运算2.7算术运算符和算术表达式2.8逗号运算符和逗号表达式32.1C语言的数据类型数据类型基本类型整型短整型(short)整型(int)长整型(long)字符型(char)浮点型单精度浮点型(float)双精度浮点型(double)空类型(void)枚举型(enum)结构体类型(struct)共同体类型(union)构造类型指针类型(T*)41.常量的概念在程序运行过程中,其值不能被改变的量称为常量。

常量的类型,可通过书写形式来判别。常量的分类:表达形式:

(1)整型常量

6、432、76543、546783424

(2)实型常量

2.23、546.2487615247、

3.057439E+5

(3)字符常量

‘a’

、‘

c’

、‘

6’

、'M'

(4)符号常量

WHI

#defineWHI"Iamastudent."

WHI是符号常量。2.2常量与变量5

2.变量的概念在程序运行过程中,其值可以被改变的量称为变量。变量的三个要素:

(1)变量名。每个变量都必须有一个名称。

(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。(3)变量的类型。例如:数值为23的整型变量a,可以定义为:

inta;a=23;也可以定义为:inta=23;

a:变量名字;23:变量的值;int:变量的类型,它在计算机内存中占32个位存储单元,即4个字节。0000000000------0000000000010111(4个字节)32位二进制数值6变量的命名:只能由字母、数字和下划线组成,必须以字母或者下划线开头,不能以数字开头。

变量的定义:类型+名字。类型有:int,float,char。比如:inta,floatb,charc。*

C语言的关键字(不能用来作变量)

C语言的关键字共有32个。(1)数据类型关键字(12个)

char,double,enum,float,int,long,short,signed,struct,union,unsigned,void;(2)控制语句关键字(12个)

break,case,continue,default,do,else,for,goto,if,return,switch,while;7(3)存储类型关键字(4个)

auto,extern,register,static(4)其它关键字(4个)

const,sizeof,typedef,volatile(易变)(5)

C语言中使用的特定字

C语言中使用的具有特定含义的标识符,称为特定字。C语言中使用的特定字:

include,define,ifdef,

ifndef,endif,line

特定标识符主要用在C语言的编译预处理命令中。8

一.整型常量(类型为:int)三种表示形式(1)十进制例如:10

、36

(2)八进制(以数字0开头)例如:012(十进制10)(3)十六进制(以数字0小写字母x开头)例如:0x36(十进制54)

二.整型常量分类(1)基本整型:其数据范围-32768

~32767

(与int

型变量一样)(2)长整型(在数值后面加字母L(小写字母l)):其取值范围可达:-231

~(231-1)例如:32769、123L、315L

等。2.3整型数据9三、整型变量占用内存字节数与值域

1.整型变量占用的内存字节数(VC6.0系统)

int

型变量占4个字节值域占32位

short型变量占2字节值域占16位

long型变量占4字节值域占32位

2.不同类型的整型变量值域占用内存位数为n的整型变量其值域:有符号为:-2n-1

~

(

2n–1-1)无符号为:0~(2n-1)0010

四.整型数据在内存中的存放,数值是以补码表示的。

一个正数的补码与原码相同;一个负数的补码求法:原码的二进制形式,取反求得反码,再加1,得到负数的补码。例如:-8的补码。-8的原码100000

00

00

001000求反码011111

11

11

110111补码011111

11

11

111000-865528112.4浮点型数据

1.浮点型常量的表示形式

(1)十进制形式例如:3.14、9.8

(2)指数形式例如:3.02465E+5

2.

浮点型变量(1)浮点型变量分类

﹡单精度(float型),4个字节,有效数字是7位。

﹡双精度(double型),8个字节,

﹡长双精度(long

double型),16个字节。小数点前只能有一位有效数字指数必须是整数12

(2)浮点型数据在内存中的存放形式

浮点型数据(类型为:float)按照指数形式存储。例如:3.1415926的存放形式为:+.314159261↑↑↑符号小数部分指数∣∣∣

+.31415926×101→3.1415926在计算机内部实际上是用二进制来表示小数部分的。

(3)浮点型数据的舍入误差(只有7位有效数字)例如:输入3.1415926,输出为:3.141593132.5字符型数据1.字符常量:用一对单引号括起来的单个字符称为字符常量。字符变量不用扩起来。例如:‘A’、‘7’、‘+’等。2.转义字符在C语言中可以使用一种特殊形式的字符常量,就是以反斜杠“\

”开头的转义字符。比如:

\n\b\r\t\f\0(字符串结束标志)\’\”\v\ddd\xhh

注意:若反斜杠或单引号本身要作为字符常量时,必须使用转义字符:\\、\’

。1314

3.以“\”开头的字符在printf

函数中控制输出格式与功能含义:\n 换行ASCⅡ:10\t 横向跳格(下一个制表位<8列

>)9\v 竖向跳行

\a发出铃声7\b 退格8\r 回车(将光标返回到当前行的左边)13\f 打印机走纸换页12\\ 反斜杠字符\92\’ 单引号’39\ddd

1到3位8进制数所代表的字符。如:‘\101’=‘A’\xhh

1到2位16进制数所代表的字符。

具体的使用可以根据程序输出的需要来确定。1515

例2.1

要输出349、-9和字符常量M,怎样编程?#include〈stdio.h〉voidmain(){

printf(“%d\n”,349);

printf(“%d\n”,-9);

printf(“%c\n”,‘M’);}运行结果:349-9M常数直接输出的格式1616

例2.2

符号常量WHI的使用。格式控制字符串中的普通字符,直接照原样输出

#include〈stdio.h〉#defineWHI"Iamastudent."voidmain(){

printf(“Iamastudent.\n”);

printf(“%s\n”,“Iamastudent.”);

printf("%s\n",WHI);}

运行结果:

Iamastudent.

Iamastudent.Iamastudent.字符串的输出格式1717

#include〈stdio.h〉voidmain(){intx,y;x=5;y=3;

printf(“%d-----%d\n”,x,y);x=1;y=2;

printf(“%d-----%d\n”,x,y);}

运行结果:5-----31-----2例2.3

分别输出变量x=5,y=3和x=1,y=2的值,怎样编程?第一次赋值第二次赋值1818例2.4

怎样将16进制的整型常量80,8进制的常量200和10进制的常量128按照10进制的形式输出?并将10进制的常量128以8进制形式输出?不输出前缀数字0以数字0开头字母O#include<stdio.h>voidmain(){printf(“0x80----%d\n",0x80);printf(“0200----%d\n",0200);printf("128-----%d\n",128);printf("128-----%o\n",128);}运行结果:0x80----1280200----128128-----128128-----200说明“%d”是10进制整数的输出格式整数十进制输出格式为:%d;整数八进制输出格式为:%o;整数十六进制输出格式为:%x。1919例2.5x=42.67,y=12.3,求x/y,y/x浮点型变量数据的值,并输出其结果。怎样编程?小数点后6位#include<stdio.h>voidmain(){floatx,y,z;x=42.67;y=12.3;z=x/y;printf(“z1=%f\n",z);z=y/x;printf(“z2=%f\n",z);}

程序运行结果:

z1=3.469106z2=0.288259浮点数的输出格式20#include<stdio.h>voidmain()

{

printf(“ABC\tabc\txyz\n”);

printf(“ABC\babc\bxyz\n”);}

程序运行结果如下:

ABC abc xyz

ABabxyz

\b作用是退格\t作用是跳列例2.6

有“ABC”、“abc”、“xyz”三组字符串,要输出为:“ABCabcxyz”和“ABabxyz”的形式,怎样用转义字符输出和编程?214.

字符变量(类型为:char)

字符变量→存储字符常量,只能存储一个字符。字符变量:每个字符占用1个字节的内存。

(1)变量值的存储

将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

(2)变量值的特性字符数据在内存中存储的是字符的ASCII码(一个无符号整数),其形式与整数的存储形式一样。22例如:charch1,ch2;

/*定义字符变量:ch1,ch2*/ch1='a';/*给字符变量赋值*/ch2='b';

字符数据'a'、'b'的ASCII码值97、98(一个无符号整数)分别存放在变量ch1,ch2所占用内存存储单元中,其形式与整数的存储形式一样。

ch1ch2979823(3)一个字符型数据,既可以字符形式输出,也可以整数形式输出。

例2.7

假设两个字符变量,以字符形式和整数形式怎样输出?同学们在上机练习。表示以字符形式输出表示以十进制数字形式输出#include<stdio.h>

void

main(){charch1,ch2;

ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);

printf(“ch1=%d,ch2=%d\n”,ch1,ch2);

}

程序运行结果:

ch1=a,ch2=b

ch1=97,ch2=9824(4)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。例2.8

将字符数据’a’、’B’进行大小写转换。#include<stdio.h>void

main(){charch1,ch2;

ch1=‘a’;ch2=‘B’;/*给字符变量赋初值*/

printf(“ch1=%d,”,ch1-32);/*字母的大小写转换*/printf(“ch2=%d\n”,ch2+32);

printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);

}

运行结果:ch1=65,ch2=98ch1=A,ch2=b255.

字符串常量(1)字符串常量的概念和字符串长度字符串常量:是用一对双引号括起来的若干字符序列。字符串长度:字符串中字符的个数。空串:长度为0,一个字符也没有,表示为“”。例如字符串常量:“Howdoyoudo.”

长度为14(空格也是一个字符)

“Goodmorning.”

长度为13

如果要输出下面的两行字符应当怎样编程?①C:\msdos\v6.22→

Isay:"Goodbye!"→"C:\\msdos\\v6.22“"Isay:\"Goodbye!\""26

例2.9

通过指针输出字符串常量。(第8章学习暂时不讲)S表示输出的是字符串#include<stdio.h>voidmain(){char*p;/*定义一个字符指针变量*/

p=“Iamastudent.”;

/*给指针变量赋初值*/

printf("%s\n",p);

printf("%s\n","Isay:\"Goodbye!\"");}运行结果:

Iamastudent.Isay:"Goodbye!"276.字符串的存储C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个‘\0’作为字符串的结束标志。如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示:

CHINA\0最后一个字符'\0'是系统自动加上的,它占用6字节而非5字节内存空间。287.字符常量'A'与字符串常量"A"的区别:(1)定界符不同:

字符常量使用单引号‘A’,而字符串常量使用双引号"";(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:

字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效字符的ASCII码值外,还要存储一个结束标志‘\0

'。292.6各类数值型数据间的混合运算例如:10+‵a′+1.5-8765.1234﹡‵b′

在本例的计算中,既有数字,也有字符,在C语言中这是合法的。字符的计算实际上是用它的ASCⅡ值进行计算,但要归结为同一类型进行计算。不同数据类型计算时的转换规则为:向最高级靠拢。double←float高↑

long↑unsigned↑低int←char,short302.7算术运算符与算术表达式一、C语言运算符和C算术表达式简介

1.C语言运算符:(有13种类型)(1)算术运算符:(+、-、*、/、%)(2)关系运算符:(>、<、==、>=、<=、!=)

(3)逻辑运算符:(!、&&、||)

(4)位运算符:(<<、>>、~、︱、∧、&)

(5)赋值运算符:(=、+=、-=、*=、/=、%=)

(6)条件运算符:(?:)

(7)逗号运算符:(,)

(8)指针运算符:(*、&)

(9)求字节数运算符:(sizeof

)

(10)强制类型转换运算符:((类型))

(11)分量运算符:(.->)

(12)下标运算符:([])

(13)其他运算符:(函数调用运算符())312.C表达式:(1)算术表达式:如:2+6.7﹡3.5+sin(0.5)(2)关系表达式:如:x

>0,y<z+

6

(3)逻辑表达式:如:x>0&&y<0表示两式成立,&&(与)

(4)赋值表达式:如:a=3+6

(5)逗号表达式:如:a=3,y=6,z=8(顺序计算,值取最后一个)二、主要的算术运算符和算术表达式

1.基本的算术运算符+、-、﹡、/、%(求余计算)。(1)求余运算时,两侧都必须是整型数据,否则会出错。如:3%2.5是错的。(2)除法运算时,两个整数相除的结果是整数,小数部分被舍去。如:5/3=1。(3)负数的除法结果不确定,原则是“向零取整”。(4)如有float或者double数据参与计算,都要先强制转换为double数据再进行计算,结果是double数据。32算术表达式和运算符的优先级与结合性(1)定义:

用算术运算符和括号将运算对象连接起来、并符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。

(2)算术运算符的优先级:

先取负、再乘、除、求余,最后加、减法。(3)运算符的结合性:自左至右的结合方向。强制类型转换运算符

在运算对象的前面加上一对小括号,并注明数据类型就是强制转换。inta,而(double)a,将a可强制转换为双整型。334.自增、自减运算符(只适用于变量和循环语句)(1)自增(++)、自减(--)运算:

自增运算使单个变量的值增1,自减运算使单个变量的值减1。(2)用法与运算规则:

前置运算──++变量、--变量;前置运算:先增、减,后运算。

后置运算──变量++、变量--;后置运算:先运算,后增、减。(3)结合方向:右→左。34例2.10

分析下面自增自减运算程序的结果。#include<stdio.h>voidmain(){

intx=6,y;

printf("x=%d\n",x);/*输出x的初值*/y=++x; /*前置运算*/

printf("y=++x:x=%d,y=%d\n",x,y);y=x--;/*后置运算*/

printf("y=x--:x=%d,y=%d\n",x,y);}

程序运行结果:

x=6y=++x:x=7,y=7y=x--:x=6,y=7352.8逗号运算符与逗号表达式逗号表达式的一般形式:表达式1,表达式2,…,表达式n

运算规则:从左到右分别计算每个表达式的值,最后一个表达式的值就是整个逗号表达式的值。例如:a=2,b=3,逗号表达式c=a+b,d=a-b,y=a*b

即:c=5,d=-1,y=6。而表达式的值就是6。36本章小结C语言的数据类型有:基本类型、结构类型和指针类型。其中指针类型就是地址,结构类型就是表格,基本类型主要有整型、浮点型和字符型。常量:其值不能被改变的量;变量其值可以改变。常量有:整型、浮点型、字符型和符号常量4种。字符型常量只能是一个字符,并且要用单引号括起来。符号常量是用宏定义命名的字符串或者常数。整型常量有十进制、八进制、十六进制等形式。十进制直接写,八进制前面要加数字0,十六进制前面要加数字0和小写的字母x。比如:12,012,0x12。变量有三要素:类型、名字、变量的值。类型有3种:整型int,浮点型float,字符型char。整型、浮点型各占4个字节的内存,字符型只占1个字节的内存。变量的名字只能用字母、下划线和数字组成,而且数字不能做开头。比如:inta;floatb;charc。375.计算机采用二进制存放数据,一个二进制整数的最高位即第15位是符号位,0表示正数,1表示负数。计算机不能存放负数,所以,只能以补码的形式存放数据。正数的补码与原码相同,负数的补码要对原码先求反再加1。6.浮点数的指数形式由小数和指数两部分组成,小数点前只能有一位有效数字,小数部分最多7位有效数字。指数部分由e(E)和指数组成,指数可正、可负,但必须是整数。比如:2.30789E+3,5.20563e-2。7.C语言运算符总共13种:主要有算术运算符、关系运算符、逻辑运算符、赋值运算符等。表达式:运算符与运算对象的结合。8.自增、自减运算符与运算规则

前置运算:++变量、--变量,先增、减,后运算;

后置运算:变量++、变量--,先运算,后增、减。

38课堂练习(3)整形数据定义用

,浮点型定义用

,字符型定义用

。字符常量用

界定,字符串常量用

界定,字符常量是

个字节,字符串常量要

个字节

。算术运算符是

,逻辑运算符是

,关系运算符是

。自增、自减前置运算规则是

,自增、自减后置运算规则是

。5.++i、--i与i++、i--都相当于i=i+1和i=i-1。如果i=3,j=++i,则i=

、j=

;如果i=3,k=i++,则i=

、k=

温馨提示

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

评论

0/150

提交评论