1、C语言课件,为什么从C语言开始,开发能力最强,应用最广泛操作系统开发、应用程序开发、单片机程序开发、网络程序设计 专业水平的试金石各种专业考试首选程序设计语言:研究生入学考试、程序员考试、等级考试 后续主干课程的重要基础数据结构、数据库程序设计、Java程序设计、可视化程序设计、网络编程,如何学习C语言编程?,编程似写作先学“字词句”和“语法”,目标是“写作”。学习数据类型、控制结构、语法规则等学语基掌握程序分析、算法与编程写文章 仅仅读书是不够的程序是编出来的,程序是调出来 在编程实践中消化知识。 没有天生的程序员初学者:有点难。没有学不会的,只有学不精的除非自己放弃。出于蓝胜于蓝:超过你的
2、老师完全可能。 循次渐近很重要阅读/分析程序摹仿编程掌握常见程序模块简单程序复杂编程 仅是起点,而非终点从此编程与你相伴而行真正的程序员从此起步。,听课要求:切实掌握各章主要内容(预习/听课/消化/归纳)在预习基础上,听课为主,笔记为辅,课后弄懂课件和 教材中的程序(会分析,会流利写出) 考核方式:作业(书面/上机)、期中考、期末考,第一章 C语言概述,目的要求:了解C语言的特点掌握C程序的组成及书写要求熟悉C程序的上机步骤了解算法的概念及其常用表示形式 重点难点:C程序的组成及书写要求C程序的上机步骤,1.1 C语言的特点语言简洁,语法限制少,灵活性大运算符、数据结构丰富程序的可移植性好,1
3、.2 简单的C程序介绍,例1main( )printf(“this is a c program.n”); 例2main( ) int max(int x,int y) int a,b,c; int z;scanf(“%d,%d”, ,格式特点 习惯用小写字母 可使用空行和空格 常用锯齿形书写格式,main( ) int i , j , sum;sum=0;for(i=1; i10;i+)for(j=1;j10;j+)sum+=i*j ;printf(“%dn”,sum); ,优秀程序员的素质之一: 对齐 有足够的注释 有合适的空行,结论:,C程序由函数构成,函数是C程序的基本单位,一个C源程
4、序至少包含一个main函数也可以包含一个main函数和若干其他函数 函数的组成函数的首部。包括函数名、函数类型、函数参数名、函数参数类型int max(int x,int y)函数体声明部分执行部分,C程序的执行及主函数的位置 C程序书写格式自由,一行内可写多条语句,一个语句也可以分写在多行上,语句和数据定义的最后必须加一个分号 语言中没有专门的输入语句 用可对程序的任何部分作注释,1.3 上机步骤,进入urbo C环境的步骤(设urbo C安装在c盘tc子目录下)进入DOS在盘根目录下键入CD TC(回车)在TC目录下再次键入TC(回车),运行程序的步骤上机输入与编辑源程序对源程序进行编译与
5、库函数连接运行目标程序,进入Turbo C 2.0集成开发环境中后, 屏幕上显示: File Edit Run Compile Project Options Debug Break/watch Edit Line 1 Col 1 Insert Indent Tab File Unindent c:NONAME.C Message F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu ,file.exe,程序代码的录入, 生成源程序*.c,语法分析查错,翻译 生成目标程序*.obj,与其它目标程序或库 链接装配,生成可执行 程序
6、*.exe,第一步:选择主菜单的edit菜单 第二步:选择主菜单中的compile菜单并在其下拉菜单中选compile to obj 第三步:选择compile菜单的下拉菜单中的compile/line exe file 第四步:按F10(ctrl+f9)键,选RUN下拉菜单中的run命令,程序:计算机能识别和执行的指令 程序=数据结构+算法,1.4 算法,算法:为解决一个问题而采取的方法和步骤例:求1+2+3+100 算法1:顺序加 算法2:简便方法,算法的常用表示形式,三种基本结构顺序结构,A,B,选择结构,A,P,B,成立,不成立,循环结构 当型循环结构 直到型循环结构,P,A,成立,不
7、成立,A,P,成立,不成立,例:打印5个“*”,j=0,j5,j=j+1,打印“*”,Y,N,j=0,j=j+1,打印“*”,j5,Y,N,高级语言程序设计,第二章 数据类型、运算符与表达式,目的要求:了解基本数据类型及其常量的表示方法掌握变量的定义及初始化方法掌握运算符的运算规则与表达式的概念领会C语言的自动类型转换、强制类型转换和赋值的概念。 重点难点:整型数据的溢出转义字符的含义及具体使用+、-的运算规则,基本类型 整型字符型实型 C的数据类型 构造类型 数组类型结构体类型 共用体类型指针类型空类型,基本类型字符型(char) 1字节整型短整型(short int ) 2字节基本型(in
8、t) 2字节(-3276832767)长整型(long int ) 4字节(21亿)实型单精度(float) 4字节 67位有效数字长单精度(long float) 8字节 1516位有效数字双精度(double) 8字节 1516位有效数字长双精度(long double)10字节 20位有效数字,可知对不同数据类型占用的存储空间:charshort=intlong =floatdouble,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,常量:在程序运行过程中,其值不会被改变的量类型:整型常量:15,0,-7实型常量:1.2,-3.0字符常量:a,b,c
9、注:符号常量,2.1常量,#define WIDTH 80 #define LENGTH (WIDTH+40) main() int k,num;num=20;k=LENGTH*num;printf(“%d“,k); ,结果:2400,使用符号常量的好处:见名知意一改全改,2.2 变量,变量:其值可以改变的量int a;a=30; a 变量名变量值存储单元,30,标识符:用来标识变量名、符号常量名、 函数名、数组名、文件名的有 效字符序列组成:只能由字母、数字、下划线组成,且第一个字符必须为字母或下划 线,不能为C语言中关键字,_123,temp,p_9 合法 B-a,1a0,goto 不合法
10、,说明:大、小写被认为是不同的标识符不同系统对标识符长度的规定不同在变量使用时,一定要先定义,后使用,2.3 整型数据,整型常量 P41十进制数 12 -12 0八进制数 012 -012十六进制数 0x12 -0x12 整型变量分类:基本类型: int短整型:short int 或short长整型:long int或long符号数和无符号数的表示,整型变量的定义格式:变量类型 变量名,变量名;例:int a,b;short int c;unsigned long d,e;,注意事项,整型整数 int 的范围: 3276832767 Example:#include #include main
11、()int a ;clrscr( ); printf(“Input :”);scanf(“%d”,运行结果:Input:12345a=12345Input:1234567a= -10617,Why?!,Because: 12345的补码是 00110000001110011234567的补码是 100101101011010000111 截去多余部份(超过2个字节的左边部分)后其原码为1010100101111001(-10617) 参见教材P44“整型数据的溢出”。,可用下图表示:3276732766 32765-32766-32767-32768,有趣的结果,2.4 实型数据,实型常量 P
12、45十进制形式 123.45 2.0 ( 必有小数点)指数形式 2.45e-4 1.13E3 (e或E前为数,后为整数)实型常量本身无单或双精度,其机内精度取决于赋给那类变量(影响有效数字位数,见P15示例) 实型变量分类:单精度型( float)双精度型(double)长双精度型(long double),Float x,y; Double z;Long double t;,实型数据的舍入误差main() float a,b;a=123456.789e5;b=a+20;printf(“%f”,b); 实型常量的类型,2.5 字符型数据,字符常量 普通字符(可显示字符)A ? (只能单字符单引
13、号)错误:ABC “A” ” 转义字符(以开头)如回车符、单引号、反斜杠等在程序中这些符号用表3.3所示的“转义字符”表示。 字符串(用双引号括起)“A” “?” (以0为字符串结束标志) 注意:用char定义的字符变量只能接受字符常量,而不能接受字符串常量(C语言中无字符串变量)char a=U ; char b=“U”; (b被置为某随机值),Example: main() char c1=a ,c2; c2=98; printf(“%d,%dn”,c1,c2); ,结果:97,98,Example: main() char c1=“a” ,c2; c2=98; printf(“%d,%d
14、n”,c1,c2); ,结果:-108,98 若让c1分别等于“U”、“ABC”、“A”结果不变,随机值,转义字符例题分,Example: main()char ch;ch=362;printf(“%c,%d”,ch,ch); 运行结果: ,14 ch = 3628=24210=111100102 111100102 化为原码为 10001110= 1410,转义字符例题分析,Example: P49例3.5 main()printf( “_ _ a b _ c t _ d e r f t g n ”);printf( “h t I b b j _ _ _ k” ); 运行结果:,_ _ a
15、b _ c,_ _ a b _ c _ _ _ d e,f _ a b _ c _ _ _ d e,f _ _ _ _ _ _ _ g d e,h,h _ _ _ _ _ _ _ l,h _ _ _ _ _ _ _,h _ _ _ _ _ _,h _ _ _ _ _ _ j _ _ _ k,什么时候要使用转义字符?,转义字符只在特殊情况下才使用: C程序中需要实现某些特定打印或显示动作时如 printf(“123t56n”); C程序中需要打印或显示以下三个字符时 (斜杠) “ (双引号) (单引号)如 printf(“Youre a ”a bad egg!” ” ); C程序中需要打印或显示
16、ASCII表中非键盘字符时如 printf(“ Look 16 and x80 !”);,注意:使用转义字符时,后的八进制或十六进制数不应大于char类型所允许的范围(十进制值256)。,字符变量 char a,b;,说明: C允许字符数据和整数直接进行算术运算例:B+32 字符数据和整数之间可以进行赋值例:int I;char c;I=a;c=97;,字符串常量,字符串常量:由一对双引号括起来的字 符序列例:“sum”, “a”,“program”,字符串常量有关问题,与“”的区别问题(判断正误):char c=“China”;char c=China; “China”占几个字节?141占几
17、个字节?,等于十进制数97 即字符a,2.6 变量赋初值,变量名必须符合标识符命名规则 变量必须先定义后使用int a; a=3; 定义变量时可以对变量初始化int a=3;例: b=(a=3+5) a=b=c=d=3+5 (结果均为8)例:int a=b=c=d=3+5 (语法错误,除非b,c,d定义过)正确:int a, b=a=3+5;例: c=3+(a=5)*6 结果:c=33,a=5(一个语句可以有几个赋值运算),2.7 数据间的转换(混合运算),数据的类型级别 P54图3.10Double floatLongUnsignedInt char, short,高,低,基本规则 不同类型
18、运算量参加运算,遵守“向高看齐”的类型一致化规则:将长度较短的运算量转换为长度较长的运算量,以保证不丢失信息。 注:向左为必定转化方向 例:int i; float f; double d; long e;10+a+i*f-d/e判断运算后的数值类型,2.8 强制类型转换 P56,例一:(int)3.5 的值是多少?,例二:main() int x=5; float y=3.5;printf(“%d”, (int)y+x);结果是什么?,8,一般形式:(类型名)(表达式) 转换后表达式的数据类型为新的类型,但表达式中变量本身类型不变。,3,程序执行后y的类型是什么?,2.9 算术运算符和算术表
19、达式,C语言运算符 P55 1、算术运算 算术运算符 + * / % 例: 14%(-4)=2 -14%(-4)=-2 20.4%2(出错)例:若int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4 的值是什么?2.500000 (1/4为0)例: float x,y; x%y; (出错),自反算术赋值运算符(复合的赋值运算符) P62+= -= *= /= 等解法:将b*=看作b=b*(),其余类推例: c=b*=a+3 相当于(1)a+3 (2)b=b*(a+3) (3)c=b 例:若 i 、j 的初值分别为3和4,则执行 j+=i- =1
20、 后i 、j 的值为多少?,解题步骤:i=i-1=3-1=2j=j+i=4+2=6 结果:i=2, j=6,关于优先级和结合方向: P56C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行。如果在一个运算对象两侧的运算符的优先级别相同,则按规定的结合方向处理。(各种运算符的优先级和结合性见P375附录) 【例】设i、j初值分别为3和4,则执行 j+=i-=1;后 i ,j的值为多少? 【例】若x=7;则x+=x-=x+x的值是多少?,(i=2,j=6),(-14),解法:从右到左,先做x=x-(x+x)=-7,再做x=x+x=-14,自加、自减运算符 P57+
21、(自加运算符)-(自减运算符)用法: +1 -1 运算a、前缀形式int i=5; x = + i ; y= i ; (x=6, i =6, y=6)int i =5; + i ; y= i ; ( i =6, y=6)b、后缀形式int i =5; x = i +; y= i ; (x=5, i =6, y=6)int i =5; i +; y= i ; ( i =6, y=6),若对某变量自加/自减而不赋值,结果都是使该变量自身1; 若某变量自加/自减的同时还要参加其他运算,则前缀运算是先变化后运算,后缀运算是先运算后变化。 注意:运算对象只能是变量, 5+或(x+y)+均为错,例一: m
22、ain() int a=100; printf(“%dn”,a); printf(“%dn”,+a); printf(“%dn”,a+); printf(“%dn”,a); 运算结果:100 101 101 102,例二: 若 int x=3,y; 求下列运算后y和x的值y=x+ -1; (2 4) y=+x -1; (3 4) y=x - - +1; (4 2) 分析思路:先对右边的表达式进行扫描,如果x+,先取x值完成表达式运算后再让x自加1,如果+x,则先将x自加1后再代入表达式进行其他运算,逗号运算 P63-64C语言中逗号可作分隔符使用,将若干变量隔开如 int a,b,c;又可作运
23、算符使用,将若干独立的表达式隔开,并依次计算各表达式的值。其一般形式表达式1,表达式2,表达式n;逗号表达式的求解过程:先求表达式1的值,再求表达式2的值,最后求表达式n的值。整个逗号表达式的值是最后一个表达式n的值。在C语言所有运算符中,逗号表达式的优先级最低。,【例一】 main( ) int x,a; x=(a=3*5,a*4,a+5); printf(“x=%d,a=%dn”,x,a); ,【例二】 main( ) int x,a; x=(a=3*5,a*4),a+5; printf(“x=%d,a=%dn”,x,a); ,运算结果:x=20,a=15,运算结果:x=60,a=15,【
24、例三】main() int a,b,x;x=(a=8,b=15,b+,a+b);printf(“a=%d,b=%d,x=%dn”,a,b,x);,运算结果:a=8,b=16,x=24,第三章 顺序程序设计,程序数据描述:定义数据类型和数据初值数据操作:对数据进行加工,由语句 实现,目的要求:掌握算法的基本概念掌握结构化程序设计的基本概念了解C的语句组成及分类掌握C语言常用的输入/输出方式。 重点难点:各种格式字符的输出格式地址的含义及取地址符号&的用法算法的概念及几个简单算法的表示,3.1 C语句概述 C语句:以“;”作分隔符,编译后产生机器指令. C语句分类 控制语句,表达式语句:表达式加分
25、号构成。 函数调用语句 空语句 复合语句:用 括起来的一组语句 一般形式: 数据说明部分;执行语句部分; 说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套,3.2 数据的输入输出,标准输入输出库函数putchar(输出字符) getchar(输入字符)printf(格式输出) scanf(格式输入) puts(输出字符串) gets(输入字符串)标准输入输出库函数 stdio.h#include 或 #include “stdio.h”,一、字符数据的输入输出,1、字符输出函数 P71格式: putchar(c)其中 c为字符型或整型的常量、变量及其表达式 功能:每次向屏幕输出一个
26、字符供显示。,【例】求以下程序运行结果 #include main()char x=a;putchar(x);putchar(b);putchar(x+2);putchar(b+2);,结果:abcd,2字符输入函数 格式: getchar( ) 功能: 从键盘上读入一个字符, getchar( )包含在stdio.h中,,【例一】 #include main() char a,b;a=getchar();b=getchar(); printf(“a=%c,b=%cn”,a,b); 运行时,如果输入:Student 输出结果为 a=S,b=t,二、格式输入输出,1.格式输出函数 格式:prin
27、tf(“格式控制串”,输出表列) 功能:按指定格式向显示器输出数据 输出表列:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明:%格式字符,用于指定输出格式 普通字符或转义序列:原样输出 格式字符,int a=567;printf ( “%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf(“%o”,a);,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC”);,float a=567.789;printf(“%e”,a);,fl
28、oat a=567.789;printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.677890e+002,567.789000,567.789,%,说明 除x、e、g外,其它格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项类型不一致,自动按指定格式输出,附加格式说明符(修饰符),int x=1,y=3;printf(“x=%d y=%d *sum*=%dn”,x,y,x+y);,int x=7281;printf(“x=%3d,x=%6d”,x,x)
29、;,long a=135790;printf(“%ld,%8ld”,a,a);,int x=-1;printf(“%x,%o,%d,%12x”,x,x,x,x);,main() printf(“n*s1=%15s*”,”chinabeijing”);printf(“n*s2=%-5s*”,”chi”);printf(“n*s3=%15.3s*”,”chinabeijing”);printf(“n*s4=%.4s*”,”chinabeijing”);printf(“n*s5=%-15.3s*”,”chinabeijing”); ,main() float a=123.444;printf(“%f
30、n”,a);printf(“%14.3fn”,a);printf(“%6.4fn”,a);printf(“%.4fn”,a); ,例题:,例 int a=1234;float f=123.456;printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f);,例 int a=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);,2.格式输入函数,格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束 地址表
31、:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e,附加格式说明符(修饰符),输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符 间字符,输入时应原样输入例:“%d%d%d”格式控制 3_ _ 4 _ _ 534 _ 53(tab)_ _ 45,scanf(“%d,%d”,可以指定输入数据的列数,系统自动按它截取所需数据,scanf(“%3d%3d”,scanf(“%2d_ %*3d_ %2d”,123456 abc,12_345_67,scanf(“%7.2f ”,若%后有一个“*”,表示跳过指定列数,输入时不能规定精度,
32、说明: 用“%c”格式符时,空格和转义字符作为有效字符输入,scanf(“%c%c%c”,scanf(“%d%c%f”,输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入,例 输入三角形边长,求面积,#include #include main() float a,b,c,s,area;scanf(“%f,%f,%f“, ,输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50area= 5.33,3.3 顺序结构程序设计举例,例 从键盘输入大写字母,用小写字母输出,#include “stdio.h“ main() ch
33、ar c1,c2;c1=getchar();printf(“%c,%dn“,c1,c1);c2=c1+32;printf(“%c,%dn“,c2,c2); ,输入:A 输出:A,65a,97,#include #include main() float a,b,c,disc,x1,x2,p,q;scanf(“a=%f,b=%f,c=%f“, ,输入:a=1,b=3,c=2 输出:x1=-1.00x2=-2.00,第四章 选择结构程序设计,学习目的:掌握关系运算符和逻辑运算符的运算规则及优先级关系掌握条件语句的语句格式和执行顺序学会进行选择结构程序设计 重点难点:条件语句的嵌套选择结构程序的分析
34、方法和设计方法,4.1 关系运算符和关系表达式,关系运算符= (优先级相同)高= != (优先级相同)低算术运算符 (高)关系运算符赋值运算符 (低) 例:,ca+b cb=aa=bc,关系表达式概念:由关系运算符将两个表达式连接起来的式子如:d+ab+c (ab)(cd)关系表达式的值 真 以1代表假 以0代表,例:当a=3,b=2,c=1 求 f=abc的值当a=5,b=4,c=2 求ab!=c的值,4.2 逻辑运算符和逻辑表达式,逻辑运算符&(逻辑与) |(逻辑或) !(逻辑非)逻辑运算符的运算规则 优先级:! & | (高) (低),! (高) 算术运算符 关系运算符&和| 赋值运算符
35、 (低),例 (ab)&(xy)(a=b)&(xb),逻辑表达式 逻辑运算结果逻辑值:真(1)假(0)运算量的判断:假(0)真(非0) 例:a=6,b=4,c=2,求表达式!(a-b)+c-1&b+c/2的值,4.3 if 语句,if 语句 的三种形式 形式一格式:if (expression) statement执行过程:,例:if (xy)printf(“%d”,x);,形式二格式:if (expression) statement1elsestatement2 执行过程:,例:if (xy) max=x;else max=y;,形式三:格式:执行过程:,if ( expr1 ) stat
36、ement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else if (exprm) statementm else statementn,例:if (salary1000) index=0.4; else if (salary800) index=0.3;else if (salary600) index=0.2;else if (salary400) index=0.1;else index=0;,说明: if后面的表达式类型任意 语句可以是复合语句if(x) if(x!=0)if(!x) if(x=0),如:if
37、(a=b,例 考虑下面程序的输出结果: #include main() int x,y;scanf(“%d,%d”, ,Compile Error!,例:,求一个数的绝对值,#include main() int x,y;printf(“Enter an integer:“);scanf(“%d“, ,运行:Enter an integer:-12integer:-12-absolute value :12,比较两个数,求其中的大者,main() int a,b;printf(“Enter integer a:“);scanf(“%d“, ,求y= x(x+2) 2x=102x -1x=2x-
38、1 x=-1,main() int x,y; scanf(“%d”, ,4.4 If 语句的嵌套,注:if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,结果:-1,main() int a=2,b=3,c;c=a;if(ab) c=1;else if (a=b) c=0;else c=-1;printf(“%d”,c); ,对函数y= -1 (x0) 编程序,输入x的值,输出y的值 程序1: 程序2:,main() int x,y;scanf(“%d”, ,main() int x,y;scanf(“%d”, ,程序3: 程序4:,main() int x,y
39、;scanf(“%d”, ,main() int x,y;scanf(“%d”, ,读程序写结果,main() int a=1,b=3,c=5,d=4;if(ab)if(cd) x=1;else if (ac)if(bd) x=2;else x=3;else x=6;else x=7; printf(“x=%d”,x); ,结果:x=2,4.5 switch语句(开关分支语句) 一般形式:switch( 表达式) case E1: 语句组 1;break;case E2:语句组 2;break;.case En:语句组 n;break;default:语句组 n+1;,说明: E1,E2,En
40、是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A:case B:case C: printf(“score60n”);break;,例 switch(score) case 5: printf(“Very good!”);case 4: printf(“Good!”);case 3: printf(“Pass!”);case 2: printf(“Fail!”);default : printf(“data error!”);,运行结果:score为5时,输出:V
41、ery good! Good! Pass! Fail! data error!,例 main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0: a+; break;case 1: b+; break;case 2: a+;b+; break;case 3: a+;b+;printf(“na=%d,b=%d”,a,b);,运行结果:a=2,b=1,例 根据输入字母输出字符串,#include main() int c;printf(“Enter m or n or h or other:“);c=getchar();switch(c
42、) case m: printf(“nGood morning!n“);break;case n: printf(“nGood night!n“); break;case h: printf(“nHello!n“); break;default : printf(“n?n“); break; ,4.6 条件运算符,一般格式表达式1?表达式2:表达式3说明:执行顺序优先级结合方向表达式的类型,例:设int x=1,y=0;x- (y+x)?10:12.5y+?A:Z例:int x=0,y=1;x+*x-!=y?8-4:y,4.7 程序举例:,例1 写一个程序,判断某一年是否闰年,Year被4整除
43、,Year被100整除,Year被400整除,Y,Leap=1,N,Leap=0,Y,N,Leap=1,Y,N,leap=0,Y,N,输出闰年,输出非闰年,leap,main() int year,leap;scanf(“%d”, ,程序:,例2:求ax2+bx+c=0方程式的根,main() float a,b,c,disc,x1,x2,real,imag; else scanf(“%f,%f,%f”,运输公司对用户计算运费。标准如下: s250km 没有折扣 250=s500 2%的折扣 500=s1000 5%的折扣 1000=s2000 8%的折扣 2000=s3000 10%的折扣 3000=s 15%的折扣 f=p*w*s*(1-d),例3:,main() int c,s; case 10;float p,w,d,f; case 11:d=10;break;scanf(“%f%f%d”,case 8:case 9:,