


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
顺序结构、选择结构和循环结构的程序设计典型例题分析与解答1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是_选择结构【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(nl)个条件,控制从n l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是_循环结构。【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。【答案】直到型3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为_。【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdioh(标准输入输出函数)”的头函数文件中定义的。【答案】#includestdio.h或#includestdio.h4 执行输入语句“scanf(xc,yd,&x,&y);”,要使字符型变量X的值为A、整型变量y的值为12,则从键盘上正确的输入是( ) A/ A/ xA/ x=A,y12/ 12/ 12/ y12/ 说明:备选答案中的/表示回车换行键【分析】输入语句的格式控制符串中的“x”、“,”、“y”都是非格式控制符,在输入时必须原样位置输人,所以只有备选答案才符合这个要求。【答案】5 设有下列程序段,则执行该程序段后的输出是( )int i012;float f1234E2;printf(i=%-5df%53f,i,f); . i=_012f1234 i10_f0012 10_O012 _100.012 注:答案中的_代表一个空格。【分析】输出语句的格式控制符串中的“i”、“f”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案和才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案中的数据是右对齐的;此外,该答案中的实数“1234E2”应该代表“001234”,而不是“1234”。只有备选答案符合题意。【答案】6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用_菜单项,也可以直热键_。【分析】如果选用“FileSave”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“FileWrite to”,当前编辑的源程序将以新的文件名存盘。【答案】FileSave F27 下列各种选择结构的问题中,最适合用ifelse语句来解决的是( )控制单个操作做或不做的问题控制两个操作中选取一个操作执行的问题控制三个操作中选取一个操作执行的问题控制10个操作中选取一个操作执行的问题【分析】ifelse语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。【答案】8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:a将转换成B、y将转换成Z,其中的Z将转换成A。请填写程序中所缺少的语句。 main() char ch ; scanf(”%c”,&ch; chch 32+1; _; printf(%cn,ch); 【分析】分析程序库中的“chch 32 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母( 32)的后一个字母( l)。如果ch中的字母是 a、 b、,y,转换结果都不会出错,但是,如果 ch中的字母是Z,则-32后是大写字母Z,再+l后将不是大写字母了。为了使其转换成A,需要用一个单分支结构来实现:如果ch的值等于Z+ l,则硬性将 ch的值改成A。完成这个任务的语句是一条单分支语句,正是所缺少的语句。【答案】 if (chZ+l) hA;9不能正确计算下列分段函数的程序段是_ |-1x0 switch(x 0) if(x 0) case1:y1;break; y=1; case 0:switch(x0) else casel:y0;break; if(x0) case 0: y l; y0 else &ny-l y l; y l; if(x0) if(x0) y0; yl; else else y l; if(x 0) y0;【分析】先来分析备选答案:表达式“x0”的值只有两种可能性,成立值为1、不成立值为on如果“x 0”的值为 1(即 x 0),则执行“easel:”后的语句“y l”后,退出 switch语句,符合分段函数要求。如果“x0”的值为0(即x0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x0”,结果也有两种:成立为1、不成立为0.如果“x 0”的值为1(即x0),则执行“case l:”后的语句“y0”后, 退出 switch语句,符合分段函数要求。如果“x0”的值为0(即x0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案:双分支语句的条件是“x0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x0和x0两种情况),结果y值为l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x0”和“x0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。【答案】10 三种循环语句都能解决循环次数已经确定的次数型循环,其中_循环语句最适合。【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 kl;表达式2为:整型变量 k n;表达式 3为:整型变量 k+;则这个 for循环就是次数为n次的标准次数型循环结构。【答案】for11执行下列程序段后的输出是() xl; while(x3) x+,yx+x; printf(%d,%d,x,y); 6,10 5,8 4,6 3,4【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算yx+x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算yx+x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。【答案】 12 执行下列程序段,其中的dowhile循环一共执行次。 static int x; do x+x*x; while (x);【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+x* x是xx+(x* x)0+(0* 0)0;再判断控制循环的条件“x”,结果为0,条件不成立,退出循环。所以循环仅执行1次。【答案】 113 下列程序段的输出结果是() for( i0; i1;i+l) for( j 2;j 0;j-) printf(*); * * * *【分析】注意每次内层循环仅输出1个“*”,所以只要分析出二重循环的总次数即可。首先分析外层循环的次数:控制变量i的初值为0;终值为0(i1相当于i=0);步长为1(i+l相当于 i i+ l),所以外层循环次数为1。再分析内层循环次数:控制变量 j的初值为2;终值为1(j0相当于j=1);步长为-1(j-),所以内层循环次数为人内层循环体一共执行的次数等于外层循环次数乘以内层循环次数,共计为l*22。【答案】 14 执行下列程序段后的输出是_。 x0; while(x3) for(;x 4;x+)printf(”%1d”,x+); if( x 3) continue; else break; printf(”%1d”,x);【分析】我们用执行程序并记录各变量值的方法来获得程序的输出结果,记录如下: x0; 第一次执while循环,条件x3成立,执行while的循环体(即for循环); 第一次执行for循环,条件x4成立,执行for的循环体; 输出x的值问位整数,其值为0),然后x+,x值为1; ifelse的条件 x 3成立,执订 continue,继续 for循环,执行 x+, x为 2; 第二次执行拉循环,条件x4成立,执行比r的循环体; 输出x的值(1位整数,其值为对,然后x+,x值为3; if-else的条件x3不成立,执行break,退出for循环,返回while循环; 第二次执行while循环,条件x3不成立,退出while循环,结束程序运行。 所以,最终输出结果是两个一位整数0和2。【答案】 0215 与下列程序段的基本功能不相同的是_ x0; LOOP:x+; if(x 10) gotO LOOP; for(x0;x10;x+); x10; do x0; x0; while (x+10); while(x+9);【分析】先分析给出的程序段,很明显这段程序是用 goto语句构成的循环,控制循环的条件是“x1O”,循环要做的工作是“x”;当 x值为 9时,进行循环,通过“x”,使 x值为 10后,条件“x10”将木再成立,退出循环,则此时 x的值为 10。可以这样说,该段程序的功能是使变量x的值为10。以下来分析每个备选答案。分析备选答案:这是一个次数型、无循环体(循环体是空语句)的循环,控制变量x的初值为0,终值为9,一共循环 10次,每次对变量x加 1,结果变量x的值为 10。分析备选答案:很明显,直接给变量x赋值为10。分析备选答案:这是一个当型循环语句,循环体是给变量x赋值为0,控制循环的条件是“x10”,第1次执行循环体,变量x值为0,控制循环的条“x10”成立,此时变量x值为1,继续循环,在循环体中又将变量x的值改为0,显然,控制循环的条件仍然成立,继续循环,由此看出,这个循环是一个无限次的循环(死循环),木能完成使变量x值为10的功能,该答案符合题意。至于备选答案:进入while循环前的x值为0,控制while循环的条件实际上是x9“x 1O”,环要做的工作是“x”;当 x值为 9时,进行循环,通过“x”,使 x值为 10后,条件“x10”将木再成立,退出循环,则此时 x的值为 10。可以这样说,该段程序的功能是使变量x的值为10。以下来分析每个备选答案。分析备选答案:这是一个次数型、无循环体(循环体是空语句)的循环,控制变量x的初值为0,终值为9,一共循环 10次,每次对变量x加 1,结果变量x的值为 10。分析备选答案:很明显,直接给变量x赋值为10。分析备选答案:这是一个当型循环语句,循环体是给变量x赋值为0,控制循环的条件是“x10”,第1次执行循环体,变量x值为0,控制循环的条件“x10”成立,此时变量x值为1,继续循环,在循环体中又将变量x的值改为0,显然,控制循环的条件仍然成立,继续循环,由此看出,这个循环是一个无限次的循环(死循环),木能完成使变量x值为10的功能,该答案符合题意。“x10”,循环要做的工作是“x”;当 x值为 9时,进行循环,通过“x”,使 x值为 10后,条件“x10”将木再成立,退出循环,则此时 x的值为 10。可以这样说,该段程序的功能是使变量x的值为10。以下来分析每个备选答案。分析备选答案:这是一个次数型、无循环体(循环体是空语句)的循环,控制变量x的初值为0,终值为9,一共循环 10次,每次对变量x加 1,结果变量x的值为 10。分析备选答案:很明显,直接给变量x赋值为10。分析备选答案:这是一个当型循环语句,循环体是给变量x赋值为0,控制循环的条件是“x10”,第1次执行循环体,变量x值为0,控制循环的条件“x10”成立,此时变量x值为1,继续循环,在循环体中又将变量x的值改为0,显然,控制循环的条件仍然成立,继续循环,由此看出,这个循环是一个无限次的循环(死循环),木能完成使变量x值为10的功能,该答案符合题意。至于备选答案:进入while循环前的x值为0,控制while循环的条件实际上是x9(因为x十是后缀),注意每次循环后都会使得x加1,当x为8时,由于条件“89”,条件成立,继续循环的同时x变为9,再次循环后,条件“99”不成立,退出循环时,x要再加1,此时x值为10。【答案】16 阅读下列程序,写出程序运行后的输出结果。 main( ) int x18,i; for(i=2;i9;i十十) if(x%i0) prinif(”%1d”,i); xx/i-; if(x0)break; 【分析】本程序的关键显然是 for循环。控制变量 i初值为 2,循环体中只有一条单分支语句。控制分支的条件为“x% i 0”,这个条件就是判断“x能否整除 i”,或者说是“i是否x的因子。如果条件木成立(i不是x的因子),修改控制变量i的值(加1后)继续循环;如果i是x的因子,则输出这个因子i,再执行“xx/i-;”语句,从x中除去这个因子,并使得i减1(以便下次循环时仍然可以判断x中是否还含有这个因子入下面的单分支语句是判断x是否为0,如果为0则退出循环,结束程序的运行,否则控制变量i加1后,继续循环。综合上述分析,可以看出该程序的功能是求出变量x中的所有因子,包括重复因子。【答案】23317下列程序的主要功能是求出所有3位整数中能被8整除余7,或者被7整除余8的所有整数。请填写程序中缺少的语句成份。main() int k 100; do if(_) prinif(%dn,k); while(k+999);【分析】本程序的关键是dowhile循环。控制循环的条件是x当前值小于999。从k所赋予的初值看, k是从 100开始的,直到”so由于控制循环的条件中 k有一个后缀的+运算,所以,最后一次循环执行时,k值是999。这个循环恰好是处理了所有的3位整数。循环体中是单分支语句,条件成立时则输出此时的变量k值,显然这个条件就是“k能被8整除余7,或者被7整除余算,因此可以写出所缺少的条件(参看答案)。【答案】(k%87)(k%78)18 阅读下面列序,写出程序的主要功能。 main() int y; float x; scanf(%f, &x); if(x10) yl; else if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐理大三和弦试题及答案
- 2025年河北省中考学易金卷地理试卷(原创卷)及参考答案
- 一年级语文上册班主任工作总结
- 律所案件保密及法律援助协议
- 公共停车场车位租赁三方合作协议
- 蔡欢与张伟离婚协议书及子女抚养及财产分配协议
- 肩颈切断手术操作规范
- 2025混凝土砖销售合同
- 细胞生物学试卷(含答案及笔记)全解
- 小学三年级语文教案 (一)
- 《电工电子技术(II)》试题A卷 及答案
- 夏县县城污水处理提质增效-一厂一策-系统化整治方案
- 2024年档案知识竞赛试题及答案
- 2024年注册计量师-一级注册计量师考试近5年真题集锦(频考类试题)带答案
- 高中化学有机化学知识点归纳+方程式总结
- 走进西方音乐学习通超星期末考试答案章节答案2024年
- 国家开放大学电大《生产管理》2024-2024期末试题及答案试卷号
- “抢10”游戏(教学设计)-2024-2025学年一年级上册数学苏教版
- 农村建房的邻居协议书模板
- 服装技能大赛理论试题库题
- 浙江省杭州市上城区2023-2024学年八年级下学期期末科学试题(解析版)
评论
0/150
提交评论