当前位置首页 > 资格/认证考试 > 计算机等级考试
搜柄,搜必应! 快速导航 | 使用教程

全国计算机等级考试二级c语言培训课件

文档格式:PPT| 259 页|大小 1.57MB|2024-11-30 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 259
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,,,,,,,,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,全国计算机等级考试,二级教程,—C,语言程序设计,全国计算机等级考试二级教程—C语言程序设计,目录,第,1,章 程序设计基本概念,第,2,章,C,程序设计的初步知识,第,3,章 顺序结构,第,4,章 选择结构,第,5,章 循环结构,第,6,章 字符型数据,第,7,章 函数,第,8,章 地址和指针,第,9,章 数组,第,10,章 字符串,,第,11,章 对函数的进一步讨论,第,12,章,C,语言中用户标识符,的作用域和存储类,第,13,章 编译预处理和动态存储分配,第,14,章 结构体、共用体和用,户定义类型,第,15,章 位运算,第,16,章 文件,第,17,章 上机指导,,,目录第1章 程序设计基本概念第11章 对函数的进一步讨论,1.1,程序和程序设计,C,语言,源程序,C,语言,编译程序,二进制机器指令,(,目标程序,),.C,.OBJ,高级语言,机器语言,C,语言,连接程序,可执行文件,.EXE,考点,算法的基本特征,①,有穷性、②确定性、③可行性,④有零个或多个输入,⑤有一个或多个输出,结构化程序设计的,三种,基本结构,顺序结构,,选择结构,,循环结构,,考点总结,:,由以上,3,种基本结构组成的算法,可以完成任何复杂的问题,.,考点总结,:,用,C,程序实现的算法可以,没有输入,,,但必须要有输出,.,1.1 程序和程序设计C语言源程序C语言编译程序二进制机器,习题,1.1,在,VC6.0,环境中用,RUN,命令运行一个,C,程序时,这时所运行的程序的后缀是,_________,。

    1.2 C,语言源程序文件名的后缀是,_________,;经过编译后,生成文件的后缀是,_________,;经过连接后,生成文件的后缀是,_________,1.3,结构化程序由,_________,、,_________,、,_________,三种基本结构组成exe,.c,.obj,.exe,顺序结构,选择结构,循环结构,习题1.1 在VC6.0环境中用RUN命令运行一个C程序时,第,2,章,C,程序设计的初步知识,2.1,简单,C,语言程序的构成和格式,2.2,标识符、常量和变量,2.3,整型数据,2.4,实型数据,2.5,算术表达式,2.6,赋值表达式,2.7,自加、自减运算符和逗号运算符,,第2章 C程序设计的初步知识2.1 简单C语言程序的构成,2.1,简单,C,语言程序的构成和格式,本节将通过一个简单的程序例子,介绍,C,程序的一些基本构成和格式,使大家对,C,语言程序有一个初步的了解例,2.1,,已知矩形的两条边长,(,用,a,表示宽,,b,表示长,),,求矩形的面积,(area),include ,main(),{double a,b,area;,a=1.2;,b=3.6;,area=a*b;,printf(“a=%f,b=%f,area=%f\n”,a,b,area);,},a=1.200000,b=3.600000,area=4.320000,注意:,1. C,程序由函数组成,一个程序必须有一个且只能有一个,主函数,(,main,),,C,程序总是从主函数开始执行,并且也是从它结束的。

    2.,函数体必须放在一对花括号“,{}”,内,在函数体中,通常有,定义(说明)语句,和,执行语句,,定义语句应出现在执行语句之前,每条语句后面的分号不可少多条语句可以写在同一行上,并且一条语句也可以写在多行上3. C,程序中的注释必须放在,"/*",和,"*/",之间,,"/",和,"*",之间不允许有空格"/*",和,"*/",之间不允许再插入,"/*",或,"*/",注释可以出现在程序中任意位置/*,包含头文件*,/,/*,主函数,,,程序的入口*,/,/*,声明部分,,,定义了,3,实型个变量*,/,/*,给变量,a,赋值*,/,/*,给变量,b,赋值*,/,/*,将,a*b,的结果赋值给变量,area*/,/*,分别输出矩形的两条边长和面积*,/,,,,,a,b,area,1.2,3.6,4.32,,,,,函数体,2.1 简单C语言程序的构成和格式本节将通过一个简单的程序,2.2,标识符、常量和变量,2.2.1,标识符,在,C,语言中,有许多东西都需要命名,如变量名、函数名、数组名等,在命,名的时候都必须遵守一定的规则,按此规则命名的符号称为,标识符,在,C,语言中,合法的标识符由,字母,、,数字,和,下划线,组成 。

    遵守以下规则命名:,必须以字母(大小写皆可)或下划线开头随后可跟若干个(包括,0,个)字母、数字、下划线标识符的长度各个系统不同,最好不要超过,8,个字符如:,area PI _ini a_array s1234 P101p,(,合法,),456P cade-y w.w a&b,(,不合法,),,注意,C,语言区分大小写,如,page,、,Page,是两个不同的标识符2.2 标识符、常量和变量2.2.1 标识符注意C语言区,2.2,标识符、常量和变量,2.2.1,标识符,C,语言的标识符可以分为以下三类 :,a),关键字,b),预定义标识符,c),用户标识符,关键字:,,C,语言规定了一批标识符,它们在程序中都代表着固定的含义,不能另作它用例如,用来说明变量类型的标识符,int,、,float,、,double,以及,if,语句中的,if,、,else,等都已有专门的用途,它们不能再用作变量名或函数名注意,所有的关键字都必须小写C,语言中的关键字请参考附录,4,预定义标识符:,这些标识符在,C,语言中也都有特定的含义,如,C,语言提供的库函数的名字,(,如,include),和预编译处理命令,(,如,define),等。

    用户标识符:,由用户根据需要定义的标识符称为用户标识符一般用来给变量、函数、数组或文件等命名 如例,2.1,中的,a,b,area,三个变量,2.2 标识符、常量和变量2.2.1 标识符,2.2,标识符、常量和变量,2.2.2,常量,在程序运行过程中,其值不能被改变的量,称为,常量,常量,,整型常量:,实型常量(符点型),字符常量:,字符串常量:,,单精度型:,双精度型:,由上述可见,常量的类型从字面形式上就可以区分开来,我们称此常量为,字面常量12,、,-1,、,0,‘A’,、‘,d’,”NCRE”,、“,Beijing”,3.14159,、,-2.71828,、,0.0,12.5678,、,-12.5678,2.2 标识符、常量和变量2.2.2 常量常量整型常量:,2.2,标识符、常量和变量,2.2.3,符号常量,在,C,语言中,可以用一个,符号名,来代表一个常量,称为,符号常,量但是这个符号名必须在程序中用(,#define,)进行特别的“,指定,",例,2.2,,计算圆面积和周长,此程序中将如何教大家使用符号常量include “stdio.h”,#define PI 3.14159,main(),{double r,s,l;,r=5.0;,s=PI*r*r;,l=2*PI*r;,printf(“s=%f,l=%f\n”,s,l);,},,S=78.539750,l=31.415900,/*,包含头文件*,/,/*,定义符号常量,,,符号常量名为,PI,,用,PI,来代表,3.14159*/,/*,主函数,,,程序的入口*,/,/*,声明部分,,,定义了,3,实型个变量*,/,/*,给变量,r,赋值*,/,/*,计算圆的面积*,/,/*,计算圆的周长*,/,/*,分别圆的面积和周长*,/,注意,习惯上,符号常量名用大写,变量名用小写,以示区别,,函数体,r,,s,,l,,5.0,78.53975,31.4159,,,2.2 标识符、常量和变量2.2.3 符号常量例2.2,2.2,标识符、常量和变量,2.2.4,变量,1.,所谓,变量,是指在程序运行过程中可以改变的量。

    如下程序:,#include ,main(),{double a,b;,a=1.5;,b=2.5;,printf(“%f%f\n”,a,b);,a=a+1;,b=b+1;,printf(“%f%f\n”,a,b);,},,,a,b,1.5000002.500000,2.,在程序中,声明变量就是在计算机内存中申请了某个,内存单元,对变量,进行赋值,实质上就是把数据存入该变量所代表的存储单元中3.C,语言规定,程序中所有变量都必须,先定义后使用,如程序例,2.1,、例,2.2,内存空间,a,b,2.5000003.500000,1.5,2.5,2.5,3.5,1.5,2.5,2.5,3.5,2.2 标识符、常量和变量2.2.4 变量如下程序:#i,2.3,整型数据,2.3.1,整型常量,,在,C,语言中,按整型常量的,表示形式,可以有三种形式整型常量,,由,0~9,十个数字组成,如,32767,、,-32768,、,0,等由,0~7,八个数字组成,如,0,10,、,0,11,、,0,16,等注意,最高位必须用,0,作引导符,与十进制和十六进制区分如:,018,,为不合法的八进制常量由,0~9,十个数字和,a~f(A~F),六个字母组成,如,0x,10,、,0X,de,、,0x,f,注意,最高位必须用,0x( 0X),作引导符,与十进制和八进制区分。

    如:,oxff,、,0X12H,,都为不合法的十六进制常量在,C,语言中,按整型常量的,表示范围,可以分为四种在,C,语言中,八进制数和十六进制数只能是正整数注意,如:,-077,、,-0X11,、,01.0,等,(不合法),短整型,基本整型,长整型,无符号整型,三种进制之间的转换,十六进制常量:,八进制常量:,十进制常量:,2.3 整型数据2.3.1 整型常量在C语言中,按整型常,2.3,整型数据,2.2.2,整型变量,整型变量,是用来存放整型常量的工具可以把整型变量抽象为一个盒子由于整型常量有短整型、基本整型、长整型和无符号整型四种类型,既然整型变量,是用来存放整型数据的,那整型变量也要分为四种对应类型的整型变量,以方便存,放不同类型的整型常量在此我们只介绍基本整型变量也叫,整型变量,在,C,语言中,整型变量我们需要用一个符号来表示它,即整型变量名例如:,int k;,,/*,定义,k,为整型变量,,k,为变量名*,/,关键字,int,是用来说明变量,k,的类型为整型又如:,int i,j,k;,,/*,定义,i,、,j,、,k,为整型变量*,/,,int i;,int j;,int k;,相同,注意,在同一行上使用关键字定义多个变量时,变量之间用逗号隔开。

    所有定义语句后必须以一个“;”号结束,表示它是一条语句2.3 整型数据2.2.2 整型变量整型变量是用来存放整,2.3,整型数据,2.2.2,整型变量,在前面已经讲过,声明变量就是在计算机内存中申请某个,内存单元,在,VC6.0,环境中,用关键字,int,声明变量时,计算机将会为每个变量开辟,4,字节(,32,个二进制位)的内存单元例如,,当前的某段内存空间如右图所示有如下程序段内存空间,地址,2000,2001,2002,2003,2004,2005,2006,2007,2011,2010,2009,2008,2012,int i;,int j;,i=100;,j=200,;,C,语言规定,可以在定义变量的同时给变量赋初值,该过程,称为变量的,初始化,例如:,#include ,main(),{int i=1,j=0,k=2;,:,:,},i,j,100,200,/*,在声明变量的同时,为三个变量赋值*,/,2.3 整型数据2.2.2 整型变量在前面已经讲过,声明,2.3,整型数据,2.3.3,整型数据的分类,不同的计算机系统对整型数所占用的字节数和数值范围有不同规定,下表列出了在,VC6.0,中定义的整型数所占用的字节数和数值范围。

    类型名称,通常使用简写,字节数,数值范围,[signed] int,int,4,-2147483648~ 2147483647,[signed] short [int],short,2,-32768~32767,[signed] long [int],long,4,-2147483648~ 2147483647,unsigned [int],unsigned,4,0~4294967295,unsigned short [int],unsigned short,2,0~65535,unsigned long [int],unsigned long,4,0~4294967295,由于整型数据在,C,语言中分为上述几类,比如,123,它是属于哪一类型的?,int,123L,、,345l,、,0L,、,123456L,123U,、,345u,、,0U,、,123456U,123LU,、,345lu,、,0LU,、,123456LU,long,unsigned,unsigned long,2.3 整型数据2.3.3 整型数据的分类不同的计算机系,2.3,整型数据,2.3.4,整数在内存中的存储形式,计算机中,内存储器的最小的存储单位称为“,位,(bit),”,,每一位中只能存放,0,或,1,,因,此称为,二进制位,。

    8,个二进制位组成一个“,字节,”,并给每一个字节分配一个地址数据在内存中是以,二进制形式,进行存放的一、正整数,正整数在内存中是以“,原码,”形式存放的如果定义了一个,short,类型变量,i,:,short i;,i=5;,/*,声明,i,为短整型变量*,/,/*,给,i,赋以整数,5*/,十进制数,5,的二进制形式为,101,,在,VC6.0,中,由于短整型变量在内存中占,2,个字节,,i,,,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,i,符号位,:,0,代表正整数,,1,代表负整数,二、负整数,负整数在内存中是以“,补码,”形式存放的5,2.3 整型数据2.3.4 整数在内存中的存储形式计算机,2.4,实型数据,2.4.1,实型常量,在,C,语言中,实型常量的表示形式有两种实型常量,,由数字和小数点组成,如,0.123,、,.123,、,123.,、,0.0,指数形式:,如:,0.23026,x10,1,,2.3026x10,0,23.026x10,-1,0.23026E1,2.3026e0,23.026e-1,,,,注意,E(e),前后必须有数字,并且后面的必须为整型数。

    3e3 3.0e3 3.e3,(,合法,),3e e3 55e0.3,(,不合法,),小数形式:,2.4 实型数据2.4.1 实型常量在C语言中,实型常量,2.4,实型数据,2.4.2,实型变量,分类,类型名称,字节数,数值范围,有效数字位,单精度型,float,4,-10,38,~10,38,7,位,双精度行,double,8,-10,308,~10,308,15~16,位,单精度型变量定义的形式如下:,float a,b,c;,双精度型变量定义的形式如下:,double x,y,z;,实数在内存中是以“,指数,”形式存放的也可以在定义实型变量的同时,对变量进行初始化例如:,#include ,main(),{float a=1.5,b=.5,c=0.0;,,double x=1.5,y=.5,z=0.0;,:,},/*,在声明变量的同时,为三个变量赋值*,/,/*,在声明变量的同时,为三个变量赋值*,/,2.4 实型数据2.4.2 实型变量分类类型名称字节数数,2.5,算术表达式,2.5.1,基本的算术运算符,+,(,加法运算符,或正值运算符,),如:,1+2,、,+3.9,-,(,减法运算符,或负值运算符,),如:,3-4,、,-54,*,(,乘法运算符,),如:,1.2*3.2,、,3*4,、,2*x,/,(,除法运算符,),如:,5/3,、,(a+b)/(x+y),单目运算符,双目运算符,两个整数相除,其值仍然为整数。

    如:,5/3,值为,1,、,1/2,值为,0,两个实数相除,其值仍然为实数如:,1.0/2.0,值为,0.5,除数、被除数只要有一个为实数时,系统将自动进行类型转换,转换为,double,型如:,1/2.0=0.5,、,,1.0/2.0=0.5,最后结果的类型为,double,型求余运算符,),注意:,%,运算符的两侧必须为整型数据如:,7%4,的结果为,3,7%4,、,7%-4,、,-7%-4,的结果为多少?,-3 3 -3,结果的符号和被除数相同,2.5 算术表达式2.5.1 基本的算术运算符+ (加法,2.5,算术表达式,2.5.2,运算符的优先级、结合性和算术表达式,一、优先级,( ) + - * / % + -,,,单目,双目,,同级,,同级,,同级,高,低,二、结合性,单目运算符的结合性是从右往左的,即表达式从右往左进行计算,称为,右结合,其余运算符的结合性是从左往右的即表达式从左往右进行计算,称为,左结合,例如,:,(5+1)/2,5+1/2,5*-2,5*(-2),,三、算术表达式,用算术运算符和一对圆括号将运算量,(,或称操作数,),连接起来的、符合,C,语法的,表达式称为,算术表达式,。

    算术表达式中,运算对象可以是常量、变量和函数等例如:,2+sqrt(c)*b,5,-10,3,2.5 算术表达式2.5.2 运算符的优先级、结合性和算,2.5,算术表达式,2.5.3,强制类型转换表达式,表达式的形式如下:,(,类型名,)(,表达式,),强制类型转换运算符,作用:可以利用强制类型转换运算符将一个表达式转换成想要的类型例如,:,(int)3.234,(double)(10%3),3,注意,int3.234,(错误),(double)10%3,(错误),例:阅读如下程序,关于强制类型转换include ,main(),{double a;,int b;,a=3.6;,b=(int)a;,printf(“a=%f,b=%d\n”,a,b);,},a=3.600000,b=3,1.0,a,,b,,3.6,3,2.5 算术表达式2.5.3 强制类型转换表达式表达式的,2.6,赋值表达式,2.6.1,赋值运算符和赋值表达式,赋值运算符:,=,赋值表达式:由赋值运算符组成的表达式称为赋值表达式,它的形式如下:,,变量名,=,表达式,,赋值号的左边必须是一个代表某一存储单元的变量名。

    赋值运算的功能是先求出右边表达式的值,然后把此值赋给左边的变量例如,若,a,和,b,都被定义成,int,类型变量,a=10,;,,/*,把常量,10,赋给变量,a*/,,,,b=a,;,,/*,把,a,中的值赋给变量,b,,,a,中的值不变*,/,注意,1.,赋值运算符的优先级别只高于逗号运算符,比其它任何运算符的优先,级都低,且具有自右向左的结合性例如:,a=2+7/3,2.,赋值运算符的左侧只能是变量不能是常量或表达式如,a+b=c,是不合,法的赋值表达式3.,赋值号右边的表达式也可以是一个赋值表达式,如,a=b=7+1,4.,作为一个表达式,它自己也应该有一个值,,C,语言规定最左边变量中,所得到的新值就是赋值表达式的值2.6 赋值表达式2.6.1 赋值运算符和赋值表达式赋值,2.6,赋值表达式,2.6.2,复合赋值表达式,在赋值运算符”,=”,之前加上其它运算符可以构成复合赋值运算符 -= *= /= %=,>= &= ^= |=,,等价于,,n=n+1,,等价于,,a=a+3,,等价于,,n=n*(m+3),注意:有括号,例,2.3,已有变量,a,,初始值为,9,,计算表达式,a+=a-=a+a,的值。

    a,表达式,,,如:,n+=1,a+=3,n*=m+3,a+=a-=a+a,9,18,a+=a-=18,a=a-18,-9,,-9,a+=-9,a=a+-9,a=a+(-9),-18,,-18,a+=a-=a+a,的值是:,-18,2.6 赋值表达式2.6.2 复合赋值表达式在赋值运算符,2.6,赋值表达式,2.6.3,赋值运算中的类型转换,在赋值运算中,只有在赋值号右侧表达式的类型,与左侧变量类型完全一致时,赋值操作才能进行如:,int a;,double b;,a=10;,b=3.5;,如果赋值运算符两侧的数据类型不一致,在赋值前,,系统将自动先把右侧表达式求得的数值,按赋值号,左边变量的类型进行转换,也可以用强制类型转换,的方式,人为地进行转换后赋给赋值号左边的变量a,10,b,3.5,如:,int a;,double b;,a=20.5;,b=15;,a,20,b,15.0,3.,在,C,语言的表达式中,(,不包括赋值表达式,),,如果运算,符两边的数据类型不相同,将进行类型之间的转换转换规则如下:,,double,long,unsigned,int,float,char,short,低,高,如:,10+97+1.5-8765.1234*98,8765.1234*98.0,double,2.6 赋值表达式2.6.3 赋值运算中的类型转换在赋值,2.7,自加、自减运算符和逗号运算符,2.7.1,自加运算符“,++”,和自减运算符“,--”,++,(,自加运算符,),--,(,自减运算符,),1. ++,、,--,运算符是单目运算符,运算对象只能变量,不能是常量和表达式。

    2. ++,和,--,运算符的结合方向是,",自右至左,",i++,、,++i,i--,、,--i,,,i=i+1,i=i-1,例如:,int i=5;,i++;,int i=5;,++i;,int i=5;,i--;,int i=5;,--i;,i,:,表达式:,,,,,,,,,运算规则,运算符在前,先计算,后赋值,运算符在后,先赋值,后计算,,例如:,int i=3,;,,-i++,;,,,int i=3,;,-(i++),;,i,:,表达式:,,,思考:程序示例,自增自减运算,,#include ,main(),{int i=0,j;,j=i++;,printf(“%d,%d\n”,i,j);,i=0;,,j=++i;,printf(“%d,%d\n”,i,j);,},,,上机练习,6,5,6,6,4,5,4,4,4,-3,2.7 自加、自减运算符和逗号运算符2.7.1 自加运算,2.7,自加、自减运算符和逗号运算符,2.7.2,逗号运算符和逗号表达式,,,(,逗号运算符,),用逗号将表达式连接起来的式子称为,逗号表达式,逗号表达式的一般形式为:,表达式,1,,表达式,2,,,…,,表达式,n,表达式之间用,逗号,进行连接,1.,逗号运算符的结合性为从左到右,因此逗号表达式将从左到右进行运算。

    如:,i=3,,,i++,,,++i,,,i+5,,,,,,i,表达式,3,3,i,表达式,4,3,i,表达式,5,5,i,表达式,5,10,逗号表达式的值为,2.,在所有运算符中,逗号运算符的优先级别最低2.7 自加、自减运算符和逗号运算符2.7.2 逗号运算,习题,一、选择题,2.1,以下选项中正确的整型常量是,A 12. B -20 C 1,000 D 4 5 6,2.2,以下选项中正确的实型常量是,A 0 B 3. 1415 C 0.329X10,2,D .871,2.3,以下选项中不正确的实型常量是,A 2.607E-1 B 0.8103e 2 C -77.77 D 456e-2,2.4,以下选项中不合法的用户标识符是,A abc.c B file C Main D PRINTF,2.5,以下选项中不合法的用户标识符是,,A _123 B printf C A $ D Dim,2.6 C,语言中运算对象必须是整型的运算符是,A % B / C ! D * *,2.7,可在,C,程序中用作用户标识符的一组标识符是,A void B as_b3 C For D 2c,define _123 -abc DO,WORD If case SIG,B,D,B,A,BC,A,B,习题一、选择题BDBABCAB,2.8,若变量已正确定义并赋值,,,符合,C,语言语法的表达式是,A a=a+7; B a=7+b+c,a++,C int(12.3%4) D a=a+7=c+b,2.9,以下中叙述中正确的是,A a,是实型变量,,C,允许进行赋值,a=10,,但不可以这样说,:,实型变量中允许存放整型值,B,在赋值表达式中,,,赋值号左边既可以是变量也可以是任意表达式,C,执行表达式,a=b,后,,,在内存中,a,和,b,存储单元中的原有值都将被改变,,a,的值已由原,值改变为,b,的值,,b,的值由原值变为,0,D,已有,a=3,b=5,,当执行了表达式,a=b,b=a,之后,,,使,a,中的值为,5,b,中的值为,3,2.10,以下中叙述中正确的是,A,在,C,程序中无论是整数还是实数,,,只要在允许的范围内都能准确无误的表示,B C,程序由主函数组成,C C,程序由若干个函数组成,D C,程序中只允许包含一个函数,2.11 VC6.0,中,int,类型变量所占字节数是,A 1 B 2 C 3 D 4,习题,B,A,C,D,2.8 若变量已正确定义并赋值,符合C语言语法的表达式是,习题,2.12,合法的八进制数是,A 0 B 028 C -077 D 01.0,2.13,不合法的十六进制数是,A oxff B 0Xabc C 0x11 D0x19,,二、填空题,2.14,若,k,为,int,型变量且赋值,11.,请写出运算,k++,后表达式的值,____,和变量,k,的,值,_____.,2.15,若,x,为,double,型变量,,,请写出运算,x=3.2,++x,后表达式的值,_____,和变量,x,的值,______.,2.16,函数体由符号,___,开始,,,到符号,___,结束,.,函数体内的前面是,_____________,部分,,,后面是,___________,部分,.,2.17 C,语言中的标识符可分为,________.___________,和预定义标识符三类,.,2.18,在,C,语言程序中,,,用关键字,____,定义基本整型变量,,,用关键字,_____,定义单,精度实型变量,,,用关键字,_____,定义双精度实型变量,.,2.19,把,a1,a2,定义成双精度实型变量,,,并赋初值,1,的定义语句是,________________.,2.20 C,程序中定义的变量,,,代表内存中的一个,_________.,11,12,4.2,4.2,{,},定义和说明,语句,关键字,用户标识符,int,float,double,double a1=1,a2=1;,存储单元,A,A,习题2.12 合法的八进制数是 11124.24,习题,2.21,表达式,3.5+1/2,的计算结果是,______.,2.22,对数学式,a x b,,,写出三个等价的,C,语言表达式,_______._______.________.,c,2.23,表达式,s=10,应当读做,___________________________.,三,.,改错题,2.24,#include stdio.h;,main(); / * main function * /,float r,s; /*/*r is radius*/,/*s is area of circular*/*/,r=5.0;,s=3.14159*r*r;,printf("%f\n",s),2.25,main /* main function */,{float a,b,c,v; /*a,b,c are sides,v is volume of cube*/,a=2.0;b=3.0;c=4.0,v=a*b*c;,printf("%f\n",v),},3.5,(a*b)/c,a*b/c,a*(b/c),将,10,赋给变量,s,习题2.21 表达式3.5+1/2的计算结果是______.,第,3,章 顺序结构,3.1,赋值语句,3.2,数据输出,3.3,数据输入,3.4,复合语句和空语句,3.5,程序举例,,第3章 顺序结构3.1 赋值语句,3.1,赋值语句,在赋值表达式的尾部加上一个“,;”,号,就构成了,赋值语句,,也称表达式语句。

    例如:,a=a+b,(,赋值表达式,),a=a+b;,(,赋值语句,),,3.1 赋值语句在赋值表达式的尾部加上一个“;”号,就构成,3.2,数据输出,3.2.1 printf,函数的一般调用形式,首先,我们先来了解一些其它知识一个程序,一般情况下都包含数据输入、数据处理、数据输出三个部分输出,:把数据从计算机内部送到计算机的外部设备上的操作称为“输出” 输入,:从计算机外部设备将数据送入计算机内部的操作称为“输入”显示器,键盘,在,C,语言中,数据的输入和输出是通过调用输入和输出函数来实现的在,VC6.0,环,境下,在调用输入和输出的库函数之前要求在源程序中出现包含头文件命令行:,,#include ,,或,#include “stdio.h”,1. printf,函数的调用形式如下 :,printf(,格式控制,输出项表,),,作用:按照指定的格式将输出项中的值输出到终端要输出的内容(常量、变量、表达式等),双引号括起来的字符串,按照该指定的格式进行输出,3.2 数据输出3.2.1 printf函数的一般调用形,3.2,数据输出,3.2.1 printf,函数的一般调用形式,例如:,printf(“a=,%,d, b=,%,d ”, a, b),;,函数名,格式控制,输出项,(,实参,),,在,printf,函数调用的后面加一个分号就构成,输出语句,。

    例:对于,printf,函数的调用形式,请见下面的程序示例include ,main(),{int i=2518;,double a=3.1415;,printf(“i=%d,a=%f,a*10=%e\n",i,a,a*10);,},格式控制,输出项,(,实参,),i=2518,a=3.141500,a*10=3.141500e+001,“i=%d,a=%f,a*10=%e\n",原样输出,,,,%d,%f,%e,%,为引导符,d,、,f,、,e,为格式字符,转义字符,3.2 数据输出3.2.1 printf函数的一般调用形,3.2,数据输出,3.2.1 printf,函数的一般调用形式,printf,也可以没有输出项,函数的调用形式将为:,,printf(,格式控制,),比如:,printf(“OK!”);,OK!,3.2 数据输出3.2.1 printf函数的一般调用形,3.2,数据输出,3.2.2 printf,函数中常用的格式说明,格式字符:,,d,-----,以十进制整数进行输出,,o,-----,以八进制数进行输出,,x,-----,以十六进制数进行输出,,f,-----,以小数形式进行输出,:,:,,使用时,以,%,作为引导符,格式字符必须使用小写,如:,%d %o %x %f,简单的格式字符形式,完整的格式字符形式,%,,+,,-,,0,,n,,n1.n2,,l/h,,格式字符,,n,,指定输出的宽度,printf(“%6d\n”,k);,n1.n2,n1,指定输出的宽度,,n2,指定输出的小数位数,printf(“%12.2f\n”,f);,0,,输出的数据右对齐,前面补,0,printf(“%06d\n”,k);,-,,输出的数据左对齐,printf(“%-6d\n”,k);,+,,输出的数据为正数时,使前面带有“,+”,符号,printf(“%+-6d\n”,k);,l,,输出整数时,为长整型,;,输出实数时,为双精度型,printf(“%ld\n”,k);,h,,输出整数时,为短整型,printf(“%hd\n”,k);,有如下程序段,int k;,float f;,k=1234;,f=123.456,jj,1234,jjjjjj,123.46,00,1234,1234jj,+1234j,1234,1234,3.2 数据输出3.2.2 printf函数中常用的格式,3.2,数据输出,3.2.2 printf,函数中常用的格式说明,下面,将简单的介绍一些输出格式形式和输出结果:,printf(“%f\n”,f);,printf(“%12f\n”,f);,printf(“%.6f\n”,f);,printf(“%12.0f\n”,f);,printf(“%e\n”,f);,printf(“%13e\n”,f);,printf(“%13.8e\n”,f);,printf(“%3.8e\n”,f);,printf(“%.8e\n”,f);,printf(“%13.9e\n”,f);,printf(“%13.2e\n”,f);,printf(“%g\n”,f);,printf(“%10g\n”,f);,printf(“%f%%\n”,12.5);,123.456000,jj123.456000,123.456000,jjjjjjjjj123,1.234560e+002,1.234560e+002,1.23456000e+002,1.23456000e+002,1.23456000e+002,1.234560000e+002,jjjj1.23e+002,123.456,jjj123.456,12.500000%,,以指数形式输出,,,输出时,,,先以小数,位数为基准,,,再考,虑输出的宽度,.,,以原数的最小宽度,进行输出,,,指定宽度,时,,,按指定宽度进行,输出,3.2 数据输出3.2.2 printf函数中常用的格式,3.2,数据输出,3.2.3,使用,printf,函数时的注意事项,1.,在使用输出函数时,,,输出的数据要清晰,,,视觉感要好。

    例如:,k=1234,f=123.456,printf(“%d%d%f\n”,k,k,f);,printf(“%d,%d,%f\n”,k,k,f);,printf(“k=%d,k=%d,f=%f\n”,k,k,f);,12341234123.456000,2.,在格式控制串中,格式说明与输出项从左到右在类型上要一一对应匹配如不匹配,将导致数据不能正确输出,这时,系统并不报错最好,例如:,int a=10;,float b=12.5;,printf(“a=%f,b=%d\n”,a,b);,a=0.000000,b=1076428800,int a=10;,float b=12.5;,printf(“a=%d,b=%f\n”,a,b);,a=10,b=12.500000,编译时能通过,则输出时为不正确的数据,输出时类型一定要一一对应,1234,1234,123.456000,k=1234,k=1234,f=123.456000,3.2 数据输出3.2.3 使用printf函数时的注意,3.2,数据输出,3.2.3,使用,printf,函数时的注意事项,若格式说明中的个数少于输出项的个数时,则多余的输出项不予输出;,若格式说明中的个数多于输出项的个数时,则将输出一些毫无意义的数字。

    例如:,int a=10,b=20,c=30;,printf(“%d,%d\n”,a,b,c);,10,20,int a=10,b=20,c=30;,printf(“%d%d%d%d\n”,a,b,c);,10,20,30,,2367460,4.,在格式控制串中,除了合法的格式说明外,可以包含任意的合法字符,,,还可以,包括转义字符,这些字符在输出时将,",原样照印,",例如:,printf(“my,\t,name,\t,is,\t,chenhao,\n,”);,my name is chenhao,\t,为转义字符,(,制表符,),代表八个空格字符,5.,如果需要输出百分号%,则应该在格式控制串中用两个连续的百分号%%来表示例如:,printf(“%d%%”,100);,100%,6. printf,函数的返回值通常是本次调用中输出字符的个数思考:,printf(“my\tname\tis\tchenhao\n”);,函数的返回值是多少?,3.2 数据输出3.2.3 使用printf函数时的注意,3.2,数据输出,3.2.3,使用,printf,函数时的注意事项,7.,思考:如:,int k=8;,,printf(“%d,%d\n”,k,++k);,9,9,8.,输出时,也可以用参数作为域宽。

    如:,int m=8,i=10;,printf(“%,*,d”,,m,,i);,jjjjjj10,123.4560000000,int m=8,n=10;,float f=123.456;,printf(“%,*.*,f”,,m,n,,f);,,,首先先对应匹配,然后再输出,输出的过程,是按输入项从右往左,printf(“%,8,d”,i);,printf(“%,8.10,f”,f);,3.2 数据输出3.2.3 使用printf函数时的注意,3.3,数据输入,3.3.1 scanf,函数的一般调用形式,scanf(,格式控制,输入项表,),1. scanf,函数的调用形式如下 :,作用:把从终端设备,(,如,键盘,),上输入的数据传,送给对应的输入项,(,如变量地址,),双引号括起来的字符串,按照该指定的格式进行输入,把从键盘上输入的数据送到该指定的输入项中,输入项中,必须为变量的地址,例如:,int k; float a; double y;,scanf(“%d%f%lf”,,函数名,输入格式控制,变量地址,(,实参,),在,scanf,函数调用的后面加一个分号就构成输入语句。

    ★,变量地址,形式:,&,变量名,,3.3 数据输入3.3.1 scanf函数的一般调用形式,3.3,数据输入,3.3.1 scanf,函数的一般调用形式,例:对于,scanf,函数的调用形式,请见下面的程序示例include ,main(),{int a;,float b;,scanf(“%d%f”,,printf(“%d,%f\n",a,b);,},scanf(“%d%f”,,,,,比如,想把,23,赋值给,a,12.345,赋值给,b,,输入形式为:,程序执行到此,停止执行,等待用户,从键盘输入数据,等输入数据后,待,用户安回车键,,后,继续向后执行23 12.345,a,,b,,输出结果为:,23,12.345000,23,12.345,3.3 数据输入3.3.1 scanf函数的一般调用形式,3.3,数据输入,3.3.2 scanf,函数中常用的格式说明,scanf,函数中的格式说明字符与输出函数中的格式说明字符相同在使用,scanf,函数进行输入时,应该注意以下几点:,,1.,在格式控制中,格式说明的类型与输入项的类型,应该一一对应匹配如果类,型不匹配,系统并不给出出错信息,但不可能得到正确的数据。

    2.,在输入项表中,输入项的个数要与格式符的个数相同,且排列顺序要一一对应若格式符个数少于输入项,,scanf,函数按格式符的数目结束输入,多余的输入项没,有得到新的数据;若格式符个数多于输入项,,scanf,函数则按输入项的数目结束输,入,多余的格式符不起作用,(,作废,),例如:,int a,b,c;,scanf(“%d%d”,,printf(“%d%d%d\n”,a,b,c);,10,20,-858993460,比如说,我们从键盘读入:,10 20 30,int a,b,c;,scanf(“%d%d%d%d”,,printf(“%d%d%d\n”,a,b,c);,10,20,30,比如说,我们从键盘读入:,10 20 30 40,3.3 数据输入3.3.2 scanf函数中常用的格式说,3.3,数据输入,3.3.2 scanf,函数中常用的格式说明,在,scanf,函数中的格式字符前可以用一个整数指定输入数据所占宽度当输入函数的格式说明的类型与输入项的类型一一对应匹配时程序在运行的,过程中,当我们输入的数据个数少于输入项时,运行的程序将一直等待输入,直到,满足要求时才继续向下执行;当我们输入的数据个数多于输入项时,多于的数据没有,作废,依然在缓冲区中等待等待下一个输入操作语句。

    5. scanf,函数在调用结束后将返回一个函数值,其值等于得到输入值的输入项的个数例如:,int a;,scanf(“%5d”,,该输入函数正确的输入形式为:,88,,输入宽度为,5,思考:,scanf(“%d%d%d%d”,,函数的返回值是多少?,3.3 数据输入3.3.2 scanf函数中常用的格式说,3.3,数据输入,3.3.3,通过,scanf,函数从键盘输入数据,1.,输入数值数据,例如:,int k;float a;double y;,scanf(“%d%f%lf”,,若要给,k,赋值,10,,,a,赋值,12.3,,,y,赋值,1234567.89,,正确的输入格式如下,:,10 12.3 1234567.89,10 12.3 1234567.89,10,12.3,1234567.89,输入的数据之间必须用,间隔符,隔开,可以使用的间隔符有:,空格、回车符、制表符,错误的输入格式,:,1012.31234567.89,3.3 数据输入3.3.3 通过scanf函数从键盘输入,3.3,数据输入,3.3.3,通过,scanf,函数从键盘输入数据,2.,指定输入数据所占的宽度,例如:,int k;float a;double y;,scanf(“%3d%5f%5lf”,,若从键盘上从第,1,列开始输入:,123456.789.123,用,printf(“k=%d a=%f y=%f\n”,k,a,y);,输出的结果是:,k=123 a=456.700000 y=89.120000,k,y,a,,,,123,456.7,89.12,3.3 数据输入3.3.3 通过scanf函数从键盘输入,3.3,数据输入,3.3.3,通过,scanf,函数从键盘输入数据,3.,跳过某个输入数据,例如:,int x,y,z;,scanf(“%d%*d%d%d”,,printf(“%d %d %d\n”,x,y,z);,若从键盘上输入:,12 34 56 78,则输出的结果是:,12 56 78,3.3 数据输入3.3.3 通过scanf函数从键盘输入,3.3,数据输入,3.3.3,通过,scanf,函数从键盘输入数据,4.,在格式控制字符串中插入其他字符,又如:,int x,y,z;,scanf(“%d,,,%d,,,%d”,,这时从键盘上输入时,一定要向下形式进行输入:,Please input x,y,z:12 34 56,在格式控制字符中出现了其他字符的语句如下:,int x,y,z;,scanf(“Please input x,y,z:%d%d%d”,,则正确的输入形式:,12,34,56,12, 34, 56,12, 34, 56,错误的输入形式:,12 34 56,12 ,34 ,56,3.3 数据输入3.3.3 通过scanf函数从键盘输入,3.4,复合语句和空语句,3.4.1,复合语句,复合语句,是用符号,"{",和,"}",括起来的语句组,也可称为,",语句块,",,在语法上被视为一条语句。

    复合语句的语句形式如下:,{,语句,1,;语句,2,;,…,;语句,n,;,},例如:,{ a++,;,b*=a,;,printf("b= %d\",b),;,},3.4 复合语句和空语句3.4.1 复合语句复合语句是用,3.4,复合语句和空语句,3.4.2,空语句,空语句由一个分号构成,但它是一个,C,语句,程序执行空语句时不产生任何操作如:,main(),{,;,},3.4 复合语句和空语句3.4.2 空语句空语句由一个分,3.5,程序举例,例,3.1,,以下程序由终端输入两个整数给变量,x,和,y,;然后输出,x,和,y,;在交换,x,和,y,中的值后,再输。

    点击阅读更多内容
    最新文档
    2025年作风建设学习教育开展情况的报告范文.docx
    在2025年民营企业座谈会上的主持讲话范文.docx
    在2025年全县教育领域群众身边不正之风和腐败问题集中整治调度会上的讲话范文.docx
    工委副书记在2025年机关DeepSeek应用专题辅导培训班开班仪式上的讲话范文.docx
    在2025年DeepSeek大模型政务应用培训会上的讲话范文.docx
    在青年干部培训结业典礼上的讲话文稿.docx
    2025年副书记防汛工作会议上的讲话范文.docx
    2025年主管商务部门党组书记在理论学习中心组会上研讨发言文稿.docx
    2025年国企党委关于干部职工思想政治工作情况的报告范文.docx
    在机关单位作风建设学习教育突出问题专项整治工作部署会议上的讲话范文.docx
    医院领导2025年党风廉政建设推进会上的讲话范文.docx
    2025年关于开展“以案促改”工作实施方案供参考.docx
    在2025年安全生产专项整治暨化工行业风险防控部署会上的讲话范文.docx
    领导干部在“十五五”发展规划编制启动会上的讲话文稿.docx
    2025年书记在慰问老干部暨情况通报会上的主持讲话提纲范文.docx
    2025年作风建设实施方案文稿.docx
    在2025年DeepSeek政务应用培训会上的讲话范文.docx
    2025年领导在DeepSeek政务应用培训会上的讲话参考范文.docx
    2025年国企党委关于干部职工思想政治工作情况的报告文稿.docx
    在青年干部培养工作座谈会上的讲话范文.docx
    卖家[上传人]:29
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档