版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“编程能力”不是听会的、也不是看会的、而是动手动脑练会的!高级语言程序设计主讲教师:丁丁计算机与信息技术学院dding@第二章
数据对象与计算(上)2023/2/5高级语言程序设计4主要内容2.1程序的基本结构2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2.1程序的基本结构2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2023/2/5高级语言程序设计5例2.1.1:简单C程序helloworld.c/*程序名:helloworld.c*//*功能:在屏幕上输出一行文本*/#include<stdio.h> /*文件包含*/voidmain() /*主函数*/{ /*函数体开始*/
printf(“Helloworld!\n”); /*输出语句*/} /*函数体结束*/2023/2/5高级语言程序设计6简单C程序的基本结构
注释
预编译命令主函数用户定义的子函数每一个C程序都必须包含一个main函数 intsub(intx,inty){
变量定义
<程序体>} voidmain(){
变量定义
<程序体>}
voidmain(){
变量定义
<程序体>}主函数2023/2/5高级语言程序设计7函数是C语言程序的基本单位。{}是函数开始和结束的标志,不可省。每个C程序必须有一个主函数main,是C程序执行的开始点,与main函数的位置无关。函数由语句构成,每个C语句以“;”结束。每条语句都要符合规定的语法格式,并具有特定的功能。使用标准库函数时应在程序开头包含库函数定义。如:#include<stdio.h>2023/2/5高级语言程序设计8程序注释增加程序可读注释对编译和运行不起作用。一般在行的最右侧或在被注释行之上单独成行。/*注释内容可以多行*/可以在任何位置//在行末,有的编译器不支持2023/2/5高级语言程序设计9/*程序名:2_1_2.cpp*//*功能:计算两个整数的和并输出结果*/#include<stdio.h>intadd(intx,inty){intz;z=x+y;returnz;}voidmain(){inti1,i2,sum;printf("请输入两个整数:");scanf("%d,%d",&i1,&i2);sum=add(i1,i2);printf("sum=%d\n",sum);}例2.1.2:计算两个整数的和2.1程序的基本结构2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2023/2/5高级语言程序设计10主要内容2.1程序的基本结构
2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2023/2/5高级语言程序设计111基本字符C语言是基本字符的序列。基本字符包括:数字(0~9)大小写字母(a~z,A~Z)其他一些可打印(显示)字符:如标点符号、运算符号、括号等特殊字符:空格、换行、制表符(空白字符,起分隔作用,增删空白一般不影响程序的意义)☆程序中出现非基本序列字符集中的字符(双引号内除外)为非法字符,编译过程不能通过;任何语言都有基本字符序列集合(双引号内的除外)☆应利用空白字符排列程序格式,使程序的形式更好地反映程序结构和它所实现的计算过程.2023/2/5高级语言程序设计122标识符程序中的名字(描述对象)称为标识符 如变量名(s,a,b,c)、函数名(add,main)等;标识符分用户定义的标识符和系统预定义的标识符 用户定义的如s,a,b,c;
系统定义的如标准函数名printf,用户不得使用;标识符对字母大小写敏感:a和A是不同字母;ABC、Abc、AbC和abc是4个不同标识符形式:字母或数字组成的连续序列,字母(下划线“_”看作字母)开头(即以字母开头,后跟字母或数字)。2023/2/5高级语言程序设计13标识符示例:abcdsinBeijingC_Programminga3b06a3b400nwhile_f2048sx211_12aabc______例:x3+5,其中x3是一个标识符例:ab_400+xy__/xareavolume尽量采用能说明程序对象意义的标识符☆通常将以下划线开始的标识符保留给系统用标识符命名基本原则2023/2/5高级语言程序设计141)标识符一般需要反映其用途,如:intsum;2)如果标识符名由多个单词构成,通常采用“大小写”混排的方式(Windows应用程序),每个单词的首字符可大写;如:TotalFiles,AddChild。3)变量名通常使用“名词”或者“形容词+名词”函数名通常使用“动词”或者“动词+名词”4)标识符的长度应当适当。ANSIC规定名字不准超过6个字符,C++/C不再有此限制,但不宜过长。5)通常将以下划线开始的标识符保留给系统用,用户不使用。6)Unix(Linux)应用程序的标识符通常采用“小写加下划线”的方式,如add_child。2023/2/5高级语言程序设计153关键字C语言的合法标识符有一个特殊的小集合—关键字预先定义好具有特殊的意义,因此不能用于其它目的ANSI标准C语言中的关键字总共有32个:autobreakcasechar constcontinuedefaultdodoubleelse enumextern floatforgotoif intlongregisterreturnshortsignedsizeofstaticstruct switchtypedefunion unsignedvoidvolatilewhile 2023/2/5高级语言程序设计16主要内容2.1程序的基本结构2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2.1程序的基本结构
2.2基本概念2.3数据与类型
2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2023/2/5高级语言程序设计17表示邮政编码“100044”,一串数字(无单位)表示某人的身高”1.75米“,一个数值(有单位)全班30个同学每人的姓名,30个相关的数值能用一种类型的数据表示吗?2023/2/5高级语言程序设计18数据是程序中可操纵的对象,数据是分类(类型)的;类型是程序里某类数据的一个集合;语言中有几类数据是由语言的设计者定义的,并定义好名字数据都属于某种类型;同类型所有数据对象的性质相同,能做同样操作;数据以什么形式在程序中表示?C有几种数据类型?☆数据类型确定了该类型数据的可能取值范围数据与类型C语言数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union长双精度longdouble2023/2/5高级语言程序设计192023/2/5高级语言程序设计20常量与变量在C语言中,数据常有常量和变量之分;程序运行过程中,其值不能被改变的量称为常量。程序运行过程中,其值可以赋值而改变的量称为变量。常量和变量都有数据类型;2023/2/5高级语言程序设计21常量程序里直接写出的数据或通过标识符定义的常量分两种:直接常量或字面常量:例:程序中直接写出整数类型的常量(简称整数)3.1415926整型常量;实型常量;字符常量;字符串常量符号常量:用一个标识符代表一个常量例:#definePI32/5高级语言程序设计22变量例:inta;
1)int
是整型类型名;int代表整数类型数据的集合;2)a是标识符,代表变量名;3)a中可以存储任意想存的表达范围内的整数。C程序中用到的所有变量都必须先定义,再使用变量定义的一般形式为:
数据类型名变量名1,变量名2….;变量名属于标识符数据类型决定了该变量存储的数据的含义,即变量可以存放哪种类型的数据2023/2/5高级语言程序设计23对于每个变量,编译系统会在编译时为其分配相应的内存空间,变量名实际上是对应计算机内存中的地址。不同类型的变量具有不同大小的存储空间。2.1程序的基本结构2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用2023/2/5高级语言程序设计24主要内容2.1程序的基本结构
2.2基本概念2.3数据与类型2.4基本类型与数据表示2.5数据的输入与输出2.6运算符、表达式与计算2.7数学函数库及其使用基本类型的类型名由一个或者几个关键字组成.例:
int(整型)
float(单精度浮点型)
double(双精度浮点型)char(字符型)☆基本类型名系统已经定义好,用户直接使用.关键字2023/2/5高级语言程序设计25基本类型与数据表示1.整数类型和整数的表示2.实数类型和实数的表示3.字符类型和字符的表示2023/2/5高级语言程序设计26基本类型与数据表示1.整数类型和整数的表示整数类型整型常量2.实数类型和实数的表示3.字符类型和字符的表示2023/2/5高级语言程序设计272023/2/5高级语言程序设计28整数类型整型:int短整型:shortint简写short长整型:longint,简写longC语言里有多个整数类型常用:整数类型(整型、短整型和长整型)☆short和long都是关键字☆不同整数类型所用编码位数可能不同,表示数的范围也不同。2023/2/5高级语言程序设计29int型数据是有符号整数,在内存中占用4个字节(32位),取值范围在-231~231-1;short型的数据是有符号整型数据,short型的数据的长度要小于等于int型数据,在内存中占用2个字节(16位),取值范围在-215~215-1;long型的数据是有符号整型数据,long型的数据的长度要大于等于int型数据,在内存中占用4个字节(32位),取值范围在-231~231-1;☆编码长度(表示范围)由具体C系统确定2023/2/5高级语言程序设计30整型常量(整数)整数写法:十进制,首字符非0(除非本身是0)的数字序列例:1234 0 -768 2047 1999长整数写法:加后缀l或L(不能有间隔):123L
304l
25278L1l
0L小写l易与数字1混淆,建议用大写整数可以加正负号2023/2/5高级语言程序设计31整数也可以用八进制和十六进制表示:八进制整数:0开始的数字序列,只允许用0~7。如0123十六进制整数:0x或0X开头的数字序列,用字母a~f或A~F表示其余6个数字。如0x12☆常量的十进制、八进制和十六进制表示形式只是整数的不同书写形式,是为编程方便。计算机内存储的只能是二进制。如何转化为十进制基本类型与数据表示1.整数类型和整数的表示2.实数类型和实数的表示实数类型实型常量3.字符类型和字符的表示2023/2/5高级语言程序设计322023/2/5高级语言程序设计33单精度浮点数类型(浮点类型):float双精度浮点数类型(双精度类型):double长双精度类型:longdouble实数类型浮点数32位表示,约7位有效数字双精度数用64位表示,大约16位有效数字长双精度数用64位或80位表示(系统确定),约19位有效数字2023/2/5高级语言程序设计34+.314159264实数在计算机内部是按照指数形式存储,系统把一个浮点型分成小数部分和指数部分。存在误差。类型比特(位)数有效数字数值范围float326--7-3.3*10-38----3.4*1038double6415--16-1.7*10-308----1.7*10308longdouble12818--19-1.2*10-4932----1.2*1049322023/2/5高级语言程序设计35实型常量十进制小数形式:整数部分.小数部分
指数形式:尾数+E(e)+指数例:
123.、-.123、0.0、12.5。例:12.3e2、2.3E-21float加后缀f或F,longdouble加L实数前可以有正负号指数形式适用于表示较大或较小的数。e之前必须有数字,且e后面的指数必须为整数。如:128e2或128E2都代表128×102
。当整数或小数部分为0时可以省略,但小数点不能省略指数表示(科学表示法)十进小数表示法+—数字·数字可省略+—数字·数字E+—数字可省略可省略2023/2/5高级语言程序设计362023/2/5高级语言程序设计37例2.4.1实型数据的舍入误差示例。#include<stdio.h>intmain(void){ floata,b,c; a=55555.55555; b=123456.789e5; printf("a=%f,b=%f,b+40=%f\n",a,b,b+40); return0;}a,b应是原值输出,但结果已发生误差;从b+40的结果看虽然增加了40,但仍比b的初值小,结果没有意义。这是因为float的有效位数只有七位。2023/2/5高级语言程序设计38若将程序中的float改为double类型:
#include<stdio.h>intmain(void){ doublea,b,c; a=55555.55555; b=123456.789e5; printf("a=%lf,b=%lf,b+40=%lf\n",a,b,b+40); return0;}基本类型与数据表示1.整数类型和整数的表示2.实数类型和实数的表示3.字符类型和字符的表示字符类型字符常量字符串常量符号常量2023/2/5高级语言程序设计392023/2/5高级语言程序设计40字符类型用于输入输出(I/O)或文字处理字符型数据存储时占用1个字节(8位),它实际存储的是字符对应的ASCII码。如一个char型数据’A’,其ASCII码为65,故实际存储的内容是整数65。char型数据为有符号字符,取值范围为-128~127,unsignedchar型数据为无符号字符,取值范围为0~255。可打印的字符总是正的。字符型数据与整型数据可以通用,字符型数据所有的性质与一字节整型量相同。
字符类型名
(char)AmericanStandardCodeforInformationInterchange(ASCII)美国标准信息交换码字符类型2023/2/5高级语言程序设计41字符十进字符十进字符十进字符十进字符十进字符十进048G71W87-45f102v118149H72X88/47g103w119250I73Y89,44h104x120351J74Z90%37i105y121452K75空格32>62j106z122553L76换行10?63k107654M77.46#35l108755N78<60@64m109856O79(40‘39n110957P80+43=61o111A65Q81&48“34p112B66R82!33a97q113C67S83$36b98r114D68T84*42c99s115E69U85)41d100t116F70V86;59e101u117常用ASCII码对照表2023/2/5高级语言程序设计42字符常量单引号括起来的单个字符。如:‘a’在计算机的存储器中,字符型常量的值为该字符所对应的ASCII码值;例:‘A’→65;‘a’→97;‘0’→48整数在计算机存储器中存放的是其值;例:0→0、5→5、125→125
区别字符‘0’和数字0:字符‘0’在存储器中的值为:数字0在存储器中的值为:4802023/2/5高级语言程序设计43
例:voidmain(){charc1,c2;
c1=‘a’;c2=‘b’;
c1=c1-32;c2=c2-32;
printf(“%c,%c”,c1,c2); printf(%d,%d”,c1,c2);
}程序执行开始点定义变量c1,c2c1c2对c1,c2赋值9798对c1,c2计算6566输出c1,c2A,B字符常量可以象整数一样参与运算:65,662023/2/5高级语言程序设计44转义字符C语言中,一些特殊的字符没有字符常量,例如单引号、换行符等。因此,通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符。转义字符是一组以“\”开头的特殊字符序列,用来表示任何可以输出的字母字符、专用字符、控制字符、图形字符。2023/2/5高级语言程序设计45字符形式含义ASCII码\n换行10\t水平制表(下一个Tab)9\b退格8\r回车13\f换页12\\反斜杠\92\‘单引号(撇)39\“双引号34\ddd1到3位八进制代表的字符\xhh1到2位十六进制代表的字符常用转义字符及其应用2023/2/5高级语言程序设计46
/*功能:使用转义字符控制数据的输出*/#include<stdio.h>voidmain(){charc1=‘A',c2=‘N';
printf("a\tbc\tABC\n");
printf("xyz\t%c%c",c1,c2);
}axyzANbcABC想一想,本程序的结果是什么?2023/2/5高级语言程序设计47双引号括起来的字符序列。如“goodbye”,“0”等主要用于输入输出字符串常量例:printf("Goodmorning!\n");
字符串里的空格是实际内容(“有意义”)规定:
不能在一个字符串的中间换行很长的字符串可采用连续写几个字符串的形式Printf(“GoodMorning!\n”);GoodMorning!Printf(“Good\nMorning!\n”);Printf(“Good\n“);Printf(“Morning!\n”);错对对2023/2/5高级语言程序设计482023/2/5高级语言程序设计49字符串以字符数组形式存储在计算机中。存储时串尾被自动加上字符‘\0’,以标志字符串的结束。例:GOODBYE\0
字符常量与字符串常量的区别:字符常量是单个字符,而字符串常量则可以包含零个或多个字符。‘A’与“A”的区别:65‘A’“A”65\02023/2/5高级语言程序设计50用一个标识符代表一个常量,叫符号常量;符号常量的定义语句格式为:
#define符号常量名常量——宏定义#include<stdio.h>
#definePI3.14159/*定义PI代表串3.14159*/voidmain(){floatr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年红外遮蔽诱饵及伪装陶瓷粉料项目融资计划书
- 兽医寄生虫病学试题库(含参考答案)
- 养老院老人心理辅导支持制度
- 养老院老人紧急救援人员行为规范制度
- 《肠内营养护理》课件
- 房屋架木安全协议书范文(2篇)
- 2025年南宁货运从业资格证的考题
- 2025年杭州货运从业资格证考试题库答案大全
- 2024年物联网智能家居系统研发与销售合同
- 2025年哈密货运从业资格证考题
- 2014年吉林省长春市中考模拟数学
- 上汽-最详细的整车开发流程(CPMP)
- 论文岩棉用酚醛树脂体系
- 设计开发记录总表
- 通风填写范例
- 盲人无障碍出行调查问卷分析报告(20220215150515)
- 财务审批权限管理办法
- 许昌特产介绍
- 欧姆龙AD081、DA08C输入输出模块的使用手册
- 外墙真石漆施工合同书
- 一千个伤心的理由(张学友)原版五线谱钢琴谱正谱乐谱.docx
评论
0/150
提交评论