实验三-选择结构程序设计
实验3 结构化程序设计初步
实验3 结构化程序设计初步1.实验目的(1)掌握C++赋值语句与输入输出语句的使用方法,区别C语言的输入输出语句(2)掌握关系运算符、逻辑运算符与条件运算符的运算规则并能熟练计算由这些运算符构成的表达式(3)深入掌握C++各种流程控制语句(选择语句、循环语句和跳转语句)的要点和使用方法(4)能够灵活地运用C++各种语句进行综合程序设计2.实验内容2.1程序分析题。
分析下面程序的运行结果,上机运行程序,观察其输出结果与你的分析结果是否相同?(1)有如下程序,从键盘输入123456.78↙后,变量c1、c2、a、b的值分别是多少?#include <iostream.h>void main( ){char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;cout<<c1<<" "<<c2<<" "<<a<<" "<<b<<'\n';}(2)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<a<<endl;cout<<setprecision(9)<<a<<endl;cout<<setprecision(6)<<a<<endl;cout<<setiosflags(ios::fixed)<<a<<endl;cout<<setiosflags(ios::fixed)<<setprecision(8)<<a<<endl;}(3)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<setiosflags(ios::scientific)<<a<<endl;cout<<setiosflags(ios::scientific)<<setprecision(4)<<a<<endl;}#include <iomanip.h>void main( ){int b=123456;cout<<b<<endl;cout<<hex<<b<<endl;cout<<setiosflags(ios::uppercase)<<b<<endl;cout<<dec<<setw(10)<<b<<','<<b<<endl;cout<<setfill('*')<<setw(10)<<b<<endl;cout<<setiosflags(ios::showpos)<<b<<endl;}(5)有如下程序,从键盘输入86 24 75↙后,程序的输出结果为多少,为什么?#include <iostream.h>void main( ){int a,b,c;cin>>a>>oct>>b>>hex>>c;cout<<a<<" "<<b<<" "<<c<<endl;}(6)#include <iostream.h>#include <iomanip.h>void main( ){short a=-1;cout<<dec<<a<<" "<<oct<<a<<" "<<hex<<a<<endl;}(7)#include <stdio.h>void main( ){int a=-1;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",a,a,a,a);}(8)以下程序中,为了给整型变量k1,k3赋值为10,给k2,k4赋值为20,如何输入数据?#include <stdio.h>void main( ){int k1,k2,k3,k4;scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);printf("k1=%d,k2=%d,k3=%d,k4=%d\n",k1,k2,k3,k4);}void main( ){int a=3,b=4,c=5,d=6,e,f;e=a>b&&(c=8);cout<<c<<" "<<e<<endl;f=a<b&&(e=c<d);cout<<e<<" "<<f<<endl;f=a<b||(d>0?d++:d--);cout<<d<<" "<<f<<endl;}(10)#include <iostream.h>void main( ){int x,y,z,w;z=(x=-1)?(y=-1,y+=x+5):(x=7,y=9);w=y*'a'/4;cout<<x<<" "<<y<<" "<<z<<" "<<w<<endl;}(11)#include <iostream.h>void main( ){int a=5,b=7,c=3,t;if(a= -1) cout<<"Yes"<<endl;else cout<<"No"<<endl;if(a>b) { t=a;a=b;b=t; }if(a>c) { t=a;a=c;c=t; }if(b>c) { t=b;b=c;c=t; }cout<<a<<" "<<b<<" "<<c<<endl;}解析:a被赋值为-1,输出YESIf语句成立则执行,不成立则不执行分析只有b>c成立,=后面的值赋给左边的,顺序从左到右(12)#include <iostream.h>void main( ){ char c='3';switch(c-'1'){case 0:case 1:cout<<c+1<<endl;case 2:cout<<c+2<<" "<<char(c+2)<<endl;default:cout<<c+3<<" "<<char(c+3)<<endl;}}‘3’是字符型,ASCLL码为051,执行Switch时,根据switch表达式的值找到与之匹配的case子句,就从此子句开始执行下去,不再进行判断(13)#include <iostream.h>void main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1: cout<<"+";break;case 2: cout<<"-";break;}case 0:switch(c==5){case 0: cout<<"*";break;case 1: cout<<"/";break;default: cout<<"#";break;}default: cout<<"$";}cout<<"\n";}a>0是真,值为1,执行case1,继续下面,b<0是假,不执行其中的case1.case2c==5是真,值为1,执行case1,输出/,其后有break,被中断不再执行分句里其下的命令,default: cout<<"$"前面没有break,则输出$(14)#include <iostream.h>void main( ){int a=10,b=0;do{a+=2;b+=a;cout<<"a="<<a<<",b="<<b<<endl;if(b>20) break;}while(a!=14);}(15)#include <iostream.h>void main( ){int i,j;for(i=10;i<20;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2)cout<<i<<" ";}cout<<endl;}(16)#include <iostream.h>void main( ){int i,j,m=0;for(i=0;i<5;i++)for(j=0;j<5;j++)if(j>=i) m++;cout<<m<<endl;}(17)#include <iostream.h>void main( ){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ if(j>i) break;cout<<i<<"*"<<j<<"="<<i*j<<" ";}cout<<endl;}}(18)#include <iostream.h>void main( ){int i=1,sum=0;while(i<=100){if(i%2==0){ i++; continue;}sum+=i;i++;}cout<<sum<<endl;}2.2编程题(1)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。
C语言程序设计实验三答案
实验三 选择结构程序设计一、实验目的与要求1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序5. 实验4学时二、实验内容1.程序改错题改正下面程序中的错误。
输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。
)100(1=x x==)(x f y)100(≠x x输入输出示例1(改正后程序的运行结果)Enter x :100f )=输入输出示例2(改正后程序的运行结果)Enter x :23f )=源程序(有错误的程序)#include<>#include<>void main(void){double x;printf("Enter x: \n");scanf("=%f", x);if (x = 100) {y = 1/sqrt(x)}else (x != 100) {y = x;}printf("f(%.2f) = %.1f\n",x,y);}答:#include<>#include<>void main(void){double x,y;printf("Enter x:\n");scanf("%lf",&x);if (x=100)y = 1/sqrt(x);elsey= x;printf("f(%.2lf)=%.1lf\n",x,y);}2.一般编程题编程题1输入任意三个整数a,b,c ,求3个数中的最大值和最小值。
答:#include <>void main(){int a,b,c;printf("请输入三个整数:");scanf("%d %d %d",&a,&b,&c);if (a>=b)t=a,a=b,b=t;if (a>=c)t=a,a=c,c=t;if (b>=c)t=b,b=c,c=t;printf("最小值为:%d\n",a);printf("最大值为:%d\n",c);}编程题2输入x ,计算并输出下面分段函数f(x)的值(保留2位小数)。
实验三选择结构程序设计
实验三选择结构程序设计程序设计是计算机科学中的核心技能之一,它涉及到使用编程语言来解决特定问题。
在程序设计中,选择结构是基本的控制流程之一,它允许程序根据不同的条件执行不同的代码块。
本实验旨在通过一系列练习,帮助学生理解和掌握选择结构程序设计的基本方法和技巧。
实验目的1. 理解选择结构在程序设计中的作用和重要性。
2. 掌握基本的选择结构语句,如`if`、`switch`等。
3. 学会使用选择结构解决实际问题。
4. 提高逻辑思维能力和编程实践能力。
实验环境- 编程软件:任意一种支持C/C++/Java等语言的IDE。
- 开发环境:Windows/Linux/MacOS均可。
实验内容1. 基础选择结构- 实验一:使用`if`语句实现一个简单的温度转换程序,将摄氏度转换为华氏度。
```c#include <stdio.h>int main() {float celsius, fahrenheit;printf("请输入摄氏度:");scanf("%f", &celsius);fahrenheit = (celsius * 9 / 5) + 32;printf("%.2f摄氏度等于%.2f华氏度\n", celsius, fahrenheit);return 0;}```- 实验二:使用`if...else`语句设计一个程序,根据输入的分数判断成绩等级。
```c#include <stdio.h>int main() {int score;printf("请输入成绩:");scanf("%d", &score);if (score >= 90) {printf("优秀\n");} else if (score >= 60) {printf("及格\n");} else {printf("不及格\n");}return 0;}```2. 多条件选择结构- 实验三:使用`switch`语句实现一个简单的菜单选择程序。
长沙理工大学C语言实验报告(2015)
8
输入输出示例 第一次运行 Enter n:10 10 is greater than 0 第二次运行 Enter n:-5 -5 is less than 0 第三次运行 Enter n:0 0 is equal to 0
改正下列程序中的错误。(源程序附后面)
韩信点兵。韩信有一队兵,他想知道有多少人,便让土兵排队报数。按从 1 至 5 报数,最
末一个土兵报的数为 1;按从 1 至 6 报数,最末一个土兵报的数为 5;按从 1 至 7 报数,最末一
个土兵报的数为 4;最后按从 1 至 11 报数,最末一个土兵报的数为 10;你知道韩信有多少土兵
fx=0; else
fx=1.0/(2*a)*log(fabs((double)(a+x)/(a-x)));
7
printf("a=%d,f(x)=%.2f\n",a,fx); }
(2)输入 a、b、c 三个整数,输出最大数。 #include<stdio.h> main() {
int a,b,c,max; printf("Enter a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a>b)
二、上机内容:
1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black
2.改错题(将正确程序写在指定位置) 改正下列程序中的错误,在屏幕上显示商品价格表(源程序附后面)。
[C语言]顺序、选择结构实验报告
实验报告课程名称程序设计语言C/C++实验项目顺序结构,选择结构编程与调试一、实验目的1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种数据类型的输入输出的方法,能正确使用各种格式转换符。
3.掌握选择结构程序设计的方法和用用关系表达式、逻辑表达式表示选择结构的条件。
二、实验内容1.调试关于各种格式转换符的正确使用方法的程序并验证结果的正确性。
2.编写并调试简单的关于数据类型输入输出的程序。
3.编写并调试运行关于if语句和switch语句使用的程序。
三、实验步骤及结果分析1.从键盘输入两个整数,求两数之和并输出。
#include <stdio.h>int main ( ){int a,b,c;printf("请输入两个整数:\n");scanf("%d,%d",&a,&b);c=a+b;printf("两数之和为:%d\n",c);return 0;}2.从键盘输入园的半径r,求园的周长C、面积S并输出。
#include <stdio.h>int main( ){float pai=3.14159;float r,C,S;printf("Please enter the radius of the circle:");scanf("%f",&r);C=2*pai*r;S=pai*r*r;printf("The circumference of the circle C is %.2f\n",C); printf("The area of the circle is %.2f\n",S);return 0;}3.从键盘输入一个小写字母,要求输出其对应的大写字母。
#include <stdio.h>int main (){char c1,c2;c1=getchar();c2=c1-32;putchar(c2);printf("\n");return 0;}4.输入圆锥的底面圆的半径和高,求圆锥的表面积和体积。
程序设计基础(C语言)实验报告
程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。
2.掌握赋值语句的特点、功能。
3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
4.掌握编写程序和调试程序的方法。
二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。
(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。
实验三-选择结构程序设计(解答)-(2)
实验三选择结构程序设计(解答)1.改错题(1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。
请纠正程序中存在错误,使程序实现其功能,程序以文件名sy3_1.c存盘。
#include <stdio.h>main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')||(ch<='z')) // if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch='A') // if(ch=='A')c1=ch+25;else if(ch='Z') // else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}改正后的程序:#include <stdio.h>main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch=='A')c1=ch+25;else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}(2)下列程序的功能为:输入3个整数后,输出其中最大值。
c语言实验报告
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□√综合□设计□创新实验日期:实验成绩:一.实验名称实验3控制语句二.实验目的1.熟练掌握if 、if…else、if……elseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2.熟练掌握while语句、do……whil e语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
三.实验内容1.选择结构程序设计;2.if语句的使用;3.使用switch语句实现多分支选择结构;4.三种循环语句的应用;5.循环结构的嵌套;6.break和continue语句的使用。
三.实验环境PC微机DOS操作系统或 Windows 操作系统Visual c++程序集成环境四.实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
学会单步调试和断点调试程序及变量跟踪方法。
1.任意输入4个整数,要求按由小到大的顺序输出。
2.编程实现:输入一个整数,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。
要求:(1)将变量定义为整型。
(2)输入整数前,利用puts ()/printf ()给出提示信息。
(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。
(4)该程序利用if 语句实现。
运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。
3.编写程序:根据公式 222221......3121116n ++++=π ,输出 π的值。
要求:(1)变量π为单精度类型,n 为整型;(2)计算当n 的取值分别为20,50 ,100,200时的π值,说明什么问题?(3)修改程序,不给出n 值,而改为求π值,直到最后一项的数值小于10-4 为止。
实验3 选择结构程序设计
实验3 选择结构程序设计一、实验目的1.【重点】掌握算法描述方法(重点掌握传统流程图)、准备测试数据以及实际调试程序的独立编程能力。
2.【重点】掌握C语言的基本控制结构和基本控制语句的使用方法。
3.【重点】掌握用C语言的基本控制语句进行选择结构程序设计的方法。
二、实验内容1.算算账成都出租车2010年9月10日执行新价格,捷达车运价将调整为8元起步,速腾9元起步,两2.身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。
小孩成人后的身高与其父母的身高和自身的性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高=(faHeight + moHeight)×0.54cm女性成人时身高=(faHeight×0.923 + moHeight)/2cm此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编写程序LAB3_2.c:从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。
【要求】程序要有较好的错误处理能力。
例如,当输入父亲或母亲身高小于0时,屏幕应有如下提示:当输入字符为其他字母时,屏幕也应有相应提示。
例如:所有输入都符合要求的输出界面如下图所示:实验报告《C语言程序设计》实验三班级学号姓名一、实验目的1.【重点】掌握算法描述方法(重点掌握传统流程图)、准备测试数据以及实际调试程序的独立编程能力。
实验三-选择结构程序设计
实验三-选择结构程序设计实验目的:通过编写选择结构程序,掌握选择结构的使用方法和程序设计思路。
实验材料:计算机,编程软件(如C++、Python等),实验指导书。
实验一:利用选择结构判断某数的正负实验步骤:步骤一:打开编程软件,创建一个新的程序文件。
步骤二:定义一个整型变量num,用于存储输入的数字。
步骤三:使用输入函数,要求用户输入一个数字,并将其赋值给num。
步骤四:使用选择结构,判断num的正负情况。
如果num大于0,则输出"该数为正数"。
如果num小于0,则输出"该数为负数"。
如果num等于0,则输出"该数为零"。
步骤五:保存程序文件,运行程序。
步骤六:测试程序功能,输入不同的数字进行测试,并查看输出结果是否符合预期。
实验结果:经过多次测试,该程序能够正确判断输入数字的正负情况,并输出相应结果。
实验二:利用选择结构判断某年是否是闰年实验步骤:步骤一:打开编程软件,创建一个新的程序文件。
步骤二:定义一个整型变量year,用于存储输入的年份。
步骤三:使用输入函数,要求用户输入一个年份,并将其赋值给year。
步骤四:使用选择结构,判断year是否是闰年。
如果year能够整除4且不能整除100,或者能够整除400,则输出"该年是闰年"。
否则输出"该年不是闰年"。
步骤五:保存程序文件,运行程序。
步骤六:测试程序功能,输入不同的年份进行测试,并查看输出结果是否符合预期。
实验结果:经过多次测试,该程序能够正确判断输入年份是否是闰年,并输出相应结果。
实验三:利用选择结构计算学生成绩等级实验步骤:步骤一:打开编程软件,创建一个新的程序文件。
步骤二:定义一个浮点型变量score,用于存储输入的学生成绩。
步骤三:使用输入函数,要求用户输入一个学生成绩,并将其赋值给score。
步骤四:使用选择结构,根据score的值计算学生的等级。
C程序设计实验(3)-选择结构程序设计
实验三 选择结构程序设计一:目的要求1.熟悉用关系运行与逻辑运行符的应用;2.掌握if 语句与switch 语句的使用;3.上机前按实验要求预习编写出完整的程序,才允许上机。
二:实验内容与步骤1、从键盘输入一个年份,判断其是不是闰年;2、从键盘输入a 、b 、c 三个数,并求出方程02=++c bx ax 的解,要求考虑有两个不等实根、两个相等实根、两个虚根的情况,要根据a 、b 、c 的不同值,给出不同结果的提示。
1.#include <stdio.h>int main(){int year,leap;printf("enter year:"); scanf("%d",&year);if (year%4==0)if(year%100==0)if(year%400==0) leap=1;else leap=0;else leap=1;else leap=0;if (leap) printf("%d is ",year);else printf("%d is not ",year);printf("a leap year.\n");return 0;}2#include <stdio.h>#include <math.h>int main(){double a,b,c,disc,x1,x2,realpart, imagpart;scanf("%lf,%lf,%lf",&a,&b,&c);printf("The equation ");if(fabs(a)<=1e-6)printf("is not a quadratic\n");else{disc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("has two equal roots:%8.4f\n", -b/(2*a));elseif(disc>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("has distinct real roots:%8.4fand %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\”, realpart,imagpart);}}return 0;}。
C语言实验报告3
实验三:选择结构程序设计一、实验方式:一人一机二、实验目的:1、掌握多分支语句的一般形式和使用方法。
2、掌握单分支if语句的使用方法。
3、掌握双分支if-else语句的使用方法。
4、掌握switch语句的一般形式和使用方法。
5、利用switch语句与break语句相结合解决生活中的问题。
6、学习调试和修改选择结构的程序。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、编写程序,判断箱子是否为正方体。
2、有一数学分段函数: x2 (x<-11)y= 2|x|-1 (-5≤x≤5)3x-11 (x≥10) 编写程序,输入x值,输出y值。
3、编写程序,对于给定的学生百分制成绩,分别输出等级‘A’,‘B’,‘C’,‘D’,‘E’,其中90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
(要求分别使用switch和if 语句实现)4、编写程序,从键盘上输入一个字符,如果该字符是小写字母,则转换成大写字母输出;如果是大写字母,则转换成小写字母输出;如果是其他字符,原样输出。
5、编写程序,从键盘上输入某一年月,判断这年的这个月份有多少天。
四、实验答案:(代码+运行结果截屏或者代码)1、实验代码(1)#include <stdio.h>void main(){ int l,w,h;printf("please enter three numbers: \n");scanf("%d,%d,%d",&l,&w,&h);if(l==w&&w==h)printf("该箱子是正方体。
\n");elseprintf("该箱子是长方体。
\n");}(2)#include "stdio.h"#include "math.h"void main(){float x,y;scanf("%f",&x);if(x<-11) y=pow(x,2);else if(x>=-5&&x<=5) y=2*fabs(x)-1;else if(x>=10) y=3*x-11;printf("y=%5.2f\n",y);}(3)第一种:使用switch实现#include "stdio.h"void main(){float score;char ch;scanf("%f",&score);switch((int) (score/10) ){case 10:case 9:ch='A';break;case 8:ch='B';break;case 7:ch='C';break;case 6:ch='D';break;default:ch='E';break;}printf("%f分等级是%c \n",score,ch);}第二种:使用if多分支实现#include "stdio.h"void main(){float score;char ch;scanf("%f",&score);if(score>100||score<0) printf("Error Data!\n");else if(score<=100&&score>=90) ch='A';else if(score>=80&&score<90) ch='B';else if(score>=70&&score<80) ch='C';else if(score>=60&&score<70) ch='D';else ch='E';printf("%f分等级是%c \n",score,ch);}(4)#include "stdio.h"void main(){char ch;scanf("%c",&ch);if(ch>='a'&&ch<='z') ch=ch-32;else if(ch>='A'&&ch<='Z') ch=ch+32;else ch=ch;printf("转换后的字符为:%c \n",ch);}(5)#include <stdio.h>void main(){int year,month,days;printf("please enter year and month: ");scanf("%d%d",&year,&month);if(month<=0||month>=13) printf(" you make a mistake\n");elseswitch(month){case 2: if(year%4==0&&year%100!=0||year%400==0)days=29;elsedays=28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31;break;case 4:case 6:case 9:case 11: days=30;break;}printf("%d年%d月有%d日\n",year,month,days);}2、实验结果(1)(2)(3)使用switch实现和if多分支实现:(4)(5)3、实验分析。
【C语言基础精品】实验三选择结构程序设计
班级:学号:姓名:成绩:实验三选择结构程序设计【实验目的】1.正确书写关系表达式。
2.掌握if语句的各种格式以及嵌套使用。
3.掌握switch语句的使用。
4.能正确调用c语言提供的数学库函数。
【实验内容】一、改错题1.输入三角形的三条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter。
#include<iostream.h>Void main(){int a,b,c,area, perimeter;printf(”Enter 3sides of triangle:\n”);scanf(“%d%d%d”,&a,&b,&c);if(a+b>c||a+c>b||c+b>a){s=1/2(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);perimeter=a+b+c;printf(“area=%d\tperimeter=%d\n”area,perimteer);elseprintf(”These sides do not correspond to a valid triangle.\n”);}运行结果1:Enter 3 sides of the triangle:5 5 3Area=7.15454 perimeter=13运行结果2:Enter 3 sides of the triangle:1 4 1These sides do not correspond to a valid triangle.二、程序填空题输入a,b,c三个数,求解方程ax2+bx+c=0。
#include<stdio.h>#include<math.h>Void main(){double a,b,c,delta,x1,x2,p,q;scanf(“%lf%lf%lf”,&a,&b,&c);if(a==0){If( ______________)printf(”只有一个根x=\n”,-c/b);else if(____________)printf(”方程的解是全体实数.\n”);else printf(”方程无解.\n”);}else__________________;if(_________________){printf(”有两个不同的实根:\n”);x1=(-b+sqrt(delta))/(2*a);x1=(-b-sqrt(delta))/(2*a);printf(“x1=%f\nx2=%f\n”,x1,x2);}else if(_____________){printf(”有两个相同的实根:”);printf(”x1,x2=%f\n”, -b/(2*a))}else{p=-b/(2*a);q=(-delta)*(2*a)printf(”有两个不同的虚根:”);printf(“x1=%f+%fi\n”,p,q);printf(“,x2=%f-%fi\n”,p,q”);}}}运行结果1:0 0 0方程的解是全体实数.运行结果2:0 0 2方程无解.运行结果3:0 2 3只有一个根x=-1.5运行结果4:1 2 1有两个相同的实根.x1=x2=-1运行结果5:1 5 6有两个不同的实根.运行结果6:1 -2 5有两个不同的虚根:X1=1=2i,x2=1-2i三、编程题(1)输入一个整数,判断它的奇偶性后输出。
高级语言程序设计C06-07(2)(郑玲)
2
21
12
16/5
实验十:指针的应用
2
22
12
21/5
函数(1)
2
2
23
13
23/5
实验十一:多个函数的编程
2
24
13
28/5
函数(2)
2
2
25
14
30/5
实验十二:多个函数的编程
2
26
14
46
结构体类型、结构体变量、结构体数组。
2
2
27
15
6/6
实验十三:结构体的应用
2
28
15
11/6
复习
2
2
上机:20%平时(出勤、作业):10%作业不少于2次笔试:70%
习
实
验
1
1
5/3
程序设计与算法
2
2
2
12/3
C语言的构成、数据类型、运算符和表达式
2
2
3
3
14/3
实验一:熟悉上机环境、简单C程序
2
4
3
19/3
C语言的输入输出函数顺序结构程序设计(算法:交换两数、求三角形面积)
2
2
5
4
21/3
实验二:顺序结构的程序设计
2
6
4
26/3
if结构的三种形式(算法:三个数的比较、学生成绩的分类、闰年)
2006 ~2007学年第2学期
教学日历
课程名称
高级语言程序设计(C)
课内学时
56
课外学时
60
专业班号
电气0601、0602、0603、0604
教师姓名
C语言实验三程序 总结 逻辑运算和选择结构程序设计
方法二:用 switch 语句 分析:switch 语句是用于处理多分支的语句。注意,case 后的表达式必须是一个常量 表达式,所以在用 switch 语句之前,必须把 0~100 之间的成绩分别化成相关的常量。所有 A(除 100 以外) 、B、C、D 类的成绩的共同特点是十位数相同,此外都是 E 类。则由此可把 score 除十取整,化为相应的常数。 请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。
二
实验内容
1 已知三个整数 a,b,c,找出最大值放在 max 中。 #include <stdio.h> main() { 定义整数变量 a,b,c,max; 键盘输入 3 个整数 a,b,c; 在 a,b 中间求出较大数 max(如果 a>=b,则 max=a;否则 max=b); c 与 max 比较,如果 c>max,则 max=c; 输出最大数 max; } 根据上面的算法,编写程序;若输入下列数据,分析程序的执行顺序并写出输出结果。 序号 1 2 3 4 5 6 输入的 3 个整数 a、b、c 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 输出 max max=3 max=3 max=3 max=3 max=3 max=3
程序如下: #include <stdio.h> main() { int score; char grade; printf("请输入学生成绩:"); scanf("%d",&score); if(score>100||score<0) printf("\n 输入成绩错误!\n"); else{ if(score>=90) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D'; else grade='E'; printf("\n 成绩等级是%c\n",grade); } } 运行结果如下:
实验三 选择结构程序设计答案
实验三 选择结构程序设计1. 求分段函数的值。
2226,035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其它 用if 语句实现,分别输出 5.0, 3.0,1.0,2.0,2.5,3.0,5.0x =--时的y 值。
x=input('x=?'); if x<0&x~=-3 y=x^2+x-6;elseif x>=0&x<5&x~=2&x~=3 y=x^2-5*x+6; elsey=x^2-x-1; end y2. 输入一个百分制成绩,要求输出成等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)分别用if 语句和switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
x=input('x=?'); if x>100|x<0disp('Error input'); break;endif x>=90&x<=100disp('A')elseif x>=80&x<=89 disp('B')elseif x>=70&x<=79 disp('C')elseif x>=60&x<=69 disp('D')elsedisp('E')endx=input('x=?');if x>100|x<0disp('Error input');break;endswitch fix(x/10)case {9,10}disp('A')case {8}disp('B')case {7}disp('C')case {6}disp('D')otherwisedisp('E') end3. 硅谷公司员工的工资计算方法如下:(1)工作时间超过120小时者,超过部分加发15%。
C语言程序设计习题与上机实验(实验答案)
第三部分上机实验与指导(答案)实验三选择结构程序设计1、main(){float score;char grade;printf(“Please input a student’ score:”);scanf(“%f”, &score);while(score>100 || score<0){printf(“\nInput error, try again!”);scanf(“%f”, &score);}switch ( (int)(score/10) ){case 10:case 9: grade=’A’;break;case 8: grade=’B’;break;case 7: grade=’C’;break;case 6: grade=’D’;break;case 5:case 4:case 3:case 2:case 1:case 0: grade=’E’;}printf(“score is %5.1f, score grade is %c.\n”, score, grade);}2、#include <stdio.h>main( ){float x, y ;printf(“Please input x:”);scanf(“%f”, &x);if (x < 0)y = 0;else if (x < 10)y = x ;else if ( x < 20 )y = 10;else if ( x < 40)y = 0.5 * x + 20;else{ printf(“Input Error!”);exit (0);}printf (“y=%g”, y);}3、include <stdio.h>void main(void){int choice;/* 显示菜单及输入提示信息*/printf("----------------------------------------------- \n") ;printf(" The Menu of Data Management \n") ;printf(" 1. Input Data \n") ;printf(" 2. Output Data \n") ;printf(" 3. Insert Data \n") ;printf(" 4. Delete Data \n") ;printf(" 0. Quit System \n") ;printf("----------------------------------------------- \n") ;printf(" Please enter your choice:\n") ;/* 接收从键盘输入的数;*/scanf("%d", &choice);/* 根据输入数据显示不同信息*/switch (choice){case 1: printf("Input Data ") ; break;case 2: printf("Output Data ") ; break;case 3: printf("Insert Data ") ; break;case 4: printf("Delete Data ") ; break;case 0: printf("Thanks!"); break;default: printf("Input Error! ");exit(0);}}实验四循环结构程序设计1、#include <stdio.h>main( ){char ch;int i;for (i=0; i<10;i++);{ch = getchar();if (ch >= ‘a’ && ch <= ‘z’){ch = ch - 32;}putchar (ch);}}2、从键盘输入一个长整数,计算其各位数之和并输出。
《Python程序设计》Python选择结构实验报告
《Python程序设计》Python选择结构实验报告一、实验目的:1.熟悉选择结构的定义2.掌握3种类型的选择结构及其语法格式3.编写简单的选择结构程序二、实验内容:1.编写程序,输出实数绝对值2.编写程序,用双分支结构输出实数:3.编写程序,用多分支结构输出空气污染指数:4.编写程序,用多分支结构输出应缴所得税:三、实验过程与结论:(经调试正确的源程序(核心部分)和程序的运行结果)1.编写程序,输出实数绝对值代码实现:R=eval(input("请输入实数:"))if R<0:R=-Rprint("绝对值",R)结果截图:2.编写程序,用双分支结构输出实数:代码实现:R=eval(input("请输入实数的值:"))if R>=0:print("R是非负数")else:print("R是负数")结果截图:3.编写程序,用多分支结构输出空气污染指数:代码实现:PM=eval(input("请输入PM2.5的值:"))if 0<=PM<35:print("空气质量为优!")elif PM<75:print("空气质量为良!")elif PM<115:print("空气质量为轻度污染!")elif PM<150:print("空气质量为中度污染!")elif PM<250:print("空气质量为重度污染!")elif PM<500:print("空气质量为严重污染!")else:print("空气质量为超级污染!")结果截图:4.编写程序,用多分支结构输出应缴所得税:代码实现:x=eval(input("请输入税前收入x:"))if x<=5000:y=0print("应缴所得税:",y)elif x<=8000:y=(x-5000)*0.03elif x<=17000:y=(x-8000)*0.1+3000*0.03elif x<=30000:y=(x-17000)*0.2+9000*0.1+3000*0.03elif x<=40000:y=(x-30000)*0.25+13000*0.2+9000*0.1+3000*0.03 elif x<=60000:y=(x-40000)*0.03+10000*0.25+13000*0.2+9000*0.1+3000*0.03elif x<=85000:y=(x-60000)*0.35+20000*0.3+10000*0.25+13000*0.2+9000*0.1+3000*0.03else:y=(x-85000)*0.45+25000*0.35+20000*0.3+10000*0.25+13000*0.2+9000*0.1+3000*0.03 print("应缴个人所得税:",y)print("税后收入:",x-y)结果截图:四、实验总结:(实验中遇到的问题及解决方法,心得体会等)1.了解并掌握选择结构的定义。
实验三MATLAB的程序设计
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三选择结构程序设计3.1实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用2.条件表达式的正确应用3. 掌握if语句,if-else语句,if语句的嵌套的编程方法4. 掌握switch的编程方法及执行特点5.掌握相关的算法(大小写字母的转换,判断数的奇偶,整数的整除,分段函数的求解,成绩的转换等)6. 培养解决实际问题的能力3.2实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。
计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。
在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。
因此可选择相应的语句进行程序设计。
C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。
选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。
条件可以用表达式来描述,如关系表达式、逻辑表达式等。
【3.1】录入下列程序,输入给定的测试数据,观察其程序执行结果。
程序文件名为:ex3_1.c。
输入测试数据:23 56程序运行结果:max=56#include<stdio.h>void main(){int a,b,max;scanf("%d%d",&a,&b); /*从键盘输入两整数*/max=a;if(max<b)max=b;printf("max=%d\n",max); /*输出最大数*/}该程序的执行过程,从键盘输入两个整数赋予a,b,把a的值先赋予变量max,采用if 语句判别max和b的大小,若max小于b,则把b的值赋予max,然后执行printf语句输出max的值;若max大于b,不执行if后的语句,而执行printf语句输出max的值;max中的值总是大数。
因此该程序的功能是输入两个整数,输出其中的大数。
单分支结构if语句的一般形式:if(表达式) 语句;其语义,如果表达式的值为非零值(为真),则执行其后的语句,否则不执行该语句。
小结:1.表达式也称为条件表达式,可以包括常量、变量和表达式的任意表达式。
常用的是单一变量,关系表达式和逻辑表达式。
2.若语句由两条以上的语句组成时,必须用花括号{}括起来,组合成一条复合语句。
【3.2】编程实现,从键盘输入一个字符型数据,若输入小写字符,则将其转换成大写字符,输出相应的整数;若输入其它字符,则显示出错信息。
程序文件名为:ex3_2.c。
分析:根据题意,本程序要解决三个问题,1)输入字符数据;2)判断输入的字符是否是小写字符;3)输出(输出大写字符相应的整数或输出错误信息)。
因此根据判断条件输出两种结果的其中一个。
#include <stdio.h>void main(){char c;scanf("%c",&c);if('a'<=c&&c<='z'){c=c-32;printf("%d\n",c);}elseprintf("data error\n");}第一次运行程序,输入测试数据:a程序运行结果:65第二次运行程序,输入测试数据:A程序运行结果:data error双分支结构if语句的一般形式:if(表达式)语句1;else语句2;其语义,如果表达式的值为非零值(为真),则执行if后的语句1,否则执行else后的语句2。
同理,使用该语句时,表达式(条件表达式)是可以包括常量、变量和表达式的任意表达式。
若语句1或语句2是由两条以上的语句组成,则必须用必须用花括号{}括起来,组合成一条复合语句。
小结:1.任意字符在内存中都以ASCII码存储,一个字符数据既可以以字符形式输出(输出格式控制符%c),也可以以整数形式输出(输出格式控制符%d)。
2.字符数据可以进行算术运算,即相当于对其字符数据的ASCII码进行运算。
根据这一特点,可实现大小写字符的相互转换。
小写字母转换为大写字母:c=c-32 或者c=c-' a'+'A'大写字母转换为小写字母:c=c+32 或者c=c+' a'-'A'3. 字符数据可以进行比较运算,因此判断一个字符属于哪个范围可采用下列方式实现。
属于小写字母的表达式:'a'<=c&&c<='z' 或者 97<=c&&c<=122属于大写字母的表达式:'A'<=c&&c<='Z' 或者 65<=c&&c<=90属于数值字符的表达式:'0'<=c&&c<='9' 或者48<=c&&c<=57【3.3】从键盘输入两个整数m,n (假设输入的数m>0,n>0),判断m 能否被n 整除,若能输出m 和n ,否则输出m 与n 的余数。
程序文件名:ex3_3.c 。
分析:分析问题,理出算法,是程序设计的核心,如何实现m 能否被n 整除是解决该问题的关键。
m 能被n 整除的表达式:m%n==0。
实现程序编写的要点是学会对题意的“翻译”。
即,从键盘输入数一定采用scanf 格式输入函数。
判断m 能否被n 整除,其判断结果只有两个,能整除输出原数,否则输出两数的余数,因此可采用选择结构的if-else 语句。
#include <stdio.h>void main(){int m,n;printf("Input 2 number m & n:");scanf("%d%d",&m,&n);if(m%n==0) /*判断m 能否被n 整除*/printf("m=%d,n=%d",m,n);elseprintf("%d",m%n);}第一次运行程序,输入测试数据:21 7程序运行结果:m=21,n=7第二次运行程序,输入测试数据:23 6程序运行结果:5小结:1.由此题可扩展为,判断一个数是偶数还是奇数。
若m 是偶数则只需考虑m 能否被2整除,若能整除,则m 是偶数,不能整除则m 是奇数。
2.注意一个等号“=”与双等号“==”的区别。
一个等号称为赋值号,若a=5,其含义是将5赋给a 。
双等号为算术运算符“等号”,若a==5,其含义是变量a 的值与整数5是否相等。
3.求余运算符“%”,求余运算只能求任意两整数的余数。
【3.4】输入x 的值求分段函数y 的值。
程序文件名:ex3_4.c 。
10 113101 121 ⎪⎩⎪⎨⎧>-≤≤-<=x x x x x x y分析:本程序是求分段函数的值,根据x 的取值不同,出现了三个分支的情形。
因此采用多分支的控制结构,嵌套的if 语句实现。
编程思路,当有多分支结构时,可先转换为二分支结构,如选择表达式条件为(x<1),条件为真计算y=x,条件为假继续采用if-else语句判断,在else分支中继续采用if-else二分支结构。
#include <stdio.h>void main(){float x,y;scanf("%f",&x);if(x<1)y=x;else{if(x<10) /*该if-else语句嵌套在上一个if-else的else中*/ y=2*x-1;elsey=3*x-11;}printf("x=%.2f,y=%.2f",x,y);}第一次运行程序,输入测试数据:-3程序运行结果:x=-3.00,y=-3.00第二次运行程序,输入测试数据:7程序运行结果:x=7.00,y=13.00第三次运行程序,输入测试数据:13程序运行结果:x=13.00,y=28.00if-else嵌套实现多分支结构,嵌套的形式多种多样,无论如何嵌套else子句与if的匹配原则总是从最内层开始,即else与在它上面离它最近的,且尚未曾配对的if配对,else无二义性。
常见的几种嵌套形式。
形式1:if(表达式1)if (表达式2)语句1;else语句2;形式2:if(表达式1)if(表达式2)语句1;else语句2;else语句3;形式3:if(表达式1)语句1;elseif (表达式2)语句2;else语句3;形式4:if(表达式1)if (表达式2)语句1;else语句2;elseif (表达式3)语句3;else语句4;if 语句的嵌套不影响if 语句的独立性。
if 语句的嵌套使用起来比较灵活,嵌套层次对应时内层的语句要被完整地包含在外层的语句之内。
小结:1. 编程的方法并非唯一,对于多分支结构也可以用多条简单的if 语句实现。
如下修改后的程序。
#include <stdio.h>void main(){float x,y;scanf("%f",&x);if(x<1)y=x;if(x>=1&&x<=10)y=2*x-1;if(x>10)y=3*x-11;printf("x=%.2f,y=%.2f",x,y);}2. 正确使用逻辑运算符,逻辑与(&&)和逻辑或(||)。
如,101≤≤x 的合法的C 语言表达式,1<=x && x<=10 。
【3.5】 编写实现:利用switch 语句模拟两个整数的加、减、乘、除运算。
如,输入5+2,输出5+2=7 ;如,输入5/2,输出5/2=2.50。
程序文件名:ex3_5.c 。
分析:本程序的关键是由输入的运算符来决定运算的结果。
因此引入一个字符变量存放算术运算符,由该变量的字符值来选择做何种运算。
#include<stdio.h>void main(){ int a,b;char ch;scanf("%d%c%d",&a,&ch,&b);switch(ch){ case '+':printf("%d+%d=%d\n",a,b,a+b);break;case '-':printf("%d-%d=%d\n",a,b,a-b);break;case '*':printf("%d*%d=%d\n",a,b,a*b);break;case '/':printf("%d/%d=%.2f\n",a,b,(float)a/b);break;}}第一次运行程序,输入测试数据:5+2程序运行结果:5+2=7第二次运行程序,输入测试数据:5-2程序运行结果:5-2=3第三次运行程序,输入测试数据:5*2程序运行结果:5*2=10第四次运行程序,输入测试数据:5/2程序运行结果:5/2=2.50该源程序中switch语句的表达式的值为字符,当字符变量ch的值为“+”时,则选取case 后常量为'+'后的语句执行。