程序设计基础(C语言) 程序设计基础(C语言)_第1页
程序设计基础(C语言) 程序设计基础(C语言)_第2页
程序设计基础(C语言) 程序设计基础(C语言)_第3页
程序设计基础(C语言) 程序设计基础(C语言)_第4页
程序设计基础(C语言) 程序设计基础(C语言)_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础(C语言) 程序设计基础(C语言) 基本语句 复合语句 程序控制语句程序设计基础(C语言) t=a;a=b;b=t; a=10; printf( “%d” ,a ); 执行复合语句实际是执行该复合语句一对大括号中所有语句程序设计基础(C语言) 程序设计基础(C语言) 变量表;n基本数据类型,例如:int、float、charn变量表:由一个或多个变量组成n例: int a,b,c; float i,j,k;n提示C程序中所有变量声明语句应放在函数的“”和任何可执行语句之前程序设计基础(C语言) a=b*2; /*赋值运算表达式语句*/ +j; /*前缀运算表达式语句*/ x+y;

2、/*x+y;是算术表达式语句*/ 提示n表达式语句和表达式的区别在于表达式代表的是一个数值,表达式语句代表的是一个动作特征程序设计基础(C语言) 1】 main main()() float a=123.456 float a=123.456; double b=8765.4567double b=8765.4567; printfprintf(“(1 1)%fn%fn”,a,a); ; printf printf(“(2 2)%14.3fn%14.3fn”,a,a); ; printf printf(“(3 3)%6.4fn%6.4fn”,a,a); ; printf printf(“(4

3、4)%lfn%lfn”,b,b); ; printf printf(“(5 5)%14.3lfn%14.3lfn”,b,b); ; printf printf(“(6 6)%8.4lfn%8.4lfn”,b,b); ; printf printf(“(7 7)%.4fn%.4fn”,b,b); ; (1 1)123.456000123.456000(2 2)123.456123.456(3 3)123.4560123.4560(4 4)8765.4567008765.456700(5 5)8765.4578765.457(6 6)8765.45678765.4567(7 7)8765.4567

4、8765.4567顺序结构程序设计基础(C语言) 2】 编写程序:输入两个整数编写程序:输入两个整数a a和和b(b(设设a=100,b=17)a=100,b=17) 求求a a除以除以b b的商和余数。的商和余数。 #include “stdio.h”#include “stdio.h” main( )main( ) int a, b, x, y; int a, b, x, y; scanf (“%d, %d”, &a, &b); scanf (“%d, %d”, &a, &b); x=a/b; /x=a/b; /* * 求求a/ba/b的商的商 * */ /

5、 y=a%b; /y=a%b; /* * 求求a/ba/b的余数的余数 * */ / printf (“a=%3d, b=%3d,a/b=%4d, a%b=%4dn”, a, b,x,y);printf (“a=%3d, b=%3d,a/b=%4d, a%b=%4dn”, a, b,x,y); 顺序结构程序设计基础(C语言) 3】编写一个程序用于水果店售货员算帐:已知苹果每斤编写一个程序用于水果店售货员算帐:已知苹果每斤2.52.5元,梨每元,梨每斤斤1.81.8元,香蕉每斤每斤元,香蕉每斤每斤2.02.0元,橘子每斤元,橘子每斤1.61.6元,要求输入各类水果的重元,要求输入各类水果的重量,

6、打印出应付钱数,再输入顾客应付款数,打印出应找的钱数。量,打印出应付钱数,再输入顾客应付款数,打印出应找的钱数。 演示演示3f3f #include“stdio.h”#include“stdio.h”mainmain()()float p,y,x,j,ys,g,fk;float p,y,x,j,ys,g,fk; prinft prinft(“苹果苹果, ,鸭梨鸭梨, ,香蕉香蕉, ,橘子橘子=”=”); ; scanf scanf(“%f,%f,%f,%f”,&p,&l,&x,&j%f,%f,%f,%f”,&p,&l,&x,&j)

7、;/;/* *输入各数之间用逗号分隔输入各数之间用逗号分隔* */ / ys=2.5 ys=2.5* *p+1.8p+1.8* *l+2.0l+2.0* *x+1.6x+1.6* *j;j; printf printf(“顾客付款(元)顾客付款(元)=”=”); ; scanf scanf(“%f”,&g%f”,&g); ; fk=g-ys; fk=g-ys; printf printf(“计算结果计算结果:n”:n”); ; printf printf(“顾客付款顾客付款=%6.2f=%6.2f元元nn应收货款应收货款=%6.2f=%6.2f元元nn应找回应找回=%6.2f=

8、%6.2f元元 n”,g,ys,fkn”,g,ys,fk); ; 顺序结构程序设计基础(C语言) 程序设计基础(C语言) 在判断条件时又以非0为真,以0为假 少数情况下也可以是算术表达式n这个表达式的结果将决定程序下一步的执行顺序n例C1是否为小写字母的条件是:X在1,10和200,210之间为真, 否则为假的条件是:(c1=ac1=a)&(c1=zc1=1x=1)&(x=10 x=200 x=200)&(x=210 x=210) ) )程序设计基础(C语言) if 语句共有三种形式语句共有三种形式n简单简单if if nifelse ifelse nifelse.if

9、ifelse.if程序设计基础(C语言) if(表达式) s1;n表达式表示对一个条件的判断表达式的结果为0或1,通常为关系表达式或逻辑表达式,也可以直接表示成某一数值表达式必须用括号ns1从语法上应是一条语句,当在此执行多条语句,必须用大括号将它们括起来,构成复合语句执行过程n计算表达式的值若为“真”,则执行语句1否则将跳过语句1执行if语句的下一条语句 语句语句S Syesyesnonoe程序设计基础(C语言) and a=1”);nif(99)printf(“true!”);nif(0)printf(“its zreo”);nif (a) printf(“true!”); nif (1)

10、 printf(“true!”);问题?下面语句的区别:nif (a=0) printf(“a is 0”); nif (a=0) printf(“a is 0”); nif (a=1) printf(“a is 1”); nif (a=1) printf(“a is 1”); 程序设计基础(C语言) main main()() int a,b;int a,b; printf printf(“enter two numbers:enter two numbers:”); ; scanf scanf(“%d%d%d%d”,&a,&b,&a,&b); ; if if

11、(b b) printfprintf(“%d%d”,a/b,a/b); ; 程序设计基础(C语言) aint a,absaabsa; printfprintf(“enter one number:enter one number:”);); scanfscanf(“%d%d”,&a,&a);); absa=aabsa=a; ifif(a0a0) absa=-aabsa=-a; printfprintf(“|%d|=%d|%d|=%d”,a,absa,a,absa);); 程序设计基础(C语言) e e S1 S1 S2 S2yesyes no no程序设计基础(C语言) int

12、 a,absa;int a,absa; printf printf(“enter one number:enter one number:”); ; scanf scanf(“%d%d”,&a,&a); ; if if(a0a0) absa=-a;absa=-a; else else absa=a; absa=a; printf printf(“|%d|=%d|%d|=%d”,a,absa,a,absa); ; mainmain()()int aint a,absaabsa; printfprintf(“enter one number:enter one number:”);

13、); scanfscanf(“%d%d”,&a,&a);); absa=aabsa=a; ifif(a0a1x1) y=x;y=x; else y=0; else y=0; printf printf(“%f%f%f%f”,x,y,x,y); ; 程序设计基础(C语言) a和和b b,若,若a a2 2+b+b2 2大于大于100,100,则输出则输出a a2 2+b+b2 2百位以上的百位以上的数字,否则输出两数之和。数字,否则输出两数之和。mainmain()() int aint a,b b,x x,y y; scanfscanf(“%d%d%d%d”,&a,&a

14、mp;b,&a,&b);); x=ax=a* *a+ba+b* *b b; ifif(x100 x100) y=x/100 y=x/100; printfprintf(“%d%d”,y,y);); else else printf printf(“%d%d”,a+b,a+b);); mainmain()()int aint a,b b; scanfscanf(“%d%d%d%d”,&a,&b,&a,&b);); ifif( a a* *a+ba+b* *b 100b 100) printfprintf(“%d%d”,(a,(a* *a+ba+b*

15、 *b)/100)b)/100); else else printf printf(“%d%d”,a+b,a+b);); if语句程序设计基础(C语言) if语句对于一个问题可能需要从多方面进行判断,有多种可能的情况进行处理程序设计基础(C语言) if语句执行过程示意图e e1 1语句语句S1S1e e2 2语句语句S2S2e en n语句语句SnSn语句语句Sn+1Sn+1Y YN NY YY YN NN N提示:提示:n这是一条语句这是一条语句n属于双分支结构的嵌套属于双分支结构的嵌套程序设计基础(C语言) 10 x11x310 x11x21xxsinx2xY22 x1? x1? y=x

16、y=x2 2+2x+sin+2x+sin(x x) x10? x10? y=2x-1 y=2x-1 y=sqrt(3x y=sqrt(3x2 2-11)-11)yesyesnonononoyesyes程序设计基础(C语言) #include #include “math.hmath.h” #include #include“stdio.hstdio.h” main main()() float xfloat x,y y; printfprintf(“enter a xenter a x:”);); scanfscanf(“%f%f”,&x,&x);); ifif(x1.0 x1

17、.0) y=xy=x* *x+2x+2* *x+sin(X)x+sin(X); else ifelse if(x=10.0 x=10.0) y=2y=2* *x-1x-1; else else y=sqrt y=sqrt(3 3* *x x* *x-1x-1);); printfprintf(“x=%f,y=%fx=%f,y=%f”,x,y,x,y);); 程序设计基础(C语言) 语句体中又包含一个或多个if语句,称为if语句的嵌套n在简单if语句和if_else语句形式中,s1或s2可以是任意合法语句n当s1或s2也是if语句,就构成嵌套的if语句嵌套形式if (e1) if(e2) s1;

18、 else s2; else s3;if (e1) if(e2) s1; else s2;if (e1) s1; else if(e2) s2; else s3;程序设计基础(C语言) 的if结合 n如果if和 else的数目不统一,可以加明确配对关系提示n嵌套中的if与 else的配对关系非常重要对多重if,最容易犯的错误就是if与 else配对错误n即使(表达式)的后面只有一条语句,也尽量不要省略花括号 程序设计基础(C语言) if (x) if(y) printf (“ yn”); else if (z) printf(“zn”); else printf (“xn”); if (x)

19、if(y) printf (“ yn”); else if (z) printf(“zn”); else printf(“xn”);不仅解决了问题,也使程序结构不仅解决了问题,也使程序结构和层次清晰。和层次清晰。 如果要实现例中书写形式的意图,如果要实现例中书写形式的意图,可写成如下形式:可写成如下形式: if (x) if(y) printf (“ yn”); else if (z) printf(“zn”); else printf(“xn”); 程序设计基础(C语言) 若干字符n适当的缩排使程序的结构、层次清晰、一目了 然,增加程序的易读性。复合语句在 if 结构中的使用n if 语句中

20、有时需要执行的语句不止一条,需要采用复合语句无论包括多少条语句,复合语句从逻辑上将被看成是一条语句程序设计基础(C语言) #include main() int a,b,m,n; scanf(“%d%d”,&a,&b); m=n=1; if(a0) m=m+n; if(ab) n=2*m; else if(a=b) n=5; else n=m+n; printf(“m=%d n=%dn”,m,n); 1)当输入为当输入为-1 2,程序的程序的 运行结果为多少运行结果为多少?2)当输入为当输入为1 0,程序的程序的 运行结果为多少运行结果为多少?3)为了输出为了输出n=4,变量变

21、量a和和b应具应具 备的条件是什么备的条件是什么? m=1 n=2 m=2 n=30a= 90) printf(“A”); if (ave = 80&ave = 70&ave = 60&ave = 69) printf(“D”); if (ave = 90) printf(“A”); else if (ave = 80) printf(“B”); else if (ave = 70) printf(“C”); else if (ave = 60) printf(“D”); else printf(“E”); 程序设计基础(C语言) 语句中花括号“ ”与分号“;”的使用n

22、一般地,语句部分需要采用括起来n当仅有一条语句时,“”可以省略表达式的使用n常见的表达式是逻辑表达式或关系表达式n也可以是任意的数值类型,因为在 if 中只要表达式的值为非0,则认为是“真(逻辑1)”。否则,被认 为是“假(逻辑0)”多分支语句的选择n用 if语句嵌套实现的多分支结构,分支较 多;容易使程序冗长不清晰;可读性差n应使用 C语言提供的switch开关语句专门处理多分支结构可以简化程序的结构, 程序简洁程序设计基础(C语言) switch switch (表达式(表达式e e) case case 常量表达式常量表达式a1a1: 语句序列语句序列S1S1; breakbreak;

23、case case 常量表达式常量表达式a2a2: 语句序列语句序列S2S2; breakbreak; case case 常量表达式常量表达式anan: 语句序列语句序列SnSn; breakbreak; defaultdefault: 语句语句S;S; 程序设计基础(C语言) e?语句序列语句序列S1S1; breakbreak;语句序列语句序列S2S2; breakbreak;语句序列语句序列S3S3; breakbreak;语句序列语句序列S S; a1 a1 default default a3 a3 a2 a2 case case程序设计基础(C语言) case后的常量表达式ai(

24、a1,a2,aian)进行比较如果相等,执行常量表达式ai后的语句序列Si 若si结束处有break语句,则跳出switch语句,执行结束 若没有break语句,在执行完Si后将无条件的继续执行下一条case语句的语句 此时并不再检查后面的case后的标号ai是否与e的值相等如果未找到与之匹配的常量表达式ai,则做如下处理 若有default语句,则执行default后的语句序列S后结束 若没有default语句, switch语句直接结束(什么也没有做)程序设计基础(C语言) (i) case 1: case 2: case 3:语句语句1;break; case 4:语句语句2;break

25、; case 5: case 6:语句语句3;break; default :语句语句4;/ /* *执行过程:执行过程:当整型变量当整型变量i i的值为的值为1 1、2 2或或3 3时,时,执行语句执行语句1 1;当整型变量当整型变量i i的值为的值为4 4时执行语句时执行语句2 2;当整型变量当整型变量i i的值为的值为5 5、6 6时,执行时,执行语句语句3 3,否则执行语句否则执行语句4 4。* */ /程序设计基础(C语言) 该月有多少天#include #include main( ) main( ) int monthint month; int dayint day; prin

26、tfprintf(“please input please input the month number:the month number:”);); scanfscanf(“%d%d”,&month,&month););switch switch (monthmonth) case 1:case 1: case 3: case 3: case 5: case 5: case 7: case 7: case 8: case 8: case 10: case 10: case 12: day=31; break: case 12: day=31; break: case 4: c

27、ase 4: case 6: case 6: case 9: case 9: case 11:day=30;break; case 11:day=30;break; case 2:day=29;break; case 2:day=29;break; default: day=-1: default: day=-1: if if (day= =-1day= =-1) printfprintf(“invalid month input!ninvalid month input!n”); ; else printf else printf(“2008.%d has %d daysn2008.%d h

28、as %d daysn”,month,day,month,day);); 程序设计基础(C语言) 将它们括起来语句si处也可以没有语句,程序执行到此会自动向下顺序执行n采用一个break语句或return语句退出switch语句是必要的ndefault语句一般出现在所有case语句之后n使用switch语句的前提条件是条件表达式必须是基于同一个整型(或字符型)变量程序设计基础(C语言) switch语句只能对等式进行测试if 语句可以计算关系表达式或逻辑表达式等n如果有两条以上基于同一个整型变量的条件表达式,那么最好使用switch语句例如 if(x=1) printf(”x is equal

29、 to one.n”); elseif(x=2) printf(”x is equal to two.n”); elseif(x=3) printf(”x is equal to three.n”); else printf(”x is not equal to one,two,three.n”);程序设计基础(C语言) switchswitch(x x) case 1 case 1:printfprintf(”x is equal to one.nx is equal to one.n”); ; break break; case 2case 2:printfprintf(”x is equ

30、al to two.nx is equal to two.n”); ; break break; case 3case 3:printfprintf(”x is equal to three.nx is equal to three.n”); ; break break; defaultdefault:printfprintf(”x is not equal to one,two,three.nx is not equal to one,two,three.n”); ; 程序设计基础(C语言) int a,b,cint a,b,c; printfprintf(“input a,b,c:ninp

31、ut a,b,c:n”);); scanfscanf(“%d%d%d%d%d%d”,&a,&b,&c,&a,&b,&c);); if if (abab) min=amin=a; else min=belse min=b; if if (cmincc&a+cb&b+can如果组成三角形计算三角形的面积判断是什么类型三角形? 等边三角形、等腰三角形、直角三角形、一般三角形程序设计基础(C语言) a,b,c; float a,b,c; float s,area; float s,area; printf printf(“a,b,c=a,

32、b,c=”); ; scanf scanf(“%f,%f,%f%f,%f,%f”,&a,&b,&c,&a,&b,&c); ; if if(a+bc&a+cb&b+caa+bc&a+cb&b+ca) s=s=(a+b+ca+b+c)/2.0;/2.0; area=sqrt area=sqrt(s s* *(s-as-a)* *(s-bs-b)* *(s-cs-c); ; printf printf(“area=%fnarea=%fn”,area,area); ; if if(a=b&b=ca=b&b=

33、c) printfprintf(“等边三角形等边三角形nn”); ; ease if ease if (a=b|b=c|a=ca=b|b=c|a=c) printfprintf(“等腰三角形等腰三角形nn”); ; else if else if (a a* *a+ba+b* *b=cb=c* *c|ac|a* *a+ca+c* *c=bc=b* *b|bb|b* *b+cb+c* *c=ac=a* *a a) printfprintf(“直角三角形直角三角形nn”); ; else printf else printf(“一般三角形一般三角形nn”);); elseelse printf p

34、rintf(“不能组成三角形不能组成三角形nn”); ; 程序设计基础(C语言) float x,yfloat x,y; char opchar op; printfprintf(“ntype in your expression:ntype in your expression:”); ; scanf scanf(“%f%c%f%f%c%f”,&x,&op,&y,&x,&op,&y); ;程序设计基础(C语言) switch switch(opop) case case + +: printfprintf“%6.2f%c%6.2f=%6.2fn

35、%6.2f%c%6.2f=%6.2fn”,x,op,y,x+y,x,op,y,x+y);); breakbreak; case case - -: printfprintf(“%6.2f%c%6.2f=%6.2fn%6.2f%c%6.2f=%6.2fn”,x,op,y,x-y,x,op,y,x-y);); breakbreak; case case * *: printfprintf(“%6.2f%c%6.2f=%6.2fn%6.2f%c%6.2f=%6.2fn”,x,op,y,x,x,op,y,x* *y y);); breakbreak; case case / /: ifif(y=0y=

36、0) printfprintf(“error!nerror!n”); ; else printf( else printf(“%6.2f%c%6.2f=%6.2fn%6.2f%c%6.2f=%6.2fn”, , x,op,y,x+y x,op,y,x+y);); breakbreak; defaultdefault: printfprintf(“espression error!nespression error!n”:):); ; 程序设计基础(C语言) a=2,b=0; switch(a) case b+1:a-;break; case b=5: a+=10;break; B)char x

37、=A,y; switch(x) case A:y+;break; case -1: y=5; C)int a,b=5; switch(b) case b0:a=1;break; case b=0: a=0;break; D)#define M 10 int a=1,b; switch(a) case M-9:b+=5;break; case 1: b=1;break; 程序设计基础(C语言) ) int x1=3, x2=0, x3=0; if (x1=x2+x3) printf(* * * *); else printf(# # # #);A.输出:输出:* * * *B.输出:输出:# #

38、 # #C.存在语法错误存在语法错误D.无输出结果无输出结果3.下面程序段所表示的数学下面程序段所表示的数学 函数关系是:函数关系是: x=-1; if (a!=0) if (a0) x=1; else x=0; -1 (a0) 1 (a0) 0 (a0) 0 (a0) -1 (a0) 0 (a0)程序设计基础(C语言) 5.若执行以下程序时从键盘上输入若执行以下程序时从键盘上输入3 4,则输出结果是,则输出结果是 main( ) int a,b,s; scanf(%d%d,&a,&b); s=a; if (ab) s=b; s*=s; printf(%dn,s); A. 14

39、 B. 16 C. 18 D. 20 程序设计基础(C语言) 程序设计基础(C语言) n什么是循环重复做某件事的现象称为“循环”C程序的循环结构就是在满足循环条件时,重复执行某程序段,直到循环条件不满足为止n重复执行的程序段称为循环体循环进行的条件n循环控制变量循环控制变量初始值每次循环过程中用以改变循环控制变量的递增/递减值n用来判定循环是否结束的最终条件值程序设计基础(C语言) nwhile语句、for语句 直到型循环n首先执行循环体,然后才判断循环控制表达式若为“假”,则反复执行循环体直到循环控制表达式为“真”时结束循环n do_while语句 程序设计基础(C语言) while语句的特

40、点先判断,后执行 若表达式一开始就为“假”,则循环一次也不执行程序设计基础(C语言) #include main()() int counter=1; /* 初始化初始化*/ while (counter 0 n0? sum1 sum1增增1 1 sum2 sum2增增1 1输入数据输入数据n n输出统计的结果输出统计的结果结束结束为为0 0不为不为0 0正数正数负数负数 yes yes no no例2 输入一组整数,分别统计正整数和负整数的个数。(0作结束标志)程序设计基础(C语言) 于结束的语句,以保证循环 的正常结束n否则,会出现“死循环”的现象多条语句做循环体时必须用括起来形成复合语句

41、形式n否则,只把其中第一条语句当作循环体语句执行循环体中语句顺序非常重要while(1)是无限循环格式while 语句的循环体可以为空n例如 while(getchar()!=Q) main main()() int sum1=0int sum1=0,sum2=0sum2=0,n n; scanfscanf(“%d%d” ,&n&n);); whilewhile(n!=0n!=0) if if (n0n0) sum1=sum1+1sum1=sum1+1; else else sum2=sum2+1; sum2=sum2+1; scanf scanf(“%d%d” ,&n

42、&n);); printfprintf(“%d,%d%d,%d” ,sum1,sum2 ,sum1,sum2); ; 程序设计基础(C语言) “stdio.h”main ( ) int i; float s;s=0;i=1;while (i=100) s+=1.0/i; /* 如果如果s为为int,s+=1/i是否会有问是否会有问题题*/ i+; printf (s=%fn, s);运行程序,输出结果是:运行程序,输出结果是:s=5.187378程序设计基础(C语言) 用来实现循环结构变量的初始值e2(表达式2)通常为关系表达式或逻辑表达式 将循环控制变量与某一值进行比较,以决定是否退

43、出循环(循环进行的条件)e3(表达式3)通常采用自增或自减表达式 描述循环控制变量的变化程序设计基础(C语言) S;e2e2的值为真?的值为真?Y YN N计算表达式计算表达式e3e3的值的值退出循环体语退出循环体语句,执行句,执行forfor的的语句下一条语语句下一条语句。句。程序设计基础(C语言) #include #include main main()() int counterint counter; for for (counter=1counter=1;counter =10counter =10;counter+)counter+) printf( printf(“%dn%dn

44、”,counter) ,counter) ; printf(printf(“* * * * * * * *nn”) ) ; 程序设计基础(C语言) 和“ for”语句的相似性 #include #include mainmain()() int counter;int counter; counter =1counter =1; ; while ( while (counter =10counter =10) ) printf( printf(“%dn%dn”,counter);,counter); counter=counter+1counter=counter+1; ; printf( p

45、rintf(“* * * * * * * *nn”); ); #include #include main main()() int counterint counter; for for (counter=1counter=1;counter =10counter =10;counter+)counter+) printf( printf(“%dn%dn”,counter) ,counter) ; printf(printf(“* * * * * * * *nn”) ) ; 程序设计基础(C语言) 等价于语句for(j=2;j=60;j+=5)n表达式3可以是负值,进行递减操作,循环向下计数

46、的n如果表达式2开始就不成立,则不执行循环体,而是执行for结构之后的语句n循环体中允许打印循环控制变量或改变循环控制变量控制变量用来控制循环,一般不在循环体中使用尽管可以在for循环中修改控制变量的值,但是可能导致另人费解的错误nfor循环结构可以用等价的while循环结构表示程序设计基础(C语言) n; i i;s s;输入输入n n赋初值:赋初值:s=0.0; i=1s=0.0; i=1; i =n?i =n?计算平方数:计算平方数: i i* *i i;s=s+s=s+(floatfloat)()(i i) * *(floatfloat)()(i i););? ? i=i+1 i=i+

47、1;输出计算输出计算结果:结果:s s结束结束程序设计基础(C语言) #include #include #include mainmain()()int iint i,n n; float sfloat s; printfprintf(“please input nplease input n: ”);); scanfscanf(“%d%d” ,&n&n);); s=0.0s=0.0 for for(i=1i=1; i =ni =n;i+i+) s=s+(float)s=s+(float)(i i)* *(float)(float)(i i); ; printf printf

48、(“1 1* *1+21+2* *2+2+%d+%d* *%d=%fn%d=%fn” ,n n,n n,s s););RUNRUN please input n: please input n:55 1 1* *1+21+2* *2+2+5+5* *5=55.0000005=55.000000程序设计基础(C语言) for语句的几种特殊格式n例如for ( i=2; i=10) break; /* 循环出口循环出口 */ printf (“%5d”, i ); i+; /* 修改循环变量的值修改循环变量的值 */ 程序设计基础(C语言) while语句语句格式n说明 do_while语句的表达

49、式是任意表达式,是控制循环的条件do_while语句的特点 先执行后判断 循环体至少执行一次do_while语句实现的循环重复执行循环体,直到表达式为假才退出循环。 ;不能省略;不能省略程序设计基础(C语言) while语句执行过程n首先执行循环体语句n计算表达式的值当表达式值为“真”时,返回循环体开始处继续执行循环体语句当表达式的值为“假”,结束循环,执行下面的语句提示n在dowhile 结构中,即使循环体为一条语句,也用花括号 括了起来执行循环体语句执行循环体语句表达式?表达式?计算表达式初值计算表达式初值退出循环退出循环体体为真为真为假为假程序设计基础(C语言) while语句例:打印1

50、-10之间的所有整数 #include #include main main()() int counter=1int counter=1; / /* * 初始化初始化* */ / do do printf( printf(“%dn%dn”,counter);,counter); counter=counter+1 counter=counter+1;/ /* * counter+; counter+;* */ / while (counter =10) while (counter =10); printf(printf(“* * * * * * * *nn”) ); 程序设计基础(C语言)

51、 while语句例:统计在1100之间的整数中,有多少个数是3的倍数或5的倍数 main()() int i=0,n=1; do if (n%3=0|n%5=0) i+; n+; while (n=100);); printf(“The total number is :%d” ,i);); 程序设计基础(C语言) main main()() float average float average;int counterint counter,gradegrade,totaltotal; total=0total=0; counter=0counter=0; printfprintf( “En

52、ter gradeEnter grade, -1 to end-1 to end:” );); scanfscanf(“%d%d”,&grade&grade);); while while (gradegrade!=-1=-1) total=total+grade total=total+grade;counter+=1counter+=1; printfprintf( “Enter gradeEnter grade, -1 to end-1 to end:” );); scanfscanf(“%d%d”,&grade&grade);); if if(count

53、ercounter!=0=0) average= average=(floatfloat)total/countertotal/counter; printfprintf(“CLASS average is %5.2fCLASS average is %5.2f”,averageaverage);); else else printf printf(“No grade were enterednNo grade were enteredn”);); 程序设计基础(C语言) #include “stdio.h”main ( ) int i, k, max;scanf ( “%d”, &m

54、ax );for ( i=2; i11; i+ ) scanf (%d,&k);if ( maxk ) max=k; printf (max=%dn, max );main ( ) int i, k, max; scanf(“%d”,&max);i=2; while (i11) scanf(“%d”,&k); if (maxk) max=k;i+; /* for语句中的语句中的i+ */printf (max=%dn,max);main ( ) int i, k, max; scanf (“%d”,&max);i=2; do scanf(“%d”,&k)

55、; if(maxk) max=k; i+; while(i=100); while(num=100); main( ) main( ) int num; int num; for(scanf(for(scanf(“%d%d”,&num),printf(,&num),printf(“%dn%dn”,nu,num);num=100;)m);num=100;) scanf( scanf(“%d%d”,&num);,&num); printf( printf(“%dn%dn”,num); ,num); n循环语句的比较三种循环语句可处理同一个三种循环语句可处理同一个问题

56、问题n编写程序编写程序,从键盘输入数从键盘输入数字字,并输出该数字并输出该数字,直到所直到所输出的数字小于输出的数字小于100 main( ) main( ) int num; int num; scanf( scanf(“%d%d”,&num);,&num); printf( printf(“%dn%dn”,num);,num); while(num=100) while(num=100) scanf( scanf(“%d%d”,&num);,&num); printf( printf(“%dn%dn”,num);,num); 程序设计基础(C语言) 循环结构

57、nfor语句和while语句先判断循环控制条件,后执行循环体可能一次也不执行循环体ndo_while语句是先执行循环体,后进行循环控制条件的判断do_while语句至少执行一次循环体do_while语句更适合于第一次循环肯定执行的场合 程序设计基础(C语言) ndowhile表达式的括号后面有“;”程序设计基础(C语言) : #include #include main( ) main( ) int a=10,b=5,c=5,d=5; int a=10,b=5,c=5,d=5; int i=0,j=0,k=0; int i=0,j=0,k=0; for( ;ab;+b) for( ;ab;+b

58、) i+; i+; while (a+c) while (a+c) j+; j+; do do k+; k+; while(ad+); while(ad+); printf( printf(“%d,%d,%dn%d,%d,%dn”,i,j,k);,i,j,k); i: a)0 b)4 c)5 d)6 i: a)0 b)4 c)5 d)6 j: a)0 b)4 c)5 d)6 j: a)0 b)4 c)5 d)6 k: a)0 b)4 c)5 d)6 k: a)0 b)4 c)5 d)6 程序设计基础(C语言) while、dowhile、for 可以互相嵌套,自由组合n执行过程应先执行内层的循

59、环体操作,然后是外层循环。内层循环被执行的次数应为:内层次数外层次数 对外层循环变量的每一个值,内层循环的循环变量从初值变化到终值 对外层循环的每一次循环,内层循环要执行完整的循环语句 提示n各循环语句所描述的循环结构必须完整,相互之间绝对不允许交叉程序设计基础(C语言) 是指一个数恰好等于它的因子之和(除自身外)mainmain()() int aint a,j j,m;m; for for(a=1a=1;a=1000a=1000;a+a+) forfor(m=0m=0,j=1j=1;j=a/2j=a/2;j+j+) ifif(! !(a%ja%j) m=m+jm=m+j; ifif(m =

60、 am = a) printfprintf(“%4d%4d”,a,a);); 演示58。C 程序设计基础(C语言) int n,i,j,k; n=0; for (i=1;i=9;i+) /*百位数的处理百位数的处理*/ for(k=0;k=8;k=k+2) /*个位数的处理,个位数的处理, k=k+2为偶数为偶数*/ if (k!=i) for(j=0;j=9;j+) /*十位数的处理十位数的处理*/ if(j!=i & j!=k) n+; printf(“%dn” ,n););程序设计基础(C语言) ; n在循环体内,使用break语句可退出循环体而执行该循环语句后面的语句如果执行到程序的某一点后需要退出循环体(不等循环的正常结束),可用break语句实现 switch语句、while语句、dowhile语句、for语句程序设计基础(C语言) #include mainmain()()int iint i; char numbchar numb; forfor(i=1i=1;i+i+) scanfscanf(“%c%c” ,&numb&numb);); if if (numb= =numb= =* *) breakbreak; else printfelse printf(“%c%c” ,numbnum

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论