《程序设计基础(C语言)》由会员分享,可在线阅读,更多相关《程序设计基础(C语言)(102页珍藏版)》请在装配图网上搜索。

1、程序设计基础( C语言) 东北大学高级语言程序设计课程组 课程网站: 程序设计基础( C语言) 流程控制 -顺序结构 程序设计基础( C语言) 3 基本语句 C语言程序设计是由函数构成 每个函数完成的功能则是通过由一条条语句实现的 语句是构成 C程序设计的基本单位 语句能完成特定操作 语句最后必须有一个分号,分号是 C语句的组成部 分 C语句分为三类 基本语句 复合语句 程序控制语句 程序设计基础( C语言) 4 基本语句 复合语句 用一对大括号括起一条或多条语句 无论有多少语句,都只被看成一条语句 例如 t=a; a=b; b=t; a=10; printf( %d” , a ); 执行复合。

2、语句实际是执行该复合语句一对 大括号中所有语句 程序设计基础( C语言) 5 基本语句 空语句 由一个分号 ; 组成 空语句是表达式语句的一种特例 格式 : ; 它表示什么操作也不做。从语法上讲,它的确 是一条语句。在程序设计中,若某处从语法上 需要一条语句,而实际上不需要执行任何操作 时就可以使用它。例如,在设计循环结构时, 有时用到空语句。 程序设计基础( C语言) 6 基本语句 声明语句 功能 定义变量的名称和数据类型,为 C编译系统给该变量分配 存储空间提供依据 格式: 变量表; 基本数据类型,例如: int、 float、 char 变量表: 由一个或多个变量组成 例: int a,。

3、b,c; float i,j,k; 提示 C程序中所有变量 应先定义后使用 声明语句应放在函数的 ”和任何可执行语句之前 程序设计基础( C语言) 7 基本 语句 表达式语句 在表达式后面加上一个分号 ; 就构成了一个表达式语 句 格式 : ; 例: a=b*2; /*赋值运算表达式语句 */ +j; /*前缀运算表达式语句 */ x+y; /*x+y;是算术表达式语句 */ 提示 表达式语句和表达式的区别在于 表达式代表的是一个数值,表达式语句代表的是一 个动作特征 程序设计基础( C语言) 8 顺序结构 顺序结构是一组按书写顺序执行的语句 是 C语言中最简单、最基本的一种结构 是进行复杂程。

4、序设计的基础 C语言组成顺序结构的主要语句 赋值语句 声明语句 输入 /输出函数 程序设计基础( C语言) 9 【 例 1】 main() float a=123.456; double b=8765.4567; printf( “ ( 1) %fn”,a) ; printf( “ ( 2) %14.3fn”,a) ; printf( “ ( 3) %6.4fn”,a) ; printf( “ ( 4) %lfn”,b) ; printf( “ ( 5) %14.3lfn”,b) ; printf( “ ( 6) %8.4lfn”,b) ; printf( “ ( 7) %.4fn”,b) ;。

5、 ( 1) 123.456000 ( 2) 123.456 ( 3) 123.4560 ( 4) 8765.456700 ( 5) 8765.457 ( 6) 8765.4567 ( 7) 8765.4567 顺序结构 程序设计基础( C语言) 10 【 例 2】 编写程序:输入两个整数 a和 b(设 a=100,b=17) 求 a除以 b的商和余数。 #include “stdio.h” main( ) int a, b, x, y; scanf (“%d, %d”, x=a/b; /* 求 a/b的商 */ y=a%b; /* 求 a/b的余数 */ printf (“a=%3d, b=%。

6、3d,a/b=%4d, a%b=%4d n”, a, b,x,y); 顺序结构 程序设计基础( C语言) 11 【 例 3】 编写一个程序用于水果店售货员算帐:已知苹果每斤 2.5元,梨每 斤 1.8元,香蕉每斤每斤 2.0元,橘子每斤 1.6元,要求输入各类水果的重 量,打印出应付钱数,再输入顾客应付款数,打印出应找的钱数。 演示 3f #include“stdio.h” main() float p,y,x,j,ys,g,fk; prinft(“苹果 ,鸭梨 ,香蕉 ,橘子 =” ) ; scanf(“ %f,%f,%f,%f”,/*输入各数之间用逗号分隔 */ ys=2.5*p+1.8*。

7、l+2.0*x+1.6*j; printf(“顾客付款(元) =” ) ; scanf(“ %f”, fk=g-ys; printf(“计算结果 :n” ) ; printf(“顾客付款 =%6.2f元 n应收货款 =%6.2f元 n应找回 =%6.2f元 n”,g,ys,fk ) ; 顺序结构 程序设计基础( C语言) 流程控制 -选择结构 程序设计基础( C语言) 13 选择结构 选择结构的特征 程序的流程由多路分支组成 在程序的一次执行过程中,根据不同情况只有 一条支路被选中执行 其他的分支上的语句被直接跳过 选择结构的要素 语句 if语句 switch语句 条件 程序设计基础( C语言。

8、) 14 选择结构 选择结构的要素 条件 由关系表达式或由关系表达式组合而成的逻辑表达式 用数值 1表示逻辑真,用 0表示逻辑假 在判断条件时又以非 0为 真 ,以 0为 假 少数情况下也可以是算术表达式 这个表达式的结果将决定程序下一步的执行顺序 例 C1是否为小写字母的条件是: X在 1,10和 200,210之间为真, 否则为假的条件是: ( c1=a ) 表达式表示对一个条件的判断 表达式的结果为 0或 1,通常为关系表达式或逻辑表 达式,也可以直接表示成某一数值 表达式必须用括号 s1从语法上应是一条语句,当在此执行多条语句,必须 用大括号将它们括起来,构成复合语句 执行过程 计算表。

9、达式的值 若为真,则执行语句 1 否则将跳过语句 1执行 if语句的下一条语句 语句 S yes no e 程序设计基础( C语言) 17 if语句 简单 if语句 例 if( x=y if( 99) printf( true!”) ; if( 0) printf( its zreo”); if (a) printf( true!”) ; if (1) printf( true!”) ; 问题?下面语句的区别: if (a=0) printf( a is 0”) ; if (a=0) printf( a is 0”) ; if (a=1) printf( a is 1”) ; if (a=1)。

10、 printf( a is 1”) ; 程序设计基础( C语言) 18 if语句 简单 if语句 例: 两个整数相除 main() int a,b; printf( “ enter two numbers:”) ; scanf( “ %d%d”, if( b) printf( “ %d”,a/b) ; 程序设计基础( C语言) 19 if语句 简单 if语句 例: 计算一个整数的绝对值 main() int a, absa; printf( “ enter one number:”); scanf( “ %d”, printf( “ enter one number:”) ; scanf( “。

11、 %d”, if( a0) absa=-a; else absa=a; printf( “ |%d|=%d”,a,absa) ; main() int a, absa; printf( “ enter one number:”); scanf( “ %d”, else y=0; printf( “ %f%f”,x,y) ; 程序设计基础( C语言) 23 输入整数 a和 b,若 a2+b2大于 100,则输出 a2+b2百位以上的 数字,否则输出两数之和。 main() int a, b, x, y; scanf( “ %d%d”, else s2; else s3; if (e1) if(e。

12、2) s1; else s2; if (e1) s1; else if(e2) s2; else s3; 程序设计基础( C语言) 29 if语句 If语句嵌套 C语言规定的原则 从最内层开始, else总是与它前面最近的同一 复合语句内的不带 else 的 if结合 如果 if和 else的数目不统一,可以加明确 配对关系 提示 嵌套中的 if与 else的配对关系非常重要 对多重 if,最容易犯的错误就是 if与 else配 对错误 即使(表达式)的后面只有一条语句 ,也尽量 不要省略花括号 程序设计基础( C语言) 30 if语句 If语句嵌套 例如: if ( x) if( y) pr。

13、intf (“ yn”); else if (z) printf(“zn”); else printf (“xn”); if ( x) 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语言) 31 if语句 If语句嵌套 程序的书写缩排 所谓缩排,。

14、就是上一行与下一行相比,行首向右缩进 若干字符 适当的缩排使程序的结构、层次清晰、一目了 然, 增加程序的易读性。 复合语句在 if 结构中的使用 if 语句中有时需要执行的语句不止一条,需要采用 复合语句 无论包括多少条语句,复合语句从逻辑上将被看 成是一条语句 程序设计基础( C语言) 32 if语句 例:阅读程序回答问题 #include main() int a,b,m,n; scanf(“%d%d”, 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。

15、)当输入为 -1 2,程序的 运行结果为多少 ? 2)当输入为 1 0,程序的 运行结果为多少 ? 3)为了输出 n=4,变量 a和 b应具 备的条件是什么 ? m=1 n=2 m=2 n=3 0a= 90) printf(“A”); if (ave = 80 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语言) 36 if语句 提示 if 语。

16、句中花括号 ”与分号;的使用 一般地,语句部分需要采用 括起来 当仅有一条语句时, ”可以省略 表达式的使用 常见的表达式是逻辑表达式或关系表达式 也可以是任意的数值类型,因为在 if 中只要表达式的值为非 0, 则认为是真(逻辑 1)。否则,被认 为是假(逻辑 0) 多分支语句的选择 用 if语句嵌套实现的多分支结构,分支较 多;容易使程序冗长 不清晰;可读性差 应使用 C语言提供的 switch开关语句专门处理多分支结构 可以简化程序的结构, 程序简洁 程序设计基础( C语言) 37 switch语句 switch语句 功能 可以根据某一表 达式的不同取 值,直接进行多 分支选择处理 语句。

17、格式 语句格式: switch (表达式 e) case 常量表达式 a1: 语句序列 S1; break; case 常量表达式 a2: 语句序列 S2; break; case 常量表达式 an: 语句序列 Sn; break; default: 语句 S; 程序设计基础( C语言) 38 switch语句 switch语句 执行示意图 表达式 e? 语句序列 S1; break; 语句序列 S2; break; 语句序列 S3; break; 语句序列 S; a1 default a3 a2 case 程序设计基础( C语言) 39 switch语句 switch语句 执行过程 首先计算。

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

19、C语言) 40 switch语句 switch语句 提示 特殊情况下,如果 switch表达式的多个值都需 要执行相同的语句可以采用下面的格式 switch ( i) case 1: case 2: case 3:语句 1;break; case 4:语句 2;break; case 5: case 6:语句 3;break; default :语句 4; /*执行过程: 当整型变量 i的值为 1、 2或 3时, 执行语句 1; 当整型变量 i的值为 4时执行语句 2; 当整型变量 i的值为 5、 6时,执行 语句 3, 否则执行语句 4。 */ 程序设计基础( C语言) 41 switch语。

20、句 switch语句 例: 输入月份打印 2008年 该月有多少天 #include main( ) int month; int day; printf( “ please input the month number:”); scanf( “ %d”, break: case 4: case 6: case 9: case 11:day=30;break; case 2:day=29;break; default: day=-1: if ( day= =-1) printf( “ invalid month input!n”) ; else printf( “ 2008.%d has %d。

21、 daysn”,month,day); 程序设计基础( C语言) 42 switch语句 switch语句 提示 switch后面括号中可以是任何表达式,取其整数部分与各常量 表达式进行比较 常量表达式中不能出现变量语句 si可以是一条或多条语句,多 条语句时不必用 将它们括起来 语句 si处也可以没有语句,程序执行到此会自动向下顺序 执行 采用一个 break语句或 return语句退出 switch语句是必要的 default语句一般出现在所有 case语句之后 使用 switch语句的前提条件是条件表达式必须是基于同一个整 型(或字符型)变量 程序设计基础( C语言) 43 switch。

22、语句 switch语句 什么时候用一条 switch语句比用多条 if语句更好? switch语句与 if语句不同 switch语句只能对等式进行测试 if 语句可以计算关系表达式或逻辑表达式等 如果有两条以上基于同一个整型变量的条件表达式,那 么最好使用 switch语句 例如 if( x=1) printf(” x is equal 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 。

23、equal to one,two,three.n”) ; 程序设计基础( C语言) 44 switch语句 switch语句 不如使用如下 switch代码,它更易于阅读和维护: switch( x) case 1: printf( ” x is equal to one.n”) ; break; case 2: printf( ” x is equal to two.n”) ; break; case 3: printf( ” x is equal to three.n”) ; break; default: printf( ” x is not equal to one,two,three。

24、.n”) ; 程序设计基础( C语言) 45 例题 例 1:输入三个数,找出并打印最小数 算法如下 设 3个数分别是 a、 b和 c 将 a、 b中较小者赋值给 min 用 min与 c进行比较,取其中较小者重新赋值给 min 将 min作为最后结果输出 程序设计基础( C语言) 46 例题 main() int a,b,c; printf( “ input a,b,c:n”); scanf( “ %d%d%d”, float s,area; printf( “ a,b,c=”) ; scanf( “ %f,%f,%f”, if( a+bc area=sqrt( s*( s-a) *( s-b。

25、) *( s-c) ; printf( “ area=%fn”,area) ; if( a=b ease if ( a=b|b=c|a=c) printf( “ 等腰三角形 n”) ; else if ( a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a) printf( “ 直角三角形 n”) ; else printf( “ 一般三角形 n”); else printf( “ 不能组成三角形 n”) ; 程序设计基础( C语言) 49 例题 例 3:编写一个程序,完成两个数的四则运 算(数与运算符由键盘给入) 分析 调用输入函数输入操作数和运算符 四则运算规则 问题:。

26、怎样将 %运算加入? #includde main() float x,y; char op; printf( “ ntype in your expression:”) ; scanf( “ %f%c%f”, 程序设计基础( C语言) 50 例题 switch( op) case +: printf“%6.2f%c%6.2f=%6.2fn”,x,op,y,x+y); break; case -: printf( “ %6.2f%c%6.2f=%6.2fn”,x,op,y,x-y); break; case *: printf( “ %6.2f%c%6.2f=%6.2fn”,x,op,y,x*。

27、y); break; case /: if( y=0) printf( “ error!n”) ; else printf(“%6.2f%c%6.2f=%6.2fn”, x,op,y,x+y); break; default: printf( “ espression error!n”:) ; 程序设计基础( C语言) 51 小测试 1:下述程序段中,无语法错误的是 A) int a=2, b=0; switch( a) case b+1: a-; break; case b=5: a+=10; break; B) char x=A, y; switch( x) case A: y+; bre。

28、ak; 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语言) 52 小测试 2.以下程序的运行结果是: main( ) int x1=3, x2=0, x3=0; if (x1=x2+x3) printf(* * * *); else printf(# # # #); A.输出: * * * * 。

29、B.输出: # # # # 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语言) 53 小测试 4.为了避免在嵌套的条件语句 if-else中产生二义性, C语言规定: else总 是与 A.缩排位置相同的 if配对 B.其之前最近且不带 else的 if配对 C.其之前最近的 if配对 D.第一个 if配对 5.若执行以下程序时从键盘上输入 3 4,则输出结果是 main( ) i。

30、nt a,b,s; scanf(%d%d, s=a; if (ab) s=b; s*=s; printf(%dn,s); A. 14 B. 16 C. 18 D. 20 程序设计基础( C语言) 流程控制 -循环结构 程序设计基础( C语言) 55 循环的基本概念 什么是循环 重复做某件事的现象称为循环 C程序的循环结构就是在满足循环条件时,重复执行某程 序段,直到循环条件不满足为止 重复执行的程序段称为循环体 循环进行的条件 循环控制变量 循环控制变量初始值 每次循环过程中用以改变循环控制变量的递增 /递减 值 用来判定循环是否结束的最终条件值 程序设计基础( C语言) 56 循环的基本概念。

31、 循环结构两种形式 当型循环 首先判断循环控制表达式是否为真 若为真,则反复执行循环体 若为假,则结束循环 while语句、 for语句 直到型循环 首先执行循环体,然后才判断循环控制表达式 若为假,则反复执行循环体 直到循环控制表达式为真时结束循环 do_while语句 程序设计基础( C语言) 57 当型循环 while语句 语句格式 说明 表达式是控制循环的条件,它可以是任何类型的表达式 循环体语句语法上定义为一条语句,若循环体含有多条语 句,则必须用大括号把它们括起来,成为复合语句 while语句的特点 先判断,后执行 若表达式一开始就为假,则循环一次也不执行 提示 分号;的位置是在语。

32、句之后而不是表达式的后面 while (条件表达式) 语句 S; 程序设计基础( C语言) 58 当型循环 while语句 执行过程 当表达式的值 为真(非 0 值)时,循 环重复进行 当其值为假 ( 0值)时,循 环结束,程序 跳转到循环后 面的第一条语 句开始执行 执行循环体语句 表达式? 计算表达式初值 退出循环体 为真 为假 程序设计基础( C语言) 59 。 #include main() int counter=1; /* 初始化 */ while (counter 0? sum1增 1 sum2增 1 输入数据 n 输出统计的结果 结束 为 0 不为 0 正数 负数 yes no。

33、 当型循环 while语句 例 2 输入一组整数, 分别统计正 整数和负整 数的个数。 ( 0作结束标 志) 程序设计基础( C语言) 61 当型循环 提示 循环体中必须存在使循环趋 于结束 的语句,以保证循环 的正常结束 否则,会出现死循环的现象 多条语句做循环体时必须用括 起来形成复合语句形式 否则,只把其中第一条语句当作 循环体语句执行 循环体中语句顺序非常重要 while( 1) 是无限循环格式 while 语句的循环体可以为空 例如 while( getchar()! =Q) main() int sum1=0, sum2=0, n; scanf( “ %d” , scanf( “ 。

34、%d” , 程序设计基础( C语言) 62 当型循环 while语句 例 3:计算 s=1+1/2+1/3+1/100 。 #include “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语言) 63 当型循环 for语句 是 C语言中最常用、最灵活、最基本的循环控制语句 特别适合已知循环次数的情况 语句格式 说明 e1(表达式 1)通。

35、常为赋值表达式 用来实现循环结构变量的初始值 e2(表达式 2)通常为关系表达式或逻辑表达式 将循环控制变量与某一值进行比较,以决定是否退出 循环(循环进行的条件) e3(表达式 3)通常采用自增或自减表达式 描述循环控制变量的变化 for ( e1; e2; e3) S; 程序设计基础( C语言) 64 当型循环 for语句 执行过程 计算表达式 e1的值(循环初值) 计算表达式 e2的值(循环中间比较值) 执行循环体语句 S; e2的值为真? Y N 计算表达式 e3的值 退出循环体语 句,执行 for的 语句下一条语 句。 程序设计基础( C语言) 65 当型循环 for语句 例:打印 。

36、1-10之间的所有整数 #include main() int counter; for ( counter=1; counter =10; counter+) printf(“%dn”,counter) ; printf(“*n”) ; 程序设计基础( C语言) 66 当型循环 for语句 while” 和 for” 语句的相 似性 #include main() int counter; counter =1; while (counter =10) printf(“%dn”,counter); counter=counter+1; printf(“*n”); #include main(。

37、) int counter; for ( counter=1; counter =10; counter+) printf(“%dn”,counter) ; printf(“*n”) ; 程序设计基础( C语言) 67 当型循环 for语句 提示 表达式 1、表达式 2和表达式 3中可以包含算术表达式 例如:假定 a=2、 b=10,语句 for( j=a; j=3*a*b; j+=b/a) 等价于语句 for( j=2; j=60; j+=5) 表达式 3可以是负值,进行递减操作,循环向下计数的 如果表达式 2开始就不成立,则不执行循环体,而是执行 for结构 之后的语句 循环体中允许打印循。

38、环控制变量或改变循环控制变量 控制变量用来控制循环,一般不在循环体中使用 尽管可以在 for循环中修改控制变量的值,但是可能导致另人 费解的错误 for循环结构可以用等价的 while循环结构表示 程序设计基础( C语言) 68 当型循环 for语句 例 :计算自然 数 1到 n的平 方和 开始 类型说明: n; i; s; 输入 n 赋初值: s=0.0; i=1; i =n? 计算平方数: i*i; s=s+( float)( i) *( float)( i); ? i=i+1; 输出计算 结果: s 结束 程序设计基础( C语言) 69 #include #include main() 。

39、int i, n; float s; printf( “ please input n: ”); scanf( “ %d” , printf( “ 1*1+2*2+ +%d*%d=%fn” , n, n, s); RUN please input n:5 1*1+2*2+ +5*5=55.000000 当型循环 程序设计基础( C语言) 70 当型循环 for语句 for语句中三个表达式可以是任何合法的 C表达式 三个表达式可以部分省略或全部省略 其中的两个分号不能省略 for语句的几种特殊格式 例如 for ( i=2; i=10) break; /* 循环出口 */ printf (“%5。

40、d”, i ); i+; /* 修改循环变量的值 */ 程序设计基础( C语言) 71 直到型循环 do while 语句 语句格式 说明 do_while语句的表达式是任意表达式,是控制循环的条件 do_while语句的特点 先执行后判断 循环体至少执行一次 do_while语句实现的循环重复执行循环体,直到表达式为 假 才退出循环。 do 语句 s; while(表达式); ;不能省略 程序设计基础( C语言) 72 直到型循环 do while 语句 执行过程 首先执行循环体语句 计算表达式的值 当表达式值为真时, 返回循环体开始处继续执 行循环体语句 当表达式的值为假, 结束循环,执行。

41、下面的语 句 提示 在 dowhile 结构中,即使循环 体为一条语句,也用花括号 括了起来 执行循环体语句 表达式? 计算表达式初值 退出循环 体 为真 为假 程序设计基础( C语言) 73 直到型循环 do while 语句 例:打印 1-10之间的所有整数 #include main() int counter=1; /* 初始化 */ do printf(“%dn”,counter); counter=counter+1; /* counter+;*/ while (counter =10); printf(“*n”); 程序设计基础( C语言) 74 直到型循环 do while 语。

42、句 例:统计在 1 100之间的整数中,有多少个数是 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语言) 75 循环的本质 循环是指在循环条件为真时反复执行执行的一组指令 两 种循环方式 计数式循环 控制变量用来计算循环的次数 控制变量的值在每次执行完一组循环指令后递增 当控制变量的值表明达到了预定的循环次数时循环终止并 继续执行循环结构后的语句。 标记式循环 当事先不知道准确的循环次。

43、数 循环体中包含每次循环都要获取数据的语句 标记值是在所有合法的数据项都提供给程序后键入的值 标记值必须不同于正常的数据项 程序设计基础( C语言) 76 循环的本质 例题 #include stdio.h main() float average; int counter, grade, total; total=0; counter=0; printf( “ Enter grade, -1 to end: ” ); scanf( “ %d”, scanf ( “%d”, for ( i=2; i11; i+ ) scanf (%d, if ( maxk ) max=k; printf (m。

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

45、m); 循环语句的比较 三种循环语句可处理同一个 问题 编写程序 ,从键盘输入数 字 ,并输出该数字 ,直到所 输出的数字小于 100 循环的本质 main( ) int num; scanf(“%d”, printf(“%dn”,num); while(num=100) scanf(“%d”, printf(“%dn”,num); 程序设计基础( C语言) 79 循环的本质 循环语句的比较 循环方式 while语句和 do_while语句多采用 标记式循环 用于循环次数不定的情况 for语句更方便对于循环次数确定的情况 循环结构 for语句和 while语句先判断循环控制条件,后执行循环体 。

46、可能一次也不执行循环体 do_while语句是先执行循环体,后进行循环控制条件的判断 do_while语句至少执行一次循环体 do_while语句更适合于第一次循环肯定执行的场合 程序设计基础( C语言) 80 循环的本质 循环语句的比较 实现功能 do_while和 while语句只有一个表达式,用于控制循环是否进行 for语句有三个表达式 可以控制循环是否进行,并能为循环变量赋初值及不断修改 循环变量的值 for语句比 while和 do_while语句功能更强,更灵活 语句形式 初始值 while、 dowhile 循环时,循环变量的初始值操作应放在 while和 dowhile 语句之。

47、前完成 for语句通常在表达式 1中实现循环控制变量的初始化 while和 for表达式的括号后面没有; dowhile 表达式的括号后面有; 程序设计基础( C语言) 81 循环的本质 循环语句的选用原则 循环次数是否确定 循环次数已知,一般用 for语句 循环次数由循环体的执行情况来确定,一般采 用 while语句或 dowhile 语句 循环体是否一定执行 循环体至少要执行一次时,采用 dowhile 语 句 循环体可能一次也不执行,则选用 while语句 或 for语句 程序设计基础( C语言) 82 【 例 】 :下列程序的运行结果是 : #include main( ) int a。

48、=10,b=5,c=5,d=5; int i=0,j=0,k=0; for( ;ab;+b) i+; while (a+c) j+; do k+; while(ad+); printf(“%d,%d,%dn”,i,j,k); i: 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 循环的本质 程序设计基础( C语言) 83 循环嵌套 循环嵌套 若一个循环结构的循环体中包含了另一循环语句,则构成了循环 的嵌套,称为多重循环 三种循环语句 while、 dowhile 、 for 可以互相嵌套,自由组合 执行过程 应先执行内层的循环体操作,。

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

50、ntf( “ %4d”,a); 演示 58。 C 程序设计基础( C语言) 85 循环嵌套 循环嵌套 例: 求出用数字 0-9可以组成多少个没有重复的三位偶数 main() 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 for( n=10; n100; n+) if (n%3!=0 | n%5!=0) continue ; printf ( %5d。

51、, n); 程序设计基础( C语言) 93 #include main() int count=0,n; char ch; for(n=1;n2) goto label1; 说明 多层循环嵌套(三层以上),采用 goto语句直 接从内循环跳转到循环外 不允许使用 goto语句从循环体外跳转到循 环体内 程序设计基础( C语言) 95 循环的中断与继续 goto、 break、 continue语句的 区别 continue语句只能出现在循环结构中 只结束本次循环体的执行 并开始下一次循环 通常与 if语句结合使用 仅仅影响该语句本身所处的循环 break语句可出现在循环结构和多分支结构中 br。

52、eak语句终止它所在的循环语句的执行 退出循环结构和多分支结构 break语句处于嵌套结构中时,将只能跳出 break语句所 在的循环体而对其它循环结构层没有影响 goto语句可以出现在任意结构之中 可直接退出循环结构和多分支结构 程序设计基础( C语言) 96 应用 例 1: 求 S=1!+2!+3!+20! main() float n, sum=0.0, t=1.0, for ( n=1; n=20; n+) t=t*n; sum=sum+t; printf( “ sum=%.2f” , sum); 演示 5D。 C 程序设计基础( C语言) 97 应用 例 2: 现有一个等差数列,已知。

53、第一项 a=1,公差 b=4,输出满足前 n 项之和小于 100的 n的最大值 #include main() int a=1, b=4, sum=1, n=1; while( sum100) a=a+b; sum=sum+a; n+; printf(“ %d” , n-1); 如果令初始值 sum=0, n=0, 程序如何修改? 程序设计基础( C语言) 98 应用 例 3: 求 100到 200之间的全部素数 #include main() int m, k, i, n=0; for( m=101; m200; m=m+2) if( n%10 = =0) printf(“ n”); k=q。

54、urt( m); for( i=2; i=k+1) pritnf(“ %5d” , m); n=n+1; 程序设计基础( C语言) 99 应用 例 4: 计算 100-1000之间有多少个各位数字之和为 5的数 main() int i, s, k, count=0; for ( i=100; i=1000; i+) s=0; k=i; while ( k) s=s+k%10; k=k/10; if ( s!=5) continue ; else count+; printf(“ %d” , count); 程序设计基础( C语言) 100 小测试 1.下列程序执行的结果是 . a=1;b=2。

55、;c=3; while(abc) t=a;a=b;b=t; c-; printf(%d,%d,%d,a,b,c); A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1 2.下列说法中正确的是 。 A. break 用在 switch语句中,而 continue 用在循环语句中。 B. break 用在循环语句中,而 continue用在 switch语句中。 C. break 能结束循环,而 continue只能结束本次循环。 D. continue能结束循环,而 break只能结束本次循环。 3.设 x、 y均是 int类型变量,且 x 值 为 100,则关于以下 for。

56、循环的正确 判断是。 for (y=100; x!=y; +x,y+) printf(*n); A. 循环体只执行一次 B. 是无限循环 C. 循环体一次都不执行 D. for语句中存在语法错误 程序设计基础( C语言) 101 小测试 4.以下关于 for循环的正确描述是 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C. 在 for循环中,不能用 break语句跳出循环体 D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 5.设有程序段 int x=10; while (x=0) x=x-1; A. while循环执行 10次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句只执行一次 程序设计基础( C语言) 102 小测试 6.下面程序的功能是计算 1至 10之间的奇数之和以及偶数之和。请选择填空。 main( ) int x, y, z, k; x=z=0; for (k=0; k=10; k+=2) x+=k; ; z+=y; printf(偶数之和 = %dn, x); printf(奇数之和 =%dn, ); 、 A、 y=k- B、 y=k+1 C、 y=k+ D、 y=k-1 、 A、 z-10 B、 z C、 z-11 D、 z-y。

C语言程序设计:one two=3,程序设计基础(C语言)相关推荐

  1. c语言程序设计科学出版社课后答案,程序设计基础C语言科学出版社.doc

    程序设计基础C语言科学出版社 程序设计基础--C语言 科学出版社 第六章--其他数据模型,教材习题答案. 东风冷雪 如果认为对自己不利那就离开. 你看了比没有看好,首先印象还是有的,如果自己不会你可能 ...

  2. c语言程序设计理论考试,《C语言程序设计》理论试题库-程序题100例

    <<C语言程序设计>理论试题库-程序题100例>由会员分享,可在线阅读,更多相关<<C语言程序设计>理论试题库-程序题100例(59页珍藏版)>请在人人 ...

  3. 程序设计基础c语言思政,【程序设计论文】思政教育在C语言程序设计中的应用(共3769字)...

    关键词:思政教育:工匠精神:计算思维:自主学习 1课程思政在C语言程序设计课程中的意义 C语言程序设计课程是培养学生核心素养.计算思维和程序设计能力的基础课程.核心素养是个人终身发展和可持续发展的基础 ...

  4. c程序设计语言 qsort,【程序设计基础_C语言】北理工的恶龙(附qsort范例)

    [程序设计基础_C语言]北理工的恶龙(附qsort实例) 北理工的恶龙(附qsort实例) 背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集 ...

  5. c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...

    C语言程序设计(第4版)全面介绍了C语言的各种特性,包括C11中增加的内容.书中包含大量完整的示例及详细的讲解.无论是否拥有编程经验,你都可以通过本书透彻地理解C语言.每章最后附有习题,便于课堂学习或 ...

  6. 程序设计基础(c语言),程序设计基础(C语言)

    <程序设计基础(C语言)>由会员分享,可在线阅读,更多相关<程序设计基础(C语言)(26页珍藏版)>请在人人文库网上搜索. 1.程序设计基础(C语言),东北大学高级语言程序设计 ...

  7. 程序设计基础c语言第二版巫,程序设计基础 (C语言)---2版

    图书特色: 1. 实例丰富 本书不仅理论完备,还通过 100 多个实例夯实基础,100 多个课后习题巩固练习,并通过分布在本书第 6.8 和 10 章的 3 个综合应用案例 学生成绩统计程序.学生成绩 ...

  8. c语言程序设计5*5矩阵求出,实用C语言程序设计教程5数组和矩阵ppt221.ppt

    实用C语言程序设计教程5数组和矩阵ppt221 C语言程序设计 - 第5章 数组和矩阵 第5章 构造数据-- 数组和矩阵 本章教学目标 1.理解C语言中数组的本质及其在内存的存储结构 2.应用数组表示 ...

  9. 程序设计基础c语言上机考试,程序设计基础C语言上机考试题第一套.DOC

    程序设计基础(C语言)上机考试题 ( 第一套A卷 ) 2006~2007学年冬学期 2007年1月 应试人声明: 我保证遵守<上海大学学生手册>中的<上海大学考场规则>,如有考 ...

最新文章

  1. selenium提取数据之driver对象的常用属性和方法
  2. php 数组值的交集,PHP 数组交集与差集
  3. python是什么编程教程-python教程看完了,还是不会编程?
  4. Java 8 - 正确高效的使用并行流
  5. Blockchain:《Blockchain applications in insurance》Deloitte—德勤区块链技术研究报告正文版—听课记录
  6. linux——管理系统存储之设备分区:MBR分区、GPT分区、swap的分区的设定
  7. 【NOIP2013模拟】守卫者的挑战(期望概率)
  8. k8s mysql数据同步_K8s——MySQL实现数据持久化
  9. android sudio jni 调用so_Android NDK-深入理解JNI
  10. Collectors.mapping()
  11. Asp.net网站使用HttpHandler实现图片防盗链功能
  12. linux中oracle数据乱码,Linux环境解决Oracle 中文乱码
  13. 谷歌浏览器html插件字体大小,字体换加插件,自定义Chrome网页字体,更改字体样式,调整字体大小...
  14. Excel如何快速验证银行卡号和姓名是否一致?
  15. 大立公告:红外焦平面阵将以新的面貌出现
  16. 香农三大定理、香农公式
  17. ubuntu Pathon 目录
  18. 分治算法 求第k小元素 O(n) O(nlog2^n)
  19. Android应用权限大全(Manifest.permission)
  20. 下载typora beta版本

热门文章

  1. 前缀和--BZOJ-4972 小Q的方格纸
  2. 阿里云账号购买域名需要哪些认证?
  3. 微信小程序文字逐个显示效果
  4. 人工智能概率第一次作业
  5. linux系统中一切皆文件
  6. 零基础入门:科普数字图像处理这门专业
  7. 足球ajax战队,LPL独一档!IG正式组成“足球队”阵容,一共11个人可以去踢球了...
  8. KNIME服务器相关接口的实现
  9. 以太坊中web3j调用公链超时问题,重构httpservice即可
  10. RK3568平台开发系列讲解(驱动基础篇)RK 看门狗的使用