《C语言程序设计(Visual C++ 6.0环境)》电子教案-第3章结构化程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 顺序结构及程序设计。 (2)选择结构及程序设计。 (3)循环结构及程序设计。 (4)结构化程序设计方法、编程思路与综合实训
返回本书目录
第3章 结构化程序设计
《 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.1 顺序结构程序设计
3.2 选择结构程序设计
C
3.3 循环结构程序设计
返回本节目录
3.1.3 程序实训【例3.2】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
C程序实例
【例3.2】由键盘输入两个整数给变量a和b,然后输出a和b,在交换a和b中的值后, 再输出a和b,验证两个变量中的数值是否正确地进行了交换。 /*程序名为l3_2.cpp。*/ #include "stdio.h" main() { int a,b,t; printf("Enter a and b:\n"); scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); t=a;a=b;b=t; printf("a=%d,b=%d\n",a,b); } 程序运行情况如下: Enter a and b: 123 456 < CR > a=123,b=456 返回本节目录 a=456,b=123
执行过程:首先计算紧跟在if后面一对圆括号中的表达式的值,如果该表 达式的值为非零(“真”),则执行其后的if子句,然后去执行if语句后的 下一个语句。如果该表达式的值为零(“假”),则跳过if子句,直接执 行if语句后的下一个语句。
返回3.2.2目录
1. if语句的一般形式2
《 C 语 言 程 序 设 计 》
返回本节目录
3.1.2 顺序结构语句2
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
例如:{int a=0,b=1,sum; sum=a+b;
printf("%d",sum);
} 【注意】与C语言中的其他语句不同,复合语句不以分号作为结束符, 若复合语句的"}"后面出现分号,那不是该复合语句的组成成分,而 是单独的一个空语句。在复合语句起始部分可以有变量定义,如: "int a=0,b=1,sum;",也可以没有。复合语句的"{}"内可能会有多个语 句,但在语法上把它整体上视为一条语句看待。 4.函数调用语句 由一个函数调用加上一个分号组成一个语句,如: scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);
3.4 结构化程序设计方法与综合实训
返回本章导读
3.1 顺序结构程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.1.1 顺序结构的C程序实例 3.1.2 顺序结构语句
3.1.3 程序实训
返回本章目录
3.1.1 C程序实例
《 C 语 言 程 序 设 计 》
返回3.2.2目录
1. if语句的一般形式实例
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
【例3.6】求分段函数的值,如果x≥0, y=2x+1,否则, y=0 。 #include "stdio.h" main() /*程序名为l3_6.cpp。*/ { int x,y; printf("请输入x的值:"); scanf("%d",&x); if(x>=0) y=2*x+1; else y=0; printf("当x=%d时,f(x)=%d",x,y); }
(Visual C++ 6 0 环 境 ) .
1.if语句的一般形式:
if语句有两种形式: (1)不含else子句的if语句 语句形式如下: if(<表达式>) <语句1>
例如if(a<b){t=a;a=b;b=t;}
其中,if是C语言的关键字,表达式两侧的圆括号不可少,最后是一条语句, 称为if子句。如果在if子句中需要多个语句,则应该使用花括号把一组语句 括起来组成复合语句,这样在语法上仍满足"一条语句"的要求。
(Visual C++ 6 0 环 境 ) .
C程序实例
【例3.1】编程实现:输入一个长方形的二边长,求长方形的面积并输出。 /*程序名为l3_1.cpp。*/ #include "stdio.h" main() { float a,b,s; scanf("%f%f",&a,&b); s=a*b; printf("The area of rectangle is %5.2f .\n",s); }
第3章 结构化程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
本章导读
本章从实例分析着手,使读者了解并掌握C语言三种基 本流程控制结构:顺序、选择、循环结构 ,加深对C 语言程序开发设计过程的感性认识,强化培养编程思 路,为进一步进行C语言程序设计打下基础。
本章主要知识点
(Visual C++ 6 0 环 境 ) .
(2)含else子句的if语句
语句形式如下: if(<表达式>) <语句体1> [else <语句体2>] 执行过程:首先计算<表达式>的值,如果该表达式的值为非零("真"), 则执行<语句体1>,如果该表达式的值为零("假"),则跳过<语句体1>, 直接执行<语句体2>,两者执行其一后再去执行if语句后的下一个语句。
返回3.2.2目录
2. if-else中的复合语句
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
2. if-else中的复合语句
如果两个分支中需要执行的语句不止一条,必须用“{}”括起来,作为一 个复合语句使用。若只是一条语句,“{}”可以省略。 【注意】 (1)if后面的<表达式>一定要有括号; (2)if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句 的一部分,与if配对使用,因此程序中不可以没有if而只有else; (3)只能执行与if有关的语句或者执行与else有关的语句,而不可能同时执 行两者; (4)如果<语句1>和<语句2>是非复合语句,那么该语句一定要以分号结束, (5)if语句的表达式可以是任意类型的C语言的合法的表达式,但计算结果 必须为整型、字符型或浮点型之一。
返回本节目录
3.2.1 选择结构的 C程序实例结果
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
运行结果为: 请输入两个整数a,b:2,3<CR> (a+b)<=(a*b) 在这个程序中使用了if分支语句,它不像前面的程序那样,按照语句 的书写顺序一步步执行下去,而是根据所给条件的真假,选择两者其 中之一执行。该程序执行的过程是:比较两数的和与积,如果s1>s2, 则执行语句A(跳过语句B不执行),否则,就跳过语句A执行语句B。可 见if语句在程序中起到了改变语句执行顺序的作用。if语句就是我们 在下一节中要介绍的条件分支语句。
/*将x输出*/
x=(int)x;
x=x/100; 100倍*/ printf("(2) x=%f\n",x); } 程序运行情况如下: Input x:3.14159< CR > /*将x扩大100倍,加上0.5之后取整,再缩小 /*将四舍五入后的x输出*/
则输出的结果为:
(1) x=3.141590 (2) x=3.140000
}
返回本节目录
3.2 选择结构程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.2.1 选择结构的C程序实例 3.2.2 if 语句 3.2.3 switch 语句
3.2.4 程序实训
返回本章目录
3.2.1 选择结构的 C程序实例
《 C 语 言 程 序 设 计 》
3.1.2 顺序结构语句1
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
C语言的顺序结构语句可以分为四大类:
1.表达式语句 表达式的后面加一个分号就构成了一个语句,例如:sum=a+b; 。事实上, C语言中有使用价值的表达式语句主要有3种: (1)赋值语句。 例如: sum=a+b; (2)自动增1、减1运算符构成的表达式语句。例如: i++; (3)逗号表达式语句。例: x=1,y=2; 2.空语句 语句仅有一个分号“;”,它表示什么也不做。一般和后面章节所讲循环语句 结合使用起到延时作用。 3. 复合语句 由"{"和"}"把一些变量定义和执行语句组合在一起,称之为复合语句,又称 语句块。复合语句的语句形式如下: {语句1;语句2;…;语句n;}
(Visual C++ 6 0 环 境 ) .
【例3.5】请输入两个整数a,b,比较a+b和a×b哪个大,输出判断结果。 /*程序名为l3_5.cpp。*/ #include "stdio.h" main() { int a,b,s1,s2; printf("请输入两个整数a,b:"); scanf("%d,%d",&a,&b); s1=a+b; s2=a*b; /*求两个数的和、积*/ if(s1>s2) printf("(a+b)>(a*b) /n"); /*语句A*/ else printf(" (a+b)<=(a*b)\n"); /*语句B*/ }
返回3.2.2目录
/*变量y存放f(x)的值*/
1. if语句的一般形式实例
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
运行结果: 请输入x的值:3<CR> 当x=3时,f(x)=7 因为输入x=3,那么x>=0为真,所以输出2*3+1=7。 C语言中有一种特有的条件运算符“?:”,我们在前面章节已作介绍,它 在某种程序上可以起到逻辑判断的作用。本例中的if语句也可用条件运算符 表达式实现如下: y=x>=0?2*x+1:0; 但有些判断不能用条件表达式完成,或者很繁琐、表达不清晰。
返回本节目录
3.2.2
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
if 语句
1. if语句的一般形式 2. if-else中的复合语句 3. 非关系、非逻辑表达式构成的条件表达式
4. if语句的嵌套
返回本节目录
1. if语句的一般形式1
《 C 语 言 程 序 设 计 》
返回本节目录
【例3.1】编程
《 C 语 言 程 序 Fra Baidu bibliotek 计 》
(Visual C++ 6 0 环 境 ) .
返回本节目录
程序运行情况如下: 输入: 3.0 4.0 < CR > 输出: The area of rectangle is 12.00 . 这个程序属于顺序结构,程序是按照书写的顺序自上而下一步步 执行,程序中的每一条语句都被执行一次,且仅能被执行一次。
返回本节目录
3.1.3 程序实训【例3.4】
【例3.4】从键盘上输入一大写英文字母,要求改用相应的小写字母输出。
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
/*程序名为l3_4.cpp。*/ #include "stdio.h" main() { char c1,c2; scanf("%c",&c1); printf("The upper case is %c .\n",c1); c2=c1+'a'-'A'; printf("The lower case is %c .\n",c2); 程序运行时: 输入:B<CR> 输出: The upper case is B . The lower case is b .
{ double x;
printf("Input x:\n"); scanf("%lf",&x);
返回本节目录
3.1.3 程序实训【例3. 3】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
printf("(1) x=%f\n",x); x=x*100; x=x+0.5;
3.1.3 程序实训【例3.3】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
注意:在程序中交换两个变量a 和b的值,不可以简单地用: a=b;b=a;两 条语句来实现。假设a 和b的值分别为23和78,赋值语句a=b;将使a的值变 为78,接下来的b=a;使b的值变为78,这样,a和b的值最终都变为78。所 以在本例中引入了中间变量t,用来临时存放a的值,这样才能完成变量a 和b的正确交换。 【例3. 3】输入一个double类型的数,使该数保留小数点后两位,对第三 位小数进行四舍五入处理,然后输出此数,以便验证处理是否正确。 /*程序名为l3_3.cpp。*/ #include "stdio.h" main()
返回本书目录
第3章 结构化程序设计
《 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.1 顺序结构程序设计
3.2 选择结构程序设计
C
3.3 循环结构程序设计
返回本节目录
3.1.3 程序实训【例3.2】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
C程序实例
【例3.2】由键盘输入两个整数给变量a和b,然后输出a和b,在交换a和b中的值后, 再输出a和b,验证两个变量中的数值是否正确地进行了交换。 /*程序名为l3_2.cpp。*/ #include "stdio.h" main() { int a,b,t; printf("Enter a and b:\n"); scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); t=a;a=b;b=t; printf("a=%d,b=%d\n",a,b); } 程序运行情况如下: Enter a and b: 123 456 < CR > a=123,b=456 返回本节目录 a=456,b=123
执行过程:首先计算紧跟在if后面一对圆括号中的表达式的值,如果该表 达式的值为非零(“真”),则执行其后的if子句,然后去执行if语句后的 下一个语句。如果该表达式的值为零(“假”),则跳过if子句,直接执 行if语句后的下一个语句。
返回3.2.2目录
1. if语句的一般形式2
《 C 语 言 程 序 设 计 》
返回本节目录
3.1.2 顺序结构语句2
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
例如:{int a=0,b=1,sum; sum=a+b;
printf("%d",sum);
} 【注意】与C语言中的其他语句不同,复合语句不以分号作为结束符, 若复合语句的"}"后面出现分号,那不是该复合语句的组成成分,而 是单独的一个空语句。在复合语句起始部分可以有变量定义,如: "int a=0,b=1,sum;",也可以没有。复合语句的"{}"内可能会有多个语 句,但在语法上把它整体上视为一条语句看待。 4.函数调用语句 由一个函数调用加上一个分号组成一个语句,如: scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);
3.4 结构化程序设计方法与综合实训
返回本章导读
3.1 顺序结构程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.1.1 顺序结构的C程序实例 3.1.2 顺序结构语句
3.1.3 程序实训
返回本章目录
3.1.1 C程序实例
《 C 语 言 程 序 设 计 》
返回3.2.2目录
1. if语句的一般形式实例
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
【例3.6】求分段函数的值,如果x≥0, y=2x+1,否则, y=0 。 #include "stdio.h" main() /*程序名为l3_6.cpp。*/ { int x,y; printf("请输入x的值:"); scanf("%d",&x); if(x>=0) y=2*x+1; else y=0; printf("当x=%d时,f(x)=%d",x,y); }
(Visual C++ 6 0 环 境 ) .
1.if语句的一般形式:
if语句有两种形式: (1)不含else子句的if语句 语句形式如下: if(<表达式>) <语句1>
例如if(a<b){t=a;a=b;b=t;}
其中,if是C语言的关键字,表达式两侧的圆括号不可少,最后是一条语句, 称为if子句。如果在if子句中需要多个语句,则应该使用花括号把一组语句 括起来组成复合语句,这样在语法上仍满足"一条语句"的要求。
(Visual C++ 6 0 环 境 ) .
C程序实例
【例3.1】编程实现:输入一个长方形的二边长,求长方形的面积并输出。 /*程序名为l3_1.cpp。*/ #include "stdio.h" main() { float a,b,s; scanf("%f%f",&a,&b); s=a*b; printf("The area of rectangle is %5.2f .\n",s); }
第3章 结构化程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
本章导读
本章从实例分析着手,使读者了解并掌握C语言三种基 本流程控制结构:顺序、选择、循环结构 ,加深对C 语言程序开发设计过程的感性认识,强化培养编程思 路,为进一步进行C语言程序设计打下基础。
本章主要知识点
(Visual C++ 6 0 环 境 ) .
(2)含else子句的if语句
语句形式如下: if(<表达式>) <语句体1> [else <语句体2>] 执行过程:首先计算<表达式>的值,如果该表达式的值为非零("真"), 则执行<语句体1>,如果该表达式的值为零("假"),则跳过<语句体1>, 直接执行<语句体2>,两者执行其一后再去执行if语句后的下一个语句。
返回3.2.2目录
2. if-else中的复合语句
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
2. if-else中的复合语句
如果两个分支中需要执行的语句不止一条,必须用“{}”括起来,作为一 个复合语句使用。若只是一条语句,“{}”可以省略。 【注意】 (1)if后面的<表达式>一定要有括号; (2)if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句 的一部分,与if配对使用,因此程序中不可以没有if而只有else; (3)只能执行与if有关的语句或者执行与else有关的语句,而不可能同时执 行两者; (4)如果<语句1>和<语句2>是非复合语句,那么该语句一定要以分号结束, (5)if语句的表达式可以是任意类型的C语言的合法的表达式,但计算结果 必须为整型、字符型或浮点型之一。
返回本节目录
3.2.1 选择结构的 C程序实例结果
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
运行结果为: 请输入两个整数a,b:2,3<CR> (a+b)<=(a*b) 在这个程序中使用了if分支语句,它不像前面的程序那样,按照语句 的书写顺序一步步执行下去,而是根据所给条件的真假,选择两者其 中之一执行。该程序执行的过程是:比较两数的和与积,如果s1>s2, 则执行语句A(跳过语句B不执行),否则,就跳过语句A执行语句B。可 见if语句在程序中起到了改变语句执行顺序的作用。if语句就是我们 在下一节中要介绍的条件分支语句。
/*将x输出*/
x=(int)x;
x=x/100; 100倍*/ printf("(2) x=%f\n",x); } 程序运行情况如下: Input x:3.14159< CR > /*将x扩大100倍,加上0.5之后取整,再缩小 /*将四舍五入后的x输出*/
则输出的结果为:
(1) x=3.141590 (2) x=3.140000
}
返回本节目录
3.2 选择结构程序设计
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
3.2.1 选择结构的C程序实例 3.2.2 if 语句 3.2.3 switch 语句
3.2.4 程序实训
返回本章目录
3.2.1 选择结构的 C程序实例
《 C 语 言 程 序 设 计 》
3.1.2 顺序结构语句1
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
C语言的顺序结构语句可以分为四大类:
1.表达式语句 表达式的后面加一个分号就构成了一个语句,例如:sum=a+b; 。事实上, C语言中有使用价值的表达式语句主要有3种: (1)赋值语句。 例如: sum=a+b; (2)自动增1、减1运算符构成的表达式语句。例如: i++; (3)逗号表达式语句。例: x=1,y=2; 2.空语句 语句仅有一个分号“;”,它表示什么也不做。一般和后面章节所讲循环语句 结合使用起到延时作用。 3. 复合语句 由"{"和"}"把一些变量定义和执行语句组合在一起,称之为复合语句,又称 语句块。复合语句的语句形式如下: {语句1;语句2;…;语句n;}
(Visual C++ 6 0 环 境 ) .
【例3.5】请输入两个整数a,b,比较a+b和a×b哪个大,输出判断结果。 /*程序名为l3_5.cpp。*/ #include "stdio.h" main() { int a,b,s1,s2; printf("请输入两个整数a,b:"); scanf("%d,%d",&a,&b); s1=a+b; s2=a*b; /*求两个数的和、积*/ if(s1>s2) printf("(a+b)>(a*b) /n"); /*语句A*/ else printf(" (a+b)<=(a*b)\n"); /*语句B*/ }
返回3.2.2目录
/*变量y存放f(x)的值*/
1. if语句的一般形式实例
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
运行结果: 请输入x的值:3<CR> 当x=3时,f(x)=7 因为输入x=3,那么x>=0为真,所以输出2*3+1=7。 C语言中有一种特有的条件运算符“?:”,我们在前面章节已作介绍,它 在某种程序上可以起到逻辑判断的作用。本例中的if语句也可用条件运算符 表达式实现如下: y=x>=0?2*x+1:0; 但有些判断不能用条件表达式完成,或者很繁琐、表达不清晰。
返回本节目录
3.2.2
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
if 语句
1. if语句的一般形式 2. if-else中的复合语句 3. 非关系、非逻辑表达式构成的条件表达式
4. if语句的嵌套
返回本节目录
1. if语句的一般形式1
《 C 语 言 程 序 设 计 》
返回本节目录
【例3.1】编程
《 C 语 言 程 序 Fra Baidu bibliotek 计 》
(Visual C++ 6 0 环 境 ) .
返回本节目录
程序运行情况如下: 输入: 3.0 4.0 < CR > 输出: The area of rectangle is 12.00 . 这个程序属于顺序结构,程序是按照书写的顺序自上而下一步步 执行,程序中的每一条语句都被执行一次,且仅能被执行一次。
返回本节目录
3.1.3 程序实训【例3.4】
【例3.4】从键盘上输入一大写英文字母,要求改用相应的小写字母输出。
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
/*程序名为l3_4.cpp。*/ #include "stdio.h" main() { char c1,c2; scanf("%c",&c1); printf("The upper case is %c .\n",c1); c2=c1+'a'-'A'; printf("The lower case is %c .\n",c2); 程序运行时: 输入:B<CR> 输出: The upper case is B . The lower case is b .
{ double x;
printf("Input x:\n"); scanf("%lf",&x);
返回本节目录
3.1.3 程序实训【例3. 3】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
printf("(1) x=%f\n",x); x=x*100; x=x+0.5;
3.1.3 程序实训【例3.3】
《 C 语 言 程 序 设 计 》
(Visual C++ 6 0 环 境 ) .
注意:在程序中交换两个变量a 和b的值,不可以简单地用: a=b;b=a;两 条语句来实现。假设a 和b的值分别为23和78,赋值语句a=b;将使a的值变 为78,接下来的b=a;使b的值变为78,这样,a和b的值最终都变为78。所 以在本例中引入了中间变量t,用来临时存放a的值,这样才能完成变量a 和b的正确交换。 【例3. 3】输入一个double类型的数,使该数保留小数点后两位,对第三 位小数进行四舍五入处理,然后输出此数,以便验证处理是否正确。 /*程序名为l3_3.cpp。*/ #include "stdio.h" main()