收藏 分销(赏)

C语言程序设计教程(电子教案).ppt

上传人:可**** 文档编号:773471 上传时间:2024-03-11 格式:PPT 页数:317 大小:2.29MB
下载 相关 举报
C语言程序设计教程(电子教案).ppt_第1页
第1页 / 共317页
C语言程序设计教程(电子教案).ppt_第2页
第2页 / 共317页
C语言程序设计教程(电子教案).ppt_第3页
第3页 / 共317页
C语言程序设计教程(电子教案).ppt_第4页
第4页 / 共317页
C语言程序设计教程(电子教案).ppt_第5页
第5页 / 共317页
点击查看更多>>
资源描述

1、C 语言程序设计教程刘新铭刘新铭 吉顺如吉顺如 辜碧容辜碧容 郑君华郑君华编著编著目 录 第第1 1章章 C C语言概述语言概述第第2 2章章 数据类型、运算符和表达式数据类型、运算符和表达式第第3 3章章 C C程序中的输入、输出程序中的输入、输出第第4 4章章 C C程序的控制结构程序的控制结构第第5 5章章 数数 组组第第6 6章章 函数函数第第7 7章章 编译预处理命令编译预处理命令第第8 8章章 指指 针针第第9 9章章 结结 构构 体体第第1010章章 文文 件件第 1 章 C语言概述学习目标 对C语言有一个概括的了解,能够编写包含键盘输入、计算和显示输出等操作的简单C程序。主要内

2、容C语言的产生与特点 简单C程序的组成C语言应用程序开发的基本步骤1.1 C语言的产生及特点 C语言是为了编写系统程序而在1968年开始研发的计算机高级语言C语言表达能力强,使用灵活,程序结构清晰,紧凑,可移植性好C语言是进一步学习面向对象的程序设计语言 C+和VC 的基础【例例1-11-1】从键盘输入三个整数,输出它们的和从键盘输入三个整数,输出它们的和 main()/*main()/*计算三个整数的和计算三个整数的和 */int x,y,z,sum;int x,y,z,sum;scanf(scanf(d,d,d,d,d,&x,&y,&z);d,&x,&y,&z);sum sumx+y+z;

3、x+y+z;printf(sum printf(sumd dn n,sum);sum);语语句句 函函数数体体 主函数名最简单的最简单的C C程序的组成程序的组成对程序的注释1.2 C语言程序的结构及书写格式 一一.C.C程序的结构程序的结构 main()int x,y,z,sum;scanf(%d,%d,%d,&x,&y,&z);sum=x+y+z;printf(sum=%dn,sum)定义变量x,y,z和sum从键盘输入三个整数赋给变量x,y和z显示变量sum的值计算x+y+z,并将结果赋给变量sum程序说明一般C程序的组成【例例1-21-2】采用模块结构,改写例采用模块结构,改写例1-1

4、1-1的程序。的程序。add(int x,int y,int z)add(int x,int y,int z)return(x+y+z);return(x+y+z);main()main()int x,y,z;int x,y,z;printf(Please Input Three Integers:n);printf(Please Input Three Integers:n);scanf(%d,%d,%d,&x,&y,&z);scanf(%d,%d,%d,&x,&y,&z);printf(sum printf(sum%dn,add(x,y,z);%dn,add(x,y,z);函数add()主

5、函数main()调用函数add()函数函数1 1主函数主函数main()main()函数函数2 2函数函数k k注意:每个C程序必定有一个、而且只能有一个主函数main()。主函数可以调用其它子函数,而子函数不可以调用主函数,子函数彼此之间也可以相互调用。C程序的组成二.C程序的书写格式1.C程序允许一行写一个或多个语句,当一个语句分几行书写时,在换行前应加上“”符,然后从下一行的开头继续。2.习惯上,书写C程序时均使用小写英文字母。3.C程序一般都采用缩进格式的书写方法,不同结构层次的语句,从不同的起始位置开始,同一结构层次中的语句,缩进同样个数的字符位置。4.应当在程序中适当地添加一些注释

6、行。1.3 C程序的编辑、调试和运行编辑源程序 生成目标程序 经编译 经连 接库 修改源程序 函数 生成exe文件 运行 运行时出错编译编译出出错错第第1 1章章 结束结束第 2 章 数据类型、运算符和表达式 学习目标1.掌握基本数据类型的概念和常量表示方法,掌握变量的定义方法,能够根据实际情况选用适当的数据类型2.熟练掌握数值表达式的构造方法,能够利用表达式完成数值计算主要内容C数据类型概述常量和变量算术运算表达式赋值表达式自增、自减表达式2.1 概 述C语言支持的数据类型基本数据类型整型单精度型主要数据类型构造数据类型指针类型实型字符型数组类型结构体类型双精度型基本数据类型说明符整型:in

7、t long字符型:char实型:float double long double2.2 常 量常量在程序运行过程中,其值不能被改 变的量。一.不同数制整型常量的表示例如:12 :十进制数 12 012:八进制数 12(等于十进制数10,用前导符0表示八进制数常量)0 x12:十六进制数 12(等于十进制数 18,用前导符0X或0 x表示十六进制数常量)二.字符常量的表示1.用用括起来的可显示字符括起来的可显示字符,如如 A A、$、3 3 等等(转义字符除外转义字符除外)2.2.用八进制数表示其用八进制数表示其ASCASC代码的字符代码的字符,如如 101101 表表示西文字符示西文字符 A

8、 A、6363 表示数字字符表示数字字符 3 3。3.3.用十六进制数表示其用十六进制数表示其ASCASC代码的字符代码的字符,如如:x41x41 表示西文字符表示西文字符A A、x2Ax2A 表示字符表示字符*。4.4.用用 表示字符表示字符 ,”表示字符表示字符”,表示字符表示字符 。5.5.用双引号括起来的字符序列表示字符串常量,其用双引号括起来的字符序列表示字符串常量,其中最后一个字符是字符串结束符中最后一个字符是字符串结束符 00,不显式,不显式地表示出来。如地表示出来。如:“EnglishEnglish”。【例2-1】常量的例子main()floatr;printf(PleaseI

9、nputRadius:n);scanf(%f,&r);printf(TheCircumferenceofCirle:%fn,2*3.1415926*r);定定义义浮点型浮点型变变量量r r人机人机对话对话,通知用,通知用户户输输入半径的入半径的值值从从键盘输键盘输入半径的入半径的值值,并将并将值赋给变值赋给变量量r r显显示示结结果果常量常量2 2常量常量3.14159263.1415926三.符号常量 可以用可以用#define#define命令定义符号常量,在程序的执命令定义符号常量,在程序的执行过程中不允许改变符号常量的值。行过程中不允许改变符号常量的值。【例2-2】说明符号常量的例子#

10、definePRICE30main()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);通通过过#include#include定定义义符号常符号常量量PRICEPRICE为为3030定定义义二个整型二个整型变变量量numnum和和totaltotal使使变变量量numnum的的值为值为1010执执行运算行运算10301030并把运算的并把运算的结结果果赋赋予予变变量量totaltotal显显示示结结果果2.3 变量的定义和初始化变量:在程序运行时,其值可变的量被称为变量,分为整型变量、实型变量和字符型变量一.C语言中的标识符

11、 C语言把用户给常量、变量、函数、标号和其它对象所起的名字统称为标识符。用户定义的标识符须遵循如下规则:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,标识符的长度不超过32个字符。同时,C语言的关键字和库函数名不能作为标识符。例如,下面的字符序列均为合法的C语言标识符:a,b,word,_file,file2,F_name,f_name注意:C编译程序字母区分大小写,所以上述F_name和 f_name是二个不同的标识符。下面的字符序列为不合法的C语言标识符:2L 违反了标识符第一个字符必须为字母 或下划线的规定。a*违反了标识符只能由字母、数字和下 划线三种字符

12、组成的规定。int 违反了C语言的关键字和库函数名不 能作为标识符的规定。二.变量分类 1.整型变量分类有符号整型说明符有符号整型说明符有符号整型说明符有符号整型说明符无符号整型说明符无符号整型说明符无符号整型说明符无符号整型说明符整整整整型型型型intintintintsignedsignedsignedsigned signed int signed int signed int signed int unsignedunsignedunsignedunsignedunsignedunsignedunsignedunsigned int int int int 长长长长整整整整型型型型lo

13、nglonglonglonglonglonglonglong intintintintsignedsignedsignedsigned longlonglonglongsignedsignedsignedsigned long int long int long int long int unsignedunsignedunsignedunsigned longlonglonglongunsignedunsignedunsignedunsigned long int long int long int long int 有符号整型有符号整型有符号整型有符号整型无符号整型无符号整型无符号整型无符

14、号整型占字节数占字节数占字节数占字节数整整整整型型型型 int int int int-32768 32767-32768 32767-32768 32767-32768 32767 unsigned unsigned unsigned unsigned 0 65535 0 65535 0 65535 0 65535 2 2 2 2字字字字节节节节长长长长整整整整型型型型 long long long long -2 -2 -2 -231313131(2(2(2(231313131-1)-1)-1)-1)unsigned unsigned unsigned unsigned longlongl

15、onglong 04,294,967,295 04,294,967,295 04,294,967,295 04,294,967,2954 4 4 4字字字字节节节节整型变量的值域2.浮点型变量的分类及其值域Long doubleLong double取值取值(绝对值(绝对值)范围范围 占字节数占字节数1010-4931-4931101049324932 单精度单精度型型双精度双精度型型1010-37-3710103838 4 4 float float double double 1010-307-3071010308308 浮点浮点型型说明符说明符8163.字符型变量及其值域说明符说明符说明

16、符说明符取值范围取值范围取值范围取值范围(字符的(字符的(字符的(字符的ASCASC码值)码值)码值)码值)占字节数占字节数占字节数占字节数 char char0 2550 255 1 1在设计程序时,应当根据数据本身的特点和变化范围正确选择变量类型。三.变量的定义和初始化 变量的定义格式:类型说明符 变量名表;intint、unsignedunsigned、longlong、floatfloat、doubledouble、charchar等等变变量名只能由字母量名只能由字母、数字和下划、数字和下划线线三种三种字符字符组组成,且第一成,且第一个字符必个字符必须为须为字母字母或下划或下划线线。例

17、如,语句:inta1,a2,age;floatx,y,z;charch;分别定义了整型变量a1,a2,age,浮点型变量x,y,z和字符型变量ch。变量的初始化:在定义变量的同时对变量预 先设置初值。例如,执行语句:intnum=20;floatpi=3.14;charc1,c2=M;变量num、pi、c2的初值分别为20、3.14和字符M。四.各类数值型数据间的混合运算 高 double float long unsigned 低 int char当各种不同类型的数据混合运算时,其运算结果的类型由上图所示的类型转换原则确定。【例2-3】设程序中定义变量:inti;floatf;doubled

18、;执行运算:i+(f*d)-(f+i)(这里的*表示乘法)下图给出了在运算过程中所发生的数据类型的转换 i+(f*d)-(f+i)double double double double double double double double double2.4 算术运算符和算术运算表达式一.算术运算符算术运算符包括:+(加)-(减)*(乘)/(除)%(求余)操作符操作符%只作用于整数只作用于整数x%yx%y的的值值就是就是 x x除以除以 y y 的余数。的余数。操作符/的两种含义:整数除法(整除)当被除数和除数都是整型数据时,“”运算的结果为整型。例如:5/2的值为2(而不是2.5)实数除法

19、 当被除数和除数中至少有一个是实数型数据时,“”运算的结果为实数型。例如:5.0/2的值为2.5二.算术运算表达式 用算术运算符和括号将运算对象连接起来、并符合C语言语法规则的式子,称为算术运算表达式或算术表达式。例如:设r、x、y是已经定义的数值型变量,则:3.14*r*r、x+2*y-3/z、(x-y)*(x-y/2)均是合法的算术运算表达式,单独的r、x、y也是合法的算术运算表达式。实际上,单独的常量或变量是最简单的算术运算表达式。注意:算术运算表达式中的分数线须用中的分数线须用 /表示表示 例如:例如:2+32+3i i k kj j 表示为表示为C C语言表达式就是:语言表达式就是:

20、(2+3*i)/(k*j)(2+3*i)/(k*j)或或 (2+3*i)/k/j(2+3*i)/k/jC程序中,称表达式的运算结果为表达式的值。C语言规定,在表达式求值时,须按运算符优先级的高低次序执行。对算术运算而言,必须遵循先括号内后括号外,先乘、除及求余运算,后加减的运算优先级规则。C语言规定了运算符二种不同的结合方向:左结合:当参于运算的数据两侧的运算符优先级 相同时,运算顺序为自左至右。C语言规定算术运算符遵循左结合的规则。例如,计算算术运算表达式 a+b-c 时,运算符“+”和“”具有相同的优先级,所以先执行 a+b,其结果再和c相减。右结合:当参于运算的数据两侧的运算符优先级 相

21、同时,运算顺序为自右向左。C语言提供的运算符中有少量运算符遵循右结合的规则。教材的附录部分列出了C语言中所有运算符以及它 们的优先级和结合性。2.5 赋值运算符与赋值运算表达式一.赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。例如:执行程序段 int a;a=3;a=a-5;当执行语句“a=3;”就完成一次赋值运算,把赋 值运算符右边的值3赋给赋值运算符左边的变量a,赋值后,a的值为3。再执行语句“a=a-5;”,赋值 运算符右边的表达式a-5的运算结果为-2,将-2赋 给a。最后,变量a的值变为-2。复合的赋值运算符复合的赋值运算符的格式:算术运算符=所以,+=

22、、-=、*=、/=、%=都是复合的赋值运算符。二.赋值运算表达式 将一个变量通过赋值运算符或复合的赋值运算符与一个表达式连接而成的式子称为赋值运算表达式。赋值运算表达式的格式为:变量名=表达式 或 变量名 复合的赋值运算符 表达式 例如:x=1.414,m1=E,s=3.14159*r*r 或 a+=5,x/=a+1 上述各例都是合法的赋值运算表达式。赋值运算表达式的作用是把赋值运算符右边表达式的值赋给赋值运算符左边的变量。当算术运算符和赋值运算符同时出现在一个表达式中时,算术运算符的优先级高于赋值运算符。C语言允许赋值运算表达式中的表达式部分还是一个赋值表达式,这样就构成了多重赋值。多重赋值

23、表达式中,赋值运算符遵循右结合的法则,即:自右向左的运算顺序。例如:多重赋值语句 a=b=c=x+8;在执行时等价于依次执行三个语句:c=x+8;b=c;a=b;将一个变量通过复合的赋值运算符与一个表达式连接而成的式子同样称为赋值运算表达式。例如:a+=5,x/=a+1 下面的例子说明了复合的赋值运算符的运算规则。表达式 a+=5 等价于 a=a+5表达式 a*=4-b 等价于 a=a*(4-b)表达式 a%=b-1 等价于 a=a%(b-1)注意:复合的赋值运算符右边的表达式是作为一个整体参与其左边算术运算符所规定的运算的。【例2-4】赋值运算表达式举例1)y=3*(x-1);/*将3*(x

24、-1)的结果 赋值给变量y。*/2)a=(b=4)+(c=6);/*这里的赋值运算表 达式(b=4)、(c=6)参于算术运算,C 言规定,将赋值运算符右边表达式的值 作为赋值运算表达式的值。所以,赋 值运算表达式(b=4)的值为4,(c=6)的值为6,最后将它们的和赋值给变量a,由于算术运算符的优先级高于赋值运 算符,所以表达式中的括号是必须的。*/3 3)a+=a*=a+2a+=a*=a+2;/*/*这里的语句等价于:这里的语句等价于:a=a*(a+2);a=a*(a+2);a=a+a;*/a=a+a;*/三三.字符型与整型的关系字符型与整型的关系1.字符型数据的值在内存表现为它们的字符型数

25、据的值在内存表现为它们的ASCASC代码代码值(值(0-2550-255之间的一个整数之间的一个整数)2.2.字符常量以其字符常量以其ASCASC代码值参与整数运算。代码值参与整数运算。如:如:A A+2+2 的值为的值为 6767字符字符A A的的ASCASC码值码值为为6565【例2-5】字符型变量参与算术运算 main()int a;char i;a=B-1;i=a+10;printf(a:%d,a:%cn,a,a);printf(i:%d,i:%cn,i,i);以字符格式输出变量a的值结果为字符A以整型格式输出变量a的值结果为67【例2-6】大小写字母的转换 main()char c1

26、=a,c2=B;c1=c1-32;c2=c2+32;printf(c1:%c,c2%c,c1,c2);大小写英文字母的ASC码值相差322.6 自增、自减运算符+、-功能:(设i为整型变量)+i:在使用i之前,先执行i+=1,使i的值加1。-i:在使用i之前,先执行i-=1,使i的值减1。i+:在使用i之后,执行i+=1,使i的值加1。i-:在使用i之后,执行i-=1,使i的值减1。上述“使用”指的是i加1或减1前后的其他操作,如赋值、运算、显示等。若不存在其它操作,则i+与+i一样,执行i+=1,使i的值加1;i-与-i一样,执行i-=1,使i的值减1。【例2-7】自加、自减运算符的应用。m

27、ain()int i=10,j;float pi=3.14,pa;j=i+;pa=+pi;printf(j=%d,pa=%fn,j,pa);printf(i=%d,pi=%fn,i+,-pi);先将i的值赋给变量j再执行i+=1;先执行pi+=1;再将pi的值赋给变量pa先将i的值输出再执行i+=1;先执行pi-=1;再将pi的值输出2.7 位运算符 位运算以字节(byte)中的每一个二进位(bit)为运算对象,最终的运算结果是整型数据。位运算分为按位逻辑运算和移位运算。一.按位逻辑运算符 按位逻辑运算符包括:按位逻辑与运算符:“&”按位逻辑或运算符:“|”按位逻辑非运算符:“”按位逻辑异或运

28、算符:“”运算法则设用x、y表示字节中的二进位,取值为0或1。按位逻辑运算符的运算法则为:按位逻辑与运算:x&y的结果为1,当且仅当x、y均为1,否则x&y的结果为0。按位逻辑或运算:x|y的结果为0,当且仅当x、y均为0,否则x|y的结果为1。按位逻辑异或运算:xy的结果为1,当且仅当x、y的值不相同,否则xy的结果为0。按位逻辑非运算:当x=1时,x=0,而当x=0时,x=1。位运算表达式的格式:整型变量名 运算符(&、|、)整型变量名或 整型变量名【例2-8】位运算符的应用设有:int a=55,b=36;计算:a&b、a|b、ab及a的结果。假定每个整型变量占二个字节(16bit),则

29、在内存中的二进 制数a、b为:a:00000000 00110111 b:00000000 00100100 按上述按位运算的法则,列出下述算式:a&b:a|b:00000000 00110111 00000000 00110111&00000000 00100100|00000000 00100100 00000000 00100100 00000000 00110111 ab:00000000 00110111 00000000 00100100 a:00000000 00110111 00000000 00100100 a:11111111 11001000 00000000 00010

30、011结果:a&b=24,a|b=37 ab=13,a=ffc8(用十六进制表示)二.移位运算符 C语言提供的移位运算实现将整数数据按二进位右移或左移的功能。向右移位运算符:“”,向左移位运算符:“2、(a-b)2:00000000 010110左边补0 结果:00000000 00010110 a-b:00000000 00010011(a-b)3:00000 00010011右边补0结果:00000000 100110002.8 其他运算符和表达式一.强制类型转换运算符 C语言提供的强制类型转换运算符可以将一个表达式转换成指定的数据类型。格式:(类型说明符)(表达式)例如:(double)

31、(x+y)/*将表达式x+y的结果转换 成双精度型 */(int)a /*将变量a的值转换成int类型*/【例2-10】强制类型转换运算符的使用 main()float x=3.6,y=6.6;printf(x+y=%fn,x+y);printf(x+y=%fn,(int)x+(int)y);将x的值强制转换成整型值3将y的值强制转换成整型值6二.逗号运算符和逗号表达式 C语言通过逗号运算符“,”将两个以上的表达式连接起来,组成逗号表达式。逗号表达式的一般格式:表达式1,表达式2,表达式k 逗号表达式的运算:依次求表达式1、表达式2、表达式k 的值,并以最后一个表达式k的值作为整个 逗号表达式

32、的值。例如,语句:x=(a=3,6*3);等价于:a=3;x=6*3;x=6*3;将表达式6*3的结果作为整个逗号表达式的值第2章结束第 3 章C程序中的输入、输出学习目标 对C语言的输入、输出有一个初步的了解,学会使用scanf()、printf()函数实现整型、浮点型和字符型数据的输入、输出。主要内容 C语言的输入、输出 printf()函数 scanf()函数 getchar()函数和putchar()函数3.1 概述 C语言中没有输入、输出语句,通过调用库函数中的输入、输出函数 printf()、scanf()、getchar()和putchar()实现输入、输出。在使用输入、输出函数

33、时,应当在源程序的开始处使用#include 命令将输入、输出函数的头文件包含进来,以便在编译时实现连接。一.格式输出函数 printf()函数功能从指定的输出设备输出数据,默认的输出设备为显示器。使用格式printf(格式控制,输出表列)由格式控制格式控制符符%和格式和格式字符字符实现实现表达式表达式3.2 格式输入、输出函数scanf()和printf()格式控制的内容这部分是用双引号括起来的字符串,其中包含这部分是用双引号括起来的字符串,其中包含两种信息:两种信息:格式说明:格式说明:由由%和格式字符组成。如和格式字符组成。如%d%d、%f%f、%f%f等,它们的作用是将待输出的等,它们

34、的作用是将待输出的 数据按指定的格式输出。数据按指定的格式输出。普通字符:普通字符:即需要按原样输出的字符。即需要按原样输出的字符。例如,语句:例如,语句:printf(TotalNumberis%d,printf(TotalNumberis%d,Priceis%fn,total,price)Priceis%fn,total,price);中的中的 TotalNumberisTotalNumberis、PriceisPriceis输出表列部分:这部分是需要输出的数据值,通常是 表达式,如上例中的total、price。常用的printf()格式字符 格式字符格式字符说说 明明c(*)c(*)以

35、字符形式输出,只输出一个字符以字符形式输出,只输出一个字符d(*)d(*)以带符号的十进制形式输出整数(正数不输出符号)以带符号的十进制形式输出整数(正数不输出符号)e e或或,E,E以以指数形式指数形式输出实数,数字部分小数位数为输出实数,数字部分小数位数为6 6位位f(*)f(*)以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6 6位小数位小数ll用于用于长整型数据长整型数据,可加在格式符,可加在格式符d d,o o,x x,u u前面前面如如 2.5E-32.5E-3相相当于当于 2.5102.510-3-3如如%ld,%lo,%lx%ld,%lo,%lx等等接

36、上页接上页格式字符格式字符说说 明明oo以以八进制无符号形式八进制无符号形式输出整数(不输出前导符输出整数(不输出前导符0 0)s(*)s(*)输出字符串输出字符串uu以无符号十进制形式输出整数以无符号十进制形式输出整数x x或或XX以以十六进制无符号形式十六进制无符号形式输出整数(不输出前导符输出整数(不输出前导符0 x0 x),),用用x x则输出十六进制数的则输出十六进制数的afaf以小数形式,用以小数形式,用X X时,则用时,则用大写字母输出大写字母输出【例例3-13-1】输出格式控制符的应用输出格式控制符的应用 main()main()int x=35;int x=35;float

37、y=123.456;float y=123.456;char ch=A;char ch=A;printf(x=%dn,x);printf(x=%dn,x);printf(y=%fn,y);printf(y=%fn,y);printf(y=%10.2fn,y);printf(y=%10.2fn,y);printf(y=%-10.2fn,y);printf(y=%-10.2fn,y);printf(ch=%c n,ch);printf(ch=%c n,ch);printf(String:%sn,Shanghai);printf(String:%sn,Shanghai);以整数格式以整数格式输输出表

38、达式出表达式x x的的值值nn为转义为转义字字符,符,输输出出时时将光将光标标移到移到下一行的开下一行的开始始处处按原按原样输样输出出字符串字符串StringString%-m.nf%-m.nf与与%m.n%m.n相似,只是在相似,只是在其右其右边边以空格以空格补补足不足部分。足不足部分。%m.nf%m.nf表示以小数形式表示以小数形式输输出出,输输出出结结果共占果共占mm位,其中小数部分位,其中小数部分占占n n位。如果位。如果输输出出结结果不足果不足mm个个字符,字符,则则在其左在其左边边以空格以空格补补足。足。格式转义字符 字符形式字符形式 功功能能n(*)n(*)换行换行t(*)t(*

39、)横向跳格(即跳到下一个输出区)横向跳格(即跳到下一个输出区)vv竖向跳格竖向跳格bb退格退格 rr回车回车 ”(*)(*)双引号字符双引号字符(*)(*)反斜杠字符反斜杠字符“”(*)(*)单引号字符单引号字符ddd1ddd1到到3 3位位8 8进制数所代表的字符进制数所代表的字符xhh1xhh1到到2 2位位1616进制数所代表的字符进制数所代表的字符 【例3-2】转义字符的应用main()printf(ChinesetEnglishn);printf(Welcome,friends!n);printf(101,x41n);转义转义字符字符tt使字符串使字符串EnglishEnglish“

40、输输出到第出到第2 2个个输输出区出区 转义转义字符字符”用以用以输输出出双引号字符。双引号字符。101101以八以八进进制形式制形式给给出大写字母出大写字母A A的的ASCASC码值码值6565。x41x41以十六以十六进进制形式制形式给给出大写字母出大写字母A A的的ASCASC码值码值6565。二.格式输入函数scanf()功能从键盘输入数据,并存入相应变量 的存储单元。使用格式scanf(格式控制,地址表)与与printf()printf()函数的格式函数的格式控制控制类类似,以似,以%d%d%f,%c,%s%f,%c,%s为为最常用最常用由取地址运算符由取地址运算符“&”&”取出取出

41、变变量的存量的存储储单单元的起始地址元的起始地址 格式字符格式字符 说说 明明 c c 用以输入单个字符用以输入单个字符 d d 用以输入有符号的十进制整数用以输入有符号的十进制整数 f f 用以输入实数,可以用小数形式或指数形式输入用以输入实数,可以用小数形式或指数形式输入 L L 用以输入长整型数据以及用以输入长整型数据以及doubledouble型数据型数据 o o 用以输入无符号的八进制整数用以输入无符号的八进制整数 s s 用以输入字符串,将字符串送到一个字符数组中,用以输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符在输入时以非空白字符开始,以第一

42、个空白字符 结束。字符串以串结束标志结束。字符串以串结束标志 00 作为其最后一个字作为其最后一个字符符 u u 用以输入无符号的十进制整数用以输入无符号的十进制整数 x x或或X X 用来输入无符号的十六进制整数(大小写作用相同)用来输入无符号的十六进制整数(大小写作用相同)*表示本输入项在读入后不赋给相应的变量表示本输入项在读入后不赋给相应的变量 域宽域宽 指定输入数据所占宽度(列数),域宽应为正整数指定输入数据所占宽度(列数),域宽应为正整数常用的常用的scanf()scanf()格式字符表格式字符表【例3-3】输入格式控制符的应用 main()int a,b;float c,d;cha

43、r e;scanf(%d%d,&a,&b);scanf(%f,%f,&c,&d);scanf(%c,&e);printf(%d+%d=%dn,a,b,a+b);printf(%f-%f=%fn,c,d,c-d);printf(%cn,e);当二个当二个%d%d之之间间没有分隔符没有分隔符时时,相相应应的二个的二个输输入数据之入数据之间间也也必必须须用空格分隔用空格分隔当二个当二个%f%f之之间间用逗号分隔用逗号分隔时时,相,相应应的二个的二个输输入数据之入数据之间间也必也必须须用逗号用逗号分隔分隔3.3 3.3 字符输入、输出函数字符输入、输出函数getchar()getchar()和和put

44、char()putchar()一.字符输出函数putchar()putchar()函数用以输出字符变量的值。调用putchar()函数的一般格式:putchar(整型表达式);其中,“整型表达式”的值应当在字符ASC码值的范围内。通常,putchar()的参数是字符型变量、字符常量,也可以是整型变量、整型常量。【例例3-43-4】字符输出函数字符输出函数 putchar()putchar()的应用的应用#include#include main()main()char a=C;char a=C;int i=97;int i=97;putchar(a);putchar(a);putchar(b)

45、;putchar(b);putchar(t);putchar(t);将将变变量或表达式量或表达式的的值值以字符格以字符格式式输输出出使用使用putchar()putchar()函数,必函数,必须须用命令用命令“#include”#include”将将标标准准输输入入输输出函数出函数的的头头文件文件“stdio.h”stdio.h”包含到用包含到用户户的源文件中的源文件中 二.getchar()函数 功能:getchar()函数用以从键盘上输 入一个字符。调用getchar()函数的一般格式:getchar()【例3-5】字符输入函数 getchar()的使用#include main()cha

46、r ch;ch=getchar();putchar(ch);putchar(getchar();由由getchar()getchar()函数从函数从键盘输键盘输入入一个字符,并立即由一个字符,并立即由putchar()putchar()函数将其函数将其输输出出使用使用getchar()getchar()函数,必函数,必须须用命令用命令“#include#include”将将标标准准输输入入输输出函数出函数的的头头文件文件“stdio.hstdio.h”包含到用包含到用户户的源文件中的源文件中 第3章结束第4章 C程序的控制结构 学习目标1.熟练掌握 if 语句,掌握 switch 语句,会利用

47、这两种语句进行条件分支结构的程序设计。2.熟练掌握 for 语句、while 语句和 dowhile 语句,会利用这三种语句进行循环结构的程序设计。3.掌握 break 语句和 continue 语句与上述语句配合使用的方法。主要内容程序算法的概念顺序结构分支结构循环结构4.1 程序算法简介计算机科学家沃思提出公式:数据结构+算法=程序 数据结构对数据的描述。如前面所介绍的各 种数据类型就是最简单的数据结构。算法对操作的描述,是为解决一个问题而采取 的方法和步骤。通常用流程图表示算法。一.算法的概念 计算1+2+3+4+100可以二种不同的算法:算法一:先作1+2,再加3,再加4,一直加到10

48、0,最后得到 结果:5050。算法二:利用等差数列求和公式:n(n+1)21+2+3+n=比较算法一和算法二:算法二不具有普遍性,许多级数求和问题是不能简单地用公 式表示的,如:cos1+cos2+cos3+cosn 算法一所反复实施的是二个数的加法运算:1、12、(1+2)+3、(1+2+3)+4、(1+2+3+99)+100这种看似枯燥、单一,反复实施的运算利用C语言提供的选择结构和循环结构却是很容易实现的,而且这一算法适用于不同的级数求和问题。由于计算机具有极高的运算速度,这样的程序结构恰好发挥了计算机的特长。结论:对计算机而言,算法一优于算法二。选择一个好的算法是设计出高质量程序的前提

49、。【例4-1】为计算1+2+3+n设计一个算法,其中 n的值由键盘输入步骤1:从键盘输入n的值步骤2:0 sum(使变量sum具有初值0)步骤3:1 i(使变量i具有初值1)步骤4:sum+i sum(用sum+i的值取代sum原 来的值)步骤5:i+1 i(使变量i的值增1)步骤6:若in,再返回到步骤4,否则结束。说明:算法中,步骤4到步骤6组成一个循环,最后的计算结果存放在变量sum中。上述算法中的每一个步骤都可以用C语言来描述,并最终成为一个完整的C程序。二.算法的表示 算法用流程图来表示。所谓流程图就是用一些图框表示各种操作,形象直观,易于理解。常用的流程图符号:或开始、开始、结结束

50、框束框输输入、入、输输出框出框处处理框理框判断框判断框流程流程线线 按算法一计算123.n 的流程图,其中n的值由键盘输入。开始输入n0sum1isumifaci+1iin?y输出sumn结束返回三.算法的特性1.有穷性:一个算法所包含的操作步骤必须是有限的。2.确定性:指算法中的每一个步骤的含义必须是明确 的,不能有二义性。3.由零个或多个输入:如果算法中的n是已知的数据,而不是来自外部,可以没有输入。4.有一个或多个输出:通过输出了解算法的结果。5.有效性:算法中的每一个步骤都应当是可以被执行 的,并能得到确定的结果。4.2 顺序结构 语句1语句2 顺序结构:顺序结构是最简单的程序结构,在

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服