




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言复习提纲第一章 C语言程序设计概述一、Visual C+6.0开发环境1、了解Visual C+6.0的安装过程;2、了解Visual C+6.0的工作界面,菜单和工具栏的使用;二、掌握C语言程序运行的过程1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C+ 6.0,Turbo C 3.0)输入计算机,并存盘。在存盘时,C源文件的扩展名为 .c 2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。 3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。4、执行:执行生成的可执行代码,并输出结果。5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。三、结构化程序设计的基本概念1、概念以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。2、基本思想结构化程序设计的基本思想是采用自顶向下,逐步细化、模块化设计、结构化编码的程序设计方法和单入口单出口的控制结构。自顶向下、逐步细化的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;单入口单出口的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序来。3、三种基本结构顺序结构 选择结构 循环结构4、三种基本结构的特点只有一个入口 只有一个出口每一个基本结构中的每一部分都有机会执行到结构内不存在“死循环”5、设计原则自顶向下 逐步细化 模块化设计结构化编码6、结构化程序设计方法要求把程序的结构规定为顺序、选择和循环三种基本机构,并提出了自顶向下、逐步求精、模块化程序设计等原则。结构化程序设计是把模块分割方法作为对大型系统进行分析的手段,使其最终转化为三种基本结构,其目的是为了解决由许多人共同开发大型软件时,如何高效率地完成可靠系统的问题。程序的可读性好、可维护性好成为评价程序质量的首要条件。缺点:程序和数据结构松散地耦合在一起。解决此问题的方法就是采用面向对象的程序设计方法(OOP)。四、C程序的基本组成:C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。程序的执行总是从主函数开始,在主函数中结束。主函数是可以调用其他任何非主函数的函数,任何非主函数也可以调用其它任何非主函数。C程序的基本组成:声明区、主程序区、函数定义区。1、声明区处在程序文件的所有函数的外部,一般包含:包含头文件、宏定义、类定义、结构体定义、函数声明、全局变量声明、条件编译等。2、主程序区主程序以main()函数开始,main()函数(主函数)是程序运行时的入口,包含局部变量的声明、函数调用、一般运算、结构控制、对象与结构的处理、文件处理等。3、函数定义区函数的定义包含函数说明和函数体两部分。五、标识符1、标识符的定义:用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。2、标识符的命名规则:由字母、数字或下画线组成,并且第1个字符必须为字母或下画线。注意:标识符区分大小写,且不能与关键字重名。练习1_1:下列变量标识符哪些是正确的,哪些是不正确的?a3bc if a!bc _abc abc _3abc a_bc 3abc3、标识符分类:关键字、预定义标识符、用户自定义标识符。第二章 数据类型与简单输入与输出图2_1 C语言的数据类型数据类型基本类型空类型(无值类型)void构造类型指针类型实型(浮点型)联合型类型union单字符型char整型int单精度型float双精度型double字符型宽字符型w-char逻辑型bool类类型class枚举类型enum结构类型struct数组类型一、C语言的数据类型C语言中基本数据类型包括整型、实型、字符型、枚举类型,构造类型有数组、结构体、共用体等。、基本数据类型(见P17)、构造类型又称为组合类型,它是由基本类型按照某种规则组合而成的。n 数组:是由具有相同数据类型的元素组成的集合。n 结构体:是由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型一般不同,并且在内存中分别占据不同的存储单元。n 共用体:是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共用同一段内存单元。n 枚举:是将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。、指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。它在内存中占据一个存储单元。、类是一种数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。 二、常量和变量、常量:在程序运行的整个过程中,其值始终保持不变的量。n 整型常量:表示形式有十进制、八进制(以0开头)和十六进制(以0x或0X开头)。整型常量可以后缀字母L(或l)表示长整数,后缀字母U(或u)表示无符号整数。n 实型常量(浮点型常量):表示形式有一般形式和指数形式。实型常量缺省为double型(双精度型),如后缀f或F,则为float型(单精度型)。n 字符常量:用单撇号括起来的一个字符。如A,*等。转义字符:用反斜杠引导的,具有特定含义的字符(见P22表2-4),如 n,367,x8a。注:C语言字符集中的任何一个字符均可用转义字符来表示。n 字符串常量:用双撇号括起来的字符序列。如student,广东广州等。n 布尔常量:false,true。 n 符号常量: #define 宏名 常数练习2_1:下列哪些是合法的常量:12.7f 0986 0986.012 、0625L 87U-0x98C2 01a -6.87E-2 1.2e0.5 E-30xFF 2L 72 160 -0xffff011 -0xcdf 0xe -01 0668变量:指程序在运行时其值可改变的量。n 变量应先定义(声明其类型和名称)后使用; n 变量定义的一般形式为: u ,;n 在定义一个变量的同时,也可以给它赋以初值。 练习2_2以下正确的变量标识符是3abc $amount Num_of_Student if a!bc _above _abc ab sin day三、顺序结构程序设计数据的输入和输出1、格式化输出printf()函数n printf()函数的一般格式如下:printf(格式字符串 ,输出项表); 输出项表:要输出的数据项(可以没有,有多个时以“,”分隔) 格式控制串:包含两种信息格式说明: %修饰符格式字符 ,用于指定输出格式如:格式控制字符“%c”表示的含义是输出一个字符型数据。普通字符或转义序列:原样输出。n 格式控制字符:表2_1 printf()函数格式字符格式转换字符含义举例%d,%i以十进制整数输出int a=65;printf(“%d”,a)/65%c输出一个字符型数据int a=65;printf(“%c”,a)/A%s输出一个字符串printf(“%s”,“abcd”)/abcd%e,%E以指数形式输出一个浮点型数据(小数位数缺省值为6位)float x=984.235497426;printf(%e,x);/9.842355e+002%f(有效数字6-7位)以十进制小数形式输出一个浮点型数据(小数位数缺省值为6位)float x=984.235432426;printf(%f,x);/984.235413%g,%G按照%e,%f输出宽度较短的格式输出,不输出无意义的0float x=23.240;printf(%g,x);/23.24n 修饰符:表2_2 printf()函数修饰符修饰符功能示例m数据最小宽度. m,正常输出;m ,左补空格.int a=36;printf(a=%5dn,a);/36.n对实数,表示输出n位小数;对字符串,表示截取的字符个数float a=123.456;printf(a=%8.2fn,a);/123.46输出的数值靠左端,右边补空格。printf(s=%-5.3s,guangdong)/gua 0小于指定宽度左边补0。int b=789;printf(b=%05dn,b);/00789如:在C程序的格式输出中,%d表示输出十进制整数,%6.2f表示输出长度为6位,有2位小数的实数。printf(s=%-5.3s,student);的输出结果是s=stu 。2、格式化输入scanf()函数scanf()函数的一般格式scanf(格式字符串, 输入项首地址表);注:格式输入函数scanf()可以从键盘上接收不同数据类型的数据。格式化输出函数(printf())和格式化输入函数(scanf())都包含在头文件“stdio.h”中。n 格式字符串。格式字符串可以包含3种类型的字符:格式指示符、空白字符(空格、Tab键和回车键)和非空白字符(又称普通字符)。格式指示符与printf()函数的相似,空白字符作为相邻2个输入数据的缺省分隔符,非空白字符在输入有效数据时,必须原样一起输入。n 输入项首地址表由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。输入项首地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。变量首地址的表示方法: &变量名其中“&”是地址运算符。n 数据输入操作 如果相邻2个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。例如,scanf(%d%d,&num1,&num2);假设给num1输入12,给num2输入36,则正确的输入操作为:1236或者:12 36 注:使用“”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。 “格式字符串”中出现的普通字符(包括转义字符形式的字符),务必原样输入。 例如,scanf(%d,%d,&num1,&num2); 假设给num1输入12,给num2输入36,正确的输入操作为:12,36练习2_3已有定义doubled,f;,数据的输入方式为:3.693.2,根据定义和数据的输入方式,输入函数语句的正确形式为scanf(%lf%lf,&d,&f)。(scanf(%4.2lf%3.1lf,&d,&f) 或scanf(%4.2f%3.1f,&d,&f)都是错误的)第三章 运算符与表达式一、运算符和表达式1、算术运算符和算术表达式注意:int i=1.2*3; /结果为3,而不是3.6。 int i=5/3结果为1。2、赋值运算符和赋值表达式注意:n 赋值运算符的结合性是从右至左的n 复合赋值运算符:int a=12; a+=a-=a*=a;(a=a+(a=a-(a=a*a),结果为0)注意:在C语言中,定义inta=b=c=3;是错误的,而定义inta,b,c; a=b=c=3;是正确的。 练习3_1设m=9,i=3,则执行运算m%=i+1后,m的值是多少?结果1。m=m%(i+1)m=9%(3+1)m=1。3、关系运算符和关系表达式注意:n 关系运算符的优先级低于算术运算符。例如:a+bc 等价于 (a+b)c,a!=bc等价于a!=(bc) n “=”与“=”的区别4、逻辑运算符与逻辑表达式注意:n 逻辑非的优先级最高,逻辑与次之,逻辑或最低练习3_2 若有int a=3,b=0;则表达式a&!b的值为1。n 逻辑运算符的短路特性。练习3_3int x,y,z; x=y=z=-1; +x&+y|+z; printf(“x=%dty=%dtz=%dn”,x,y,z);(结果:0 -1 0)x=y=z=-1; +x|+y&+z; printf(“x=%dty=%dtz=%dn”,x,y,z); (结果:0 0 -1)x=y=z=-1; +x&+y&+z; printf(“x=%dty=%dtz=%dn”,x,y,z); (结果:0 -1 -1)5、自增(+)、自减(-)运算符注意:自增(+)、自减(-)运算符的前置用法和后置用法的区别。练习3_4设有变量说明:int a=8,b=7;那么执行语句:printf(%d,%d n,+a,b-),输出的结果是9,7练习3_5设a,b,c均为int型变量,则执行语句a=b=3;c=+a|+b;后,b的值为3。练习3_6int i, j, k; int m, n, p; i = 8; j = 10; k = 12; /* 自增在操作数之前 */ m = +i;printf(i = %dn, i);printf(m = %dn, m); (结果:9 9)/* 自减在操作数之后 */n = j-; printf(j = %dn, j); printf(n = %dn, n); (结果:9 10)/* 自增、自减的混合运算 */p = (+m)*(n+)+(-k); printf(k = %dn, k); printf(p = %dn, p); (结果:11 111)6、条件运算符表达式1?表达式2:表达式3注意:n 结合性是自右向左。ab?a:cd?c:d相当于ab?a:(cd?c:d)n 条件运算符的优先级别高于赋值运算符,低于关系运算符和算术运算符。如:ab?a-b:b-a相当于ab?(a-b):(b-a) 练习3_7设有变量说明:int x=3,y=5;那么表达式:z=xy?x:y运算后,z的值是5。7、位运算符位运算符是对其操作数按其二进制形式逐位进行运算,参加位运算的操作数必须为整数。练习3_8 int a=5,b=6;a&b=4;a|b=7;ab=3;b=-7;b2=1。注:在位运算中,操作数左移三位,其结果相当于操作数乘以8。8、逗号运算符表达式, 表达式, , 表达式n注意:自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。如:a = 3 * 5, a * 4, a + 5的值为20。二、运算符的优先级与结合性1、所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。自左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。2、表达式求值n 按运算符的优先级高低次序执行。例如,先乘除后加减。n 如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按语言规定的结合方向(结合性)进行。例如,算术运算符的结合方向是“自左至右”,即:在执行“a b + c”时,变量b先与减号结合,执行“a - b”;然后再执行加c的运算。练习3_9 设int x=2,y=3,z=4; 执行语句行x+;y+=1;z=x+y-以后,x,y和z的值分别是多少?答案:3,3,7练习3_10 设x,y,z,t均为int型变量,则执行x=y=z=1;t=+x|+y&+z;这些语句后,x,y,z,t的值为多少?2,1,1,1练习3_11 如果a=5,b=3,c=7,d=9,则条件表达式ab?a:cd?c:d的值为多少?结果为7。第四章 程序流程控制一、算法1、算法的概念:算法是指为解决一个问题而采取的确定的、有限的方法和步骤。2、算法的描述方法最常用的有自然语言、流程图、N-S流程图、PAD图和伪代码等。二、顺序结构程序设计顺序结构是结构化程序设计中最简单、最常见的一种程序结构。顺序结构中的语句是按照书写的先后次序执行的,并且每个语句都会被执行到。练习4_1 编写一个程序,从键盘上输入一个学生5门课的成绩,计算出该学生的总成绩和平均成绩,并用自然语言描述算法。解:设变量 a、b、c、d、e分别表示学生5门课的成绩,sum表示总成绩,aver表示平均成绩, 则用自然语言描述算法如下:输入学生5门课的成绩a、b、c、d、e;求总成绩sum=a+b+c+d+e;求平均成绩: aver =sum/5.0;输出总成绩和平均成绩。程序如下:#include main()float a,b,c,d,e,sum,aver;printf(请输入学生5门课的成绩n);scanf(%f,%f,%f,%f,%f,&a,&b,&c,&d,&e);sum=a+b+c+d+e;aver=sum/5.0;printf(总成绩=%0.2f,平均成绩=%.2fn,sum,aver);练习4_2 编写一个程序,从键盘输入梯形的上底、下底和高的值(浮点数),计算并输出其面积(保留两位小数),并用N-S结构图表示算法。 解:设变量a、b、h、area分别表示梯形的上底、下底、高和面积,则用N-S结构图表示算法如下:输入梯形的上底a、下底b和高h计算梯形的面积: area=(a+b)*h/2.0输出结果。 程序如下:#include main()float a,b,h,area;printf(请输入梯形的上底、下底和高n);scanf(%f,%f,%f,&a,&b,&h); area=(a+b)*h/2.0;printf(梯形的面积为%0.2fn,area);练习4_3 编写一个程序,从键盘输入圆的半径,计算并输出圆的周长和面积(保留两位小数),用伪代码表示出算法。解:设用变量r 、length、area分别表示圆的半径、周长和面积,则用伪代码表示算法如下:BEGIN input r length=2*3.14*r area=3.14*r*r print length,areaEND程序如下:#include #define PI 3.14main()float r,length,area;printf(请输入圆的半径n);scanf(%f,&r);length=2*PI*r;area=PI*r*r;printf(圆的周长为%0.2fn,length);printf(圆的面积为%0.2fn,area); 三、选择结构程序设计1、if语句、if语句的一般格式 if(表达式) 语句组1; else 语句组2; n if语句中的“表达式”必须用“(”和“)”括起来。表示程序执行的条件,常用关系运算符、逻辑运算符等表示的条件表达式,其结果只有两个值“1”或“0”(成立或不成立)。如:表示字符型变量ch是大写英文字符的C语言表达式是ch=A&ch=0&ch=9。n else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。n 当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。、if语句的执行过程n 缺省else子句时n 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条。n 指定else子句时n 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。、if语句的嵌套与嵌套匹配原则n if语句允许嵌套。所谓if语句的嵌套是指,在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。n if语句嵌套时,为避免嵌套的if-else语句的二义性,C语言规定:else总是与在其之前最近的未配对的if语句组成配对关系。练习4_4:铁路托运行李,假设每张车票可按每公斤0.5元托运50公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.3元,试编写一道计算行李托运费的程序。解:/*程序功能:计算行李托运费*/#include Void main() float w,x; printf(输入行李的重量:); scanf(%f,&w); if(w50.0) x=50.0*0.5+(w-50.0)*0.8; else x=w*0.5;printf(行李重量w=%.2f公斤,托运费x=%.2f元n,w,x); 2switch语句、switch语句的一般形式switch(表达式) case 常量表达式1:语句组;break; case 常量表达式2:语句组;break; . case 常量表达式:语句组;break; default:语句组;break; 、执行过程 n 当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。n 如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句的下一条。说明n switch后面的“表达式”,可以是int、char和枚举型中的一种。n 每个case子句后面的“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。n case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以要退出switch语句,方法是使用break语句。n 各case及default子句的先后次序,不影响程序执行结果。n 多个case子句,可共用同一语句(组)n 用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。练习4_5:从键盘上输入一个百分制成绩score,按下列原则输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。解:#include Void main()int score, grade; printf(“Input a score(0100): ”); scanf(“%d”, &score); grade = score/10; /*将成绩整除10,转化成switch语句中的case标号*/ switch (grade)case 10: case 9: printf(“grade=An”); break;case 8: printf(grade=Bn); break; case 7: printf(grade=Cn); break; case 6: printf(grade=Dn); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(“grade=En”); break; default: printf(“The score is out of range!n”);练习4_6以下程序段的输出结果是int x=7,y=8,z=9;if(xy) x=y,y=z;z=x;printf(%d,%d,%dn,x,y,z);结果:7,8,7练习4_7 以下程序的输出结果是#include void main() int m=5;if(m+5)printf(%dn,m);elseprintf(%dn,m-);结果:6练习4_8 以下程序的输出结果是#include void main()int k=1,x=0,y=0;switch(k)case 0:y+;case 1:x+;case 2:x+;y+;printf(x=%d,y=%dn,x,y);结果x=2,y=1三、循环程序设计1、while语句、一般格式 while(循环继续条件) 循环体语句组;、执行过程求解“循环继续条件”表达式。如果其值为非0,转;否则转。执行循环体语句组,然后转。执行while语句的下一条。练习4_9:/*程序功能:求1100的累计和*/#include void main() int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/ while( i=100 ) sum += i;/*实现累加*/ i+;/*循环控制变量i增1*/ printf(“sum=%dn”,sum); 程序运行情况如下:sum=50502、do-while语句(直到型循环)、一般格式 do 循环体语句组; while(循环继续条件);/*本行的分号不能缺省*/当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。、执行过程执行循环体语句组。计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向继续执行;否则,转向。执行do-while的下一条语句。、do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况。练习4_10:用do-while语句求解1100的累计和。/*程序功能:求1100的累计和*/main() int i=1, sum=0; /*定义并初始化循环控制变量,以及累计器*/ Do sum += i; /*累加*/ i+; while(i=100);/*循环继续条件:i=100*/ printf(“sum=%dn”,sum); 3、for语句、for语句的一般格式 for(变量赋初值;循环继续条件;循环变量增值) 循环体语句组;、for语句的执行过程求解“变量赋初值”表达式。求解“循环继续条件”表达式。如果其值非0,执行;否则,转至。执行循环体语句组,并求解“循环变量增值”表达式,然后转向。执行for语句的下一条语句。、说明“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。例如,for(sum=0;i=100;i+) sum += i; for(sum=0,i=1;i=100;i+) sum += i;“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。如:while(!E)等价于while(0),while(E)等价于while(1)。练习4_11:求n的阶乘n!(n!=1*2*n)。/*程序功能:求n!*/main() int i, n; long fact=1;/*将累乘器fact初始化为1*/ printf(“Input n: ”); scanf(“%d”, &n); for(i=1; i=n; i+)fact *= i;/*实现累乘*/ printf(%d ! = %ldn, n, fact); 程序运行情况如下:Input n: 55 ! = 120练习4_12 有以下程序#include void main()int a=10,b=10,i;for(i=0;a8;b=+i)printf(%d %d ,a-,b);程序输出的结果是10 10 9 1练习4_13 有以下程序#include void main()int k;for(k=0;k10;k+);printf(%d,k);答案:10练习4_14 以下程序的运行结果是#include void main()int m;for(m=1;m=1) a-;程序执行后,a的值是0。5、循环的嵌套、循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。循环嵌套的概念,对所有高级语言都是一样的。、for语句和while语句允许嵌套,do-while语句也不例外。练习4_18:编程: 输出下列图形 * * * * *解:/*程序功能:打印5行*,第一行1个,第二行3个,第三行5个.*/#include void main() int i=1; while(i=5) int j=1,k=1; while(j=5-i) printf( ); j+; while(k3) 程序代码如下:#includevoid main() int F1=1,F2=1; int F,S=2,n=3; while(n=12) F=F1+F2; F1=F2; F2=F; S=S+F; n+; printf(S=%dn,S); 练习4_20 求输入的十个整数中正数的个数及其平均值#include void main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);练习4_21:编程:设计一个程序完成以下功能:若输入英文字母,则原样输出;输入其他字符,则不输出,直到输入q键结束。解:#include void main()char ch;doch=getchar();if(ch=Q | ch=q)break;else if(ch=A & ch=a & chn2?n1:n2); main()int max(int n1, int n2);/*函数说明*/ int num1,num2; printf(input two numbers:n); scanf(%d%d, &num1, &num2);printf(max=%dn, max(num1,num2);、说明函数定义不允许嵌套(但函数的调用可以嵌套)。在语言中,所有函数(包括主函数main())都是平行的。一个函数的定义,可以放在程序中的任意位置,主函数main()之前或之后。但在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。空函数既无参数、函数体又为空的函数。其一般形式为:函数类型 函数名(void) 在老版本C语言中,参数类型说明允许放在函数说明部分的第2行单独指定。 2、函数的返回值与函数类型函数返回值与return语句有参函数的返回值,是通过函数中的return语句来获得的。return语句的一般格式: return ( 返回值表达式 );return语句的功能:返回调用函数,并将“返回值表达式”的值带给调用函数。注意:调用函数中无return语句,并不是不返回一个值,而是一个不确定的值。为了明确表示不返回值,可以用“void”定义成“无(空)类型”。函数类型函数的类型说明符指明了函数的类型,它实际上是函数返回值的类型。如果不要求函数有返回值,函数的类型说明符可以写为void,如果缺省,C语言函数返回类型的默认定义类型是int型。在定义函数时,对函数类型的说明,应与return语句中、返回值表达式的类型一致。如果不一致,则以函数类型为准。如果缺省函数类型,则系统一律按整型处理。即:在C语言中,函数返回值的数据类型取决于在定义该函数时所指定的数据类型。3、对被调用函数的说明和函数原型在ANSI C新标准中,采用函数原型方式,对被调用函数进行说明,其一般格式如下:函数类型 函数名(数据类型 参数名, 数据类型 参数名2);/C语言同时又规定,在以下3种情况下,可以省去对被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级品德与生活上册 送给新年的礼物教学设计 苏教版
- 人教版新课标A必修11.3.2奇偶性教案配套
- 六年级语文上册 第五单元 15 夏天里的成长教学设计 新人教版
- 公司专业印章使用授权书
- 三年级英语下册 Module 1 Using my five senses Unit 3 Sounds第3课时教学设计 牛津沪教版(三起)
- 七年级信息技术上册 第8课时 用户界面及基本操作教学设计 科教版
- 初中语文人教部编版七年级下册假如生活欺骗了你教学设计
- 人教部编版一年级下册第一单元 我的好习惯1 我们爱整洁教学设计
- 2024内蒙古德恩管理咨询有限公司招聘专业人才(第二批)笔试参考题库附带答案详解
- 会响的玩具(教学设计)-2024-2025学年人教版(2012)美术三年级上册
- 造价咨询服务投标文件
- DB11T 1539-2018 商场、超市碳排放管理规范
- DB11T 1796-2020 文物建筑三维信息采集技术规程
- 小学三年级下册数学(苏教版)和差倍问题专项训练
- 金属非金属地下矿山安全生产标准化定级评分标准(2023版)
- 化工技术经济(第五版)课件-第7章-项目可行性研究与决策-
- 安全扫描漏洞管理方案
- 高级烟草制品购销员(三级)职业资格鉴定理论考试题及答案
- GA/T 527.2-2024道路交通信号控制方式第2部分:通行状态与控制效益评估指标及方法
- 员工工资表范本
- 高中物理必修三《电磁感应现象的应用》说课课件
评论
0/150
提交评论