c++程序的控制结构习题答案

c++程序的控制结构习题答案
c++程序的控制结构习题答案

第4章程序设计三种基本结构

第4章程序设计三种基本结构 一、选择题: 【例1】(2002年4月)下面的程序的输出结果是( )。#include main( ) { int i=010,j=10; printf("%d,%d",++i,j--); } A. 11,10 B. 9,10 C. 010,9 D. 10,9 【答案】B (i的值是以八进制定义的) 【例2】(2002年4月)以下的程序的输出结果是( )。main( ) { int a=5,b=4,c=6,d; printf(("d\n",d=a>b?)(a>c?a:c):(b)); } A. 5 B. 4 C. 6 D. 不确定 【答案】C 【例3】(2002年4月)以下程序的输出结果是( )。

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); } A. 1 B. 0 C. 非0的数 D. -1 【答案】A 【例4】(2002年4月)以下程序的输出结果是( )。 main( ) { char x=040; printf("%o\n",x<<1); } A. 100 B. 80 C. 64 D. 32 【答案】A 【例5】(2002年9月)已知i,j,k为int型变量,若从键盘输入:1,2,3< 回车>,使i的值为1、j的值为2,k的值为3,以下选项中正确的输入语句是(C )。 A. scanf("---",&I,&j,&k); B. scanf("%d %d %d",&I,&j,&k); C. scanf("%d,%d,%d",&I,&j,&k); D. scanf("i=%d,j=%d,k=%d",&I,&j,&k);

第四章基本的控制结构答案

基本的控制结构 一、选择题 1.VB 提供了结构化程序设计的三种基本结构,这三种基本结构是 。 (A ) 递归结构、选择结构、循环结构 (B )选择结构、过程结构、顺序结构 (C )过程结构、输入输出结构、转向结构 (D )顺序结构、选择结构、循环结构 2.下面程序段运行后,显示的结果是 。 Dim x If x then print x else print x+1 (A) 1 (B)0 (C)-1 (D)显示出错信息 3.对于语句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为关系表达式 4.用if 语句表示分段函数f(x)= 1,31 ,12<+≥+x x x x ,下列不正确的程序段是 (A) f=x*x+3 (B) if x>=1 Then f=Sqr(x+1) If x>=1 Then f=Sqr(x+1) if x<1 Then f=x*x+3 (C)if x>=1 Then f=Sqr(x+1) (D)if x<1 Then f=x*x+3 Else f=x*x+3 Else f=Sqr(x+1) 5.下面程序段,运行后显示的结果是 Dim x X=Int(Rnd)+5 Select Case x Case 5 Print “优秀” Case 4 Print “良好” Case 3 Print “通过” Case Else Print “不通过” End Select (A)优秀 (B)良好 (C)通过 (D)不通过 6.下面语句执行后,变量w 中的值是 W=Choose(Weekday(“2007,5,1”),“Red”, “Green ” “Blue ” “Yellow ”) (A)Null (B) “Red” (C) “Blue ” (D) “Yellow ” 7. 以下______是正确的For … Next 结构。 (A )For x=1 To Step 10 (B )For x = 3 To 3 Step 3 … … Next x Next x

第二章_基本控制结构程序设计习题解答

第二章基本控制结构程序设计习题 一.基本概念与基础知识自测题 2.1 程序阅读题 2.1.1 设有说明: int a=3, b=100; 下面的循环语句执行(1)次,执行后a、b的值分别为(2)、(3)。 while(b/a>5){ if(b-a>25) a++; else b/=a; } 解答: 本题检查学生整除的概念。跟踪: (1)14 (2)17 (3)100 2.1.2 设有说明: int x,y,n,k; 下面程序段的功能是备选答案中的(1),当n=10,x=10打印结果是(2)。cin>>x>>n; k=0; do{ x/=2; k++; }while(k

A. n n x y )1(+= B. n n x y 2)21(+= C. n n x y )21(+= D. n n x y 21)2 1(++= 解答: 第一个循环使x 成为:n x 2;y 成为:n x 21+;第二个循环使y 成为:n n x 2)2 1(+; (1)B 考虑整除,当x 连除4次2以后即为0,所以: n x 2为0 (2)1 2.1.3 请看如下程序段: if (num==1) cout<<”Alpha”; else if (num==2) cout<<”Bata”; else if (num==3) cout<<”Gamma”; else cout<<”Delta”; 当num 的值分别为1、2、3时,上面程序段的输出分别为(1) 、(2) 、(3) 。 解答: 检查条件语句与字符串输出概念: (1)Alpha (2)Bata (3)Gamma 2.1.4 执行下面程序段后,m 和k 的值分别为 (1) 、 (2) 。 int m,k; for(k=1,m=0;k<=50;k++){ if (m>=10) break; if (m%2==0){ m+=5; continue; } m-=3; }

流程控制结构

流程控制结构 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

(单元教案首页) 单元标题第3章流程控制结构 教学时数:()学时,其中理论()学时、实验()学时、上机()其它()学时,其它是指: 教学目的与要求: 1.理解程序的的三大控制结构。 2.掌握选择结构实现语句的用法编程应用 3.掌握循环结构实现语句的用法及其编程应用。 4.理解并掌握各种跳转语句的使用方法。 主要教学内容: 1.程序的控制结构:顺序、选择、循环。 2.选择结构语句:if语句(两种格式)和switch语句、程序举例。 3.循环结构语句:for语句、while、语句、do-while语句、三种循环语句的互相转化、程序举例。 4.控制结构跳转语句:break语句、continue语句、return语句 教学重点与难点: 重点:if语句、switch语句、for语句、while语句、do-while语句 难点: switch语句、选择结构编程应用、循环结构编程应用、跳转语句的编程应用课后作业: 1.课本P66 综合练习三:第一题~第四题 2.上机实习:实习3:Java流程控制 课后体会:

兰州资源环境职业技术学院教师授课教案

—————————————————————— 第3章流程控制结构 一、本章主要内容: 本章主要讲述Java程序的基本控制结构和控制语句,使得学生能利用这三种结构来解决一些比较复杂的问题。 Java程序的基本控制结构有三种:顺序结构、选择结构、循环结构。 二、具体授课内容: 概述 选择结构 循环结构 跳转语句 三、本章授课思路: 1. 回顾C语言中结构化程序设计方法所所用的程序三大控制结构(顺序结构、选择结构、循环结构)语法知识,以复习回顾的方式引入讲解Java语言的程序控制结构知识(和 C语言用法一致),学生易于理解记忆。 2.具体讲解选择结构(if、switch)和循环结构语法(while、for、do-while)及其编程用法的典型程序编写举例,使学生理解掌握Java语言中控制结构的使用特点及编程技巧。 将两种输入数据的编程方法融入到控制结构用法的编程举例的程序中,使学生对输入数据方法的能够有一定的理解掌握和编程使用,结合在后续第4章面向对象的程序设计的方法的具体学习中再加强理解和掌握。 4.课堂上通过练习和讲解第3章课后习题,加强和巩固学生对所学知识的理解和掌握使用。

控制结构程序设计实验报告

《测绘程序设计(https://www.360docs.net/doc/6f9588265.html,)》 上机实验报告 (Visual C++.Net) 班级: 学号: 姓名: 序号: 二零一零年三月

实验2 控制结构程序设计 一、实验目的 掌握VC++.net语言的基本语法; 理解顺序结构、选择结构和循环结构程序设计的特点及应用; 掌握对基于对话框的MFC应用程序设计方法; 掌握一些简单算法 二、实验内容 1)编写后方交会的程序 设计思路: 通过反正切求得的角度范围是“-90—90”,而方位角的取值范围是“0 —360”,因 此需要通过方位角的象限来进行转换。 还有一点不容忽视,反正切函数求出的角度是弧度,而需要得到的方位角显示的是度、分、秒。因此需要转换。 当dx>0时 dy>0,nQuadrant=1,Rad=atan(dy/dx)*180/PI dy<0, nQuadrant==4, Rad=(atan(dy/dx)+2*PI)*180/PI dy=0, Rad=0; 当dx<0时, dy>0,nQuadrant=2,Rad=(atan(dy/dx)+PI)*180/PI dy<0, nQuadrant=3, Rad=(atan(dy/dx)+PI)*180/PI dy=0,Rad=180 当dx=0时 dy>0,Rad=90 dy<0,Rad=270 dy=0,则两点重合,方位角不存在了 计算出弧度(Rad)后,再将其转化为度分秒输出就完成了。

界面设计: 界面由5个文本框、5个静态框和2个命令按钮组成,需要完成输入2 点坐标,输出方位角的功能 其中文本控件属性设置为: 主要代码: 文件名TriAzimuthDlg.cpp #include"stdafx.h" #include"TriAzimuth.h" #include"TriAzimuthDlg.h" #include"math.h" ……. void CTriAzimuthDlg::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 OnCancel(); } const double PI=3.1415926; void CTriAzimuthDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 //OnOK(); } //将弧度转化成度分秒形式 double Rad_To_Dms(double Rad) { double dDeg,dDms; //十进制角度及度分秒格式角度,控制变量 //用于存放度分秒三个值的变量 int iDegree,iMin; double dSec; double dTmp; dDeg=Rad*180/PI; //弧度转化为度 //度转化成度分秒 iDegree=int(dDeg); dTmp=(dDeg-iDegree)*60;

vb控制结构综合练习

控制结构 一、选择题 1.VB 的3种结构化程序设计的3种基 本结构是________。 A)选择结构、过程结构、顺序结构 B)递归结构、选择结构、顺序结构 C)过程结构、转向结构、递归结构 D)选择结构、顺序结构、循环结构 2.用If 语句表示分段函数 33 11 ()11x x f x x x ?-≥=?+=1Thenf=s^3-1 B)Ifx>=1Thenf=x^3-1 Ifx<1Thenf=x^3+1 C)Ifx>=1Thenf=x^3-1 f=x^3+1 D)Ifx<1Thenf=x^3+1Else F=x^3-1 3.执行下面的程序段后显示结果是________。 PrivateSubForm_Click() Dimm IfmThenPrintmElsePrintm+1 EndSub A)0 B)1 C)”” D)False 4.设a=6,则执行x=IIf(a>5,-1,0)后,x 的值为________。 A)5 B)6 C)0 D)–1 5.下面程序段的运行结果是________。 cj=85 Ifcj>90Thendj="A" Ifcj>80Thendj="B" Ifcj>70Thendj="C" Ifcj>60Thendj="D" Ifcj<60Thendj="E" Print"dj=";dj A)dj=B B)dj=C C)dj=D D)dj=E 6.下列语句正确的是________。 A)IfK<3*NAndk>NThenN=k^3 B)IfK<3*NAndk>NThenN=k3 C)IfK<3*N:k>NThenN=k^3 D)IfK<3*NAndk>NThenN=k**3 7.设X=2.0,y=8.0,z=6.0,L=True ,则下列VisualBasic 表达式中值为True 的是________。 A)X+Z>YANDL B)NOT(YNOTL C)NOTLOR(L=Y+X=Z) D)Y+X>=Z+XAND(LANDFALSE) 8.要判断”月收入在2000元以上(含2000元)且5000元以下(不含5000

第四章 VB程序的控制结构

第四章VB程序的控制结构 4.1算法概论 1.算法的概念 算法:指用计算机解决某一问题的方法和步骤。 数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。 非数值算法:用于对非数值信息进行查找、排序等。 2.算法的特征 (1)确定性:指算法的每个步骤都应确切无误,没有歧义。 (2)可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。 (3)有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。 (4)输入性:指一个算法可以有0或多个输入数据。 (5)输出性:指一个算法必须有一个或多个输出结果。 3.算法的评价 主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。 4.算法的描述 一般常用流程框图来描述算法。

5.基本算法结构 “结构化程序设计方法”规定算法有三种基本结构:顺序结构、选择结构和循环结构 6.算 法示 例 (1) 欧几里德算法——求两个自然数的最大公约数

(2)顺序查找算法——在N个字符串集合中,查找有无特定的字符串存在

4.2顺序结构 1.赋值语句 赋值语句是任何程序设计中最基本的语句,赋值语句都时顺序执行的。赋值语句的形式为:

变量名= 表达式 它的作用是计算右边表达式的值,然后赋给左边的变量,表达式的类型应该与变量名的类型一致。 2. 使用说明 (1)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度; (2)当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型再赋值,但当表达式中有非数字字符或空串,则出错。 (3)任何非字符类型赋值给字符类型,自动转换为字符类型; (4)当逻辑型赋值给数值型时,True转换为-1,False转换为0;反之,非0转换为True,0转换为False; (5)赋值号左边的变量只能是变量,不能是常量、常数符号、表达式,否则报错; (6)不能在一句赋值语句中,同时给各变量赋值; (7)在条件表达式中出现的= 是等号,系统会根据= 号的位置,自动判断是否为赋值号; (8)注意N=N+1 是累加中常见的赋值语句,表示将N变量中的值加1后再赋值给N。 5 4.3选择结构(或称分支结构) 1.1. IF条件语句 (1)If……Then语句(单分支结构F) 语句形式: 1)If<表达式> Then 语句块 End If 2)If <表达式> Then <语句>

第5章循环结构程序设计

第5章循环结构程序设计 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构; 2.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 3.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序5_1.c、5_2.c、5_3.c、5_5.c、5_6.c、5_7.c、5_8.c、5_11.c上传至http://121.251.227.27:8080/c 1.循环设计 循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。 (1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 (2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。 2.基本算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1. 穷举算法 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例1 输入两个正整数x和y,求其最大公约数。 #include void main() { int x,y,i,flag; flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/ printf("Please input two numbers:"); scanf("%d%d",&x,&y); for(i=x

《程序基本控制结构》

《程序基本控制结构》 《程序基本控制结构》-说课稿 《程序的基本控制结构》——说课稿[张国相教龄:1年] 一、说教材 《程序的基本控制结构》是浙江教育出版社高中信息技术教材第二版“第六章程序设计基础”中第二节。纵观本书,本章属于电脑的高级应用。而这一节是在学习了“宏”的相关知识的基础上进行的。这一节在巩固前面所学知识的前提下,从“宏”入手,深入的学习程序设计的基础知识——基本控制结构。这一节既是本章重点又是难点,但是对学生只要求掌握程序的三种基本控制结构:顺序结构、分支结构、循环结构,难度有所降低。所以这一块内容安排一课时,使学生理解这三种基本控制结构并能较熟练的运行。这一节的教学目标安排如下: 知识目标:要求学生理解程序设计的三种基本控制结构,弄清这三种结构中程序运行的顺序。 能力目标:在理解上述三种结构的基础上,较熟练的运行给定的程序,并培养学生运用所学知识解决实际问题的能力。 情感目标:培养学生对新事物的认知规律。 重点:程序的基本控制结构。 难点:程序的基本控制结构——循环结构。 二、说教法 由于这是学生第一次接触程序设计的知识,理解起来有一定的难度。可以从已经掌握的“宏”入手,通过“宏”与程序设计的关系,用已学知识与新知识的联系,引出程序设计的概念,并通过示例让学生理解程序设计的意义。通过对示例的分析进入对三种程序设计结构的认识和理解。在分别讲述三种结构时,用学生较熟悉的事例进行讲解,使学生更容易理解。然后对这三种结构进行比较。在教学过程中,采用讲解、演示与操作练习相结合的方法,有利于学生的理解和掌握。在学生操作时,及时的提出注意问题,并根据学生的操作情况个别讲解或者全班讲解,使问题得到及时解决。 三、说学法

第二章 基本控制结构程序设计习题

第二章 基本控制结构程序设计习题 一.基本概念与基础知识自测题 2.1 程序阅读题 2.1.1 设有说明: int a=3, b=100; 下面的循环语句执行 (1) 次,执行后a 、b 的值分别为 (2) 、 (3) 。 while (b/a>5){ if (b-a>25) a++; else b/=a; } 解答: 本题检查学生整除的概念。跟踪: a b b/a 循环次数 b-a 3 100 33 1 97 4 100 2 5 2 96 5 100 20 3 95 … … … … … 15 100 6 13 85 16 100 6 14 84 17 100 5 停 (1)14 (2)17 (3)100 2.1.2 设有说明: int x,y,n,k; 下面程序段的功能是备选答案中的 (1) ,当n=10,x=10打印结果是 (2) 。 cin>>x>>n; k=0; do { x/=2; k++; }while (k

解答: 第一个循环使x 成为:n x 2;y 成为:n x 21+;第二个循环使y 成为:n n x 2)2 1(+; (1)B 考虑整除,当x 连除4次2以后即为0,所以:n x 2 为0 (2)1 2.1.3 请看如下程序段: if (num==1) cout<<”Alpha”; else if (num==2) cout<<”Bata”; else if (num==3) cout<<”Gamma”; else cout<<”Delta”; 当num 的值分别为1、2、3时,上面程序段的输出分别为(1) 、(2) 、(3) 。 解答: 检查条件语句与字符串输出概念: (1)Alpha (2)Bata (3)Gamma 2.1.4 执行下面程序段后,m 和k 的值分别为 (1) 、 (2) 。 int m,k; for(k=1,m=0;k<=50;k++){ if (m>=10) break; if (m%2==0){ m+=5; continue; } m-=3; } 解答:注意continue 语句的使用 初值 m=0 k=1 第1次循环后 m=5 k=2 第2次循环后 m=2 k=3 第3次循环后 m=7 k=4 第4次循环后 m=4 k=5 第5次循环后 m=9 k=6 第6次循环后 m=6 k=7 第7次循环后 m=11 k=8 第8次循环 m=11结束 k=8,k++未做 (1)11 (2)8 二.编程与综合练习题

程序设计的三种控制结构

程序设计的三种控制结构 1、顺序结构 A=5 A=a+2 “=”是一个赋值,先执行右边的 2、选择结构 从键盘上输入一个数字判断是偶数还是奇数 分析:如果一个数能被2整除,它就是偶数Input “qingshuruyigeshu” to a If a mod 2=0 关系运算 ?? “偶数” End if “=”在判断结构中,不再是赋值,而是关系运算 一个条件两种结果的 If a mod 2=0 a=7 ??”oushu” Else ??”jishu” Endif A=”abcdefgHHHH”

判断一下,字符串a的第五个字符是不是数字。 分析,如何把字符串a的第五个字符取出来Right(Left(a,5),1) B=Substr(a,5,1) 判断这个字符是不是数字 怎么判断是数字还是其他字符, 如果b的ascii的码属于数字范围就是数字,不属于就不是数字 0-9 48- 57 If asc(b)>=48 and asc(b)<=57 ??”shuzi” Else ??”feishuzi” End if 字符串函数 ?Len(a) 字符串的长度函数结果7,一个汉字两个字符11 ?lower(a) 结果为:“abcdefghhhh” ?upper(a) 结果为:“ABCDEDGHHHH”

SPACE B=A&SPACE(5) LEN(B) A=”abcdefgHHHH” LEFT(A,3) 结果为”abc” RIGHT(a,3) 结果为”hhh” Substr(a,3) SUBSTR Input “请输入所用的电量” to A 判断a的范围,如果超过50度是一种计算方式,50度以内是另外一种计算方式,一个条件两个结果 CLEAR SET TALK OFF Input “请输入所用的电量” to A If a>50 B=50*0.52+(A-50)*075 Else B=A*0.52 End if

程序的基本结构 教学设计

《程序的基本结构》教学设计 一、教学目标 1.知识与技能 让学生掌握顺序、选择、循环三种基本结构,能够使用三种基本结构编写简单的程序解决具体问题。 2.过程与方法 通过具体实例,让学生理解三种结构的基本思想,并对流程图和程序语言进行对照分析,提高学生分析问题的能力,增强学生利用程序设计语言解决实际问题的信心和能力。 3.情感态度与价值观 培养学生对程序设计的兴趣,帮助学生探究计算机解决问题的神秘面纱,鼓励学生自主探索计算机软件的设计,注重学生协作学习习惯的养成。 二、学生分析 在普通高中数学课程中,学生已经对三种基本逻辑结构——顺序、条件分支、循环有了一定的认识。如果学生对数学课中的这部分内容掌握的不够好,则在教学中应注重指导学生理解顺序结构、选择结构和循环结构的基本思想,加强对程序流程图和程序语言进行对照分析;如果学生已经掌握,则在教学中应引导学生对基本结构进行归纳总结。 从前几节的学习来看,有一部分学生对程序设计的兴趣不高,一方面是由于高中阶段学习负担很重,对于信息技术课程的认识不够,另一方面是由于网络的普及也对课程的学习产生了不小的负面影响,而且算法与程序设计本身也比较枯燥,鉴于这种情况,本课程设计的原则是分组探究,结合实际的数学问题,画出相应的流程图,通过适当的引导,再转化成具体实现语句和程序,使学生运用VB程序设计语言的基本知识,学会问题解决的结构化方法,编写程序,体验成功的快乐。 三、教材分析 1.本节的作用和地位 用任何高级语言编写的程序都可分解为三种结构:顺序结构、选择结构和循环结构。牢固掌握这三种基本结构,是学习程序设计的基本要求,是编写出结构清晰、易读易懂程序的前提。同时,本节也将为下一章“算法的程序实现”打下基基础。 2.本节主要内容 在高中阶段,学习程序设计毕竟不同于专业训练,因此,我们应精心选择能激发学生兴趣的实例,帮助学生完成从数学中的“算法”到程序中算法的过度。本课首先用交流讨论解决“已知三边求三角形面积”的算法,画出流程图,转化成程序代码,引入顺序结构,然后依次加强约束条件,逐步修正算法和相应的流程图,引入选择、循环结构,总结出结构的共性,最后是编程实现,巩固和加深对基本结构的认识。 3.重点难点分析 教学重点:引导学生探究问题的算法,画出流程图,然后与程序语言的实现语句进行对照分析,使学生能正确的使用程序语言实现三种基本结构。 教学难点:任何一门程序设计语言,对三种基本结构实现语句的格式都有严格要求,因此,在帮助学生建立算法思想和程序设计认知的同时,应注重培养学生规范编程并养成良好编程习惯。三种结构实现语句的格式和功能,以及同种结构的不同语句之间的差异是本节重点。当然,本节主要还是让学生理解顺序结构、选择结构、循环结构的基本思想,在后续的程序编写中还将不断用到这三种结构,学生可逐步掌握。 4.课时要求:1课时 四、教学理念

南邮《高级语言程序设计》期末总复习模块二:三种基本结构和流程控制

模块二:三种基本结构及流程控制 C程序的三种基本结构是顺序结构、选择结构、循环结构。这三种结构分别需要借助于特定的语句控制实现。 (1)顺序结构:赋值语句和函数调用语句是控制该结构的主要语句。函数调用语句中最常用的是:scanf( )、printf( )、getchar( )、putchar( )等用于控制输入输出的语句。注意用scanf( )输入变量值时要严格按照格式控制串的形式要求输入,用printf( )输出时要进行相应的格式控制,需要熟记几种格式转换说明符:%c、%s、%d、%f、%lf(当变量为double类型时,在scanf 中必须用%lf,但输出时用%f就可以了)。 练习: 1、已知a、b、c为int型变量,用于输入的语句为: scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若想使a的值为1,b的值为2、c的值为3,应当怎样输入?如果提供的输入方法为1,2,3<回车>,则对应的输入语句是什么? 2、float v=1234.5678;,输出格式为:输出总宽度为10,精 度为3,则应使用语句printf(_______);实现;若输出语句为:printf(“%.3f”,v);,输出的内容为:______ (2)选择结构:用if...else、switch语句配合复合语句、break 语句控制实现。If语句有三种形式:单分支if、双分支if、嵌套if,注意else应与其前最靠近的未匹配过的if相对应,而与对齐的形式无关,每一个else实际上都隐含了一个条件,要充分利用

这些条件分析程序;if后的条件通常是关系表达式,但是实际上可以是任何表达式,仅以该表达式是0或非0来判断条件的假和真。注意:if ( )及else后面都只能控制一条语句,经常需要用到复合语句。 switch语句中特别要注意的是:(1)switch后面的表达式类型应当为整型、字符型、枚举型,而不可以是float或double型,因为表达式的取值必须是离散值。 (2)找到与表达式匹配的常量后开始执行,直到遇到break或语句结束才会停止。因此每一个分支后如果没有及时用break,则继续向下执行,这样,switch结构可以选择多个分支执行(3)这些常量的顺序调整不影响程序的正确性,只要每个分支执行的功能固定就可以了。 练习: 1、已知变量tf为整型,下面的条件语句中,五种表达有一种与 其它四个不等价,它是? A、if (tf ) 语句1; else 语句2; B、if ( tf==0 ) 语句2; else 语句1; C、if (tf!=0 ) 语句1; else 语句2; D、if (!tf ) 语句2; else 语句1; E、if (tf==1 ) 语句1; else 语句2; 2、设以下所有变量均为整型,下列程序所实现的分段函数是?

实验6 控制结构综合程序设计1.doc1

实验6 控制结构综合程序设计 【实验目的】 (1)熟练掌握分支结构、循环结构的综合应用。 (2)熟练掌握使用函数编写程序的方法。 (3)熟练掌握结构化程序设计的思想及方法。 (4)熟练掌握C 程序的调试方法。 【实验内容】 一、调试示例 改正下列程序中的错误。根据下式求π的值,直到某一项小于6 10-。 1!2!3!!1...233535735 (21) i i π =+++++???????+ 源程序(有错误的程序) 1 #include 2 int fact(int n); 3 int multi(int n); 4 int main(void) 5 { 6 int i; 7 double sum,item,eps; 8 9 eps=1E-6; 10 sum=1; 11 item=1; 12 for(i=1;item>=eps;i++){ 13 item=fact(i)/multi(2*i+1); 14 sum=sum+item; 15 } //调试时设置断点 16 printf("PI=%0.5lf\n",sum*2); 17 18 return 0; 19 } 20 21 int fact(int n) 22 { 23 int i; 24 int res; 25 26 res=1; 27 for(i=0;i<=n;i++) 28 res=res*i; 29 30 return res; //调试时设置断点

31 } 32 33 int multi(int n) 34 { 35 int i; 36 int res; 37 38 res=1; 39 for(i=3;i<=n;i=i+2) 40 res=res*i; 41 42 return res; //调试时设置断点 43 } 运行结果(改正后程序的运行结果) PI=3.14159 (1)对程序进行编译和连接,没有出现错误信息。 (2)运行程序,结果如下。 PI=2.00000 结果显然错误,说明程序存在逻辑错误,需要调试修改。 (3)调试步骤如下。 本实验介绍综合调试方法,请特别注意学习利用断点对多函数的综合程序进行调试。 1.调试程序开始,设置三个断点,行号分别为15,30和42。 2.单击按钮,程序运行到行号为30的函数fact的断点处,该函数计算n!,第一次被调用时,n的值是1,res的值也应该是1,但变量窗口显示res的值是0 显然不正确,发现错误的原因是当I=0时和res相乘res=0 之后res和任何数相乘都=0了 3. 单击按钮,停止调试,改正错误,把行号为28 的错误语句改为i=1 后,重新编译和连接,没有错误和警告。 4.单击按钮,程序运行到fact函数断点处,变量窗口显示res的值为1,正确。 5.再次单击,程序运行到行号为42的multi函数的断点处,变量窗口显示res的值为 3 ,正确。 6. 再次单击按钮,程序运行到行号为15的主函数的断点处,变量窗口显示sum的值还是1,而此时sum的值应该为1+1!/3,把鼠标指向变量item,看到item的值是0,而调用函数计算的分子和分母的值均正确,出错原因是整数型除法1/3结果为0 注意:变量item的值可以在变量窗口和观察窗口中查看,这里介绍通过鼠标指向变量来查看变量值的方法更方便。 7. 单击按钮,停止调试,改正错误,把函数fact和函数multi的类型以及res的类型都定义为double ,重新编译和连接,没有出现出错信息。

相关文档
最新文档