c语言第四章
计算机二级 C语言第四章-第五章
逻辑或
逻辑非
“&&”和“ ||”是双目运算符 “!”是单目运算符
C语言程序设计
第五章 选择结构程序设计
逻辑运算真值表
a 真 b 真 !a 假 !b 假 a&&b 真 a||b 真
真 假 假
假 真 假
假 真 真
真 假 真
假 假 假
真 真 假
逻辑运算符的优先次序 !(非) , &&(与),
优先次序:高(2) 结合方向:从右向左 (11) 从左向右
4.00, c=
6.00 s=
6.50
C语言程序设计
第四章 顺序程序设计
例4.11 从键盘输入大写字母,用小写字母输出
#include "stdio.h" void main() { char c1,c2; c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); }
值为0 值为1 值为1 值为1 值为1 //(5>3)&&2||(8<(4-(!0))) 值为1 值为1
C语言程序设计
第五章 选择结构程序设计
复杂逻辑条件的表述
判断某一年year是否为闰年
判别闰年的条件(int year): 能被4整除: year%4==0 能被4整除但不能被100整除: (year%4==0)&&(year%100!=0) 能被400整除: year%400==0 综合起来: ((year%4==0)&&(year%100!=0))||year%400==0 优化语句: 此表达式为真时是闰年 (year%4==0&&year%100!=0)||year%400==0
C语言程序设计第4章
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假
如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }
C语言-第4章 选择结构程序设计
第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。
弄明白这两个知识点,就能够以不变应万变了。
一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。
A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。
A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。
A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。
A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。
A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。
C语言 第4章 选择结构程序设计
#include <stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 , 和 对换 是 、 中的小者 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return 0; }
if (disc<0) 8<0为假 为假 printf(“has not real roots\n”); else 的值变为-1 的值变为 { p=-b/(2.0*a); p的值变为 的值变为0.71 的值变为 q=sqrt(disc)/(2.0*a); q的值变为 x1=p+q; x1的值变为 的值变为-0.29 的值变为 x2=p-q; x2的值变为 的值变为-1.71 的值变为 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; }
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; 复合语句 }
C语言有两种选择语句: 语言有两种选择语句: 语言有两种选择语句 (1)if语句,实现两个分支的选择结构 语句, 语句 (2)switch语句,实现多分支的选择结构 语句, 语句
福建师范大学 c语言 第四章输入与输出
第四章:输入与输出
字符输入函数(getchar)p98
格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1)
/*use of getchar function*/ 运行结果: #include <stdio.h> Enter a character:A↵ void main() A--->hex41 { int c; printf("Enter a character:"); c=getchar(); printf("%c--->hex%x\n",c,c); }
9/24
第四章:输入与输出
转义序列2/2
\”——” \\——\
printf("\"Hello!\""); Output: /* prints "Hello!" */ printf("\\"); Output: /* prints one \ character */
10/24
第四章:输入与输出
格式化输入(scanf函数p29)
输入实数时不能规定精度
15/24
第四章:输入与输出
scanf输入字符和字符串
char ch; char name[10]; scanf(“%c%s”, &ch, name); printf(“%c %s”, ch, name); 键入:a zhangsan↵ 输出:a zhangsan char c1,c2,c3; scanf(“%c%c%c”,&c1,&c2,&c3); printf(“%c%c%c”, c1,c2,c3); 键入:a b c↵ 输出:a b
C语言第4章-分支结构.
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§
┆
§
case ‘A’:
§
case ‘a’: ++count ; break ;
§
《C语言程序设计课件》第四章-数组
#include <stdio.h> #define N 10 int main(void)
{ int a[N], i; printf("Enter %d numbers: ", N);
for (i = 0; i < N; i++)
for(i=0;i<1;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
a[0]
20
a[1]
02
a[2]
44
a[3]
55
a[4]
88
a[5]
99
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
for(i=0;i<4;i++) if (a[i]>a[i+1]) { ……}
4.2 一维数组
一维数组主要用来存储一组类型相同并且数量一定 的数据。其中,每个数据称为数组的一个元素。
4.2.1 一维数组定义 一维数组的定义形式如下: 类型名 数组名[常量表达式]; int x[100]; char string[10]; double data[10];
常量表达式给出了数组的长度,在C语 言中定义数组时必须确定数组的长度。
600
xxx[[[654]]]
700
xxx[[[765]]]
800
xxx[[[876]]]
900
xxx[[[987]]]
C语言程序的设计第四章顺序程序的设计
C语言程序的设计第四章顺序程序的设计在学习 C 语言程序设计的过程中,第四章的顺序程序设计是构建程序基础的重要环节。
它就像是搭建房屋的基石,为后续更复杂的程序结构奠定了坚实的基础。
顺序程序设计,简单来说,就是按照语句出现的先后顺序依次执行。
这是程序设计中最基本也是最常见的结构。
在这一章节中,我们首先要了解的是数据的输入和输出。
C 语言中,常用的输入函数是`scanf`,而输出函数则是`printf`。
就拿`printf`来说,它可以以各种不同的格式来输出数据,比如整数可以用`%d`,浮点数可以用`%f`,字符用`%c`等等。
通过这些格式控制符,我们能够让程序输出的内容更加清晰、准确,符合我们的预期。
在顺序程序中,变量的定义和使用也是关键的一部分。
变量就像是一个个小盒子,我们给它们贴上不同的标签(变量名),然后往里面存放不同类型的数据(比如整数、浮点数、字符等)。
定义变量的时候,要明确变量的类型,这决定了它能够存储的数据范围和精度。
比如说,我们定义一个整数变量`int num = 10;`,这里的`int`就是变量类型,`num`是变量名,`10`是给变量赋的初始值。
在程序执行过程中,这个变量的值是可以改变的。
接着,我们来谈谈算术运算。
C 语言提供了丰富的算术运算符,像加法`+`、减法``、乘法``、除法`/`以及取余`%`。
在进行算术运算时,要注意数据类型的匹配和运算的优先级。
比如,先乘除后加减,如果有括号,先计算括号内的表达式。
赋值运算也是经常用到的。
`=`这个符号可不是数学里的“等于”,而是把右边的值赋给左边的变量。
而且,还可以进行复合赋值运算,比如`+=`、`=`、`=`、`/=`等,这让代码更加简洁高效。
在顺序程序设计中,关系运算和逻辑运算同样不可或缺。
关系运算包括大于`>`、小于`<`、等于`==`、大于等于`>=`、小于等于`<=`、不等于`!=`,通过这些运算,我们可以比较两个值的大小关系,并根据结果做出不同的处理。
《C语言程序设计课件》第四章-循环语句
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
高树芳C语言程序设计--第四章
4.5 switch语句
案例4-10 计算成绩级别 案例4-11 根据月份求季度 案例4-12 输入算式做四则运算
38
4.5 switch语句
案例4-10 [案例任务]
计算成绩级别
输入百分制成绩,输出成绩级别A、B、C、D、E。 90~100分以上为A,80~89分为B,70~79为C, 60~69为D,0~59为E,其他成绩则显示“成绩 错误!”。
26
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
27
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
[案例任务]
对于如下函数: 用scanf函数输入x的值,输出y的值。 运行结果如下(输入的数据是9)
[解决方案]使用if „ else if„else语句。
28
4.4
分析下列程序的运行结果,掌握“与”、 “或”、“非”三个逻辑运算符及其优先级。
程序代码
11
4.3 逻辑运算符和逻辑表达式
相关知识: 1.逻辑运算符及其优先级 2. 逻辑表达式 3. 逻辑表达式的优先级与结合性
12
4.3 逻辑运算符和逻辑表达式
案例4-4 [案例任务]
逻辑运算中的“短路”现象
分析下列程序的运行结果,掌握多个运算对象 进行“与”、“或”情况下的“短路”现象。
22
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
23
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
[案例任务]
由键盘输入两个整数,输出它们中的最大 者。运行结果如下:
数据的基本表现形式 c语言 第4章
0x123(十进制整数291)
十六进制 0x9F(十进制整数159) -0X1AF0(十进制整数-6896)
0x9G7(不能含有非十六进制数码)
5A(无前导0x或0X) OX12A(前导不能是字母O或o)
程序设计基础
程序设计基础
4.1 常量
字面常量
3. 字符常量 字符常量通常指的是单个字符,在C语言中用单引号将单个字 符括起来,如'a'、'b'、'c'。 转义字符(用于描述不可见字符)以反斜线“\”开头,其含义 是将反斜线后面的字符转换成另外的含义。
转义字符 \a \b \f \n \r \t \v 含义 响铃(BEL) 退格 换页 换行 回车 水平跳格(tab) 垂直跳格 转义字符 \\ \? \' \" \0 \ddd \xhh 含义 反斜杠 问号 单引号 双引号 空字符(NULL) 1~3位八进制数所代表的字符 1~2位十六进制数所代表的字符
程序设计基础
4.1 常量
符号常量
使用符号常量有如下好处: 1. 程序的可读性好——见名知意; 2. 程序的可修改性好——改一处避免处处改。 3. 避免误操作——采用统一值。
程序设计基础
4.2 变量
变量的概念
变量:在程序的运行过程中其值可以被改变的量,变量用一 个标识符来表示,称为变量名。 编译器在对源程序进行编译时,会给每个变量分配一个特定 大小的存储单元,并将变量名与这个存储单元的起始地址绑 定在一起。
a的ASCII码为97 \0的ASCII码为0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0
C语言程序设计第4章
能够使用if语句和switch语句,进行 选择结构程序设计 会利用多分支结构解决较复杂逻辑 判断问题
目录
CONTENTS
00 案例4 百分制转换等级制 01 4.1 选择结构判定条件的构成 02 4.2单分支和双分支选择结构程序设计 03 4.3 多分支选择结构程序设计
目录
CONTENTS
04 4.4 小结 05 4.5 拓展案例
案例4 百分制转换等级制
问题描述
学生成绩管理系统中需要对老师录入的百分制转换为等 级制。百分制与等级制的对应关系如下:90-100 对应A、 80-89对应B、70-79对应C、60-69对应D、0-59对应E。
问题分析
这是一个需要根据不同条件作出相应选择的程序,根据 描述,我们可以定义float变量fScore用来存放成绩值, 从而根据题目列出下列条件表达式: fScore>=90&&fScore<=100 your grade is A fScore>=80&&fScore<=89 your grade is B fScore>=70&&fScore<=79 your grade is C fScore>=60&&fScore<=69 your grade is D fScore>=0&&fScore<=59 your grade is E
4.4 小结
(1)嵌套if-else语句和switch语句都是用来实现多分支选择结构的,它们的 应用环境不同,嵌套if-else 语句用于对多条件并列测试,从中取一的情形; switch语句用于单条件测试,从其多种结果中取一种的情形。 (2)一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反 之用嵌套if-else 语句能解决的问题用switch也能解决,在使用时要根据具体 问题灵活运用。 (3)如果多分支选择结构中需要判断的逻辑关系只是是否相等,则最好用 switch语句。switch语句的执行效率高于嵌套if-else语句。
C语言程序设计第四章
运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }
c语言 第四章 选择结构课件
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
C语言讲义C4
{ char ch; scanf(“%c”, &ch); ch= (ch>= ‘A’&& ch<= ’Z’)? (ch+32) : ch; printf(“%c”, ch) }
输入 A a
21
4.4 switch 语句
switch语句 问题:为什么引出switch语句? 该语句为开关语句,解决多分支的情况。 格式:switch(表达式) { case (常量表达式1):语句块1; case (常量表达式2):语句块2;
3
4.1.2 逻辑运算符及其运算结果
用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。
1. 逻辑运算符及其优先次序 C语言提供三种逻辑运算符: && (逻辑与) 、 || (逻辑或) 、! (逻辑非) 注:“&&”和“|| ”是“双目(元)运算符”,它要求有两个运算量 操作数。而“! ”是“单目(元)运算符”,只要求有一个运算 量。 [例]:a&&b+c 、 (a>b)||(x>y) 、!(x<y)
0 0.0 2 0.0 5 d 0.0 8 0.1 0.1 5 s 250 250 s 500 500 s 1000 1 0 0 0 s 2 0 0 0 2 0 0 0 s 3 0 0 0 3 0 0 0 s
(4) case后的“常量表达式”只起到语句标号 的作用,而不进行条件判断,故在执行完某个 case后的语句序列后,将自动转移到下一个case 继续执行。其计算过程为:
23
a. 计算表达式的值; b. 找到与表达式的值相同的case常量表达式,执行该case后边 的语句序列,之后依次往下执行语句块。 表达式
《c语言程序设计教学资料》第4章---键盘输入与屏幕输出
编辑ppt
编辑ppt
格式化输出
例: m.n 例:int a=1234; float f=123.456; char ch=‘a’; printf(“%8d\n%2d\n”,a,a); printf(“%f\n%8f\n%8.1f\n%.2f\n%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch);
float f=123.456; printf(“%f\n%10f\n%10.2f\n%.2f\n%-10.2f\n”,f,f,f,f ,f ); }
编辑ppt
%e格式符
指定以指数形式输出实数 VC++给出小数位数为6位
指数部分占5列 小数点前必须有而且只有1位非零数字 printf(”%e”,123.456); 输出:1.234560 e+002
补空格。
编辑ppt
输出实数时的有效位数。
#include <stdio.h> void main() { float x,y;
x=111111.111; y=222222.222; printf(″%f″,x+y); }
编辑ppt
例4.8 输出实数时指定小数位数。
#include <stdio.h> void main() {
有以下几种用法:
① %f。不指定字段宽度,由系统自动指定字段宽度,使整数
部分全部输出,并输出6位小数。应当注意,在输出的数字中
并非全部数字都是有效数字。单精度实数的有效位数一般为7位。
②%m.nf。指定输出的数据共占m列,其中有n位小数。如果
第4章 C语言选择结构程序设计
《 C语言程序设计》
流程图
真 (非0) 表达式
假(0)
语句1
语句2
《 C语言程序设计》
例4.1
【例4.1】试用if…else语句编写程序,判断学生成绩 是否合格。
判断方法: ①如果成绩大于等于60,输出及格 ②否则输出成绩不及格
《 C语言程序设计》
4.2 if语句 if语句
C语言中if条件语句有三种结构形式,分别是: if结构(单分支结构) if if-else if-else结构(双分支结构) if-else-if结构 (多分支结构) if-else-if
《 C语言程序设计》
例4.5 设计一个应用程序,判断某一年是否为闰年
判断方法: ①如果该年能被4整除而不能被100整除,则为闰年; ②或者能被400整除也是闰年。 如: 1996年、2000年是闰年 1996年 2000年是闰年
1998年 1900年不是闰年 1998年、1900年不是闰年
逻辑表达式为: year%4==0 && year%100!=0 || year%400==0
4.4 条件运算符和条件表达式
条件运算符: 1、条件运算符:?:是C语言中惟一的一个三 目运算符。 一般形式为: 2、一般形式为: 表达式1 ? 表达式2 : 表达式3 3、操作过程:如果表达式1成立,则表达式2的 操作过程: 值就是此条件表达式的值;否则,表达式3 的值是此条件表达式的值。
《 C语言程序设计》
《 C语言程序设计》
4.2.2 if-else结构 if-else结构
1、格式: if(条件表达式 语句1 条件表达式) if(条件表达式) 语句1; 真 (非0) else 语句2; 语句 ; 语句1 2、执行过程:
c语言函数库-第四章(字符串函数)
c语言函数库第四章(字符串函数)1. atof:字符串转浮点型函数 (1)2. atoi:字符串转整型函数 (2)3. atol:字符串转长整型函数 (3)4. memchr:字符搜索函数 (4)5. memcmp:字符串比较函数 (4)6. memcpy:字符串拷贝函数 (5)7. memmove:字块移动函数 (6)8.memset:字符加载函数 (8)9. strcat:字符串连接函数 (8)10. strchr:字符串中字符首次匹配函数 (9)11. strcmp:字符串比较函数 (10)12. strcpy:字符串拷贝函数 (11)13. strcspn:字符集逆匹配函数 (12)14. strdup:字符串新建拷贝函数 (13)15. strerror:字符串错误信息函数 (14)16. strlen:计算字符串长度函数 (15)17. strlwr:字符串小写转换函数 (16)18. strncat:字符串连接函数 (16)19. strncmp:字符串子串比较函数 (17)20. strncpy:字符串子串拷贝函数 (18)21. strpbrk:字符集字符匹配函数 (19)22. strrchr:字符串中字符末次匹配函数 (20)23. strrev:字符串倒转函数 (21)24. strset:字符串设定函数 (22)25. strspn:字符集匹配函数 (22)26. strstr:字符串匹配函数 (23)27. strtod:字符串转换成双精度函数 (24)28. strtok:字符串分隔函数 (25)29. strtol:字符串转换成长整型函数 (27)30. strtoul:字符串转换成无符号长整型函数 (28)31. strupr:字符串大写转换函数 (29)32. strupr:字符串大写转换函数 (29)1.atof:字符串转浮点型函数函数原型:float atof(const char *str);头文件:#include<stdlib.h>是否是标准函数:是函数功能:将字符串转换成浮点值,也就是将字符串str转换成浮点值然后获取转换后的结果。
第4章c语言的三种基本结构
程序1: /*exp51.c*/ #include <stdio.h> main ( ) { int x, y;
scanf(“%d", &x); if (x<0)
y= -1; else if (x==0)
y=0; else
y=1; printf ("x=%d, y=%d\n", x, y); }
程序2:将程序1的if语句改为: /*exp52.c*/ #include <stdio.h> main ( ) { int x, y; scanf(“%d", &x); if (x>=0)
1. 顺序结构 先执行A, 再执行B.
A 表示 A B
B
2. 选择结构 存在某条件P, 若P为真,则执行A, 否则执行B。
TP F
A
B
表示为
TP F AB
另一种选择结构––多分支结构.
K
K=K1 K=K2
K=Kn
A1 A2 … Ai … An
3. 循环结构
有两种结构:当型和直到型 (1) 当型结构
例:计算10!并输出结果。
main()
main()
{
{
int i=1, sum=1;
int i=1; long sum=1;
loop: if (i<=10)
loop: if (i<=10)
{
{
sum=sum*i;
sum=sum*i;
i++;
i++;
goto loop;
goto loop;
}
}
printf(“10!=%d\n”,sum); printf(“10!=%ld\n”,sum
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C程序设计实例教程》 山东科技大学机电学院
输出:一个算法有一个或多个输出, 输出:一个算法有一个或多个输出,以反映对输入数 据加工后的结果。没有输出的算法是毫无意义的; 据加工后的结果。没有输出的算法是毫无意义的; 可行性:算法原则上能够精确地运行, 可行性:算法原则上能够精确地运行,且人们用笔和 纸做有限次运算后即可完成。 纸做有限次运算后即可完成。
三、N-S结构图描述法
定义: 年美国学者I.Nassi和B.Shneiderman提出了一种 定义:1973年美国学者 年美国学者 和 提出了一种
新的程序控制流程图的表示方法, 结构图。 新的程序控制流程图的表示方法,即N-S结构图。 结构图
用 N-S结构图表示三种基本结构 结构图表示三种基本结构 顺序结构 选择结构
statement2
11
《C程序设计实例教程》 山东科技大学机电学院
二、程序流程图描述法
选择结构
真 expression
假
statement1
statement2
12
《C程序设计实例教程》 山东科技大学机电学院
19
《C程序设计实例教程》 山东科技大学机电学院
§4.2 C程序语句
C语句分为 种类型,分别是表达式语句、函数调用语句、 语句分为5种类型 分别是表达式语句、函数调用语句、 语句分为 种类型, 控制语句、复合语句和空语句。 控制语句、复合语句和空语句。
表达式语句
9
《C程序设计实例教程》 山东科技大学机电学院
二、程序流程图描述法
定义:美国国家标准化协会ANSI(American National 定义:美国国家标准化协会 (
Standard Institute)规定了一些常用的流程图符号,用于表 )规定了一些常用的流程图符号, 示程序的执行步骤与控制流向。 示程序的执行步骤与控制流向。
本文由王之儿贡献
ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
第四章 C语言程序的基本结构
了解: 语言语句的类型 了解:C语言语句的类型 掌握: 掌握:ANSI和N-S流程图的绘制方法 和 流程图的绘制方法 掌握: 掌握:选择结构的基本形式 掌握:选择结构、 掌握:选择结构、顺序结构的基本形式和执行过程 掌握:循环控制语句的作用 掌握: 重点: 重点:三种基本结构的形式及组成 难点: 难点:循环嵌套及循环控制语句的作用
8
《C程序设计实例教程》 山东科技大学机电学院
算法之二: S1:定义循环变量i=1,用于保存和的变量S=0; S2:判断i的数值是否小于等于100,若是则执行S3,否 则跳转到S4执行; S3:将i的数值累加到S,然后变量i自身加1,转到S2执行; S4:输出S的数值;
21
《C程序设计实例教程》 山东科技大学机电学院
控制语句
定义:用于控制程序执行的语句。 定义:用于控制程序执行的语句。 分类: 语言中共有 种控制语句, 语言中共有9种控制语句 分类:C语言中共有 种控制语句,包括选择分支结构 )、循环结构 (if…、if…else…、if…else if…else)、循环结构 、 、 )、 (if…goto…、while…、do…while…、for…)以及循环 、 、 、 ) 控制语句break和continue语句。 语句。 控制语句 和 语句 调用格式: 调用格式:if(expression) statements;
expression 真 statement1 假 statemet2
15
《C程序设计实例教程》 山东科技大学机电学院
三、N-S结构图描述法
循环结构
expression 为真
statement
一、自然语言描述法
定义:自然语言是人们日常使用的语言, 定义:自然语言是人们日常使用的语言,来描述法 问题的一种表示方法, 问题的一种表示方法, 特点:用该方法所描述的算法简单易懂, 特点:用该方法所描述的算法简单易懂,但存在结 构冗长、容易出现歧义的缺点。 构冗长、容易出现歧义的缺点。 用途: 用途:自然语言描述法一般只用于简单问题的算法 描述 。
1
《C程序设计实例教程》 山东科技大学机电学院
§4.1 结构化程序设计方法与算法
结构化程序设计方法
定义:结构化程序设计方法是程序设计的先进方法和 定义 结构化程序设计方法是程序设计的先进方法和 工具,其主要原则可以概括为自顶向下,逐步求精, 工具,其主要原则可以概括为自顶向下,逐步求精, 模块化,限制使用goto语句。 语句。 模块化,限制使用 语句 分类:三种基本结构 分类 三种基本结构
符号: 符号:
起止框 跳转符号
输入输出框 注释框
判断框 流程线
处理框
10
《C程序设计实例教程》 山东科技大学机电学院
二、程序流程图描述法
用流程图表示三种基本的结构
1 顺序结构
statement1
5
《C程序设计实例教程》 山东科技大学机电学院
算法的描述
定义:人的思想要用语言来表达,而算法是人求解问 题的思想方法 ,是对解题过程的精确描述。 分类:
自然语言描述法, 程序流程图描述法 , N-S结构图描述法 。
6
《C程序设计实例教程》 山东科技大学机电学院
4
《C程序设计实例教程》 山东科技大学机电学院
算法
定义:算法是对拟解决问题的具体方法和步骤的描述。 定义:算法是对拟解决问题的具体方法和步骤的描述。 一个有关公式:程序 数据结构 算法数。 数据结构+算法数 一个有关公式:程序=数据结构 算法数。数据结构指对
数据的描述,即程序中数据的类型和组织形式。 数据的描述,即程序中数据的类型和组织形式。算法是对拟解决 问题的具体操作步骤的描述 。
顺序结构:是一种简单的程序设计, 顺序结构:是一种简单的程序设计,它是最基
本、最常用的结构。 最常用的结构。
2
《C程序设计实例教程》 山东科技大学机电学院
§4.1 结构化程序设计方法与算法
选择结构:又称为分支结构, 选择结构:又称为分支结构,包括简单选择和多分支
3
《C程序设计实例教程》 山东科技大学机电学院
编写程序时,应遵循以下规则: 编写程序时 应遵循以下规则: 应遵循以下规则
(1)一个说明或一个语句占一行。 )一个说明或一个语句占一行。 (2)标识符包括模块名、变量名、常量名、标号名、子程序名等。 )标识符包括模块名、变量名、常量名、标号名、子程序名等。 (3)必要的程序注释是程序设计者与程序阅读者之间通信的重要 ) 手段。 手段。 括起来的部分, (4)用{ }括起来的部分,通常表示了程序的某一层次结构,可以 ) 括起来的部分 通常表示了程序的某一层次结构, 是程序的复合语句,也可以是数组初始化、结构体、 是程序的复合语句,也可以是数组初始化、结构体、共用体或枚 举的定义等内容。 举的定义等内容。 (5)采用分层缩进的写法显示嵌套结构层次,整个程序呈现出锯 )采用分层缩进的写法显示嵌套结构层次, 齿形的缩进结构。 齿形的缩进结构。
statement
直到 expression 为假
(a)当型循环
(b)直到型循环
16
《C程序设计实例教程》 山东科技大学机电学院
举例
【例4.4】输出两个整数中的较大值,用N-S结构的流程图表 】输出两个整数中的较大值, 结构的流程图表
20
《C程序设计实例教程》 山东科技大学机电学院
函数调用语句
定义:函数调用语句是在函数调用的基础上加分号“ 定义:函数调用语句是在函数调用的基础上加分号“;” 组成的 。 调用格式: 调用格式: 函数名称(实参表列) 函数名称(实参表列); 举例: 举例:
c=getchar(); /*用于从键盘读入一个字符*/ printf("c=%c",c); /*用于将c进行格式输出*/ m=max(a,b,c); 将结果赋值给m*/ /*用于求取a、b、c三者之间的最大值并
定义:由运算符和操作数组合起来的符合C语言格式的式子。 分类: 分类:可分为算术表达式、逻辑表达式、关系表达式等多种形式。 格式为:<表达式>;表达式语句是由一个完整的表达式及分号 表达式语句是由一个完整的表达式及分号 “;”构成一个语句
注意:表达式和表达式语句的区别就在于后者带有分号, 注意:表达式和表达式语句的区别就在于后者带有分号, 是一个可以运行的语句。 是一个可以运行的语句。
二、程序流程图描述法
循环结构
假 expression 真 statement1
statement1
真 expression 假
(a)当型循环
(b)直到型循环
13
《C程序设计实例教程》 山东科技大学机电学院
二、程序流程图描述法
选择结构。 选择结构。
循环结构,有当型循环结构(先判断后执行循环体) 循环结构,有当型循环结构(先判断后执行循环体)
和直到型循环结构(先执行循环体后判断)两种形式。 和直到型循环结构(先执行循环体后判断)两种形式。
两大优点: 两大优点
程序易于理解、使用和维护; 程序易于理解、使用和维护; 提高了编程工作效率,降低了软件开发成本。 提高了编程工作效率,降低了软件开发成本。
7
《C程序设计实例教程》 山东科技大学机电学院
一、自然语言描述法
【例4.1】计算 】计算1+2+3+…+100。 。
算法一: S1:定义循环变量i=1,用于保存和的变量S=0; S2:判断i的数值是否小于等于100,若是则执行S3,否 则跳转到S4执行; S3:将i的数值累加到S,然后变量i自身加1,转到S2执 行; S4:输出S的数值;