C语言程序的设计电子教学课件源代码参考的答案02单元1-程序的设计基础_第1页
C语言程序的设计电子教学课件源代码参考的答案02单元1-程序的设计基础_第2页
C语言程序的设计电子教学课件源代码参考的答案02单元1-程序的设计基础_第3页
C语言程序的设计电子教学课件源代码参考的答案02单元1-程序的设计基础_第4页
C语言程序的设计电子教学课件源代码参考的答案02单元1-程序的设计基础_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计主讲人:杨丹、刘斌、张静常州信息职业技术学院单元一程序设计基础

教学目标

【知识目标】1.了解C语言的特点,初步熟悉C语言程序开发过程和VC++上机步骤;2.理解语句的概念,了解C语言的可执行语句和return语句;3.领会标识符的命名规则、C函数的定义和结构;4.掌握C语言程序的结构、主函数的结构和程序执行的过程;5.理解函数的定义、调用、声明及三者之间的关系和区别,理解参数传递的过程;单元一程序设计基础

【知识目标】6.理解和掌握整型常量、实型常量、字符常量、字符串常量及其表示方法和符号常量的定义及使用;7.掌握变量的定义、赋值和初始化;8.了解整型变量、实型变量、字符型变量在内存中的存储形式、存储长度和取值范围;9.弄清自动变量、静态变量和外部变量的生存周期和作用域;10.熟练掌握算术运算、赋值类运算等各种运算的运算规则、运算符的优先级别和结合方向;11.领会算术表达式、赋值表达式和逗号表达式的值及计算过程。单元一程序设计基础

教学目标

【能力目标】1.初步熟悉VC++程序开发环境;2.能够在所编写的程序中正确的定义和使用变量;3.能够用C语言表达式表达实际问题,模仿编写简单应用问题的程序代码;4.能够初步对C语言程序进行调试。引例描述

单元一程序设计基础

求给定三位整数的各位数码。对给定的一个三位整数,求出这个三位数的各位上的数码,如:386,求得的结果是:百位数码是3,十位数码是8,个位数码是6。引例演示

1.1C语言程序开发过程

一、C语言的特点1.使用简洁、灵活、方便2.运算符丰富、表达能力强3.数据类型丰富4.以函数作为模块单位5.允许直接访问物理地址6.生成目标代码质量高7.可移植性好

1.1C语言程序开发过程

二、程序开发过程

1.编辑2.编译3.连接4.执行

编辑编译连接执行编写输入源程序

.cpp

.obj

.exe结果1.1C语言程序开发过程

三、VisualC++上机步骤

第一步:进入visualC++6.0用户界面。第二步:建立项目文件。第三步:建立源程序文件。第四步:编译源程序。第五步:生成可执行文件。第六步:执行程序。【例1-1】求两个整数的和的c语言程序如下,对其进行编辑、编译、连接、执行。1.1C语言程序开发过程

#include<stdio.h>intSum(intx,inty);intmain(){ inta,b,s; printf("请输入两个整数:");

scanf("%d%d",&a,&b); s=Sum(a,b); printf("两个整数和是:%d\n",s); return0;}intSum(intx,inty){ intz; z=x+y;

returnz;}1.2函数及其结构

一、函数的定义(一)语句1.说明语句2.可执行语句⑴表达式语句⑵函数调用语句⑶空语句⑷复合语句⑸流程控制语句

1.2函数及其结构

一、函数的定义(二)函数的定义函数定义的一般格式:返回值类型函数名(参数类型1形式参数1,…,参数类型N形式参数N){ 数据定义部分 数据操作部分

}

标识符的命名规则:以字母或下划线开头,由字母、数字、下划线组成。1.2函数及其结构

二、函数调用1.函数调用的一般格式

被调函数名(实际参数表)其中,实际参数简称为实参,实参表可由一个或多个实参组成,但必须与形参的个数和类型一致,两个实参之间用逗号分隔。2.参数传递

在进行函数调用时,把实参的值传递给对应的形参,所以,每个实参在函数调用之前都必须有确定的值。3.函数调用的作用1.2函数及其结构

三、函数声明1.函数声明的格式

类型标识符函数名(形参表);其中⑴函数声明是一个说明语句必须在结尾加分号,其它与函数定义中的函数头完全相同。⑵如果被调用函数写在主调函数之前,函数声明可省略不写,但应该养成书写函数声明的良好习惯。2.函数声明的作用1.2函数及其结构

四、return语句

1.return语句的一般格式

return(表达式);其中⑴一对圆括号可省略不写。⑵当函数没有返回值时,表达式甚至整个返回语句可省略不写。2.return语句的作用

使程序流程从被调函数返回到主调函数的函数调用处,并将被调函数的返回值带回到函数调用处。1.2函数及其结构

五、主函数的结构C语言的主函数的一般格式:intmain(){ 数据定义 数据输入 函数调用 数据输出 return0;}1.2函数及其结构

六、程序的执行过程

C语言程序总是从主函数main()开始执行,依次执行主函数函数体内的每一个可执行语句,直到最后一个右花括号程序才执行完毕。1.2函数及其结构

七、注释在VC++环境中,注释有两种:1.以/*开头,以*/结束,中间写待注释的内容。2.以//开头,在其后写待注释的内容。注释的作用:增强程序的可读性和用于对程序进行调试。1.2函数及其结构

【例1-2】以下C语言程序的功能是:对用户输入的矩形边长求矩形的周长。体会函数定义、调用、声明和注释的使用,理解程序执行和参数传递过程。

程序执行和参数传递过程:#include<stdio.h>intPerimeter(intx,inty);//函数Perimeter的声明intmain(){ intlength,wide,pmt; printf("请输入矩形的长和宽:"); scanf("%d%d",&length,&wide);//假设用户输入53 pmt=;

printf("矩形的周长是:%d\n",pmt); return0;}/*以下是函数Perimeter的定义*/intPerimeter(intx,inty){ intz; z=;

returnz;}lengthwide**pmt*53Perimeter(length,wide)x*y*z*532*x+2*y1616//函数调用161.3数据描述一、常量(一)整型常量及表示法1.十进制整型常量:2.十进制长整型常量:3.八进制整型常量:4.八进制长整型常量:5.十六进制整型常量:6.十六进制长整型常量:用数码0~9表示的十进制整数在十进制整型常量后加小写字母l或大写字母L表示的数以数字0开头用数码0~7表示的整数,开头的数字0代表所表示的数为八进制数在八进制整型常量后加小写字母l或大写字母L表示的数以数字0和小写字母x或大写字母X开头,用数码0~9或小写字母a~f或大写字母A~F表示的十六进制整数,0x代表所表示的数为十六进制数在十六进制整型常量后加小写字母l或大写字母L表示的数【示例】32,-7等都是十进制整型常量。【示例】64L,65783l等都是十进制长整型常量。【示例】027,036,-015等都是合法的八进制整型常量,而049是不合法的八进制整型常量,因为,049中有数码9。【示例】032l,057L等都是八进制长整型常量。【示例】0xa8,0X59,-0X39等都是十六进制整型常量,而0xag,2f等都不是合法的十六进制整型常量,因为0xag中有符号g;2f前没有0x。【示例】0XFFl,0x64L等都是十六进制长整型常量。1.3数据描述一、常量(二)实型常量及表示法1.十进制小数形式:由数码0~9、正负号和小数点(必须有小数点)组成的十进制小数表示的实数。2.指数形式:由尾数、字母e或E、阶码三部分组成,其中尾数为十进制小数或整数,阶码为1位或2位的十进制(有符号)整数。【示例】3.14,-0.271,0.0,0.,.6等都是十进制小数形式的实型常量。【示例】3.14159e2表示十进制数3.14159×102,31415.9E-2表示十进制数31415.9×10-2,它们都表示十进制小数314.159;1e03表示十进制数1×103,这里的尾数1不能省,而E03,-2e314都是不合法的实型常量,因为E03中缺少尾数;-2e314中阶码是3位整数,超过了阶码的范围。1.3数据描述一、常量(三)字符型常量及表示法

1.字符型常量:用单引号括起来的单一字符(包括转义字符)称为字符型常量。【示例】'a','A','2','\n','\101'等都是字符型常量,其中'\n','\101'都是转义字符,而''','\'都是不合法的字符型常量,对于单撇号和反斜杠必须用转义字符来表示。1.3数据描述一、常量(三)字符型常量及表示法

2.转义字符:⑴以反斜杠“\”开头后跟一个规定的字母代表一个控制字符;⑵\\代表反斜杠字符“\”,\'代表单撇号字符“'”;⑶以反斜杠开头后跟1~3位八进制数代表ASCII码值为该八进制数的字符(此方法可表示ASCII字符集中的任一字符);⑷以反斜杠和小写字母x开头,即以\x开头,后跟1~2位十六进制数代表ASCII码值为该十六进制数的字符(也可表示ASCII字符集中的任一字符)。

字符形式含义ASCII值(十进制)\n回车换行,将当前光标位置移到下一行的开头10\t水平跳格(跳到下一个制表区的起始位置)9\b退格,光标前移一列,光标经过位置不变8\r回车(不换行)13\f换页12\\反斜杠字符 92\′单引号(撇号)字符39\〞双引号字符34\ddd1到3位8进制数代表的字符\xhh以x开头的1到2位16进制数代表的字符1.3数据描述一、常量(四)字符串常量及表示法

字符串常量:用双撇号括起来的字符序列称为字符串常量,简称字符串。字符串中含字符的个数称为该字符串的长度。【示例】"Howdoyoudo","A","He\154lo.\n"都是字符串常量,它们的长度分别是13,1,7,应注意:\154和\n都是转义字符,都只代表一个字符。1.3数据描述一、常量(五)符号常量

符号常量的定义方法:在程序的开头,使用如下的编译预处理命令:

#define符号常量常量1.3数据描述

【例1-3】符号常量的使用——求圆的面积。

#include<stdio.h>#definePI3.14159doubleArea(doubler);intmain(){ doubleRadii,s; printf("请输入圆的半径:"); scanf("%lf",&Radii); s=Area(Radii); printf("半径为%lf的圆的面积是%lf\n",Radii,s); return0;}doubleArea(doubler){

doubles; s=PI*r*r;

returns;}二、变量变量:在程序运行过程中,其值可以改变的量。(一)变量的定义1.变量的定义变量定义的一般形式 [类别标识符]类型标识符变量名表;1.3数据描述

二、变量存储类别标识符包括:auto(自动)、register(寄存器)、static(静态);类型标识符包括:short(短整型)、int(基本整型)、long(长整型)、float(单精度实型)、double(双精度实型)、char(字符型)等。1.3数据描述

【示例1】inti,j,k;缺省存储类别标识符系统默认是auto,通过此说明语句定义了3个变量i,j,k都是基本整型变量、都是自动变量。

【示例2】staticfloata,b;通过该说明语句定义了2个变量a,b都为单精度实型变量、都是静态变量

。二、变量2.变量的赋值变量赋值的一般形式

变量=表达式;作用:把赋值号右端表达式的值赋给赋值号左端的变量,即把赋值号右端表达式的值写到赋值号左端变量的存储空间中。1.3数据描述

【示例】a=b+2;把b+2的值赋给变量a,此时,b必须已有确定的值。二、变量3.变量的初始化变量赋值的一般形式

变量=表达式;作用:把赋值号右端表达式的值赋给赋值号左端的变量,即把赋值号右端表达式的值写到赋值号左端变量的存储空间中。1.3数据描述

【示例1】inta=5,b;在定义变量a,b的同时给变量a赋值为5,是对变量a进行初始化。【示例2】inta,b; a=5;先定义两个整型变量a,b,然后给变量a赋值为5,不是初始化。二、变量(二)整型变量1.整型变量的类型标识符⑴有符号基本整型:[signed]int⑵无符号基本整型:unsigned[int]⑶有符号短整型:[signed]short[int]⑷无符号短整型:unsignedshort[int]⑸有符号长整型:[signed]long[int]⑹无符号长整型:unsignedlong[int]注:方括号的内容表示是可选的。

1.3数据描述

【示例1】inta,b;定义变量a,b都是整型变量、都是自动变量。【示例2】unsignedlongc,d;定义变量c,d都是无符号长整型变量、都是自动变量。二、变量(二)整型变量2.整型数据在内存中的存储形式数据在内存中所占的字节数叫做数据的存储长度。VC++系统规定:short型数据在内存中占2个字节(16位),以16位二进制数的补码形式存放;int型和long型数据在内存中占4个字节(32位),以32位二进制数的补码形式存放。1.3数据描述

二、变量(二)整型变量3.整型数据的取值范围

1.3数据描述

类型存储长度取值范围[signed]short[int]2字节(16位)-32768~32767(-215~215-1)unsignedshort[int]2字节(16位)0~65535(0~216-1)[signed]int4字节(32位)-2147483648~2147483647(-231~231-1)unsigned[int]4字节(32位)0~4294967295(0~232-1)[signed]long[int]4字节(32位)-2147483648~2147483647(-231~231-1)unsignedlong[int]4字节(32位)0~4294967295(0~232-1)二、变量(三)实型变量1.实型变量的类型标识符类型标识符分别是:float(单精度实型)和double(双精度实型)。2.实型数据的存储长度、取值范围和精度1.3数据描述

类型存储长度取值范围有效数字精度float4字节±(3.4×10-38~3.4×1038)6~7位6位double8字节±(1.7×10-308~1.7×10308)15~16位6位二、变量(四)字符型变量1.字符型变量的类型标识符⑴(有符号)字符型:[signed]char⑵无符号字符型:unsignedchar2.字符型数据的存储形式及取值范围

字符型数据在内存中占1个字节,以其相应的ASCII码值的8位二进制数(补码)形式存储,char型数据的取值范围是-128~127,unsignedchar型数据的取值范围是0~255,每一个数值对应一个字符。1.3数据描述

1.3数据描述

【例1-4】将大写字母转换为小写字母。#include<stdio.h>charToLower(charch);intmain(){ charch,low; printf("请输入一个大写字母:"); scanf("%c",&ch); low=ToLower(ch); printf("大写字母%c转换为小写字母是%c\n",ch,low); return0;}charToLower(charch){ chartlow; tlow=ch+32; returntlow;}二、变量(五)动态变量1.自动变量

用存储类别标识符auto定义的变量是自动变量,自动变量的存储空间是在程序运行时分配的,分配和释放由系统自动完成。使用时,应注意以下几点:⑴在定义变量时,缺省存储类别标识符系统默认是自动变量;⑵自动变量的存储空间在程序运行期间分配和释放,称为动态存储;1.3数据描述

二、变量(五)动态变量1.自动变量⑶自动变量只在定义它的那个局部范围内才起作用,称为局部变量;⑷自动变量在赋值之前,它的值是不确定的;⑸对同一个函数的两次调用之间,自动变量的值不保留。这是因为,调用一次之后存储空间被释放,再调用时,又另分配了存储空间。2.寄存器变量1.3数据描述

【示例】intmain(){ intx=1; { voidprt(void); intx=3; prt(); printf("2ndx=%d\n",x); } printf("1ndx=%d\n",x);

return0;}voidprt(void){ intx=5;

printf("3ndx=%d\n",x);}【示例】intmain(){ intx;

printf("x=%d\n",x);

return0;}【示例】voidcount(intn);intmain(){ count(1); count(2); return0;}voidcount(intn){ intx=1;

printf("%d:x=%d,",n,x); x=x+2; printf("%d\n",x);}二、变量(六)静态变量

用标识符static定义的变量是静态变量。1.静态变量是在编译时分配存储空间,程序运行结束存储空间才被释放,称为永久存储,即,存在于程序执行的全过程,直到程序执行结束;2.静态变量的初始化是在编译时进行的,如果不显式为静态变量初始化,系统自动置静态变量的初值为0(整型)或0.0(实型);1.3数据描述

二、变量(六)静态变量3.在函数多次被调用的过程中,静态变量的值具有继承性,即本次调用的初值是上次调用结束时变量的值;4.静态局部变量的作用域具有局部性,静态局部变量的值只能在本函数中使用,但生存周期是永久存储。1.3数据描述

【示例】voidincrement(void);intmain(){ increment(); increment(); increment(); return0;}voidincrement(void){ staticintx=1; x=x+2; printf("%d\n",x);}【示例】voidincrement(void);intmain(){ intx=5; increment(); printf("1:x=%d\n",x); return0;}voidincrement(void){ staticintx=1;

x=x+2; printf("2:x=%d\n",x);}二、变量(七)外部变量

定义在所有函数体之外的变量称为外部变量。1.外部变量是在编译时为其分配存储空间的,在静态存储区中存储,生存周期是永久存储,作用域是从定义点到本文件结束;2.外部变量的初始化也是在编译时进行的,如果不显式为外部变量初始化,系统自动置外部变量的初值为0(整型)或0.0(实型)。1.3数据描述

一、运算符与表达式1.运算量:参加运算的对象称为运算量,运算量包括:常量、变量、函数等。2.运算符:用来表示运算的符号称为运算符或操作符。3.表达式:用运算符把运算量连接起来的符合C语言语法规则的式子称为表达式。

1.4数据操作

二、算术运算1.单目算术运算(正、负号运算)⑴运算符:+正(取原值),-负(取相反数)。⑵优先级别:+,-同级别,是第2级。⑶结合方向:右结合。1.4数据操作

二、算术运算2.双目算术运算⑴运算符及运算规则:+(加),-(减),*(乘),/(除),%(求余或模)。%的运算规则是:对于a%b,求a被b除所得的余数,结果的符号与被除数a的符号相同。⑵优先级别:+,-第4级;*,/,%第3级。⑶结合方向:均为左结合。1.4数据操作

二、算术运算2.双目算术运算⑷运算量的类型与结果类型:

对于+,-,*,/这四种运算,参加运算的两个运算量可以是整型数据,也可以是实型数据;如果两个运算量都是整型数据,则结果也是整型数据,如果两个运算量中至少有一个是实型数据,则结果也是实型数据。对于模运算%,要求参加运算的两个运算量必须都是整型数据,运算所得的结果也是整型数据。

1.4数据操作

【示例】inta=5,b=2;则a+b的结果为7,a/b的结果为2,而不是2.5。floata=5.0,b=2.0;则a+b的结果为7.0,a/b的结果为2.5。所以,C语言中的除法运算“/”,有两方面的含义:当运算符两侧的运算量都是整型数据时,结果也是整型数据,此时称为整除;当运算符两侧的运算量至少有一个是实型数据时,结果是double类型数据,此时称为除法。【示例】inta=5,b=-5,c=3,d=-3;则a%c的结果为2,b%c的结果为-2,a%d的结果为2,b%d的结果为–2,a%b的结果为0,b%a的结果为0,0%a的结果为0,0%b的结果也为0。因此,对一个正整数求模运算,不论除数是正数还是负数,所得的结果都是非负数;对一个负整数求模运算,不论除数是正数还是负数,所得的结果都是非正数,对0求模运算的结果还是0,即结果的符号与被除数的符号相同。【例1-5】设n是一个两位整数,用C语言的表达式分别表示n的个位和十位数码。1.4数据操作

解答:n的个位数码可表示为n%10;n的十位数码可表示为n/10。三、赋值类运算1.赋值运算给变量赋值的一般形式:变量=表达式优先级别:赋值运算的优先级别是第14级的,仅高于逗号运算符。结合方向:右结合。赋值表达式:根据运算符的优先级别和结合方向,通过加括号最终化为用赋值号把变量和表达式连接起来的式子称为赋值表达式。赋值表达式的值为赋值后赋值号左边变量的值。1.4数据操作

【示例1】inta;a=2;a=a+3;【示例2】inta=3,b;b=a=a+5;三、赋值类运算2.自反算术赋值运算自反算术赋值运算符包括:自反加赋值:+=;自反减赋值:-=;自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。优先级别:与赋值运算符同级,都是第14级。结合方向:右结合注意:与赋值运算符一样,自反算术赋值运算符的左边通常也必须是变量。1.4数据操作

【示例】inta=5,b=3,c;c=b*=a+2;

三、赋值类运算3.自加和自减运算前缀形式:++变量,--变量后缀形式:变量++,变量--

对于前缀形式++i或--i,运算规则是:把i+1或i-1赋给变量i,而表达式(++i或—i)取变量i被赋值后的值,即++i与i=i+1等价或—i与i=i-1等价。对于后缀形式i++或i--,运算规则是:把i+1或i-1赋给变量i,而表达式(i++或i—)取变量i被赋值前的值。优先级别:自加、自减运算符的优先级别是第2级。结合方向:右结合。

1.4数据操作

【示例】inta=2,b=2,c=2,d=2;a++;b--;++c;--d;表达式表达式执行前变量值表达式执行后变量值表达式的值a++232b--212++c233--d211【例1-5】设有定义inta=3,b,c=5;请将以下两条语句a--;b=a+c;写成一条语句。1.4数据操作

解答:因为语句b=a+c;中的a使用的是语句a--;执行后a的值,所以,两条语句可写成一条语句b=--a+

温馨提示

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

评论

0/150

提交评论