C语言程序控制结构


30000,5005 sum=35005, aver= 17502.50
11

例4.2 给定一个三位正整数,分别输出其个位数、十位数 和百位数。 #include<stdio.h> void main() { int m,m0,m1,m2; printf(“Input a number(100~999):”); scanf("%d",&m); m0=m%10; m1=(m/10)%10; m2=m/100; printf("%d,%d,%d\n",m0,m1,m2); }
13
顺序结构

例4.4 求ax2+bx+c=0方程的根。 a,b,c由键盘输入,设 b 2 4ac >0。 一元二次方程式的根为
b b 2 4ac x1= 2a
b b 2 4ac x2= 2a
可以将上面的分式分为两项: b b 2 4ac 2a p= 2 a , q= ,则 x1=p+q,x2=p-q。
24
双分支if-else语句

例: 输入两个数并判断两数是否相等。
#include <stdio.h> void main( ) { int a,b; printf("Enter integer a:"); scanf("%d",&a); printf("Enter integer b:"); scanf("%d",&b); if(a==b) printf("a==b\n"); else printf("a!=b\n"); }
双分支if-else语句
2、if(表达式) 语句1 else 语句2
Y 语句1
条件
N 语句2
例:if (x>y) printf(“%d”,x); else printf(“%d”,y);
各有一个分号;但属于一个语句
23
双分支if-else语句
说明:在if和else后面可以只含有一条语句,也可 以含有用花括号{ }括起来的复合语句。如: if ((a+b)>c&&(b+c)>a&&(c+a)>b) { s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%6.2f",area); } else printf("it is not a trilateral. ");
6
如:
4.1.4控制语句

控制语句:完成一定的控制功能。
分支
if( )…else… switch for( )… 循环 while( )… do…while( ) continue break 辅助控制 goto return
如: if (x>y) z=x; else z=y;
7
4.2顺序结构
流程图
14
#include <stdio.h> #include <math.h> 运行情况: void main ( ) 输入: a=1, b=3, c=2 输出: x1=-1.00 { x2=-2.00 float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2); }
内嵌if
内嵌if
if (表达式1) 语句1 else if(表达式2) 语句3 else 语句4
内嵌if
28
多分支语句
3、if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 …… else if(表达式m)语句m else 语句n
9
顺序结构

结构化程序的三种基本结构 顺序结构:按书写顺序执行的语句构成的程序段
A B
A B
N-S图
流程图
选择结构 循环结构
10

例4.1 输入任意两个整数,求它们的和及平均值。 要求平均值取两位小数输出。
开始
输入两整数 计算sum 计算aver 结束
//例4.1 #include<stdio.h> #include<math.h> void main() { int num1, num2; float sum, aver; printf("Please input two integers: \n"); scanf("%d,%d", &num1, &num2); sum=(float)num1+num2; /*求累计和*/ aver=sum/2.0; /*求平均值*/ printf("sum=%.0f, aver=%.2f\n", sum, aver); 运行情况: }
18
单分支语句
例4.5 从键盘输入一个字母,以小写字母形式输出该字母 #include <stdio.h> main( ) { char c; printf("input a letter:"); c=getchar(); if(c>='A'&&c<='z') c=c+32; printf("%c\n",c); }
27
3.多分支语句
几种形式:
if (表达式1) if (表达式2)语句1 else 语句2 else if(表达式3)语句3 else 语句4 if (表达式1) { if (表达式2) 语句1 } else 语句2 if (表达式1) if (表达式2) 语句1 else 语句2
内嵌if
内嵌if
表达式 当判断表达式值不为零 (即”真”), 则执行语句1, 真(非0) 再执行其后继语句; 否则, 不 语句1 执行语句 1, 执行其后继语 句。
假 (0)
17
单分支语句
判断表达式应该是具有一定意义、有实用价值的表达式,因 此,最常用关系表达式和逻辑表达式来表达,例如: if(a==b) if(a==0) 等价于if(!a)
5
4.1.3复合语句
用
{ }括起来的一组语句。如: { z=x+y; 一般形式:
{ 执行语句; } }
t=z/100; printf("%f",t);
说明: { z=x+y; “}”后不加分号 { t=z/100; 其中最后一个语句后也要加分号 printf("%f",t); } 语法上和单一语句相同 } 复合语句可嵌套
<stdio.h> void main ( ) { int a,b; scanf("%d",&a); b=1; if(a==5) b=a+3; b=6; printf("%d\n",b); }
void main ( ) {int a,b,t; scanf("%d%d",&a,&b); if(a>b) t=a;a=b;b=t; printf("a=%d,b=%d\n",a, b); getch(); }
流程图是表示算法的一种工具,用一些图框来
表示各种操作。 一个流程图包括以下几部分 如,顺序结构流程图: :
表示相应操作的框; 带箭头的流程线; 框内外必要的文字说明。

A B
8
顺序结构

常用的流程图符号:
起止框
判断框
处理框
输入/输出框
注释框
流向线
连接点
N-S流程图:完全去掉了流程线,算法的每一步都用矩 形框描述,把一个个矩形框按执行的次序连接起来就是一 个完整的算法描述。
表达式语句 空语句
控制语句
复合语句
3
4.1.1表达式语句
表达式语句是在表达式的末尾加上分号构成的语句。 如: z=x+sin(y); printf("This is a C a-=a*a; 赋值语句 statement."); i++; 自增1语句 x=0,y=1; 逗号表达式语句 func(a,5); y=max(a,b); x+y; 无意义 printf(―This is a C program.\n‖); 函数调用语句 赋值语句和函数调用语句是使用最多的表达式语句
if(a!=0) 等价于if(a)
if(a>=5&&a<=10)
例:执行下列程序段 后 a 的值是____。 int a=3; if (2) a=5;
例:输入一个整数,求绝对值. main( ) { int i ; scanf("%d",&i); if (i <0) i= -i ; printf("%d", i); }
19
单分支语句 例4.6从键盘输入两个整数,按升序输出这两个数。
#include<stdio.h> void main( ) { int a,b,t; scanf("%d%d",&a,&b); if(a>b) { t=a; //交换两数 a=b; b=t; } printf("%d,%d\n",a,b); }
合集下载

C语言程序控制结构

C语言程序控制结构

C语言程序控制结构C语言是一种面向过程的编程语言,具有丰富的程序控制结构,可以控制程序的执行流程和逻辑。

本文将介绍C语言的常见控制结构,包括顺序结构、选择结构和循环结构,并提供示例代码进行说明。

1.顺序结构:顺序结构是程序中最简单的结构,按照代码的编写顺序一行接一行地执行。

每个语句都会顺序执行,直到程序结束。

例如:```c#include <stdio.h>int maiprintf("Hello, World!\n"); // 打印输出int x = 10; // 定义一个变量 x,并赋值为 10int y = 20; // 定义一个变量 y,并赋值为 20int sum = x + y; // 将 x 和 y 相加,保存到 sum 变量中printf("Sum: %d\n", sum); // 打印输出 sum 的值return 0;```2.选择结构:选择结构根据条件的真假选择不同的执行路径。

常见的选择结构有if 语句和 switch 语句。

2.1 if 语句:if 语句根据条件执行或跳过一段代码。

如果条件为真,则执行 if 代码块中的语句;如果条件为假,则跳过 if 代码块。

例如:```c#include <stdio.h>int maiint x = 10;if (x > 0) { // 如果 x 大于 0printf("x is positive\n"); // 打印输出} else { // 否则printf("x is non-positive\n"); // 打印输出}return 0;```2.2 switch 语句:switch 语句根据表达式的值选择不同的执行路径。

通常使用 switch 语句来处理多个条件的情况。

例如:```c#include <stdio.h>int maiint day = 3;switch (day)case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;default:printf("Other day\n");break;}return 0;```3.循环结构:循环结构用于重复执行一段代码,直到满足特定条件。

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。

八进制数为从低位开始,以三位一组划分为一个八进制数。

3)x格式符。

以十六进制数无符号形式输出整数。

例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。

4)u格式符。

以十进制数无符号形式输出整数。

一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。

要注意两类数据的取值范畴大小。

例如:无符号数据的输出。

main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。

5)c格式符。

用来输出一个字符。

例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。

输出该整数或者整数对应ASCII的字符。

6)s格式符。

用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。

③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。

c语言的三种结构

c语言的三种结构

c语言的三种结构
作为一种程序设计语言,C语言包含了三种基础的控制结构,分别是顺序结构、选择结构和循环结构。

顺序结构是最基本的程序结构,程序会按照编写的顺序依次执行语句。

就像我们日常生活中做事情的步骤一样,编写程序也需要有顺序。

例如,我们在编程时,首先需要定义变量,然后将值赋给变量,最后再运行程序,这个过程就是一个典
型的顺序结构。

选择结构是根据条件来确定执行哪部分代码,也就是具有选择性的执行语句。

典型的选择结构语句有if语句、switch语句。

其中,if语句是最基本的选择结构,
它的作用就是来决定程序是否执行某个语句。

而switch语句可以用来实现多重选择,相比if语句可以处理的情况更多。

循环结构则是程序中常见的一种结构,它能使程序反复执行某段代码直到满足停止的条件。

在C语言中,常见的循环结构语句有for语句、while语句、do-while 语句。

for语句是最基本的循环结构,它和while语句的区别在于,for语句在循环
开始前就确定了循环的次数,而while语句则是在每次循环的时候都会检查循环条件。

而相比于while语句,do-while语句至少会执行一次,即使条件在一开始就不
满足。

总的来说,顺序结构、选择结构和循环结构是C语言中的三种关键的控制结构,通过它们组合与嵌套,可以实现各种复杂的程序功能。

第4章 C语言程序的基本控制结构

第4章 C语言程序的基本控制结构

#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B
真
表达 式
假
条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)

C语言语句类型与基本控制结构

C语言语句类型与基本控制结构
结构化程序设计
基本思想:任何程序都可以用三种基本结构表示。
优点:结构清晰,易读,提高程序设计质量和效率
三种基本结构
顺序结构 流程图
A B
> 7
每一个程序编制人员都 应当熟练掌握流程图, 会看会画。 有 50 个 学 生 , 要 求 将 他 们 之 中 成 绩 在 80 分 以上者打印出来。 如果, n 表示学生学号 , ni 表示第 i 个学生学 号; g 表示学生成绩, gi 表示第 i 个学生成绩 ;则算法可表示如下 :
11
§5.2 程序的三种基本结构
三种基本结构 选择结构 二分支选择结构
真
P
假
A
Bh
12
§5.2 程序的三种基本结构
三种基本结构
循环结构 当型循环结构
P 真 A 假
13
§5.2 程序的三种基本结构
三种基本结构 循环结构 直到型循环结构
23
例5-5 输入某人的身高和体重,根据下面的计算公式 判断此人的体重是标准、过胖还是过瘦。 (1)标准体重=(身高-110)公斤; (2)超过标准体重5公斤为过胖; (3)低于标准体重5公斤为过瘦。
24
#include <stdio.h> 运行结果: ①请输入某人的身高和体重 void main() (公斤): { float h,w,bw; 输入:160 52 printf("请输入某人的身高和体重(公斤): "); scanf("%f%f",&h,&w); 输出:标准 ②请输入某人的身高和体重 bw=h-110; (公斤): if(w-bw>5) 输入:160 70 printf("过胖\n"); 输出:过胖 else if(bw-w>5) ③请输入某人的身高和体重 printf("过瘦\n"); (公斤): else 输入:160 40 printf("标准\n"); 输出:过瘦 }

计算机等级考试二级C语言第2讲 程序控制结构

计算机等级考试二级C语言第2讲 程序控制结构

}
return 0; }
对吗?
(3)if…else if语句 在C++程序还经常使用如下结构: if(表达式1)语句1
else if(表达式 2)语句 2 else if(表达式3)语句 3
… else if(表达式n)语句 n
else语句n+1 这种嵌套的if语句构成的序列是编写多路判定的最一般的方法。
printf("%d\n",d); } 程序运行后的输出结果是 A) 2 B) 3 C) 43 D) 44
当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 if(a<b)
if(c<d) x=1; else
if(a<c) if(b<d) x=2; else x=3;
else x=6; else x=7; A.1 B.2 C.3 D.6
大纲内容
四、选择结构程序设计 1.用 if 语句实现选择结构。 2.用 switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for 循环结构。 2.while 和 do-while循环结构。 3.continue语句和 break语句。 4. 循环的嵌套。
1. 用 if 语句实现选择结构
printf(“%d\n”,k);
A.-1
B.0
C.9
D.28 D.10
有以下程序 main() { int k=5,n=0;
while(k>0) { switch(k)
{ default : break; case 1 : n+=k; case 2 : case 3 : n+=k;
} k--; } printf("%d\n",n); } 程序运行后的输出结果是 A)0 B)4 C)6 D)7

c语言chap3控制结构


格式控制组成:
普通字符(不含%的字符),原样输出(可为转义字符) 格式说明符(%格式字符),控制输出数据的格式。
2. 输出表列:需要输出的数据,以,分隔。可为常、 变量、表达式、函数,受格式控制中格式符的控制。
也可以没有输出表列,如:

printf(“Name\tAdd\tTel\n”);
Chap3 控制结构
Chap3 控制结构
7、f格式符:按小数格式输出实数。
%f
%m.nf %-m.nf %lf
按小数格式输出,整数部分全输出,6位小数
输出占m列(含小数点),其中n位小数(四舍五入) 同上,左对齐 用于double型数据
printf("%0.3f",123.45678); 显示 123.457
Chap3 控制结构
用于long(%ld)和double(%lf)型数据 用于短整型数据(%hd、%ho、%hx)
域宽(一个正整数)
*
Chap3 控制结构
指定输入所占宽度
表示对应输入量不赋给一个变量
说明
1. 可以指定输入数据的列数,系统自动按它截取所需数据。 例:scanf("%2d%3d",&a,&b); 输入 123456↙系统自动将12赋给a,345赋给b。 2. *格式用于跳过一个数据域
结果:123□□□123□00123,
□123456□□□123456□00123456 强调: 对long型数据要用%ld输出,若用%d可能会发生错误。 同理, short int 数据要用%hd
Chap3 控制结构
2. o(字母)格式符: 按八进制无符号数的格式输出。符号位作为数一并输出。 例:short int a=-1; printf(‚a=%hd,%ho\n‛,a,a);

C语言程序控制结构教学内容


#include <math.h> void main ( ) {
float a,b,c,disc,x1,x2,p,q;
运行情况:
输入: a=1, b=3, c=2 输出: x1=-1.00
x2=-2.00
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
15
4.3.1 if语句
1、if 格式(单分支语句) if (判断表达式) 语句1; 语句 1可以是一条语句或复合语句。 注意:满足条件时想要执行多条语句一定要 用复合语句
当判断表达式值不为零
表达式
(即”真”), 则执行语句1, 真(非0)
再执行其后继语句; 否则, 不 执行语句 1, 执行其后继语
无意义
y=max(a,b);
printf(“This is a C program.\n”); 函数调用语句
赋值语句和函数调用语句是使用最多的表达式语句
3
4.1.2空语句
仅由一个“;”构成的语句 只是在逻辑上起到一个语句的作用,在编译时不
产生任何指令,在执行时不产生任何操作。 作用: 构成标号语句,标示流程的转向点; 构成循环语句中空循环体。 例如:while(getchar()!=‘\n’) ; 只要从键盘上输入的字符不是回车则重新输入。
else printf(“%d”,y);
各有一个分号;但属于一个语句
22
双分支if-else语句
说明:在if和else后面可以只含有一条语句,也可 以含有用花括号{ }括起来的复合语句。如: if ((a+b)>c&&(b+c)>a&&(c+a)>b) { s=0.5*(a+b+c);

【3】程序控制结构


2.7.2 条件运算符
• 条件运算符是一个三元运算符,其格式如下:
expr1 ? expr2: expr3
等价
int a=5,b=10,r; r=a>b ? a : b; //a>b的值是0,所以整个条件运算符的结果是b,即r=b。
if(expr1) expr2; else expr3;
int a=5,b=10,r; If(a>b) r=a; else r=b;
#include<stdio.h> void main() { int a,c=0,c1=0,c2=0,c3=0,c4=0; printf("输入a的值:"); scanf("%d",&a); switch(a) { case 1: c1++; printf("c1=%d\n",c1); break; case 2: c2++; printf("c2=%d\n",c2); case 3: c3++; printf("c3=%d\n",c3); case 4: c4++; printf("c4=%d\n",c4); default: c++; printf("c=%d\n",c); } }
【例2.7-3】(字符大写转小写)输入一个字 符,判别它是否大写字母,如果是,将它 转换成小写字母;如果不是,不转换。
main() { char ch; scanf("%c",&ch); printf("%c",(ch>=‟A‟ && ch<=‟Z‟) ? ch+32 : ch); }

2.三种程序控制结构


各种格式字符的说明
一:d格式符 1. %d 2. %md m为指定的输出字段的宽度,如果数据的位数小 于m,则左端补以空格,若大于m,则按实际位数输出。 按数据实际长度输出
3. %ld
输出长整型数据
二:o格式符和x格式符 输出数据不带符号,即符号位作为数据的一部分输出 三:u格式符
以无符号十进制输出
二、格式输入函数scanf( )
scanf(“格式控制字符串”,地址表列); 格式控制字符串的使用与printf函数基本相同; 不能显示非格式字符串,也就是不能显示提示字符串; 地址表列中给出各变量的地址。 地址是由地址运算符“&”后跟变量名组成的。
格式字符串
格式字符串的一般形式为: %[*][输入数据宽度][长度]类型 宽 度 用十进制整数指定输入的宽度(即字符数)。 例如: scanf("%5d",&a); 输入: 12345678 只把12345赋予变量a,其余部分被截去。 又如: scanf("%4d%4d",&a,&b); 输入:12345678将把1234赋予a,而把5678赋予b。
(5) 如果格式控制串中有非格式字符则输入时也要输入该非格 式字符。 (6) 输入的数据与格式字符串中的类型要相一致。
判断题(P18) 10.printf函数中的格式符“%c”只能用于输出字符类型数据。 12.按格式符“%6.3f”输出i (i=123.45) 时,输出结果为 123.450。 14.格式符“%f”不能用于输入 double类型数据。 15.当格式符中指定宽度时,从缓冲区中读入的字符数完全
4.如果循环至少要执行一次, while和do-while语句可以相 互替换。
使用while和do-while语句注意以下几点:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档