搜档网
当前位置:搜档网 › 第五章 选择分支与循环嵌套

第五章 选择分支与循环嵌套

第五章 选择分支与循环嵌套
第五章 选择分支与循环嵌套

顺序结构选择结构和循环结构的程序设计典型例题分析与解答

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*

分支与循环程序设计实验报告汇总

分支与循环程序设计实 验报告汇总 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

实验名称分支与循环程序设计实验 指导教师罗志祥 专业班级光电1406 姓名段昳晖学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。 二、设计思路 1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。 将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H以及1002H。 2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。

主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。 利用循环来设计延时程序,合理计算语句长度,以及循环次数。 程序运行时修正的值,可以实现暂停计数和继续的功能。 提高部分(选做): 1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用状态选择加、减计数方式。 2)利用P3口低四位状态控制开始和停止计数,控制方式自定。 初始化P1、P2,,计数循环中插入一秒延时程序。R1存千百位、R2存个十位,=0时,进行加1计数,取出R2中的数存于A,对A 加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。=1时,进行减一操作,取出R1中的数存于A,对A减1,同时进行十进制修正,存于P1,达到0,则对P2,对R2进行减一。 计数循环前判断的值,当=1时,开始计数,=0时,原地循环,停止计数,直到 =1,可以实现随时停止与开始。 三、资源分配 1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。 X存于片外1000H Y存于片外1001H、1002H 其中,求平方时,低位存于1001H,,高位存于1002H 除二时,商存于1001H,,余数存于1002H

C语言练习2(选择和循环结构)

C语言(分支和循环结构) 一、选择题 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--);} A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include main ( ) { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf ("i=%d, j=%d, a=%d\n", i,j,a);} A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a

4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf("####"); printf("****"); A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf("%d", &x); y=x>12 ? x+10:x-12; printf("%d\n", y);} A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

【测试】分支循环测试作业(VB第五章测试题)

我的试卷 测试得分: 88.0 分 1. 单选题:(4.0分) 有如下程序: Private Sub Command1_Click() x = InputBox("input value") Select Case x Case Is > 0 y = x + 1 Case Is = 0 y = x + 2 Case Else y = x + 3 End Select Print x; y End Sub 假设运行时从键盘上输入-5,输出结果是_______。 A. -5 -2 B. -5 -4 C. -5 -3 D. -5 -5 解答:A 参考答案: A 2. 单选题:(4.0分) 下列程序段的执行结果是_______。 X = 2 Y = 1 If X * Y < 1 Then Y = Y - 1 Else Y = -1 Print Y - X > 0 A. True

B. False C. -1 D. 1 解答:B 参考答案: B 3. 单选题:(2.0分) 关于语句If x=1 Then y=1,下列说法正确的是_______。 A. x=1和y=1均为赋值语句 B. x=1和y=1均为关系表达式 C. x=1为关系表达式,y=1为赋值语句 D. x=1为赋值语句,y=1为关系表达式 解答:C 参考答案: C 4. 单选题:(2.0分) Select Case 语句结构中,测试项可以有三种形式,以下使用正确的是_______。 A. Case 20>Is B. Case x<=8 ,10 to 25 C. Case Is>9 And Is<25 D. Case Is>x 解答:D 参考答案: D 5. 单选题:(4.0分)

分支与循环程序设计

实验名称分支及循环程序设计成绩 指导教师****** 专业班级****** 姓名白*** 学号******* 联系电话******** 一、任务要求 1.熟练掌握Keil环境下汇编语言程序的调试方法,加深对汇编 语言指令、机器码、寻址方式等基本内容的理解,掌握分支程 序和简单程序的设计及调试方法,了解并行IO口的使用。 2.设有8bits符号数X存于外部RAM单元,按以下方式计算后 的结果Y也存于外部RAM单元,请按要求编写完整程序。 3.利用51系列单片机设计一个24小时制电子时钟,电子时钟 的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩 BCD码的形式)。P3.0为低电平时开始计时,为高电平时停

止计时。设计1s延时子程序(延时误差小于10us,晶振频 率12MHz)。 4.1)实现4位十进制加、减1计数,千位、百位由P1口输出; 十位、个位由P2口输出。利用P3.7状态选择加、减计数方 式。 2)利用P3口低四位状态控制开始和停止计数,控制方式自 定。 二、设计思路 1.先在外部RAM取数,然后判断该符号数是否为负数,若为负 数,则取相反数并存数;若为正数,则接着判断该数是否大于 等于64,若满足,则求平方并存数,先存低位,后存高位; 若小于64,则接着判断该数是否大于10,若满足,则求该数 的一半并存数;若小于等于10,则取相反数并存数。 2.第一步先编可以延时1S的子程序DELAY;接着判断P 3.O 是否满足开始计数条件,若不满足,则重复判断;若满足,则 对时分秒分别赋值,调用延时子程序,判断是否满足计时条件,若不满足,则重复判断直至满足;若满足,则秒钟自加一,循 环,判断秒钟循环满60次后出循环,对分钟自加一,然后继 续循环,最后判断分钟循环满60次后出循环,对时钟自加一,然后判断时钟循环满24则回到初值,时分秒重新赋值并重新 开始循环。

顺序结构、选择结构和循环结构的程序设计

顺序结构、选择结构和循环结构的程序设计 请写出switch语句的一般格式及注意事项。 一般格式: Switch(表达式) {case常量表达式1:语句组1;break; Case常量表达式2:语句组2;break; …… Case常量表达式n:语句组n;break; Default:语句组n+1;}1switch中表达式可以是任意类型,常用的是字符或整型。2每个常量表达式的值不能相同。3语句组可以为任意语句。4break可以省略,然后执行完本组语句后紧接着执行其后的i+1组语句。5多个case可以用一组执行语句。6break的作用是跳出switch,执行switch下面的语句。 试说明while语句和do-while语句的异同:二者相同点在于都可以进行次数确定的循环体的次数。不同点在于do-while现执行循环中的语句,然后再判断条件是否为真,若为真则继续循环;若为假则终止循环。因此,do-while循环至少要执行一次循环语句。而while则是先判断条件后执行循环体简述for语句的执行过程及注意事项: 计算机表达式1 表达式2非0? 执行语句s 计算机表达式3 循环结束,执行下面的语句 注意事项:for语句中的3个表达式可以省略但后面的分号不能省略。 试说明continue语句和break语句的作用及区别:break的功能是跳出本层循环(对多层循环而言),接着执行下面的语句。continue语句的作用是执行continue时,循环体中continue下面的语句都不执行,重新进行循环判断以决定是否继续进行下次循环。Break和continue的区别在于:continue C 有一段程序为:while(表达式) 语句1;语句2; …… do-while语句中while 在C C C C C C语言中,语句x=!a==b 3个关于C语言的结论:可以用while语句实现的循环一定可以用for语句实现;可以用for语句实现的循环一定可以用while语句实现;可以用do-while C语言程序中,continue C语言中,if和switch C语言中,语句while C语言中,关于scanf C语言中,与语句while(!E C语言程序中,for循环语句中的表达式2为一非零常数且循环体内无break语句及goto 设i是int scanf(“i=%d,f=%f”,&i,&f);为了把100和765.12分别赋给i和 f

循环结构的嵌套教案

VB程序设计中循环嵌套的使用 一、课题 循环结构的嵌套及其应用 二、教学对象分析 本节课的教学对象是计算机信息管理专业中职第二年的学生,学生基本是初中起点,有一定的数学基础和逻辑思考的能力。学生们对计算机知识有一定的认识,有着浓厚兴趣,却又不甚精通,普遍对程序设计有一定的畏难心理。在教学的过程中,主要从一个个简单的实例处出发,让学生们从自身的实践中去学习,培养兴趣、循循善诱、重在能力,提高综合素质和增强其逻辑思维能力。 三、教学内容分析 1、教学内容:本节课是《中文visual basic6.0实用教程-结构化程序设计》(人民邮电出版社)的第3章第4节中的内容,主要介绍for-next循环语句嵌套的应用,在介绍了for-next循环嵌套的语法后,重点讲解了几种常见循环嵌套错误的应用情况和项目实现。 2、该节内容的地位和作用:这部分内容对刚介绍过的for-next循环语句进行了拓展补充,而且循环语句的嵌套在第4章算法和程序设计方法及第5章数组和基本数据结构的项目拓展实例中反复出现,固牢牢掌握循环语句的嵌套具有承前启后的作用,必须理解其应用的逻辑,不然后面的内容没法开展。 3、教材中存在的问题:教材中介绍了几个常见的循环嵌套应用的项目实现,但缺少难度逐步过渡的过程,学生理解起来比较抽象。 四、教学目标 1、知识目标:了解循环结构程序设计的思想,准确掌握“for-next”循环结构的应用和循环嵌套语句的结构以及内外循环的功能。 2、能力目标:增强学生的逻辑思维能力,培养学生分析解决实际问题的同时,锻炼他们探索规律,举一反三,融会贯通的能力。 五、教学重点和难点 1、重点:循环嵌套语句的结构和使用 2、难点:内外循环的功能及print语句对输出格式的控制 六、教学方法

第2章 顺序结构、选择结构和循环结构的程序设计 习题答案

第二章顺序结构、选择结构和循环结构的程序设计 一、简答 1. 参考书上23页 2. while先判断,后执行,do while先执行,后判断,循环体至少执行一次 3. 参考书上29页 4. continue,结束本次循环 break,结束循环 区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环 二、填空题 1. 顺序结构,选择结构,循环结构 2. if else 和switch 3. 语句1 ,语句2 4. 零 5. break ,continue 6. 7 ,0 7. ? : ,双目 三、单选 1-5 ABDCC 6-10 DBACA 11-15 CBCDA 16-20 ACBAD 21-25 ADCBB 26-29 BCCA 四、程序分析题 1. end 1end 2. num%10 max = t 3. j%3 4. 99 五、编程题 1. #include int main(){ char str[100] ; gets(str) ; int n1 , n2 , n3 , n4 , i ; n1 = n2 = n3 = n4 = 0 ; for(i = 0 ; str[i] != '\0' ; ++i) { if(str[i] >= 'A' && str[i] <= 'Z') ++n1 ; else if(str[i] >= 'a' && str[i] <= 'z') ++n2 ; else if(str[i] >= '0' && str[i] <= '9') ++n3 ; else

} printf("大写字母:%d\n" , n1) ; printf("小写字母:%d\n" , n2) ; printf("数字字符:%d\n" , n3 ) ; printf("其他字符:%d\n" , n4) ; return 0; } 2. #include #include int main(){ int array[4] , min , max , i ; for(i = 0 ; i < 4 ; ++i) scanf("%d" , &array[i]) ; min = max = array[0] ; for(i = 1 ; i < 4 ; ++i) { if(array[i] < min) min = array[i] ; else if(array[i] > max) max = array[i] ; } printf("min = %d , max = %d\n" , min , max) ; return 0; } 3. #include int main(){ float money , lixi ; int year ; scanf("%f %d" , &money , &year) ; switch(year) { case 1 : lixi = money * 0.63 / 100 ;

C语言习题:顺序、选择、循环

顺序结构程序设计 2.3.1 要点导读 () 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include <> void main() 、 { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 - 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。

#include <> void main() { int a=732; ) printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ , 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。 A)□67B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include <> #define a void main() { printf(“%f\n”,a); @ printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为。 %是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,

顺序、选择、循环三种基本结构程序设计.

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第一学期) 课程名称:结构化程序设计与C语言开课实验室:系机房444 2012 年10月21日 一、实验的目的 1、学习在VC++环境下编辑调试C语言程序的方法。 2、掌握在C语言中的各种数据类型,以及如何定义整型、实型、字符型的变量,并进 行赋值的方法。 3、掌握顺序程序的思路,特别是赋值语句的使用方法。 4、掌握各种类型数据的输入输出方法的正确应用,熟悉各种格式控制符的作用。 5、学会在选择结构中正确应用关系表达式及逻辑表达式。 6、熟练掌握if语句和switch语句的使用。 7、学会选择结构问题算法的编制与调试应用。 8、熟练掌握while语句、do-while语句和for语句实现循环的方法。 9、学会循环问题的编制与调试、运行。 二、实验内容与要求 本实验涵盖顺序、选择、循环三部分程序设计的应用,要求每部分完成两个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。具体要求完成的问题如下:(注意:在模板中给出了题的页数与题号,请写正式报告时将书上的题目内容代替页数与题号) (1)P82/2 (2)P84/6 (3)P112/6 (4)P113/9 (5)P140/5 (6)P141/16 三、算法设计思想或程序流程图 (1)设:五年期,三年期,二年期,一年期,活期存款分别为:r5,r2,r3,r0; 第一种,第二种,第三种,第四种,第五种五年期存款的本息和分别为

p1,p2,p3,p4,p5。 则有: p1=p*((1+r5)*5); 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); 存活期存款。活期利息每一季度结算一次 再将所得数据一一输出即可。 (2) 先分别把c1,c2,c3,c4,c5分别赋初值为c,h,I,n,a. 想要让它们的字母分别增加四位。只需将它们的ASCII码增加4个数就可以。便有 c1=c1+4; c2=c2+4 c3=c3+4; c4=c4+4; c5=c5+4;再将所得值以字符型输出便可 (3)输入x,用if语句判断X的值的范围。X<1将x的值赋给y并输出。 除此情况之外(x>1)再进行分类。若x<10则y=2*x-1。除此情况之外,y=3*x-11. (4)先判断它的位数。如果这个数大于9999则输出5;排除这种情况,大于999则输出4…以此类推。 分别输出每一位数字:几位数字便除以此位数的最小值。如9999便除以1000,由于都是整型,便得到9。依次除下去。得到的各位整数在赋给各个变量,反序输出。 (5)用tn=tn+a语句代表赋值后的tn为i个 a组成数的值 用 sn=sn+tn语句代表赋值后的sn为多项式前i项之和 用while语句实现在I #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); p2=p*(1+2*r2)*(1+3*r3); p3=p*(1+3*r3)*(1+2*r2); p4=p*pow(1+r1,5); p5=p*pow(1+r0/4,4*5); printf("p1=%f\n",p1); printf("p2=%f\n",p2); printf("p3=%f\n",p3); printf("p4=%f\n",p4);

C语言习题顺序选择循环

2.3顺序结构程序设计 231要点导读 1. printf()与scanf()语句。 printf()与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于stdio.h库文件中。 2?字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显 示屏写一个字符。 2.3.2经典例题分析 1?下列程序运行后输出的结果是 _____________ 。 #in clude void mai n() { int a=0,b=0; a=10; b=20; printf( “+b=%d ”,a+b); } 分析:printf()是输出函数,它的括号内由两部分组成: 1) 控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 2) ”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf( a+b=%d”,a+b); I I 格式说明输岀表列 中,”a+b=是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2. ___________________________________ 下列程序运行后输出的结果是。 #in clude

void mai n() int a=732; printf( %d\n”,a); printf( %2d\n ”,a); printf( %10d\n ”,a); printf( %-10d\n ”,a); } 分析:d格式符,用来输出十进制整数。其中%d ,按整型数据的实际长度输出。%md, m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按 实际位数输出。 printf( %d\n”,a);把a 的值按原样输出:732。printf( %2d\n”,a);结果占2 列,但732 占3 列大于2列,所以按实际位数输出:732。printf(%10d\n ”,a);结果占10列,但732占3列小 于10列,所以左端补7个空格。printf( %-10d\n”,a);结果占10列,表示把数值放到左端,732占3 列小于10列,所以右端补7个空格。 答案:732 732 □ □□□□□□732* E表示空格*/ 732 □□□□□□□ 3?已知char a=\103则语句printf( “ %3d执行后的输出结果为( □表示空格) _______________ 。 A) □ 67 B)'C)67 □D)103 分析:'03是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf( %3d”,a);把'03转换为十进制数输出,结果占3列。但67占2列,小于要求的3 列, 所以左补空格,即口67 答案:C。 4?下列程序运行后结果是 ____________。 #in elude #define a 3345.67 void mai n() { printf( %f\n ”,a); printf( %e\n",a); printf( %4.2f\n ”,a); printf( %3.1f\n ”,a); printf( %10.3f\n ”,a); printf( %-10.3f\n ”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf( %f\n ”,a); 输出结果为3345.670000。 %m.nf是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。如果小于m,则左补空格,同时小 数点保留n位(四舍五入)。printf( %4.2f\n ”,a);输出结果为3345.67。 printf( %3.1f\n ”,a);输出结果为3345.7。

江苏省二级VB 第五章 选择分支与循环嵌套

第五章选择分支与循环嵌套 5.1 分支结构与分支结构语句(2个例子) 5.2 循环结构与循环结构语句(6个例子) 5.3 程序实例(10个例子) 习题练习(11个例子) 5.1 分支结构与分支结构语句 5.1.1 IF-Then-Else-End If 结构语句 结构一般如下: If e Then [ A组语句 ] Else [ B组语句 ] End If e 为判决条件,可以是逻辑变量,关系表达式或逻辑表达式。 当A组语句仅有一个时,可简化为:If e Then < 语句 > 例如,程序代码:If Text1.Text = “” Then Text1.SetFocus End If 可以简化为:‘当文本框中文本为空时,则使得文本框成为焦点。 If Text1.Text = “” Then Text1.Setfocus (省去End If) 较为复杂的结构如下: If e1 Then ‘如果e1为True,则执行A1组语句 A1 组语句 ElseIf e2 Then ‘如果e2为True,则执行A1组语句 A2 组语句 … End If [ 例题5-1 ] 已知三角形的三边长度,设计求此三角形面积的程序。 问题分析:a + b > c & a + c > b & b + c > a , S = sqr(p(p-a)(p-b)(p-c)) , p= (a+b+c)/2 算法设计:开始——输入a、b、c——判断a + b > c & a + c > b & b + c > a,通过则求p,求S,否则提示:“输出数据错误信息”——结束。 设计程序代码如下: Private Sub Command1?_Click( ) Dim a As single, b As single, c As single a = Val(Text1.text) ‘Text 属性为字符串型,转为数值型 b = Val(Text2.text)

分支与循环程序设计实验报告

实验名称 分支与循环程序设计实验 指导教师 罗志祥 专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 2 64/2 106410 X X Y X X X X ?≥? =<

2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。P 3.0为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。 主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。 利用循环来设计延时程序,合理计算语句长度,以及循环次数。 程序运行时修正P3.0的值,可以实现暂停计数和继续的功能。 提高部分(选做): 1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。 2)利用P3口低四位状态控制开始和停止计数,控制方式自定。 初始化P1、P2,,计数循环中插入一秒延时程序。R1存千百位、R2存个十位,P3.7=0时,进行加1计数,取出R2中的数存于A ,对A 加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。P3.7=1时,进行减一操作,取出R1中的数存于A ,对A 减1,同时进行十进制修正,存于P1,达到0,则对P2,对R2进行减一。 计数循环前判断P3.0的值,当P3.0=1时,开始计数,P3.0=0时,原地循环,停止计数,直到P3.0=1,可以实现随时停止与开始。 三、资源分配 1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 264/2 106410 X X Y X X X X ?≥? =<

C语言习题:顺序、选择、循环

2.3顺序结构程序设计 2.3.1 要点导读 1.printf() 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于stdio.h库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include void main() { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。 #include void main()

{ int a=732; printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ 732□□□□□□□ 3.已知char a=…\103?;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格) A)□67B)?c?C)67□D)103 分析:?\103?是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把?\103?转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include #define a 3345.67 void main() { printf(“%f\n”,a); printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为3345.670000。 %m.nf是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。如果小于m,则左补空格,同时小数点保留n位(四舍五入)。printf(“%4.2f\n”,a);输出结果为3345.67。 printf(“%3.1f\n”,a);输出结果为3345.7。 e格式符,以规范化指数的形式输出,所以printf(“%e\n”,a);3.345670e+03。 答案:3345.670000

相关主题