《[其它考试]第一讲c语言.ppt》由会员分享,可在线阅读,更多相关《[其它考试]第一讲c语言.ppt(38页珍藏版)》请在三一办公上搜索。
1、课程要求课前请做好预习上课注意力集中,紧跟老师思路认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间上午:8:30-9:30 9:40-10:40 10:50-11:50下午:2:00-3:00 3:10-4:25(第2、4、6次课上午上机 8:30-12:00),第一章 C语言初步知识,本章考纲内容1.程序的构成,main函数和其他函数。2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。3.源程序的书写格式。4.C语言的风格。本章考点分析 考点 分值 考核几率 点评C语言概述 0-1 20%简单识记C语言的构成 0-1 30%简单识记标识符 1-2 80%重点识记
2、本章学习目标了解C语言的发展历程 把握C语言的构成与格式 识记C语言的标识符,第一章 C语言初步知识,1.1 C语言的发展历程绪言:冯诺依曼结构,第一章 C语言初步知识,1.1 C语言的发展历程1、程序设计语言的发展,特点:机器语言由0、1代码组成的,比较繁琐,稍不注意就会出错;汇编语言则是采用了一些英文缩写助记符来编写指令;但是程序的可读性和移植性不太好。所以人们就在想要是有一种语言能集二者之所长就好了,于是高级语言C语言在这种情况下便应运而生了。C语言 面向过程 C+面向对象,第一章 C语言初步知识,1.1 C语言的发展历程2、C语言的发展历程,第一章 C语言初步知识,1.1 C语言的发展
3、历程3、C语言特点:程序设计结构化、模块化运算符和数据类型丰富(34个运算符、32个关键字、9个控制语句)高效率,可移植性好直接访问内存地址,进行bit操作4、C与C+、C#C:在B语言的基础上产生,可用于多种操作系统。是其他多种编程语言的基础。C+:在C的基础上产生,面向对象的设计语言,在有些方面和C可以兼容。C#:面向对象的更为高级的程序设计语言。,第一章 C语言初步知识,1.2 C语言的构成与格式例 1.1#include main()printf(“Hello,World!”);输出:Hello,World!例 1.2main()/*求两数之和*/int a,b,sum;/*这是定义变
4、量*/*注意不要在中文方式下输入*/a=3;b=5;/*变量赋值*/*一行有两条语句,最好分开*/sum=a+b;/*执行语句*/printf(“sum=%dn”,sum);运行结果:sum=8(通过改变a,b的值得出新的程序),第一章 C语言初步知识,1.2 C语言的构成与格式通过以上2个例子,可以看到C语言的格式特点:(1)C程序是由函数构成的。一个C源程序至少包含一个main函数。(2)函数体,即函数首部下面的大括弧内的部分。函数体一般包括:声明部分:在这部分中定义所用到的变量,如例1.2中main函数中的“int a,b,sum;”。执行部分:由若干个语句组成。在某些情况下也可以没有声
5、明部分(例如,例1.1)。甚至可以既无声明部分,也无执行部分。(3)一个C程序总是从main函数开始执行的(4)每个语句和数据定义的最后必须有一个分号。(5)C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。(6)可以用/*/对C程序中的任何部分作注释。(好的程序员必须具备的素质之一),第一章 C语言初步知识,1.2 C语言的构成与格式2、优秀程序员的素质之一:使用TAB缩进 对齐 有足够的注释 有合适的空行,第一章 C语言初步知识,1.3 标识符(本章重点)1、标识符定义2、命名规则:(1)第一个字符必须是字母或下划线;(2)字符的序列是字母、数字
6、或下划线;(3)标识符的大小写是有区别的;(4)标识符的有效长度一般上讲是8个;合法的:program abc _up add_0 dec6c非法的:45b no/yes?en,第一章 C语言初步知识,1.3 标识符(本章重点)3、标识符的分类:(a)关键字(需记忆内容)C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。(1)数据类型关键字(14个):int,short,long,float,double,char,signed,unsigned,const,volatile,struct,union,enum,void(2)控
7、制语句关键字(12个):if,else,switch,case,default,do,while,for,goto,continue,break,return(3)存储类型关键字(4个):auto,extern,register,static(4)其它关键字(2个):sizeof,typedef(b)预定义标识符例如:printf scanf sin define include(c)用户标识符 用户根据需要而定义的标识符。用于:变量,函数,数组,指针或者文件等。注意:用户标识符不可以是关键字,但是关键字部分或全部大写则可以作为用户标识符。例:Void FOR 用户标识符还应该做到“见名知意”
8、,便于记忆。例:time length high,第一章 C语言初步知识,1.3 标识符(本章重点)题目:综合练习T8、T13、T20、T26、T37总结:1.组成:字母、下划线、数字(非法字符)2.首字母:字母或者下划线(数字开头)3.切记:不能是关键字(关键字纯小写)作业1 简述C语言的主要特点。2 写出下列程序的输出结果。(提示:参考例1.1)#include main()printf(“Welcome to Beijing 2008n”);3 编写一个程序,定义两个int变量a和b,自行随意赋初值,输出a与b的和sum和差diff。(提示:参考例1.2),第二章 数据类型、运算符与表达
9、式,本章考纲内容C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。C运算符的种类、运算优先级和结合性。不同类型数据间的转换与运算。C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。本章学习目标掌握各种数据类型、运算符及表达式的概念能够建立一般的表达式编写简单的程序。,第二章 数据类型、运算符与表达式,本章考点分析 考点 分值 考核几率 点评C运算符简介 0-1 10%简单识记运算符的结合和优先值 0-1 60%简单识记强制类型转换运算符 0-1 30%简单识记逗号运算符和逗号表达式 0-1 40%简单,重点识记基本的算术运算符
10、1-2 100%简单,重点识记算术表达式和算术运算符 1-2 100%适中,重点理解优先级与结合、自增自减运算符 2-3 100%适中,重点理解赋值运算符和赋值表达式 2-4 100%简单,重点掌握复合的赋值运算符 1-2 80%偏难,非重点赋值运算中的类型转换 0-1 75%偏难,非重点位运算符和位运算表达式 0-1 80%偏难,重点识记,第二章 数据类型、运算符与表达式,C语言数据类型,第二章 数据类型、运算符与表达式,2.1 常量与变量1、常量:在执行构成中,其值不发生改变的量例2.1 符号常量的使用。#define PRICE 30 main()int num,total;num=10
11、;total=num*PRICE;printf(total=%d,total);,第二章 数据类型、运算符与表达式,2.1 常量与变量 程序中用#define命令行定义price代表常量30,此后凡在本文件中出现的price都代表30,可以和常量一样进行运算,程序运行结果为total=300注意:1 符号常量使用前必须先定义,一般形式:#define 标识符 常量2 符号常量的标识符习惯上用大写字母(区别于变量标识符)3 好处:含义清楚;一改全改,第二章 数据类型、运算符与表达式,2.1 常量与变量2、变量变量:其值可以改变的量一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中
12、存放变量的值。变量名:是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。注意:在c语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”。目的是:(1)凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用得正确。(2)每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。(3)指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。,第二章 数据类型、运算符与表达式,2.2 整型数据整型数据分为整型常量与整型变量。1 整型常量整型常量即整
13、常数;可用以下三种形式表示:十进制整数。如123,-456,0。注意:不能有前导0,除了数值0。基元为0-9(2)八进制整数。以0开头的数是八进制数。如0123表示八进制数123,即(123)8,其值为:182+281+380,等于十进制数83。-011表示八进制数-11,即十进制数-9。注意:以0开头,不是以O开头。(3)十六进制整数。以0X或者0 x开头的数是十六进制数。如0 x123,代表十六进制数123,即(123)16=1162+2161+3160=256+32+3=291。-0 x12等于十进制数-18。长整型数需要用后缀“L”“l”来表示。无符号数据的后缀用“U”“u”。注意:以
14、0X(0 x)不是OX(Ox)。基元为0-9,A-F(a-f)。另外注意:在计算机中存储的实际上都是以二进制数方式存储。(二进制-八进制-十六进制,同一体系)综合练习 T25,第二章 数据类型、运算符与表达式,2.2 整型数据(补充知识点)1、二进制起源说(莱布尼兹-清朝)2、为什么用计算机使用二进制?3、进制类比 十进制 二进制 八进制 十六进制基元 0-9 0-1 0-7 0-9,A-F规律 满10进1 满2进1 满8进1 满16进1 借1当10 借1当2 借1当8 借1当16幂 10 2 8 16例子 123 110B 014 0 xA1分解成幂形式,即多项式格式123=(1*102)+
15、(2*101)+(3*100)=100+20+3=123110B=(1*22)+(1*21)+(0*20)=4+2+0=6014=(1*81)+(4*80)=120 xA1=(10*161)+(1*160)=161,第二章 数据类型、运算符与表达式,2.2 整型数据(补充知识点)4、进制转换典型(10进制转2进制,2进制、8进制、16进制互转)前面已有:2、8、16进制转10进制10转2,辗转除2法(举例15,10)注意:整数除法、除到0为止,倒着写2、8、16互转(举例31、25)注意:(1)2-8(三位)、2-16(四位)(2)以2进制位中转站,这样8进制、16进制互转解决。10进制转8进
16、制、转16进制也解决。当然10转8或者16也可以直接用辗转除法,只不过除数变为8或者16了。,第二章 数据类型、运算符与表达式,2.2 整型数据(补充知识点)原码、反码、补码正数:原码-本身 反码-同原码 补码-同原码 10 0000 1010 0000 1010 0000 1010负数:首先有符号数,最高位为符号位,为1原码-本身 反码-符号位不变,其它逐位取反 补码-反码+1-10 1000 1010 1111 0101 1111 0110注意:负数在内存中是以反码形式存储的。也就是说,如果最高位为1,则该数为负数,且是以反码形式存储的。问题:为什么会有补码?答:因为减法。计算机里计算只会
17、加法,减法也是按加法来算的,故有反码一说。,第二章 数据类型、运算符与表达式,2.2 整型数据(补充知识点)减法举例:10-5=10+(-5)(-5)补=1111 1011 10 0000 1010-5+1111 1011 5 10000 0101=(0000 0101)补=5 溢出最高位不管5-10=5+(-10)(-10)补=1111 0110 5 0000 0101-10+1111 0110-5 1111 1011=(1111 1011)补=(1000 0101)原=-5注:负数补码求原码,逆运算。最高位不变,减1取反。,第二章 数据类型、运算符与表达式,2.2 整型数据2 整型变量整型
18、数据在内存中的存放形式数据在内存中是以二进制形式存放的。如果定义了一个整型变量i:int i;/*定义为整型变量*/i=10;/*给i赋以整数10*/十进制数10的二进制形式为1010,在微机上使用的c编译系统,每一个整型变量在内存中占2个字节。图(a)是数据存放的示意图。图(b)是数据在内存中实际存放的情况数值是以补码(complement)表示的。(正数是本身,负数取反+1),第二章 数据类型、运算符与表达式,2.2 整型数据3 整型变量的分类整型变量的基本类型符为int。可以根据数值的范围将变量定义为基本整型、短整型或长整型。(1)基本整型,以int表示,占2个字节(2)短整型,以sho
19、rt int表示,或以short表示,占字节数与基本型相同。(3)长整型,以long int表示,或以long表示,占4个字节(4)无符号类型,以unsigned表示(缺省部分)有符号基本整型 signed int 无符号基本整型 unsigned int有符号短整型 signed short int无符号短整型 unsigned short int 有符号长整型 signed long int无符号长整型 unsigned long int,第二章 数据类型、运算符与表达式,2.2 整型数据4 整型变量的定义 定义的一般形式:类型说明符 变量名标识符,变量名标识符.;例int a,b;(指定
20、变量a、b为整型)long e,f;(指定变量e、f为长整型)unsigned short c,d;(指定变量c、d为无符号短整型)注意:变量的定义,一般是放在一个函数的开头部分的声明部分。允许在一个类型说明符后有多个相同类型的变量,各个变量之间用“,”隔开。最后一个变量名之后用“;”结尾。例2.2 整型变量的定义与使用。main()int a,b,c,d;/*指定a、b、c、d为整型变量*/unsigned int u;/*指定u为无符号整型变量*/a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);运行结果为:a+u=22,b+u=
21、-14,第二章 数据类型、运算符与表达式,2.2 整型数据5 整型数据的溢出一个int型变量的最大允许值为32767,如果再加1,会出现什么情况?例2.3 整型数据的溢出。main()int a,b;a=32767;b=a+1;printf(%d,%d,a,b);运行结果为32767,-32768,第二章 数据类型、运算符与表达式,2.2 整型数据5 整型数据的溢出从图可以看到:变量a的最高位为0,后15位全为1。加1后变成第1位为1,后面15位全为0。而它是-32768的补码形式,所以输出变量b的值为-32768。请注意:一个(有符号)整型变量只能容纳-3276832767范围内的数,无法表
22、示大于32767的数。遇此情况就发生“溢出”,但运行时并不报错。它好像汽车的里程表一样,达到最大值以后,又从最小值开始计数。所以,32767加1得不到32768,而得到-32768。如果以一个字节的数(8位共表示256个不同的码值)表示-128-127为例,它是如何表示、如何对应的呢?0000 0000-1111 1111(-128-127的补码)正 0000 0000-0111 1111 表示0-127 负 1111 1111 1000 0001 表示(-1)-(-127)负 1000 0000 表示-128 特殊,第二章 数据类型、运算符与表达式,2.3 实型数据1 实型常量的表示方法实数
23、(real number)又称浮点数(floating-point number)。实数有两种表示形式:(1)十进制小数形式。它由数字和小数点组成(注意必须有小数点)。.123、123.、123.0、0.0都是十进制小数形式。(2)指数形式。它的一般形式:aEn 其值为:a*10n 科学计数法如123e3或123e3都代表123103。但注意字母e(或e)前后必须有数字,且e后面的指数必须为整数,如e3、2.1e3.5、3e、e等都不是合法的指数形式。实型变量(1)实型数据在内存中的存放形式 在常用的微机系统中,一个实型数据在内存中占4个字节(32位)。与整型数据的存储方式不同,实型数据是按照
24、指数形式存储的。系统把一个实型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。实数 3.14159 在内存中的存放形式如下图(存放示意图)具体分配:1 23 8(符号 尾数 指数),第二章 数据类型、运算符与表达式,2.3 实型数据1 实型常量的表示方法注意:小数部分占的位数越多,则表示的数的精度愈高。指数部分占的位数越多,则表示数值的范围越大。2.实型变量的分类C实型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类。float 占4个字节(32位的内存空间)有效数字:6-7double 占8个字节(64位的内存空间)有效数
25、字:15-16long double 占16个字节(128位内存空间)有效数字:18-193.实型数据的舍入误差由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。,第二章 数据类型、运算符与表达式,2.3 实型数据3.实型数据的舍入误差例如,a 加 20的结果显然应该比a大。分析下面的程序:例3.2 实型数据的舍入误差。void main()float a,b;a=123456.789e5;b=a+20;printf(“%f”,a);/12345678848.000000 printf(“%f”,b);/123456788
26、48.000000现场演示程序 程序内printf函数中的“%f”是输出一个实数时的格式符。程序运行时,输出b的值与a相等。原因是:a的值比20大很多,a+20的理论值应是12345678920,而一个实型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。因此要避免一个很大的数和一个很小的数相加。,第二章 数据类型、运算符与表达式,2.3 实型数据3.实型数据的舍入误差例3.3 1.0/3*3的结果并不为1(等于0.999999)void main()/演示float a;double b;a=33333.33333;b=33333.33333333333333;
27、printf(“%fn%fn”,a,b);/33333.332031(最后4位无效)/33333.333333(只保留6位小数)由例子看出:a是单精度浮点型,有效位数只有7位。而整数就占了5位,故小数两位后均为无效的数字;b位双精度浮点型,有效位是16位。但是计算机顶多保留6位小数,其余部分四舍五入。综合练习 T6 T9 T19 T36,第二章 数据类型、运算符与表达式,2.3 字符型数据1 字符常量定义:用单引号括起来的单个普通字符或转义字符.a s=+?101 n(注意其中转义字符算一个)课本勘误:p11-5不能参与运算。(错)2 转义字符:反斜线后面跟一个字符或几个字符表示。详见课本。例
28、 main()printf(101 x42 Cn);printf(“I say:How are you?n);printf(C Programn);printf(Turbo C);运行结果:(屏幕显示)A B CI say:”How are you?”C ProgramTurboC现场演示程序,第二章 数据类型、运算符与表达式,2.3 字符型数据3 字符型变量 字符型变量用来存放字符常量,charc1,c2;(1)字符数据在内存中的存储方式 规定一个字符变量在内存中占一个字节,或者说以一个字节来存放一个字符,以字符ASCII码的形式来存放的。参看附录一 注意:上面写的ASCII码值用的是十进制
29、数据。注意0-9 A-Z a-z,第二章 数据类型、运算符与表达式,2.3 字符型数据void main()char c1,c2;c1=120;c2=121;printf(“%c%cn”,c1,c2);/*以字符型输出*/printf(“%d%dn”,c1,c2);/*转换为整型输出*/输出如下:x y 97 98void main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c%c,c1,c2);运行结果为A B,第二章 数据类型、运算符与表达式,2.3 字符型数据(2)字符串常量 字符串常量是一对双引号括起来的字符序列。如:“how do
30、 you do!”,“CHINA”,“a”,”123.45c规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符0作为字符串结束标志。0是一个ASCII码为0的字符,从ASCII代码表中可以看到ASCII码为0的字符是“空操作字符”,即它不引起任何控制动作,也不是一个可显示的字符。C H I N A 0 它的存储长度不是5个字符,而是6个字符,最后一个字符为0。但在输出时不输出0。参看课本:字符串常量与字符常量的区别单引号/双引号 单个字符/一个或多个不能把字符串常量赋给字符变量占据的存储空间区别(重要)综合练习 T27 T28 T38 T45,第二
31、章 数据类型、运算符与表达式,课堂作业:1、请将下列各十进制数用八进制和十六进制表示 10 32 75 24 2、求以下各数(十进制)的原码、反码和补码(8位二进制表示)53-67-14 3、若有定义float x=1.2345678;则printf(“%f”,x)的输出结果?答案:1、10=012=0 xa 32=040=0 x20 75=0113=0 x4b 24=030=0 x18 2、原码 反码 补码 53=0011 0101B=0011 0101B=0011 0101B-67=1100 0011B=1011 1100B=1011 1101B-14=1000 1110B=1111 0001B=1111 0010B 3、1.234568(7位有效数字),第二章 数据类型、运算符与表达式,课堂作业:答案程序演示#include void mian()float x=1.2345678;printf(x=%fn,x);printf(10=0%o=0 x%xn,10,10);printf(32=0%o=0 x%xn,32,32);printf(75=0%o=0 x%xn,75,75);printf(24=0%o=0 x%xn,24,24);,
链接地址:https://www.31ppt.com/p-6034647.html