C语言程序设计-1基础.ppt_第1页
C语言程序设计-1基础.ppt_第2页
C语言程序设计-1基础.ppt_第3页
C语言程序设计-1基础.ppt_第4页
C语言程序设计-1基础.ppt_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

,C语言程序设计-1基础 1初识C语言来自计算机的问候 2.C语言基础输出QQ好友信息 3.运算计算圆的面积和周长,C语言程序设计,项目一 初识C语言来自计算机的问候,学习目标,熟悉Turbo C 2.0的开发环境。 掌握新建、打开、保存C语言程序的方法。 了解C语言程序的结构。 掌握编辑编译链接和运行一个C语言程序的方法和步骤。 了解注释行的使用。,C语言是目前使用最广泛的高级程序设计语言之一。C语言具有生成代码执行效率高,可移植性强等优点。它既可以作为系统设计语言编写操作系统,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围非常广泛。 Turbo C 2.0是由Borland公司推出的C语言开发软件,它是一种集成了编辑、编译、链接、运行与调试功能的开发环境,用户可以使用它方便快捷的进行C语言程序开发。 本项目将介绍C语言的编程基础和Turbo C 2.0的界面使用方法,并以一个简单的打印文本的应用程序的编写过程为例,说明C语言程序设计过程。,项目一 初识C语言来自计算机的问候,项目一 初始C语言来自计算机的问候,任务一 了解程序和程序设计 任务二 了解C语言 任务三 了解Turbo C 2.0集成开发环境 任务四 编辑程序 任务五 编译和链接程序 任务六 运行程序 任务七 程序的保存和打开,任务一 了解程序和程序设计,C语言是一种用来进行程序设计的高级语言 对计算机的指令要求写在一个文件里,这个文件就称为源文件或者源程序,任务二 了解C语言,C语言由美国贝尔实验室的研究人员Dennis Ritchie和Ken Thompson在20世纪70年代初在设计UNIX操作系统时开发出来的C语言作为一种高级程序设计语言,和机器硬件无关,更接近人类语言,可以使用更为方便的关键字,因此也更容易学习和应用。 C语言既有高级语言直观,易使用的优势,又具有低级语言操纵能力强,比较灵活的特点,因此适合编写操作系统或者系统中的应用软件。,C语言的主要特点,(1)编写形式自由方便 32个关键字/它还包括9种控制语句 (2)运算符丰富 34个运算符。 (3)数据结构丰富 C语言提供了标准的数据类型集合,包括整型数据,浮点型数据,字符型数据,指针类型数据,结构体类型数据等,可以支持复杂数据类型的运算。,(4)结构式语言 C语言通过函数和结构化的控制语句将程序分割成相对独立的模块 (5)灵活的语法要求 C语言对语法要求并不是很严格,这使得程序员可以更自由地发挥。 (6)直接访问物理地址,(7) 生成代码质量高 汇编语言比较接近机器语言,执行效率很高。而C语言程序一般只比汇编程序生成的目标代码效率低10%20%。 (8) 可移植性好 C语言抽象层次高于汇编语言。它不依赖于硬件,可以在多种硬件平台或者多种操作系统中使用,例如DOS,UNIX。,C语言程序的结构,预编译指令 全局变量定义 函数声明 main() 变量定义 执行语句 func1(); void func1() 变量定义 执行语句 func2(); , void funcn() 变量定义 执行语句 ,C语言程序是由多个函数构成 所有C语言程序必须包含main函数 程序从main()函数开始执行,并且在main()函数中结束,【例1.1】在屏幕上输出文字“Hello”。 #include main() /*C语言程序的主函数,程序从这里开始执行*/ printf(“ Hello ”); /*在屏幕上输出文字“Hello” */ ,C语言程序包括了“main()”函数,其中“main”是主函数的名字,其后紧跟的括号“()”表示这是一个函数。不论“main()”函数在整个程序中的位置如何,C语言程序总是从“main()”函数开始执行。 “main()”后面的一对大括号“”标示了函数内容的起始位置,其中的内容称为函数体,这里的函数体只有一条“printf(“ Hello ”);”。每个函数定义都包含函数名和函数体。,“/*/”是C语言程序的注释,从“/*”开始,到“*/”结束。其中的内容是为了方便人们阅读和理解程序添加的,并不是指令的一部分,不会对程序本身的运行产生影响。注释也可以占据多行。在程序中添加注释是一个良好的编程习惯。 main函数中的语句“printf(“ Hello ”);” “printf”其实也是一个函数,它是系统提供的标准输出函数,负责向屏幕输出文本。其后的括号里面是待输出的内容,具体文本用一对双引号“”括起来。,语句是C语言程序的最小单位。“printf”指令语句最后有个表示结束的符号“;”,这是C语言的语句结束符。就像每句话结束应该有句号一样,C语言程序中每个语句必须以一个“;”结束。 最后来看一下程序第1行的“#include ”,这是一条预编译指令。其中的“#include”表示在编译之前进行包含操作。而“stdio.h”是系统标准输入输出头文件,只有包含了该文件才能使用printf函数。TC 2.0环境里,程序默认包含该文件,但是为了编写标准的C语言程序使其具备可移植性,还是要在程序的开头位置包含它。,【例1.2】计算“2*3”并输出结果。 #include main() /*C语言程序的主函数,程序从这里开始执行*/ int a; /*变量声明*/ a = 2*3; /*执行语句*/ printf(“ %dn”,a ); /* 输出2*3的结果6,并将插入点光标移到下一行起始位置*/ ,C语言程序设计的一般过程,(1) 编辑 (2) 编译 (3) 链接 (4) 运行,任务 三 了解Turbo C 2.0集成开发环境,安装Turbo C 启动Turbo C环境 Turbo C工作窗口 基本菜单项 设置工作目录,File菜单,任务四 编辑程序 #include main() printf(“*n”); printf(“ Hello! Welcom to TC!n“); printf(“*n“); ,任务五 编译和链接程序 选择【Compile】菜单的【Compile to OBJ】项,编译程序。 如果编译成功,信息窗口提示用户有0个警告,0个错误。如果编译过程提示错误,那么需要根据信息窗口的提示修改错误,直到编译成功。 在【Compile】菜单中选择【Link EXE file】项,进行链接,生成可执行文件。 编译任务完成后,准备运行程序。,任务六 运行程序 按下快捷键Ctrl+F9键,执行程序。 按下快捷键Alt+F5键,回到Dos窗口下查看执行结果。 按任意键返回到TC编辑窗口。 按Alt+X键结束编程任务,退出TC。,任务七 程序的保存和打开,C语言程序设计,项目二 C语言基础输出QQ好友信息,学习目标,了解C语言的数据类型。 了解常量和变量的概念。 了解整型、实型和字符型数据的形式。 了解转义字符。 掌握变量的定义以及为它们赋值的方法。 熟悉“printf()”函数。 熟悉“scanf()”函数。 进一步掌握编辑编译链接和运行一个C语言程序的方法和步骤。,QQ是腾讯公司开发的一款即时通信软件,功能非常多,越来越多的人开始使用QQ。 本项目编写一个能够保存QQ好友信息,并能将信息显示出来的程序。,项目二 C语言基础输出QQ好友信息,项目二 C语言基础输出QQ好友信息,任务一 确定需要输出的数据及数据的类型 任务二 了解计算机中信息的存储方式 任务三 了解C语言的数据类型 任务四 声明变量 任务五 使用“printf”函数输出数据 任务六 使用“scanf”函数输入数据,任务一 确定需要输出的数据及数据的类型,确定需要输出的信息 根据自己实际需要,选择要输出的信息。,需要输出的基本信息,任务一 确定需要输出的数据及数据的类型,分析信息的数据类型 需要输出的数据是各种各样的,主要有以下几种: 数字,如“12345678”。 字母,如“LaBiXiaoSheng”。 符号,如“_”和“”。,任务一 确定需要输出的数据及数据的类型,分析信息的数据类型 由数字组成的数据称为“数值型数据” 由字母、符号还有汉字组成的数据称为“字符型数据”。 数值型数据还可以包括整数和小数,整数和小数又分别有正数和负数。 字符型数据可以有一个字符的,也可以有多个字符的,如果是多个字符就称它为“字符串”。,任务一 确定需要输出的数据及数据的类型,分析信息的数据类型 确定要输出的信息类型如下: QQ号码:整数。 昵称:字符串。 真实姓名:字符串。 年龄:整数。 性别:字符。 电话号码:整数或字符串。 城市:字符串。 电子邮箱地址:字符串。,任务二 了解计算机中信息的存储方式,在计算机内部,无论是什么数据,最终都要转换成由0和1组成的二进制数字才能保存在计算机当中。 计算机中最小的存储单元是“位”,一个位可以存储一个“0”,或者是一个“1”。 计算机中可以被访问的最基本的存储单元是“字节”,一个字节包括8个位。计算机要存放信息至少要占用一个字节。,任务二 了解计算机中信息的存储方式,正整数的存储,任务二 了解计算机中信息的存储方式,负整数的存储 在二进制数中,用最高位(从右往左,右边是低位,左边是高位)作为表示正负的符号位。例如,如果用一个字节来表示数字,则第8位就是符号位(从右往左数),用“0”来表示正,用“1”来表示负,所以“+1”就可以表示为“00000001”(最高位为0),“1”就可以表示为“10000001”(最高位为1)。,任务二 了解计算机中信息的存储方式,小数的存储 小数可以采用定点数和浮点数来表示。,常用的定点数有两种表示形式:如果小数点位置约定在最低数值位的后面,则该数只能是定点整数;如果小数点位置约定在最高数值位的前面,则该数只能是定点小数。,以定点方式表示十进制整数195,以定点方式表示十进制纯小数0.6876,任务二 了解计算机中信息的存储方式,小数的存储 小数可以采用定点数和浮点数来表示。,浮点数表示法类似于科学记数法,任一数均可通过改变指数部分,使小数点发生移动,如数23.45可以表示为“1012.345”、“1020.2345”、“1030.02345”等各种不同形式,小数点的位置可以变化。通常就把这种小数点位置可以变化的数称为浮点数(会浮动的小数点,是不是很形象?)。浮点数的一般表示形式为“N=2E D”,其中,“D”称为尾数,指数“E”称为阶码。只要在计算机中分别保存D和E就可以了。,任务二 了解计算机中信息的存储方式,字符的存储,ASCII码表,目前,微型计算机和小型计算机中普遍采用ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)表示字符数据。该编码被ISO(国际化标准组织)采纳,作为国际上通用的信息交换代码。,任务三 了解C语言的数据类型,C语言提供了丰富的数据类型 C语言中的数据类型可以分为基本类型、构造类型和指针类型。 基本类型包括整型、字符型、浮点型和枚举类型 构造类型是用基本类型来构造的,包括结构体类型和共用体类型 指针类型,专门来存放内存地址,任务三 了解C语言的数据类型,任务三 了解C语言的数据类型,基本类型中的整型是用来存放整数的,根据保存一个数字所需的字节多少可以分为短整型(short)、整型(int)和长整型(long) 根据最高位是否是符号位可以分为有符号的和无符号的(unsigned)。 基本类型中浮点型是采用浮点数形式来存放小数的 根据保存数字的字节多少可以分为单精度浮点型(float)、双精度浮点型(double)两种,任务三 了解C语言的数据类型,各种类型数据占用的字节数及取值范围,任务四 声明变量,一、变量的声明 在程序运行过程中,其值可以被改变的量称为变量。 声明变量,就是告诉计算机要使用的变量是什么类型的,叫什么名字。这样计算机就可以分配一定大小的空间,并记录下这块空间在内存中的位置。 注意: C语言规定,所有的变量必须先声明,后使用。,任务四 声明变量,变量的声明形式 类型说明符 变量名标识符 例如: int age ;,同时声明多个同类型的变量,可以在类型说明符后面加多个用逗号隔开的变量标识符 例如: int name1,name2;,任务四 声明变量,变量的命名规则 名字由英文大小写字母、数字和下划线组成,首字母必须是英文字母或下划线。 Turbo C 2.0允许名字的长度为32个字符,通常取前8个字符为有效字符。 C语言认为一个字符的大写形式与小写形式代表不同意义,例如变量“Name”和“name”被认为是两个不同的名字。 名字最好是有一定意义的,一看名字就知道变量的用途。 系统的保留字(又称关键字),在C语言当中有特殊的含义,是不可以用作用户自定义的标识符的。,任务四 声明变量,C语言的关键字,任务四 声明变量,本项目中变量的声明,main() long int QQ_num; /*长整型变量QQ_num,用来存放QQ号码*/ char pet_name20; /*字符串pet_name,用来存放昵称*/ char true_name20; /*字符串true_name,用来存放真实姓名*/ char sex; /*字符型变量sex,用来存放性别*/ int age; /*整型变量age,用来存放年龄*/ char telephone_num12; /*字符串telephone_num,用来存放电话号码*/ char city10; /*字符串,用来存放好友所在的城市*/ char E-mail50; /*字符串,用来存放电子邮件地址*/ ,任务四 声明变量,二、给变量赋值 赋值的格式 变量名 变量的值 例如: age16 在这里,“”不是等号,是赋值符号。表示把赋值符号右边的值赋予符号左边的变量。表示把整数16赋予变量age,下次输出age的值,就可以输出“16”了。 赋值语句 如果在“变量名 变量的值”的后面加上一个分号“;”,就成为了一条语句,就称之为赋值语句。,任务四 声明变量,给本项目中变量赋值 QQ_num=12345678; pet_name20=“LaBiXiaoSheng“; true_name20=“Zhang_xiaosheng“; sex=M; age=16; telephone_num12=; city10=“ShangHai“; E-mail50=““;,任务四 声明变量,常量 “常量” 指在程序运行过程中不会发生改变的量。 整型常量:可以表示为“0”,“50”,“125”等。 浮点型(也称为实型)常量:可以用小数表示,如“123.59”,也可以用科学计数法来表示,如123.59可以表示为“1.2359102”,在C语言中就可以表示为“1.2359e2”。 字符型常量:用单引号来表示,例如“a”,就表示小写字母“a”。 字符串:用双引号来表示,例如“LaBiXiaoSheng“”。,转义字符 转义字符以反斜杠“”开头,后面可以跟一个字符,或者一组八进制整常数或十六进制整常数的一种特殊形式的字符常量。其功能是将反斜杠“”后面的字符转换成另一种含义。,转义字符,任务五 使用“printf”函数输出数据,printf函数是一个“格式输出”函数。 在C语言中,所有的数据输入、输出都是由库函数完成的。 在使用printf函数之前必须在程序的最前面加上“# include “stdio. h“”,放在main函数之前。,任务五 使用“printf”函数输出数据,printf函数调用的一般形式 printf(“格式控制字符串“,输出表列) “格式控制字符串”用于指定输出格式,可由“非格式字符串”和“格式字符串”两种组成。 “非格式字符串”在输出时原样照印,在显示中起提示作用。 “格式字符串”是以“%”开头的字符串,在“%”后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。 “输出表列”则给出各个输出项, 要求格式字符串和各输出项在数量和类型上应该一一对应,任务五 使用“printf”函数输出数据,例如,假设有整型变量age,有如下代码: printf (“age= % d n“, age );,任务五 使用“printf”函数输出数据,常用格式字符及所代表的格式,任务五 使用“printf”函数输出数据,使用printf函数来输出信息 printf(“*n“); printf(“ My best friend-%s n“, pet_name); printf(“*n“); printf(“True name:t%sn“,true_name); printf(“QQ number:t%ldn“,QQ_num); printf(“Sex:tt%cn“,sex); printf(“Age:tt%dn“,age); printf(“Tel_number:t%sn“,telephone_num); printf(“City:tt%sn“,city); printf(“E-mail:tt%sn“,E-mail); printf(“*n“);,任务六 使用“scanf”函数输入数据,scanf函数称为格式输入函数,它的功能是按用户指定的格式把数据输入到指定的变量之中。 scanf函数的一般形式如下。 scanf (“格式控制字符串“,地址表列) “格式控制字符串”的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。 “地址表列”中给出各变量的地址。地址由地址运算符“&”加变量名组成。,使用scanf函数输入信息 clrscr(); printf(“please input QQ number:n“); scanf(“%ld“, ,C语言程序设计,项目三 运算计算圆的面积和周长,学习目标,了解运算符和表达式。 了解运算符优先级与结合性。 掌握算术运算符及算术表达式。 了解符号常量的定义和使用。 了解各类数值型数据间的混合运算规则。,项目三 运算计算圆的面积和周长,前面的项目中,已经学习了C语言的数据类型、常量与变量的定义和使用,下面来进一步了解C语言中数据的运算以及运算符和表达式的概念。 本项目将介绍C语言的几种基本运算符及其使用方法,并以一个简单的面积和周长计算应用程序的编写过程为例进行说明。,项目三 运算计算圆的面积和周长,任务一 了解运算符和表达式 任务二 定义变量 任务三 定义常数 任务四 输入圆的半径 任务五 计算圆的面积和周长 任务六 输出计算结果 任务七 程序的扩展,任务一 了解运算符和表达式,一、算术运算符, 两个整数相除的结果仍然是整数。例如“3/2”的计算结果是1,而不是1.5。这个结果可以看作是对实际值1.5只保留整数位的结果。又如“10/3*3”的结果应该是9,而不是10。 模运算符相当于数学运算中的求余数运算。 “%”的两侧操作数必须是整数。所以表3-1的模运算式“x%5”中的操作数“x”必须是整数类型。因此“x”可以是int类型和char类型,而不能是float和double类型。, 除了模运算之外的算术运算,只要有一个操作数是实数,那么在运算过程中数据会被转换为double类型进行运算,所以相应的运算结果就是double类型的。例如运算式“2+3.0”的结果是double类型的,所以如果执行语句“printf(“%d”,2+3.0);”,会得到错误的结果。又如表达式“10/3.0*3”的结果是double类型的“10.0”。 运算符的优先级和数学运算中的优先级类似,“*”、“/”和“%”优先级相同,都要比“+”、“-”运算优先级高。即先进行乘、除和求余运算,然后进行加减运算。 在同级运算符中,要按照结合性来决定运算的顺序。上述基本算术运算符的结合性是“自左向右”。,二、强制类型转换运算符 语法形式 (类型)变量 或者 (类型)(表达式),三、赋值运算符 一般形式如下 变量名 = 表达式, 赋值运算符左侧不能是常量或者不可寻址的量,如算术运算表达式。所以下面的赋值表达式是错误的。 5=a (3+4) = a (a+1)=b 赋值运算是从右向左进行的,即将右边的值赋给左边的变量。并且赋值表达式的值就是赋值运算符左侧变量的值。所以表达式“a=3”的值是3。, 赋值运算的结合性是从右向左。即如果存在多个并列的赋值语句,会先执行右边的赋值表达式,如语句“a=b=c=5;”相当于“a=(b=(c=5);”,它的执行顺序是先执行“c=5”,再将“(c=5)”的结果5赋给b,最后将“b=(c=5)”的结果赋给a。所以执行该语句的结果是变量a、b、c的值都变成5。 如果赋值运算符两端的数据类型不一致,那么进行运算时会进行类型转换。,扩展赋值运算符 运算符“+=”表示“+”和“=”的复合形式 “a+=b”等价于“a=a+b” 注意:表达式“a +=b-3”等价于表达式“a=a+(b-3)”。所以下列语句的执行结果为“a=0,b=1”。 int a=2,b=1 printf(“a=%d,b=%dn”,a,b);,四、自增自减运算符 “a+”或者“+a”相当于“a=a+1” 自增运算符的使用方法有两种,一种是前缀式,如“+a”;另一种是后缀式,如“a+”。它们的区别是前缀自增运算符+a表示先将变量a本身存储的值加1,然后再用a的新值参与表达式运算;后缀a+表示先用a的原值进行表达式计算,计算完成后再将a本身存储的值加1。下面两段代码演示了自增运算的两种形式。, 自增自减运算符只能用于变量,而不能用于常量或表达式。所以“+2”,“(a+b)+”不是合法的自增运算表达式。 自增自减运算和加减运算的区别:“a+”会改变原值,表示将a的值加1;而“a+1”只是计算a和1的和,对a本身的值没有影响。 自增自减运算符的优先级高于+、-、*、/和%。 自增自减运算符的结合方向是“自右向左”。,五、逗号运算符 逗号运算符也称为顺序求值运算符,将多个表达式用逗号连接在一起。它的一般形式如下。 表达式1,表达式2,表达式n 逗号运算符的优先级是最低的。逗号表达式的计算顺序是从左向右依次计算。最后一个表达式的值作为整个逗号表达式的值。,六、类型转换 C语言中的类型转换可以是编译器自动完成的,也可以是程序员强制进行的。 自动类型转化 当表达式中出现不同类型数据的混合运算时,C语言自动将这些不同类型转化为同一种类型,然后进行运算。,横向向左的箭头表示必然进行的转化。 图中的纵向箭头表示当操作数类型不同时进行的转换方向。级别低的类型会转换成级别高的类型,然后进行计算。 表达式“c%i+3/f-i*d”对应的变量定义语句为“int i; float f;double d;”,转换如何进行,计算“c%i”。先将“c”转化为int型99,这是必须进行的转换。然后进行99和i的取模运算,结果为int型。 计算“3/f”。由于float类型必须转换为double类型,并且常量3是int类型,级别比double类型低,所以两个操作数都必须转换为double类型,然后进行计算。 将步骤1的计算结果与步骤2的计算结果相加。步骤1的计算结果先转换为double类型再进行加法计算,结果为double类型。 计算“i*d”。i的类型级别较低,所以将变量i转换为double类型后进行乘法运算。 将步骤3的计算结果与步骤4的计算结果进行减法运算,结果为double类型。,任务二 定义变量,在定义变量时,采用的名称应该能够反映变量本身的用途和属性。例如标识符“tot

温馨提示

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

评论

0/150

提交评论