C语言例题(分支语句)
C语言程序设计 选择控制结构(5.1.2)--5.1节-5.8节

3 main()
4{
5
float data1, data2;
6
char op;
7
printf("Please enter the expression:\n");
8
scanf("%f %c%f", &data1, &op, &data2); /* %c前有一个空格 */
9
switch (op)
10
{
2 main()
3{
4
int a, b, max;
5
printf("Input a, b:");
6
scanf("%d,%d", &a, &b);
7
max = a > b ? a : b;
8
printf("max = %d\n", max);
9}
/* 用条件表达式计算两整数的最大值* /
【例题解析】相比于前两种的方法而言,本例使用条件表达式的方法编写的程序更简洁。
Invalid operator!
【例题解析】用 default 标号后的语句来处理输入非法运算符的情况,使程序不仅对用户
正确的输入数据进行运算外,还对错误的输入数据进行错误处理,从而保证了程序的健壮
性。每个 case 后的常量值必须互不相同,出现次序发生改变时,不影响程序的运行结果,
但从执行效率角度考虑,一般将发生频率高的情况放在前面。 程序第 12、15、18、28 行的
9
printf("max = %d\n", max);
10 }
程序的运行结果如下:
编程语言基础-C语言 第3章 分支程序设计

③ 假设A和B是两个表达式,下面对逻辑运 算进行说明。 1) A && B 若A、B均为真, 则“A && B”值为真,否则为 假。 2) A || B 若A、B均为假, 则“A || B值”为假,否则为真。 3) ! A 若A为真, 则 “!A”为假;否则为真。
看下面的例子:
1.
( 3 < 2 ) && ( 7 > 5 ) 值:0 只有 && 右面的子表达式为真 ( 3 < 2 ) || ( 7 > 5 ) 值:1 只要求有一个子表达式为真 !(3<2) 子表达式为假。 值:1
运行结果: 1. 请输入一个正 整数:36↙ Yes! 2. 请输入一个正 整数:15↙ No!
3.2.3 if语句的嵌套
一般形式是: if(表达式1) 语句1; else if(表达式2) 语句2; else if (表达式3) 语句3; else 语句4;
执行过程如图3-4所示。
表达式 1 假 表达式 2 假
}
3.4 分支程序设计应用实例
例3-7: 从键盘输入二个整数,输出其中最大者。 main( ) { int a, b, max; printf("请输入二个整数:"); scanf("%d %d", &a, &b ); if ( a > b ) max = a; else max = b; printf("二者中最大值为:%d", max ); getch( ); 运行结果: } 17 31↙ 二者中最大值为:31
第3章 分支程序设计
3.1 关系表达式和逻辑表达式
实验二C语言中的分支语句程序设计实验

实验二 C语言中的分支语句程序设计一、实验目的:1.掌握C语言的基本语法;2.掌握C语言的表达式运算及标准库函数的调用方法;3.掌握C语言的基本输入输出语句;4.掌握字符类型、整型和浮点型数据的输入输出及表达式计算方法;5.掌握if语句和switch语句的用法;6.掌握分支程序结构的设计思想;二、实验内容(一)分析程序,用程序验证下面各个表达式的值1、当整型变量a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1) if(a>c) {a=b; b=c; c=a;}else {a=c; c=b; b=a;}执行后a,b,c的值为,,(2) if(a<c) a=c;else a=b; c=b; b=a;执行后a,b,c的值为,,(3) if(a!=c) ;else a=c; c=b; b=a;执行后a,b,c的值为,,2、若整数x分别等于95、87、100、43、66、79,57,则以下程序段运行后屏幕显示是什么?switch(x/10){ case 6:case 7: printf("Pass\n"); break;case 8: printf("Good\n"); break;case 9:case 10: printf("V eryGood\n"); break;case 5 : printf("Between Pass and Fail\n");default: printf("Fail\n");}x等于95时,程序段运行后屏幕上显示。
x等于87时,程序段运行后屏幕上显示。
x等于100时,程序段运行后屏幕上显示。
x等于43时,程序段运行后屏幕上显示。
x等于66时,程序段运行后屏幕上显示。
x等于79时,程序段运行后屏幕上显示。
x等于57时,程序段运行后屏幕上显示。
四《C语言程序设计》实验四选择结构程序设计实验目的1、掌握分支

四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
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语言教案第5章

使用嵌套if 语句完成例5-4。 例5-6 使用嵌套 语句完成例 。 #include<stdio.h> int main(){ float g,y; scanf("%f",&g); if(g<50) { if(g<20) y=0.5*g; else y=0.4*g; } else { if(g<100)y=0.3*g; else y=0.2*g; } printf("\n%f",y); }
用字符来代表成绩水平,我们规定A 代表[90-100]、 例5-12 用字符来代表成绩水平,我们规定 代表 、 B 代表[80-90)、C 代表[70-80)、D 代表[60-70)、E 代表[0代表 、 代表 、 代表 、 代表 60)。请编程输入一个成绩 整数 ,输出代表该成绩的字符。 整数), 。请编程输入一个成绩(整数 输出代表该成绩的字符。
单分支if 单分支 语句的流程图
5.1.2 双分支 选择结构 双分支if
if(表达式 语句 表达式) 语句1; 表达式 else 语句2; 语句
双分支if 双分支 语句的流程图
输入一个整数,输出其绝对值 输出其绝对值。 例5-1 输入一个整数 输出其绝对值。
程序1: 程序 : #include<stdio.h> int main(){ int i; scanf("%d",&i); if(i>=0) printf("\n%d",i); else printf("\n%d",-i); } 程序2: 程序 : #include<stdio.h> int main(){ int i; scanf("%d",&i); if(i>=0) printf("\n%d",i); if(i<0) printf("\n%d",-i); }
C语言编程习题和答案

C语⾔编程习题和答案1题:/*九九乘法表:*/#includeint main(void){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%dx%d=%2d ",i,j,i*j); printf("\n");} return 0;}2题:/*求n的阶乘之和:*/#includeint main(void){int i,n,s,k,j;scanf("%d",&n);for(s=1,i=1;i<=n;i++)s*=i;printf("%d!=%d\n",n,s);for(s=1,i=1;i<=n;i++){for(k=0,s=1,j=1;j<=i;j++)s=s*j,k+=s;}printf("他们的n阶之和为%d\n",k); return 0;}3题:/*求兔⼦繁殖问题:*/#includeint main(void){int a=1,b=1,i=3,n,c;printf("\n请输⼊⼀个繁殖时间(单位为⽉): "); scanf("%d",&n); while(i<=n){c=a+b;a=b;b=c;i++;}printf("他们繁殖的兔⼦数为:%d(只)\n",c); return 0;}1题:/*猴⼦吃桃:*/#includeint main(void){int i,a=1,s=0;for(i=9;i>=1;i--){s=(a+1)*2;a=s;} printf("s=%d个\n",s); return 0;}2题:/*求分数之和:*/#includeint main(void){float k,i,a=1,b=2,sum=0.0;printf("这前20个分数分别是:");for(i=1,sum=0;i<=20;i++){sum+=b/a;printf("%.f/%.f ",b,a);k=b,b=(a+b),a=k;}printf("\n他们的和为:sum=%.2f\n",sum); return 0;}3题/*判断是否是⽔仙花数:*/#includeint main(void){int a,j,k,s;printf("请输⼊⼀个数:");scanf("%d",&a);for(;a<100||a>999;){printf("\n输⼊有误,请重新输⼊⼀个三位数:"); scanf("%d",&a);} j=a/100,k=a%100/10,s=a%10;if(a==j*j*j+k*k*k+s*s*s)printf("\n%d是⽔仙花数。
分支结构程序-2.

3.3 评分等级设置
C语言还提供了一种break语句,用于跳出switch语句。
switch(带break)语句的一般形式
switch(表达式) { case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; …... case 常量表达式n: 语句n;break; [ default : 语句n+1;break; ] }
3.3 评分等级设置
C语言还提供了另一种用于多分支选择的语句。
switch语句的一般形式
switch(表达式) { case 常量表达式1: 语句1; case 常量表达式2: 语句2; …... case 常量表达式n: 语句n; [ default : 语句n+1;] }
语义: 计算表达式的值,并 逐个与其后的常量表达 式值相比较,当表达式 的值与某个常量表达式 的值相等时,则执行之 后的语句,然后不再进行 判断,继续执行后面所 有case后的语句(包括 default后的语句)。
03 分支结构程序-2
任务三 找出最高分和最低分 ( 2)
3.1 3.2 3.3
两个数据比大小
三个数据中找最大值和最小值
评分等级设置
3.2 三个数据中找最大值和最小值
开始 定义整型变量a、b、c、max、min 从键盘输入a、b、c
确定算法
找出a、b、c中最大数赋值 给max,最小数赋值给min
printf(“a=%d,b=%d”,a,b); printf(“a=%d,b=%d”,a,b);
a=1,b=3
a=3,b=12803
课堂练习
int a=1,b=3,t; if(a<b) { t=a;a=b;b=t;}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.输入年份和月份,求该月有多少天?
4.阅读下面程序,输入字母A时,指出其运行结果 #include<stdio.h> void main() { char ch; ch=getchar(); switch(ch) { case 65:printf("%c",'A'); case 66:printf("%c",'B'); default:printf("%s\n","other"); } }
else if(year==5)
rate=0.0075; else if(year==8) rate=0.0084; else rate=0.0; total=money+money*rate*12*year; printf("total=%.2f\n",total);
}
2.输入某学生的成绩,输出该学生的成绩所 对应的等级 A 90~100分 B 80~89分 等级= C 70~79分 D 60~69分 F 银行整存整取存款不同期限的月息利率分别为: 0.63% 期限1年 0.66% 期限2年 月息= 0.69% 期限3年 0.75% 期限5年 0.84% 期限8年 要求输入本金和期限,求到时候能从银行得到的利 息与本金的合计。
#include<stdio.h> void main() { int year; float money,rate,total; printf("输入存款和存期:"); scanf("%f,%d",&money,&ye ar); if (year==1) rate=0.0063; else if(year==2) rate=0.0066; else if(year==3) rate=0.0068;