C++程序设计教程第四章

合集下载

谭浩强 c语言程序设计(第四章)

谭浩强 c语言程序设计(第四章)
格式: scanf("格式控制串 格式控制串" 地址表) 格式: scanf( 格式控制串",地址表) 功能:按指定格式从键盘读入数据, 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中, 存储单元中,并按回车键结束 地址表:变量的地址,常用取地址运算符& 地址表:变量的地址, 地址表 格式字符 格式字符:d,i,o,x,u,c,s,f,e 格式字符
例4.1 main( )
{ int a; ★ b 的 用 作 { int b; 域只在内 层大 号 括 b=3; //复合语句(分程序) 复合语句(分程序) 这样一个 printf("%d\n",a+b); 局部 } 是复合语句中定义的, 由于 b是复合语句中定义的,在 是复合语句中定义的 b=1; } 它之外使用是错误的
例 scanf("%d",&a); 输入: 输入:10
a=10
例 scanf("%x",&a); 输入: 输入:11
a=17
16
Hale Waihona Puke 第四章 顺序程序设计附加格式说明符(修饰符)
修饰符 功 能 h 用于d,o,x前 指定输入为short型整数 用于d,o,x前,指定输入为short型整数 d,o,x short l m * 用于d,o,x前 指定输入为long型整数 用于d,o,x前,指定输入为long型整数 d,o,x long 用于e,f前 指定输入为double型实数 用于e,f前,指定输入为double型实数 e,f double 指定输入数据宽度,遇空格或不可转换字符则结束 指定输入数据宽度, 抑制符, 抑制符,指定输入项读入后不赋给变量
2

C语言程序的设计第四章顺序程序的设计

C语言程序的设计第四章顺序程序的设计

C语言程序的设计第四章顺序程序的设计在学习 C 语言程序设计的过程中,第四章的顺序程序设计是构建程序基础的重要环节。

它就像是搭建房屋的基石,为后续更复杂的程序结构奠定了坚实的基础。

顺序程序设计,简单来说,就是按照语句出现的先后顺序依次执行。

这是程序设计中最基本也是最常见的结构。

在这一章节中,我们首先要了解的是数据的输入和输出。

C 语言中,常用的输入函数是`scanf`,而输出函数则是`printf`。

就拿`printf`来说,它可以以各种不同的格式来输出数据,比如整数可以用`%d`,浮点数可以用`%f`,字符用`%c`等等。

通过这些格式控制符,我们能够让程序输出的内容更加清晰、准确,符合我们的预期。

在顺序程序中,变量的定义和使用也是关键的一部分。

变量就像是一个个小盒子,我们给它们贴上不同的标签(变量名),然后往里面存放不同类型的数据(比如整数、浮点数、字符等)。

定义变量的时候,要明确变量的类型,这决定了它能够存储的数据范围和精度。

比如说,我们定义一个整数变量`int num = 10;`,这里的`int`就是变量类型,`num`是变量名,`10`是给变量赋的初始值。

在程序执行过程中,这个变量的值是可以改变的。

接着,我们来谈谈算术运算。

C 语言提供了丰富的算术运算符,像加法`+`、减法``、乘法``、除法`/`以及取余`%`。

在进行算术运算时,要注意数据类型的匹配和运算的优先级。

比如,先乘除后加减,如果有括号,先计算括号内的表达式。

赋值运算也是经常用到的。

`=`这个符号可不是数学里的“等于”,而是把右边的值赋给左边的变量。

而且,还可以进行复合赋值运算,比如`+=`、`=`、`=`、`/=`等,这让代码更加简洁高效。

在顺序程序设计中,关系运算和逻辑运算同样不可或缺。

关系运算包括大于`>`、小于`<`、等于`==`、大于等于`>=`、小于等于`<=`、不等于`!=`,通过这些运算,我们可以比较两个值的大小关系,并根据结果做出不同的处理。

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。

其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。

在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。

C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。

如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。

⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。

常见的关系运算符包括:<、<=、>、>=、==、!=等种类。

其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。

⽽前4种⾼于后2种。

例如, >优先于==。

⽽>与<优先级相同。

并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。

逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。

表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。

⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。

谭浩强C程序设计第4章

谭浩强C程序设计第4章
开发商和软件开发人员将一些常用的功能模块编写 成函数,放在函数库中供公共选用。程序开发人员 要善于利用库函数,以减少重复编写程序段的工作 量。
图4.1是一个程序中函数调用的示意图。 图4.1
例4.1 在主函数中调用其他函数。
#include <iostream>
பைடு நூலகம்
using namespace std; void printstar(void)
//定义printstar函数
{
cout<<″****************************** ″<<endl;
}
//输出30个“*”
void print_message(void)
//定义print_message函数
{
cout<<″ Welcome to C++!″<<endl;
//输出一行文字
要根据需要编写一个个函数,每个函数用来实现某
一功能。因此,读者必须掌握函数的概念以及学会 设计和使用函数。
“函数”这个名词是从英文function翻译过来的,其 实function的原意是“功能”。顾名思义,一个函数 就是一个功能。
在实际应用的程序中,主函数写得很简单,它的作 用就是调用各个函数,程序各部分的功能全部都是 由各函数实现的。主函数相当于总调度,调动各函 数依次实现各项功能。

C++要求在定义函数时必须指定函数的类型。
4.3 函数参数和函数的值
4.3.1 形式参数和实际参数
在调用函数时,大多数情况下,函数是带参数的。 主调函数和被调用函数之间有数据传递关系。前面 已提到:在定义函数时函数名后面括号中的变量名 称为形式参数(formal parameter,简称形参),在 主调函数中调用一个函数时,函数名后面括号中的 参数(可以是一个表达式)称为实际参数(actual parameter,简称实参)。

《C语言程序设计教程》课件第4章

《C语言程序设计教程》课件第4章

{ int x, y;
printf ("Enter integer X and Y:");
scanf ("%d%d", &x, &y);
if ( x != y )
if ( x > y ) printf ("X>Y\n"); else printf ("X<Y\n"); else printf ("X=Y\n");
else x=1 ;
2020/9/15
9
i【f语例4句.1】的输简入单一应个字用符,如果是大写字母,
则将其转换为小写字母输出,否则 直接输出。
思路:
输入:用 getchar 或 scnaf 函数 ch是否为大写字母: ch>='A' && ch<='Z'
(或 ch>=65 && ch <= 90) 大写字母转换为小写字母: ch=ch+32 输出:用 putchar 或 printf 函数
7
多重流分程图支语句的算法
Y
表达式1?
N
语句1
Y 语句2
表达式2?
N…
Y 语句m
表达式m ? N 语句n
2020/9/15
8
多重N-S分结支构语图 句的算法
表达式1?
T
语句1
表达式2? T
F F
语句2 …
表达式m?
Tቤተ መጻሕፍቲ ባይዱ
F
语句m 语句n
例如:
if (a<0) x= -1 ;
else if (a==0 ) x= 0 ;

c程序设计第四章PPT教学课件

c程序设计第四章PPT教学课件
(2)能被4整除,又能被400整除 (year %4==0&& year %100!=0)||year % 400= =0
2020/12/10
9
4.2 结构化程序设计
• C语言中的基本语句有:
– 空语句

• 单独出现的一个分号,称为一个空语句;
• 空语句可应用于:在语法上要求出现一条语句,但程序中 并不需要执行任何动作的场合;

语句1
语句2 真
语句3
4.3if语句
18
• 条件语句的掌握要点
– 条件语句的语法、流程
– 条件语句的嵌套规则(匹配规则):
else 总是和 前面最接近的、可匹配的
if 相匹配
如下例:
if ( e1 ) e01; if ( e2 ){ e02; if ( e3 ) e03; } else if ( e4 ) e04; else e05;
4.1关系运算符和关系表达式
4
一、关系运算符及优先次序
< <= > >= = = !=
优先次序
(1)(< 、<=、>、>=)>(= =、!=) (2)算术运算 关系运算 赋值运算 例:c>a+b == c>(a+b)
a>b!=c == (a>b)!=c
二、关系表达式 [关系表达式]用关系运算符将两个
6
§4.1 逻辑运算符
• &&

• ||

•!

• 掌握要点:
– 参与逻辑运算的为逻辑量(整类型数据)
– 逻辑与,两个逻辑量(条件)同时成立时结果为真

C语言程序设计教案第四章顺序程序设计(5篇模版)

C语言程序设计教案第四章顺序程序设计(5篇模版)

C语言程序设计教案第四章顺序程序设计(5篇模版)第一篇:C语言程序设计教案第四章顺序程序设计第四章顺序程序设计课题:第四章顺序程序设计教学目的:1、掌握赋值语句、输入输出语句2、学会简单的顺序程序设计教学重点:输入、输出语句教学难点:格式输入输出语句步骤一复习引导上一章介绍的常量、变量、运算符、表达式等都是构成程序的基本成分。

本章将介绍为编写简单程序所必需的一些内容。

步骤二讲授新课一、C语句概述1、控制语句ν二个分支语句(if-else、switch)ν三个循环语句(for、while、do-while)ν四个转移语句(continue、break、goto、return)2、函数调用语句ν如:printf(“Hello, world!”);3、表达式语句ν x+y;i++;a=2;a=3*5, 40;4、空语句(;)5、复合语句{ 语句序列}一、赋值语句赋值语句是由赋值表达式加上一个分号构成,如:b=3;if((a=b)>0)t=a;三、数据输入输出的概念及在C语言中的实现1、输入、输出2、输入输出操作是由函数来实现的Ξ C语言函数库中有“标准输入输出函数” Ξ字符的输入与输出:getchar()、putchar()Ξ字符串的输入与输出:gets()、puts()Ξ格式输入与输出: scanf()、printf()3、在使用C语言库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。

例如:使用标准输入输出库函数时,要用到“stdio.h”文件,在源文件开头应有: #include 或#include “stdio.h”(一)字符数据的输入输出1、字符输出函数——putchar 语法:putchar(c)语义:(向stdout终端)输出一个字符;如:#include main(){ putchar(…141‟);putchar(…a‟);putchar(…A‟+32);putchar(…n‟);}输出:aaa2、字符输入函数——getchar语法:getchar(),是一个无参函数;语义:(从stdin终端上)输入一个字符;getchar 包含在stdio.h中,是stdio.h中定义的宏;如:#include main(){putchar(getchar());}如:#include main(){ int c;while((c=getchar())!=…#‟)if(c>=…a‟&&c<=…z‟)putchar(c-‟a‟+‟A‟);else putchar(c);}从键盘上输入一串字符遇‘#’结束,若字符在a~z之间时,则输出字符的大写;否则直接输出字符。

C语言程序设计第4章

C语言程序设计第4章

C语言程序设计第4章首先,本章介绍了函数的定义和声明。

函数定义包括函数返回值类型、函数名、参数列表和函数体等部分。

函数声明是对函数进行预定义,以便在其他地方使用。

函数定义和声明的关系是:函数定义必须包含在函数声明之前。

接着,本章介绍了函数的调用和参数传递。

函数调用是通过函数名和实际参数列表来进行的。

函数的参数传递可以通过值传递和地址传递两种方式进行。

值传递是指将实际参数的值复制一份传递给形式参数,而地址传递是指将实际参数的地址传递给形式参数。

然后,本章介绍了函数的返回值。

函数可以有返回值,也可以没有返回值。

有返回值的函数通过return语句将结果返回给调用函数,而没有返回值的函数可以使用void来修饰函数返回值类型。

此外,本章还介绍了函数的局部变量和全局变量。

局部变量是在函数内部定义的变量,只在函数内部有效,函数执行完毕后会被销毁。

全局变量是在函数外部定义的变量,对整个程序有效,直到程序结束才会销毁。

在函数的学习过程中,本章还讲解了递归函数的概念和使用方法。

递归函数是指一个函数调用自身的函数。

递归函数通常有一个或多个基本情况,用于终止递归的条件,以及一个或多个递归情况,用于调用自身。

最后,本章还介绍了函数的高级应用,包括变长参数函数、内联函数和函数指针等内容。

变长参数函数是指可以接收可变数量和类型的参数的函数。

内联函数是将函数的代码直接嵌入到调用函数中,以提高程序的执行效率。

函数指针是指指向函数的指针变量,可以用于动态调用函数。

通过学习本章的内容,我对函数的概念和使用方法有了更深入的理解。

我了解了函数的定义、声明、调用和参数传递等基本知识,也了解了函数的返回值、局部变量和全局变量等进阶知识。

我还学会了使用递归函数解决问题,以及函数的高级应用。

总之,本章的学习对于提高我在C语言编程方面的能力和技巧有了很大的帮助。

我将在后续的学习和实践中继续深入理解和应用函数的相关知识,以提高我的编程水平和开发能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22
4.6 过程应用:求∏ 程序设计的目的是要用正确的方法解决实际问题. 对于软件工程来说,程序设计只是其中的一个环节. 程序设计的任务是根据给定的数据定义和算法(程序 模块),实现程序的编码和调试. 一个复杂性不大的小问题,可以将其看作是一个 过程,该过程具有输人,处理和输出. 程序设计方法有3个层次: (1) 简单的问题求解分析方法(过程化方法).它适 用于简单,孤立的问题求解.一般定义2-3个函数便 可解决. (2) 结构化程序设计方法.它适用于一个问题大小适 中,能够方便地分解成相对独立的几个功能模块,从 而用几个程序文件分别描述并调试实现之.
11
4.4 switch语句
switch语句是多分支选择语句.if语句是二分支选择 语句,但在实际问题中常常需要用到多分支的选择. switch语句的一般形式为: switch(表达式) { case常量表达式1:语句组1 case常量表达式2:语句组2 case常量表达式3:语句组3 default:语句组 n+1 }
4
例子: 用do…while实现上例求1+2+3+…+99+100的值: int i, sum=0; i=1; //循环变量初始化 do { sum=sum+i; i=i+1; //改变循环变量 } while (i<=100); //继续条件 注意:do-while循环至少执行一次,直到程序到 达循环体尾部遇到while时,才知道继续条件是 什么.在许多场合,do-while可以做while能做 的事.
12
例如,根据考试成绩的等级输出百分制分数段: char grade; //… switch (grade) { case'A': cout << "85 ~ l00 \ n"; case'B': cout << "70 ~ 84 \ n"; case'C': cout << "60 ~ 69 \ n"; case'D': cout << "< 60 \ n"; defau1t: cout << "error \ n"; }
Hale Waihona Puke 16(6) 多个 case可以共用一组执行语句.例如: //… case `A': case ' B': case 'C': cout << " > 60 \ n"; (7) default语句是可选的.当default不出现时,则当表 达式的值与所有常量表达式的值都不相等时,越过 switch语句. (8) switch不一定非要包含复合语句块.例如,下面两 条语句是等价的: switch (l) case 1: cout << "ok \ n": if (i == l) cout << "ok \ n";
3
以上整个while循环体可简化为: while (i<=100) sum+=i++; 注意:循环体中应该有使循环趋向结束的语句.多个语 句组成的循环体应用花括号括起来. 4.2 do…while 语句 一般表现形式为: do 循环体 while (条件表达式) 当流程到达do后,立即执行循环体语句,然后再 对条件表达式进行测试.若条件表达式的值为真(非 0),则重复循环,否则退出.
21
3. goto 语句 goto语句将控制从它所在的地方转移到标识符所标识 的语句处.例如,求1加到100的和: i=1; sum=0; Loop: //跳转入口 sum+=i++; if (i <=100) goto Loop; cout <<"sum is" <<sum<<endl; 现代程序设计方法主张限制使用goto语句.
8
(4) 表达式1和表达式3可同时省略. 例如,下面的代码同样能完成求和运算: i=1; for( ; i<=100; ) sum += i++; (5) 3个表达式都可省略.即不设初值,不判断条件( 认 为表达式2为真),循环变量不增值,无终止执行循环 体. i = 1; for ( ; ; ) { sum += i++; if ( i>100) break; }
6
例子:用for循环求1+2+3+…+99+100的值: for (i=1; i<=100; i++) //初始化,继续条件,步长均在顶 部描述 { sum+=i;} //循环体 for语句是将循环体所用的控制放在循环顶部统一表 示,它不仅可以用于循环次数已经确定的情况,而且 可以用于循环次数不确定而只给出循环结束条件的情 况.三个控制表达式有多种省略形式. (1) 表达式1可以省略.此时应在for语句之前给循环变 量赋初值.若省略表达式1,其后的分号不能省略. 例如,求和运算: i = 1; for (; i <= l00; i++ ) sum + = i;
第四章
过程化语句
高级语言源程序的基本组成单位是语句.语句按功能 可以分为两类:一类用于描述计算机执行的操作运算 (如表达式语句),即操作运算语句;另一类是控制 上述操作运算的执行顺序(如循环控制语句),即流程 控制语句.后一类语句也称为过程化语句. 过程化语句有三种基本结构:顺序结构,选择结 构和循环结构. 循环结构要求计算机在某个条件满足时反复执行一 条语句(或多条语句),直到条件不满足为止.
10
例如,表达式2和表达式3可以为赋值或算术表达式的 情况,下面两个语句都可以完成同样的求和运算: for(i=1; i<=100; sum += i++); // 循环体为空语句 for(i=1; sum += i++, i<=100; ); // 循环体为空语句 (7) 表达式1可以是循环变量定义.C++的变量定义可以 在任何语句的位置,for循环中也不例外. for (int i = 1; i <= l00; i++ ) sum + = i; 只要循环变量不在程序的其他地方使用,在for头 部定义循环变量是最好的,该变量只在循环体中有效, 循环退出后自行消失.
5
4.3 for语句 语句 一般表达形式: for (表达式1;表达式2;表达式3) 循环体 它的执行过程如下: (1) 先求解表达式1; (2) 求解表达式2,若为0,则结束循环,转到(5); (3) 若表达式2为真,执行循环体,然后求解表达式3; (4) 转回(2); (5) 执行for语句下面的一个语句.
9
(6) 表达式1,表达式2,表达式3都可以为任何表达式. 例如,求和运算中可设置sum的初值:
i = 1;
for (sum=0;i<=100;i++) sum += i; 又如: for (sum=0,i=1;i<=100;i++) sum += i; 又如: for (i=0, j=100, k=0; i<=j; i++, j--) k += i*j;
15
(5) 各个case(包括default)的出现次序可以任意.在 每个case分支都带有break的情况下,case次序不影响执 行结果. 例如,上面的代码可以写成下面的代码: char grade; //… switch (grade) { case'C': cout << "60 ~ 69 \ n"; break; defau1t: cout << "error \ n"; break; case'D': cout << " < 60 \ n"; break; case'A': cout << "85 ~ 100 \ n"; break; case'B': cout << "70 ~ 84 \ n"; broak; }
7
(2) 表达式2可以省略.即不判断继续条件,循环无终 止进行下去.也就是认为表达式2始终为真.这时候, 需要在循环体中有跳出循环的控制语句. for (i=1; ; i++) { sum + = i; if (i > = 100) break; } (3) 表达式3可以省略.但此时程序员应另外设法让循 环变量递进变化,以保证循环能正常结束. for( i=1;i<=100;) sum += i++;
1
4.1 while 语句 while循环由4个部分组成:循环变量初始化,继续条件, 循环体,改变循环变量的值. 一般表现形式为: while (条件表达式) 循环体
2
例子,求1+2+3+…+99+100的值: //****************************************** //** ch4_1.cpp ** //****************************************** # include <iostream.h> void main() { int i=1, sum=0; //初始化循环变量i while (i <= 100) //继续条件 { sum=sum+i; //等价于sum+=i; i = i+1; //改变循环变量的值 } cout<<"sum="<<sum<<endl; }
相关文档
最新文档