收藏 分享(赏)

第一章程序设计基本概念0330.ppt

上传人:gnk289057 文档编号:9235253 上传时间:2019-07-30 格式:PPT 页数:120 大小:237KB
下载 相关 举报
第一章程序设计基本概念0330.ppt_第1页
第1页 / 共120页
第一章程序设计基本概念0330.ppt_第2页
第2页 / 共120页
第一章程序设计基本概念0330.ppt_第3页
第3页 / 共120页
第一章程序设计基本概念0330.ppt_第4页
第4页 / 共120页
第一章程序设计基本概念0330.ppt_第5页
第5页 / 共120页
点击查看更多>>
资源描述

1、1,第一章程序设计基本概念,1.1程序和程序设计 知识点1:C语言概述 C语言是目前广泛流行的一种计算机高级语言,所谓“高级”是指它的代码形式接近英语国家的自然语言和数学语言,易于被人们学习和掌握。,2,典型题 1-1以下叙述中正确的是 A.C语言比其他语言高级 B.C语言可以不用编译就能被计算机识别执行 C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D.C语言出现得最晚,具有其他语言的一切优点,3,知识点2:了解C源程序的编译、连接、执行过程。 (1)用C语言编写的代码程序称为源程序,它以ASCII代码形式存放在一个文本文件中,称为C的源程序文件,通常文件名的后缀用“.C”

2、来表示,它不是一个可执行的机器指令文件,因此不可能用执行命令直接执行。 (2)用户必须调用C编译程序对C源程序进行编译处理,把C源程序中的语句“翻译”成二进制的机器指令,自动形成一个后缀名为“.OBJ”的二进制文件,通常称此文件为目标文件。,4,(3)形成的目标文件虽是二进制文件,但仍不能运行,因为在人们编写的C程序中包含有头文件,调用了库函数等,这些都存放在由C编译程序提供的“库”中,因此必须调用连接程序把这些 “库” 连接到目标文件中,连接之后,将自动形成一个后缀名为“.EXE”的可执行文件。 (4)一个C程序经过以上编译、连接步骤之后才能形成一个可执行文件,进行运算输出运行结果。,5,典

3、型题 1-2以下叙述中正确的是 A. C语言的源程序不必通过编译就可直接运行 B. C语言中的每条执行语句最终都将被转换成二进制的机器指令 C. C源程序经编译形成的二进制代码可以直接运行 D. C语言中的函数不可以单独进行编译,6,典型题 1-3用C语言编写的代码程序 A.可立即执行 B.是一个源程序 C.经过编译即可执行 D.经过编译解释才能执行,7,知识点3:简单程序设计包含几个部分 1.确定数据结构。 2.确定算法。 3.编码。即编程。 4.在计算机上调试程序。 5.整理并写出文档资料。,8,1.2算法 知识点4:算法的概念与特性 概念:为解决某个特定问题而采取的确定且有限的步骤。 特

4、性:1.可行性;解决问题的步骤必定是可行的。 2.有穷性;解决了问题,程序就应当结束。 3.有零个或多个输入;在程序设计中,有些程序并不要求用户输入任何数据。 main() int i;for(i=1;i=100;i+)if(i%2=0)printf(“%dn“,i);,9,4.有一个或多个输出。 5.确定性。算法中每条指令必须有确切含义。 典型题 1-4一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 A.有零个或多个输入 B.有零个或多个输出 C.有穷性 D.可行性,10,1.3结构化程序设计和模块化结构 知识点5:了解结构化程序设计的3种基本结构及其一般、N-S流

5、程图。 1.顺序结构。,11,2.选择结构。,12,3.循环结构。,13,由以上3种基本结构组成的程序可以完成任何复杂的任务。 典型题 1-5C语言中用于结构化程序设计的3种基本结构是 A.顺序结构、选择结构、循环结构 B.if、switch、break C.for、while、do-while D.if、for、continue,14,典型题 1-6结构化程序由3种基本结构组成,3种基本结构组成的算法 A.可以完成任何复杂的任务 B.只能完成部分复杂的任务 C.只能完成符合结构化的任务 D.只能完成一些简单的任务,15,模块化结构 把一个复杂的大任务分解为若干个子任务,每个子任务又分成很多个

6、小子任务,每个小子任务只完成一项简单的功能。在程序设计时,用一个个小模块来实现这些功能。这样的程序设计方法为“模块化”的方法,由一个个功能模块构成的程序结构为模块化结构。,16,17,总结 知识点1:C语言概述。 知识点2:了解C源程序的编译、连接、执行过程。 知识点3:简单程序设计包含几个部分。 知识点4:算法的概念与特性。 知识点5:了解结构化程序设计的3种基本结构及其一般、N-S流程图。,18,第二章C程序设计的初步知识,2.1简单C语言程序的构成和格式 知识点1:了解C程序的组成特点。 1.在一个C程序中必须有一个main函数,且仅有一个main函数。 2.一个C程序的执行总是从mai

7、n函数开始,与main函数所在位置无关。 3.构成C程序的基本单位是函数,但C提供了大量的库函数供用户调用,它们有特定的函数名,不能由用户命名。,19,4.C语句中使用花括号“”和“”作为函数体的定界符,除此之外,花括号还可以作为复合语句的定界符;当给数组元素赋初值时,也用花括号作为初值的定界符。 5.C程序由语句构成,C中规定,用分号作为一个语句的结束标志,分号是语句的一部分而不是语句之间的分隔符。 6.C中规定注释部分可以出现在程序中的任意合适地方,由/*开始,*/结束。两者必须成对出现。,20,例:输入矩形的两条边长,求矩形面积。 #include “stdio.h” main() fl

8、oat a,b,area;a=1.2; /*给矩形的两条边赋值*/b=3.6;area=a*b; /*求矩形面积放入变量area*/printf(“a=%f,b=%f,area=%fn”,a,b,area); ,21,典型题 2-1在一个C程序中 A.main函数必须出现在所有函数之前 B.main函数可以在任何地方出现 C.main函数必须出现在所有函数之后 D.main函数必须出现在固定位置,22,2-2以下叙述正确的是 A.C程序中注释部分可以出现在程序的任意合适的地方 B.花括号“”和“”只能作为函数体的定界符 C.构成C程序的基本单位是函数,所有函数名都可以由用户命名 D.分号是C语

9、句之间的分隔符,不是语句的一部分,23,2.2常量、变量和标识符 知识点2:了解C程序中关于标识符的语法规定,了解“关键字”、“预定义标识符”和“用户标识符”的含义和作用。 1.标识符可用作变量名、符号名、函数名、数组名和文件名等,由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。 合法标识符:area、_ini、s1234、a_array 非法标识符:456p、cade-y、w.w、a&b,24,2.C语言标识符分为三类:关键字(见附录1)、预定义标识符(库函数、预编译处理命令)、用户标识符。 C中规定,用户定义的标识符不可与C语言的关键字相同,可以与C语言中的预定义标识符相同。假

10、如用户把预定义标识符作为用户标识符来使用,这时这些标识符已失去了C语言原先赋予的含义。例如,把输出函数printf定义为变量名时,就不能在同一程序中调用printf函数进行输出操作,因此最好不要重名。,25,典型题 2-3以下选项中合法的用户标识符是 A.long B._2test C.3Dmax D.A.dat,26,2-4下列选项中,不能用作标识符的是 A._1234_ B._1_2 C.int_2_ D.2_int_,27,2-5以下不能定义为用户标识符的是 A.scanf B.Void C._3com_ D.int,28,2-6以下4组用户定义标识符中,全部合法的一组是 A._main

11、,include,sin B.If,-max,turbo C.txt,REAL,3COM D.int,k_2,_001,29,2-7下列关于C语言用户标识符的叙述中正确的是 A.用户标识符中可以出现下划线和中划线 B.用户标识符中不可以出现中划线,但可以出现下划线 C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头,30,2-8以下叙述正确的是 A.可以把define和if定义为用户标识符 B.可以把define定义为用户标识符,但不能把if定义为用户标识符 C.可以把if定义用户标识符,但不能把define定义为

12、用户标识符 D. define和if都不能定义为用户标识符,31,知识点3:常量。 1.常量:在程序运行过程中,其值不能改变的量称为常量。 2.常量的组成:整型常量(即整数,如:10, -10,0等),实型常量(即小数,如10.1, -10.1,0.0等),字符型常量(如,A,a等)。 3.符号常量:用一个标识符代表一个常量的,称为符号常量。符号常量名习惯用大写。尽量做到“见名知意”。,32,例:计算圆面积。#include “stdio.h”#define PI 3.14159main() float r,s;r=5.0;s=PI*r*r;printf(“s=%fn”,s);程序运行结果为:

13、s=78.539749,33,例:#include “stdio.h”#define PRICE 30main() int num,total;num=10;total=num * PRICE ;printf(“total=%dn”, total);,34,知识点4:变量。 1.变量:其值可以改变的量,称为变量。 2.C语言规定,程序中所要用到的变量应该先定义再使用。根据定义系统为它分配相应数量的内存空间。如:int a,b;float e,g;char c;,35,2.3整型数据 知识点5:C语言中,整型常量可以用十进制、八进制和十六进制形式来表示。 1.十进制:常用的整数,如0,32767

14、,-32768等。 2.八进制:数字0开头(不是字母o!),由数字07组成。如:010,017等。注:018为非法八进制。 3.十六进制:0x开头(或大写X),由数字09和字母a,b,c,d,e,f(A,B,C,D,E,F)组成。如: 0x10,0xF等。,36,2-9 以下选项中可作为C语言合法整数的是() A.10110B B.0386 C.0xffa D.x2a2,37,2-10 以下两组整数中,不正确的八进制或十六进制常量是()() 1. A.0x16 B.016C.-16 D. 0x89f 2. A.oxcc B.017C. 0X123 D. 0xFF,38,知识点6:整型数据的分类

15、:,39,2-11:以下选项不属于C语言的整型数据类型的是() A. signed short int B. unsigned long int C. unsigned int D. long short,40,长整型常量表示,在一个整型常量后面加一个字后缀l(L的小写)或L。例如123L,345l等。 long a; a=123l或a=123L; 无符号整数在数字的末尾应该加上字母后缀u或U,若是长整型无符号整数常量,应该加后缀lu或LU; 无符号常量不能表示成小于0的负数,例如: -200U是非法。,41,整数在内存中的存储形式 正整数 C语言中,当用两个字节存放一个整数时,例如整数5在内

16、存中的二进制码为: 0000000000000101,对于正整数的这种存储形式称为用“原码形式”存放。 整数10在内存中的二进制码为: 0000000000001010,42,负整数 负整数在内存中存放形式转换过程:绝对值取返加1。 例如-5在内存中的二进制码为: 取绝对值:5,内存中的二进制码为0000000000000101 取返1111111111111010 加1,1111111111111011(-5表示),43,-10 取绝对值:10,内存中的二进制码为0000000000001010 取返1111111111110101 加1,1111111111110110(-10表示),44

17、,2.4实型数据 知识点7:正确书写实型常量,包括指数形式表示的实数,定义变量及赋初值。 实型常量(又称实数) 1.小数形式 由数字和小数点组成(必须要有小数点) 如:0.123,.123,123.,0.0等都是合法的实型常量。,45,2.指数形式 类似数学中指数形式。如2.3026可以表示为0.23026101,2.3026100,23.02610-1。在C语言中,以“e”或“E”后跟一个整数来表示以10为底的幂数。 2.3026可以表示为0.23026E1,2.3026e0, 23.026e-1。 C语言语法规定,字母e(或E)之前必须要有数字,之后的指数必须为整数。 非法表示:e3,.5

18、e3.6,.e3,e 注:字母e或E前后以及数字之间没有空格。,46,典型题 2-12以下选项中合法的实型常量是 A. 5E2.0 B. E-3 C. .2E0 D. 1.3E,47,2-17以下符合C语言语法的实型常量是 A. 1.2E0.5 B. 3.15159E C. .5E-3 D. E15,48,实型变量 C语言中实型变量分为单精度和双精度两类,用float和double定义。 单精度定义形式:float a,b,c; 7个有效位 a=2.55555568,有效位2.555556。 双精度定义形式:double x,y,z;15-16有效位,49,2.5字符型数据 知识点8:正确书写

19、字符常量,包括各种转义字符。 2.5.1字符常量 C语言中,一个字符常量代表ASCII字符集中的一个字符,用单引号把一个括起来作为字符常量。 例如,a,A,C,t,!,?。,50,说明: 1.单引号中的大写字母和小写字母代表不同的字符常量,例B,b。 2.单引号中的空格符也是一个字符常量。但不能写成(两个连续的单引号)。 3.字符常量只能包含一个字符。abc非法。 4.字符只能用单引号括起来,不能用双引号括起来。例,“a”不是字符常量,而是一个字符串。,51,字符常量在内存占一个字节,存放的是字符的ASCII代码值。C语言规定,所有字符常量作为整型量来处理,其对应的整数值就是ASCII字符集中

20、该字符的序号(即ASCII代码值)。 例:A的值为65(八进制数101),a的值为97(八进制数141),数字0的值为48(八进制数60),空格字符的值为32(八进制数40)。,52,2.5.2转义字符常量 转义字符又称反斜线字符,以一个反斜线开头,后跟下特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须括在一对单引号内。 例如:n代表换行符,代表一个单引号。 1. n,101,141只代表一个字符。 2.反斜线后的八进制数可以不用0开头。如101代表字符A。 3.反斜线后的十六进制数只可由x开头。如x41代表字符A。,53,2.5.3字符变量 字符变量用关键字char进行定义

21、;定义时同时可以赋初值。 例如:char ch1=*,ch2=A,ch3; main( ) char c1,c2;c1=97; c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,54,main() char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);,55,2.6算术表达式 知识点9:掌握算术运算符和等号运算符的运算规则、优先级,正确书写算术表达式及类型转换规则。 算术运算符:+、-、*、/、%(求余数)。除求余运算符外(只能是整型),运算对象可以是整型,也可以是实型。 例:

22、1+2,1.2*3.2 5%3结果为2,17%-3结果为2 -19%4结果为-3。在TurboC中符号与被除数相同。,56,说明: 1.双目运算符两边运算数的类型必须一致,所得结果与运算数的类型一致。例1.0/2.0结果为0.5;1/2结果为0。 2.如果双目运算符两边运算数的类型不一致,系统将自动转换类型,使两边一致,再进行运算。,57,双目算术运算中两边运算量类型转换规律,58,算术运算符优先级 算术运算符和圆括号的优先级高低次序如下: ()、+、-、*、/、%、+、-单目 双目同级 同级 同级 高 低,59,强制类型转换表达式 格式 (类型名)(表达式) 其中(类型名)称为强制类型转换运

23、算符,将一个表达式的值转换成指定类型。 例如:(int)3.234把3.234转换成整数3。 表达式(double)(10%3)所得结果1转换成双精度数1.0。,60,算术运算符和圆括号的结合性 单目运算符“+”和“-”结合性是从右到左,其余运算符结合性是从左到右。 例:5*-2结果-10,单目运算符“-”优先级高于乘号。 (5+1)/2结果是3,圆括号高于除号。 5+1/2结果是5,除号优于加号。,61,2.7赋值表达式 知识点10:掌握赋值表达式,特别是要掌握在+、-、逗号表达式运算中,算术表达的值与各变量值的区别。 2.7.1赋值运算符和赋值表达式 C语言中,“=”符号称为赋值运算符。

24、格式:变量名=表达式 等号左边必须是变量名,右边是合法表达式。 例:a=10 /*把常量10赋给变量a*/ b=a/*把a中的值赋给变量b,a中值不变*/。,62,n=n+1,取变量n中的值加1后再放入到变量n中,即变量n中的值增1。 如n=2;n=n+1;b=n+3;b的结果值是6。 2.7.2复合的赋值表达式 赋值运算符之前加上其它运算符可以构成复合赋值运算符。如+=,-=,*=,%=。 n+=1等价于n=n+1 n*=m+3等价于n=n*(m+3),63,例:已有变量a,其值为9,计算表达式 1. a*=2+3 a=a*(2+3) a=9*5=45 2. a+=a-=a*=a a+=a-

25、=a=a*a a+=a-=a=9*9=81,a+=a-=81 a+=a=a-81,a+=a=81-81=0 a+=a=0,a+=0 a=a+0,a=0+0=0,64,3.a%=(n%=2),n=5 a%=(n=n%2),a%=(n=5%2) a%=(n=1),a%=1 a=a%1=9%1=0 a=0,65,2.8自加、自减运算符和逗号运算符 2.8.1自加运算符(+)和自减运算符(-) 1.“+”和“-”运算结果使运算对象值增1或减1。 如i+,相当于i=i+1;i-,相当于i=i-1。 2. “+”和“-”运算对象可以整型变量、实型变量、字符型变量,不能是常量和表达式,因此+3,(i+j)+

26、非法。,66,3. “+i”,“-i”,“i+”,“i-”都是合法表达式,对于变量本身来说都是自增1或自减1,但作为表达式却有不同的值。 区别:先给i=5. “+i”,“-i”先“计算后赋值”,即先进行i增1运算,后赋给表达值,即i为6,表达式值为6。 而“i+”,“i-”先“赋值后计算”,即先将i值赋给表达式,后进行i增1运算,即i为6,表达式值为5。,67,例:有以下程序 main() int m=3,n=4,x;x=m+;printf(“%dn”,x); 若把x=m+换成x=+m观察其输出结果。,68,2.8.2逗号运算符和逗号表达式 “,”是C语言提供的一种特殊运算符, 格式为:表达式

27、1,表达式2,表达式n 逗号运算符结合性从左到右,先计算表达式1,最后计算表达式n。 如(j=3,j+,+j,j+5),这个逗号表达式的值是10,j的值为5。,69,典型题2-18若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 A. 1.4 B. 1 C. 2.0 D. 2,70,2-19设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是 A. 6.500000 B. 6 C. 5.500000 D. 6.000000,71,2-20下列关于单目运算符+,-的叙述中正确的是 A. 它们的运算对象可以是任何变量和常量 B

28、. 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是char型变量、int型变量和float型变量,72,2-21以下选项中,与k=n+完全等价的表达是 A. k=n,n=n+1 B. n=n+1,k=n C. k=+n D. k+=n+1,73,2-22有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列表达式中正确的是 A. a=a+b=b+ B. w%(int)a+b) C. (c+w)%(int)a D. w

29、=a=b;,74,2-23有以下程序 main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5); printf(“%d,%d,%f,%fn”,a,c,f,x); A. 1 65 1 6.5 B. 1 65 1.5 6.5 C. 1 65 1.0 6.5 D. 2 65 1.5 6.5,75,2-24若变量a是int类型,并执行了语句: a=A+1.6;,则正确的叙述是 A. a的值是字符C B. a的值是浮点型 C. 不允许字符型和浮点型相加 D. a中的值是字符A的ASCII值加上1,76,2-25有以下程序 main()

30、 char a=a,b;printf(“%c,”,+a);printf(“%cn”,b=a+); A. b,b B. b,c C. a,b D. a,c,77,2-26已定义c为字符型变量,则下列语句正确的是 A. c=97; B. c=“97”; C. c=97; D. c=“a”;,78,2-27若有以下程序 main( ) int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%dn”,m,i); A. 8,6 B. 8,3 C. 6,4 D. 7,4,79,知识点11:不同数制之间整型的转换 典型题2-28已知大写字母的ASCII码值是65,小写字母a的ASCII码

31、是97,则用八进制表示的字符常量101是 A. 字符A B. 字符a C. 字符e D. 非法常量,80,2-29有以下程序 main( ) int m=0256,n=256;printf(“%o,%on”,m,n); 程序运行结果 A. 0256,0400 B. 0256,256 C. 256,400 D. 400,400,81,2-30有以下程序 main( ) unsigned a;int b=-1;a=b;printf(“%u”,a); 结果 A. 1 B. 65535 C. 32767 D. -32768,82,2-31以下程序的输出结果是(261) main( ) int a=17

32、7;printf(“%o”,a); 注意:输出时八进制数的面没有前缀0,因此不能写成0261。,83,2-32以下程序段的输出结果是( ) int i=9; printf(“%on”,i); 2-31以下程序运行后的输出结果是() main( ) int a,b,c;a=25; b=025; c=0x25;printf(“%d,%d,%dn”,a,b,c);,84,总结: 知识点1:了解C程序的组成特点。 知识点2:了解C程序中关于标识符的语法规定,了解“关键字”、“预定义标识符”和“用户标识符”的含义和作用。 知识点3:常量。 知识点4:变量。 知识点5:C语言中,整型常量可以用十进制、八进

33、制和十六进制形式来表示。 知识点6:整型数据的分类:,85,知识点7:正确书写实型常量,包括指数形式表示的实数,定义变量及赋初值。 知识点8:正确书写字符常量,包括各种转义字符。 知识点9:掌握算术运算符和等号运算符的运算规则、优先级,正确书写算术表达式及类型转换规则。 知识点10:掌握赋值表达式,特别是要掌握在+、-、逗号表达式运算中,算术表达的值与各变量值的区别。 知识点11:不同数制之间整型的转换,86,第三章 顺序结构,3.1赋值语句 知识点1:正确写出赋值语句,了解赋值过程。 在赋值表达式的尾部加上一个“;”号,就构成赋值语句。 例如:a=b+c是赋值表达式,a=b+c;则是赋值语句

34、。a=1,b=2是逗号表达式,而a=1,b=2;则是一条赋值语句。j+;j-都是赋值语句。,87,典型题 3-1以下非法的赋值语句是 A. n=(i=2,+i); B. j+; C. +(j+1); D. x=j0;,88,3-2若以下选项中的变量已正确定义,则完全正确的赋值语句是 A. x=26.8%3; B. x2=1+2,2+3; C. x3=0x12; D. x4=1+2=3;,89,3.2数据输出 知识点2:正确调用printf函数输出语句,正确运用格式描述符,对字符型、整型、实型变量设计输出格式。 3.2.1 printf函数的一般调用形式 printf函数是C语言提供的标准输出函

35、数,作用是在终端设备上按指定格式进行输出。 格式: printf(格式控制,输出项表) 如果在printf函数调用之后“;”,就构成输出语句。,90,例如: printf(“a=%d,b=%d”,a,b); 其中printf是函数名;在圆括号中用双引号括起来的字符串,如“a=%d,b=%d”称为格式控制串, a,b是输出项表中的输出项,它们都是printf函数的参数。 格式控制的作用 提供需要原样输出的文字或字符,输出项表中的各输出项要用逗号隔开,输出项可以是合法的常量、变量或表达式。格式说明的个数要与输出项的个数相同,且类型一致。,91,3.2.2 printf函数中常用的格式说明 1.格式

36、字符,92,2.长度修饰符 长度修饰符加在%和格式字符之间,对于长整型数一定要加l(long),短整型和无符号整型用h。 3.输出数据所占的宽度 (1)m型 在%与格式字符之间插入一个整数来指定输出宽度,注意不能用变量。如果指定的输出宽度不够,并不影响数据的完整输出;如果指定的输出宽度多于数据实际所需宽度,数据右对齐,左边补空格。,93,94,(2)m.n型 m.n型在指定宽度的同时来指定小数位的位数。其中,m指定输出数据的总的所占宽度,n称为精度。 对于实数,m指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。当输出数据的小数位少于n指定宽度,在小数的右边补0。 对于

37、g或G,用来指定输出的有效数字。 对于整数,用来指定必须输出的数字个数,若输出的数字少于n指定的个数,则在数字前面加0补足;若输出的数字多于n指定个数,按数字的实际宽度输出。 对于字符串,指定最多输出的字符个数。,95,96,4.输出数据左对齐 可以在指定输出宽度的同时指定数据左对齐。通过“-”实现。,97,5.使输出的数字总是带有+号或-号 可以在%和格式字符间(或指定的输出宽度前)加一个“+”号来实现。 例: printf(“%+d,%+dn”,10,-10); 输出结果:+10,-10 6.在输出数据前加前导0 可以在指定输出宽度的同时,在数据前面的多余空格处填数字0。,98,7.在输出

38、的八进制数据前添加0,在输出的十六进制数据前添加0x 通常,在用格式字符o和x按八进制数和十六进制数的形式输出整数时,在数据的前面并不出现0和0x,如果需要在输出的八进制数前添加0,在十六进制数前添加0x,可在%号和格式字符o和x之间插入一个#号(注意:#号对其它格式字符通常不起作用)。 例:printf(“%o,%#o,%x,%#xn”,10,10,10,10); 输出结果:12,012,a,0xa,99,3.2.3调用printf函数时的注意事项 1.在格式控制串中,格式说明与输出项从左到右在类型上必须以一对应。 2.在格式控制串中,格式说明与输出项的个数应该相同。 3.在格式控制串中,除

39、了合法的格式说明外,可以包含任意的合法字符。,100,典型题 3-3以下程序段的输出结果是 int a=1234; printf(“%2dn”,a); A. 12 B. 34 C. 1234 D. 提示出错、无结果,101,3-4有以下程序结果 main( ) int x=102,y=012;printf(“%2d,%2dn”,x,y); A. 10,01 B. 02,12 C. 102,10 D. 02,10,102,3-5若有以下程序段,结果是 int m=32767,n=032767; printf(“%d,%on”,m,n); A. 32767,32767 B. 32767,03276

40、7 C. 32767,77777 D. 32767,077777,103,3-6有以下程序,输出结果是 main() int a=666,b=888;printf(“%dn”,a,b); A. 错误信息 B. 666 C. 888 D. 666,888,104,3-7设有如下程序段int x=2002,y=2003;printf(“%dn”,(x,y); 则以下叙述中正确的是 A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B.运行时产生出错信息 C.输出值为2002 D.输出值为2003,105,3-9设有定义:long x=-123456L;则以下能够正确输出x值的语句是 A

41、. printf(“x=%dn”,x); B. printf(“x=%ldn”,x); C. printf(“x=%8dLn”,x); D. printf(“x=%LDn”,x);,106,3-8若有以下程序段,输出结果是int m=0xabc,n=0xabc;m-=n;printf(“%xn”,m);A. 0X0 B. 0x0 C. 0 D. 0XABC,107,3.3数据输入 知识点3:正确调用scanf函数输出语句,正确运用格式描述符,对字符型、整型、实型变量设计输入格式。 scanf函数是C语言提供的标准输入函数,它的作用是在终端设备上输入数据。 3.3.1 scanf函数的一般调用形

42、式 格式:scanf(格式控制,输入项表) 如果在scanf函数调用之后加上“;”,构成输入语句。 如:scanf(“%d%d”,108,scanf是函数名,圆括号中用双引号括起来的字符串如“%d%d”为格式控制串;&a,&b是输入项表中的两个输入项,它们都是scanf函数的参数。 变量a,b前的符号“&”是C语言中的求地址运算符,&a就是取变量a的地址, &b就是取变量b的地址。也就是说,输入项必须是某个单元的地址。,109,3.3.2 scanf函数中常用的格式说明,110,说明: 1.在TURBOC环境下输入long整数时,在%和d之间必须加l;输入double型数时,在%和f(e)之间

43、也必须加l。 2.格式控制中,格式说明的类型与输入项的类型应一致。 3.格式说明的个数应该与输入项的个数相同。 3.3.3通过scanf函数从键盘输入数据 当调用scanf函数从键盘输入数据时,最后一定要按下回车,scanf函数才能接受从键盘输入的数据。,111,1.输入数值数据 从键盘输入的数值数据之间用间隔符(空格符、制表符(Tab键)或回车符)隔开。 例如:a,b,c为整型变量,若有以下输入语句:scanf(“%d%d%d”, 要给a赋予10,要给b赋予20,要给c赋予30,则输入形式应当是: 10 20 30 此处间隔符可以是空格符、制表符(Tab键)或回车符, 表示Enter键。,1

44、12,2.跳过输入数据所占宽度 可以在格式字符和“%”之间加一个“*”号,它的作用是跳过对应的输入数据。 例如: int a1,a2,a3;scanf(“%d%*d%d%d”, 当输入以下数据时: 10 20 30 40 把10赋给a1,跳过20,30赋给a2, 40赋给a3。 3.在格式控制串中插入其它字符 若在scanf的格式控制串中插入了其它字符,则在输入里要求按一一对应的位置原样输入这些字符。,113,例如:scanf(“%d,%d,%d”, 输入形式:10,20,30 4.输入的数据少于scanf函数要求输入的数据 这时scanf函数将等待输入,直到满足要求或遇到非法字符为止。 5.

45、输入的数据多于scanf函数要求输入的数据 这时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。,114,典型题 3-9已知i,j,k为int类型变量,若从键盘输入: 1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是 A. scanf(“%2d%2d%2d”,115,3-10有定义语句:int x,y;,若要通过scanf(“%d,%d”,语句使变量x得到数值11,变量y得到数值12,下面4组输入形式中,错误的是 A. 11 12 B. 11,12 C. 11,12 D. 11, 12 ,116,3-11有以下程序段 int m=0,n=0;char c=a;

46、scanf(“%d%c%d”, 若从键盘上输入:10A10 ,则输出结果是 A. 10A10 B. 10,a,10 C. 10,a,0 D. 10,A,10,117,3-12有以下语句段int n1=10,n2=20;printf(“ ”,n1,n2); 要求按以下格式输出n1和n2的值,每输出行从第1列开始,请填空。n1=10n2=20,118,3-13若有程序main( ) int i,j;scanf(“i=%d,j=%d”, 要求给i赋10,给j赋20,则应该从键盘输入(),119,3.4复合语句和空语句 3.4.1复合语句 在C语言中,一对花括号“”不仅可用作函数体的开头和结尾的标志,也可用作复合语句的开头和结尾的标志,复合语句的形式如下: 语句1;语句2;语句n 用一对花括号把若干语句括起来构成一个语句组,一个复合语句在语法上视为一条语句。例如: a+; b*=a; printf(“b=%dn”,b);,120,3.4.2空语句 C程序中的所有语句都必须由一个分号“;”作为结束。如果只有一个分号,如:main( ) ; 这个分号也是一条语句,称为“空语句”,只是无任何意义。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报