实验二--选择结构程序设计-实验报告(共14页)_第1页
实验二--选择结构程序设计-实验报告(共14页)_第2页
实验二--选择结构程序设计-实验报告(共14页)_第3页
实验二--选择结构程序设计-实验报告(共14页)_第4页
实验二--选择结构程序设计-实验报告(共14页)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二 选择结构程序设计1、 实验目的和要求1. 掌握关系表达式和逻辑表达式的使用。2. 熟悉选择结构程序设计。3. 熟练使用if语句进行程序设计。4. 使用switch语句实现多分支选择结构。二、实验设备PC机 Visual C+6.03、 实验内容(1) 实验准备1. 从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。2. If-else语句: 一般形式为: if(表达式) 语句1; else 语句2; 该语句用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。首先求解表达式,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,

2、则执行语句2.2. switch语句switch语句可以处理多分支选择问题,根据其中break语句的使用方法,一般分为三种情况。(2) 实验项目1. 计算a+|b| #include<stdio.h>int main(void)int a,b,z;printf("Please enter a,b:n");scanf("%d,%d",&a,&b);if (b>=0)b=b;elseb=-b; z=a+b;printf("%d+%d=%dn",a,b,z);return 0 ;2 判断一个整数是否可以被3

3、和5整除#include<stdio.h>int main(void)int a ;printf("Please enter a:n");scanf("%d",&a);if (a%3=0)printf("a可以被3整除:n");elseif (a%5=0)printf("a可以被5整除:n");else printf("a不可以被5整除,也不可以被3整除:n");3. 从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成

4、相应的整数显示出来;若输入其它字符,则显示出错信息。#include<stdio.h>int main(void) int a ;printf("please enter a char:n"); scanf("%d",&a); if(0<=a)&&(a<=9) printf("This char is %d:n",a); else printf("这个字符不是个整数:n"); return 0 ;4. 编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z

5、是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。#include<stdio.h>int main(void)int x,y,z;printf ("请输入x,y,z:n");scanf ("%d,%d,%d",&x,&y,&z);if (x+y=z)printf ("x+y=zn");else printf ("x+y!=zn");return 0;5. 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。#include<stdio.h&g

6、t;int main(void) int a,b,c,x,y; printf ("请输入三个数字:n"); scanf ("%d,%d,%d",&a,&b,&c); x=0;if (a>b)x=a;if (x>c)x=x;elsex=c;elsex=b;if(x>c)x=x;elsex=c;y=0;if (a<b)y=a;if (y<c)y=y;elsey=c;elsey=a;if(y>c)y=c;elsey=y;printf ("最大数是%d,最小值是%dn",x,y);r

7、eturn 0; 6.如下两个线性方程组的两个未知数为x1和x2:ax1+bx2=mcx1+dx2=n该方程的唯一解为(ad-cb不等于零时): 请编写一个程序,读取a、b、c、d的值,计算x1和x2的值。如果ad-cd等于零,应给出适当的提示信息。#include<stdio.h>int main(void)int a,b,c,d,m,n,x1,x2;printf("请输入方程组a,b,c,d,m,nn");scanf("%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&m,&n

8、);if(a*d-c*b=0)printf("此方程组无解n");elsex1=(m*d-b*n)/(a*d-c*b); x2=(n*a-m*c)/(a*d-b*c);printf("此方程组的解为%d和%dn",x1,x2);return 0;7. 某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。#incl

9、ude<stdio.h>int main(void)int c,c1,c2,m;printf("请输入生产数量m:n");scanf("%d",&m);if (m<10000)c1=20000;c2=10;elsec1=40000;c2=5;c=c1+m*c2;printf("生产成本为%dn",c);return 0;8.编写一个程序,计算下列函数:y=xx<12x-11x<103x-11X10#include<stdio.h>int main(void)int x,y;printf

10、 ("Plesse input a x :n");scanf ("%d",&x);if (x<1)y=x;elseif(x>=10)y=3*x-11;elsey=2*x-1;printf ("y=%dn",y);return 0;9. 编写一个程序,其功能为:从键盘输入一个字符,判别该字符的类别,并输出向相应信息。#include<stdio.h>int main(void)char i;scanf("%c",&i);if (i<32)printf ("此字符

11、为控制字符n");elseif(i>='0')&&(i<='9')printf ("此字符为数字字符n");elseif(i>='A')&&(i<='Z')printf ("此字符为大写字母n");elseif(i>='a')&&(i<='z')printf ("此字符为小写字母n");elseprintf("此字符为其他字符n"

12、;);return 0;10.编写一个程序,其功能为:从键盘输入一元二次方程ax2+bx+c=0的各项系数a、b、c的值,判断方程实数解的不同情况,分别求解方程,并输出(结果保留两位小数,如无实根给出相应的信息)。应用如下规则:(1)若a、b的值为零,则没有解;(2)若a为零,只有一个实数解;(3)若b2-4ac为负数,则没有实数解;若b2-4ac为正数,有两个实数解;若b2-4ac为零,有两个相等的实数解。#include <stdio.h>#include <math.h>int main(void)float a,b,c;double x1,x2;printf (

13、"Please input a,b,cn");scanf ("%f%f%f",&a,&b,&c);if(a=0)&&(b=0)printf ("此方程没有解n");elseif(a=0)printf("此方程有一个实根n");elseif(b*b-4*a*c)<0)printf ("此方程无实根n");elseif(b*b-4*a*c)=0)x1=(-b)/(2*a);printf("此方程有两个相等实根: x1=x2=%lfn"

14、,x1);elsex1=(-b+(sqrt(b*b-4*a*c)/(2*a); x2=(-b-(sqrt(b*b-4*a*c)/(2*a);printf("此方程有两个实根: x1=%lf x2=%lfn",x1,x2);return 0;11.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。#include<stdio.h>int main(void)int a,b,c;printf("piease input a,b,c:n");scanf(&q

15、uot;%d,%d,%d",&a,&b,&c);if(a+b>c)&&(a+c>b)&&(b+c>a)if(a=b&&b=c&&a=c)printf("能构成等边三角形n");elseif(a=b|b=c|a=c)printf("能构成等腰三角形n");elseif(a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)printf("能构成直角三角形n");elseprintf("能构成一般

16、三角形n");elseprintf("不能构成三角形n");return 0;12.某个电力公司对其用户的收费规定如下:用电数量 收费标准0200 x*0.5元201400 100+(x-200)*0.65元401600 230+(x-400)*0.8元601以上 390+(x-600)*1.0元编写程序,对于一个输入的用电数量,计算用户的缴费额。#include<stdio.h>int main(void)double x,y;printf("piease input x:n");scanf("%lf",&am

17、p;x);if(x<0)printf("输入的数据有误!n");elseif(x>=0&&x<=200)y=x*0.5;elseif(x>=201&&x<=400)y=100+(x-200)*0.65;elseif(x>=401&&x<=600)y=230+(x-400)*0.8;elsey=390+(x-600)*1.0;printf("y=%lfn",y);return 0;13某个服装展示厅对所卖商品打折规定如下:-购买总额 折扣 - 机加工产品 手工产品01

18、00 - 5%101200 5% 7.5%201300 7.5% 10.0%大于300 10.0% 15.0%-编写程序输入购买总额,计算并输顾客实际应付的货款。 #include "stdio.h"int main(void) double x,y;int lb;printf("请输入顾客购买总额x:n");scanf("%lf",&x);printf("请输入顾客购买类别lb:n");scanf("%d",&lb);if(x<0) printf("输入购买总额

19、数据有误!"); else if(x>=0&&x<=100) if(lb=0)y=x;else if(lb=1)y=x*0.05;else printf("输入购买类别数据有误!"); else if(x>=101&&x<=200) if(lb=0) y=x*0.5; else if(lb=1) y=x*0.075; else printf("输入购买类别数据有误!"); else if(x>=201&&x<=300) if(lb=0) y=x*0.075; e

20、lse if(lb=1) y=x*0.1; else printf("输入购买类别数据有误!"); else if(lb=0) y=x*0.1; else if(lb=1) y=x*0.15; else printf("输入购买类别数据有误!"); printf("x=%lf y=%lfn",x,y);return 0;14编程在屏幕上显示一张如下所示的时间表: *Time*1morning2afternoon3nightPlease enter your choice:根据用户输入的时间序号显示相应的问候信息,选择1时显示“Good

21、 morning”, 选择2时显示“Good afternoon”, 选择3时显示“Good night”,对于其他选择显示“Selection error!”。#include<stdio.h>int main(void) int xh; printf("nn*Time*n"); printf("1 morning n"); printf("2 afternoon n"); printf("3 night n"); printf("nn请输入您的选择(1、2、3):");scanf

22、("%d",&xh);switch(xh) case 1: printf("nGood morningn");break; case 2: printf("nGood atfernoonn");break; case 3: printf("nGood nightn");break; default: printf("nSelection error!n");break; return 0; 15编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2

23、计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)#include<stdio.h>int main(void) float x,y,z; char op; printf(“请输入表达式:”); scanf(“%f,%c,%f”,&x,&op,&y); if (op=+) z=x+y; if (op=-) z=x-y; if(op=*) z=x*y; if (op=/) if (y!=0) z=x/y; else printf(“除数为0”);printf(“%f%c%f=%fn”,x,op,y,z);#include <stdio.

24、h>void main() float x,y,z; char op; printf(“请输入表达式:”); scanf(“%f,%c,%f”,&x,&op,&y); switch(op) case +: z=x+y; case -: z=x-y; case *: z=x*y; case /: if (y!=0) z=x/y; else printf(“除数为0”); printf(“%f%c%f=%fn”,x,op,y,z);return 0;16输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E方法一:(用if语句的嵌套)#include<stdio.h>int main(void)float score;printf("请输入成绩:");scanf("%f",&score);if(score>=0&&score<=100) if(score>=90)printf("%f A",score); else if(score>=80) printf(&q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论