当前位置:文档之家› 实验(4)-选择结构-参考答案

实验(4)-选择结构-参考答案

实验(4)-选择结构-参考答案
实验(4)-选择结构-参考答案

C语言程序设计实验教学(4)

【实验目的】通过程序设计实现,掌握if结构和switch结构的正确应用。【实验要求】使用if结构和switch结构实现多种条件的选择结构程序,熟练二者的应用范围和注意事项。练习条件表达式的书写。

【实验课时】4.0

【实验内容】

1、运行下列程序,分析结果。

main( )

{ int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);

}

2、编写程序,实现从键盘上输入一个整数,判断其奇偶性。

main()

{int a;

scanf("%d",&a);

if(a%2==0)

printf("%d is oushu.\n",a);

else

printf("%d is jishu.\n",a);}

3、编写程序,实现从键盘上输入3个整数a,b,c,并输出其中最大的数。

main()

{int a,b,c,max;

scanf("%d,%d,%d",&a,&b,&c);

max=a>b?a:b;

max=max>c?max:c;

printf("max is %d\n",max);}

main()

{int a,b,c,max;

scanf("%d,%d,%d",&a,&b,&c);

if(a>b) max=a;

else max=b;

if(c>max) max=c;

printf("max is %d\n",max);}

main()

{int a,b,c,max;

scanf("%d,%d,%d",&a,&b,&c);

if(a>b)

if(a>c)

max=a;

else

max=c;

else

if(b>c)

max=b;

else

max=c;

printf("max is %d\n",max);}

4、编写程序,实现从键盘上输入4个整数,并按从大到小顺序输出。

main()

{int a,b,c,d,t;

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if(a>b) {t=a;a=b;b=t;}

if(a>c) {t=a;a=c;c=t;}

if(a>d) {t=a;a=d;d=t;}

if(b>c) {t=b;b=c;c=t;}

if(b>d) {t=b;b=d;d=t;}

if(c>d) {t=c;c=d;d=t;}

printf("sorted by small to large: %d,%d,%d,%d\n",a,b,c,d);}

5、 完成下列分段函数的计算:分别使用if -else if 和if-if 的嵌套结构来实现。 方法一(用if —— else if 结构表达)

#include

#include

main()

{int x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%d",&x);

if (x<0)

y=1;

else

if (x>10)

y=x*x+x+1;

else

y=x+1;

printf("x=%d,y=%d\n",x,y);}

方法二(用if —— if 结构表达)

x y =0=

1

x >10

2+x +1

#include

main()

{int x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%d",&x);

if(x<=10)

if(x<0)

y=1;

else

y=x+1;

else

y=x*x+x+1;

printf("x=%d,y=%d\n",x,y);}

6、编写一个程序,判断从键盘上输入的一个年份是否为闰年?方法一:

#include

#include

main()

{int year;

clrscr();

printf("Please input a year:\n");

scanf("%d",&year);

if(year%4==0 && year%100!=0 || year%400==0) printf("%d is a leap year\n",year);

else

printf("%d is not a leap year\n",year);}

方法二:(用if if 结构表达)

#include

main()

{int year,leap;

clrscr();

printf("Please input a year:\n");

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==1)

printf("%d is a leap year\n",year); else

printf("%d is not a leap year\n",year);}

方法三:(用if else if 结构表达)

#include

#include

main()

{int year,leap;

clrscr();

printf("Please input a year:\n");

scanf("%d",&year);

if(year%400==0)

leap=1;

else

if(year%100==0)

leap=0;

else

if(year%4==0)

leap=1;

else

leap=0;

if(leap==1)

printf("%d is a leap year\n",year);

else

printf("%d is not a leap year\n",year);}

7、输入一个三位自然数num,判断其是否为水仙花数?

注:一个3位自然数,各个数位的数字立方和等于该数本身,即称为水仙花数。如: 153=13+53+33。

#include

#include

main()

{int m,a,b,c;

clrscr();

printf("Please input a num(100<=num<=999):\n");

scanf("%d",&m);

a=m/100; b=m/10%10; c=m%10;

if(a*a*a+b*b*b+c*c*c==m)

printf("%d is sxh shu.\n",m);

else

printf("%d is not sxh shu.\n",m);}

8、编写一个程序,实现对给出的一百分制成绩,输出相应的成绩等级。即:90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。

方法一:(用if 结构)

#include

#include

main()

{float score; char grade;

clrscr();

printf("Please input a score(0<=score<=100):\n");

scanf("%f",&score);

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("score is %5.1f, grade is %c.\n",score,grade);}

方法二:(用switch 结构)

#include

#include

main()

{float score; char grade;

clrscr();

printf("Please input a score(0<=score<=100):\n");

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, grade is %c.\n",score,grade);}

补充作业:

9、完成下列分段函数的计算:分别使用if-else if-else结构和if-if嵌套

结构来实现。

#include

#include

main()

{float x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%f",&x);

if(x<=1600)

y=0;

else

if(x<=2100)

y=(x-1600)*0.05;

else

if(x<=3100)

y=(x-1600)*0.1-25;

else

y=(x-1600)*0.15-125;

printf("x=%8.2f, y=%8.2f\n",x,y);}

10、完成下列分段函数的计算:分别使用if-else if-else结构和if-if嵌

套结构来实现。

#include

#include

#include

main()

{float x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%f",&x);

if(x<=0)

y=(x+2)*exp(x);

else

y=(x+2)*log(2*x);

printf("x=%8.2f, f(x)=%8.2f\n",x,y);}

11、完成下列分段函数的计算:分别使用if-else if-else结构和if-if嵌套结构来实现。

#include

#include

#include

main()

{float x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%f",&x);

if(x<=0)

y=0;

else

y=(fabs(x)+3.2)/(sin(x)+2);

printf("x=%8.2f, f(x)=%8.2f\n",x,y);}

12、完成下列函数的计算:

#include

#include

#include

{float x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%f",&x);

y=(exp(x)+fabs(x-6))/(x+1.3);

printf("x=%8.2f, fun1(x)=%8.2f\n",x,y);}

13、完成下列函数的计算:

#include

#include

#include

main()

{float x,y;

clrscr();

printf("Please input value of x:\n");

scanf("%f",&x);

y=(1+sin(x)+exp(x))/(x+1);

printf("x=%8.2f, fun1(x)=%8.2f\n",x,y);}

14、某服装店经营套服,也单件出售。若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。

#include

#include

{int c,t,d1,d2,m;

clrscr();

printf("Please input c and t:\n");

scanf("%d,%d",&c,&t);

if(c>=t)

{d1=t;d2=c-t;

if(d1>=50)

m=d1*80+d2*60;

else

m=d1*90+d2*60;}

else

{d1=c;d2=t-c;

if(d1>=50)

m=d1*80+d2*45;

else

m=d1*90+d2*45;}

printf("c=%d, t=%d, m=%d\n",c,t,m);}

15、某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的邮资:

#include

#include

main()

{float c,k,g,w,m;

clrscr();

printf("Please input c,k,g and w:\n");

scanf("%f,%f,%f,%f",&c,&k,&g,&w);

if(c>100||k>100||g>100||w>30)

printf("can not to be mailed");

else

{if(w<10)

m=0.2+w*0.8;

else

if(w<=20)

m=0.2+w*0.75;

else

m=0.2+w*0.7;

printf("c=%5.1f,k=%5.1f,g=%5.1f,w=%5.1f,m=%6.2f\n",c,k,g,w,m);} }

16、请编写程序pro17.c。从键盘输入当月利润I,求应发奖金总数。根据利润进行奖金提成:

利润I低于或等于10万元的,奖金可提10%;

利润高于10万元,低于20万元(100000<I≤200000)时,低于10万元部分按10%提成,高于100000元的部分,提成7.5%;

200000<I≤400000时,低于20万元部分仍按上述办法提成(下同),高于20万元的部分,按5%提成;

400000<I≤600000时,高于40万元的部分,按3%提成;

600000<I≤1000000时,高于60万元部分,按1.5%提成;

I>1000000时,超过100万元的部分,按1%提成;

方法一:用if语句编程序

#include

main()

{ long i;

float bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1; /*利润为10万元时的奖金*/

bon2=bon1+100000*0.075; /*利润为20万元时的奖金*/

bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/

bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/

bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/

printf("Please input i:\n");

scanf("%ld",&i);

if(i<=100000)

bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/ else if(i<=200000)

bonus=bon1+(i-100000)*0.075; /*利润在10万至20万元时的奖金*/ else if(i<=400000)

bonus=bon2+(i-200000)*0.05; /*利润在20万至40万元时的奖金*/ else if(i<=600000)

bonus=bon4+(i-400000)*0.03; /*利润在40万至60万元时的奖金*/ else if(i<=1000000)

bonus=bon6+(i-600000)*0.015; /*利润在60万至100万元时的奖金*/ else

bonus=bon10+(i-1000000)*0.01; /*利润在100万元以上时的奖金*/ printf("bonus is:%10.2f\n",bonus);

}

方法二:用switch语句编程序

#include

main()

{ long i;

float bonus, bon1, bon2, bon4, bon6, bon10;

int c;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("Please input i:\n");

scanf("%ld",&i);

c=i/100000;

if(c>10) c=10;

switch(c)

{ case 0: bonus=i*0.1;break;

case 1: bonus=bon1+(i-100000)*0.075;break;

case 2 :

case 3: bonus=bon2+(i-200000)*0.05; break;

case 4:

case 5: bonus=bon4+(i-400000)*0.03;break;

case 6:

case 7:

case 8:

case 9: bonus=bon6+(i-600000)*0.015;break;

case 10: bonus=bon10+(i-1000000)*0.01;

}

printf("bonus is:%10.2f",bonus);

}

数据结构实验答案1

重庆文理学院软件工程学院实验报告册 专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____201258014054 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

实验序号 1 实验名称实验一线性表基本操作实验地点S-C1303 实验日期2013年04月22日 实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。 2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。 3.编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成 (an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄) 实验过程及步骤1. #include #include #include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct

{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n"); for(i=0; i<=l->last; i++) { scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n");

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

实验二选择结构程序设计 实验报告

C语言程序设计与问题求解实验报告 实验二选择结构程序设计 一、实验目的 1.正确使用关系表达式和逻辑表达式表示条件; 2.掌握选择语句if-else和switch语句的使用方法; 3.掌握分支结构程序设计。 二、实验内容 1. 选择结构编程示例 year是闰年,即year能被4整除但不能被100整除,或year能被400整除。从键盘读入一个年份,然后输出其是否为闰年。具体代码如下: #include int main() { int year; printf("请输入年份:"); scanf("%d",&year); if ((year%4==0 && year%100!=0)||(year%400==0)) { printf("闰年!"); } else { printf("不是闰年!"); } return 0; } 运行结果:

2.分析并修改下面程序错误,使之能够正常运行。 错误代码一:下面的这个程序是当a和b的值相等的情况下输出“a和b相等”,而a与b的值不相等的话无输出。 #include void main() { int a=5,b=6; /* 或int a=5, b=5 ;*/ if (a==b); { printf("a和b相等\n"); } } 错误点: if (a==b)后有了分号“;”表示这条语句已执行完毕,所以无论a、b是否相等都会输出"a和b相等"。 修改后: #include void main() { int a=5,b=6; /* 或int a=5, b=5 ;*/ if (a==b) printf("a和b相等\n"); } 错误的代码二:下面的这个程序是当a和b的值相等的情况下a与b的值同时增加1,而a与b的值不相等的话,二者的值保持不变。 #include void main() { int a=5; /* 或int a=6*/ int b=6; if (a==b) a++; b++;

实验4-2-选择结构

实验4-2 选择结构程序设计(二) 1 【实验目的】 (1)学会正确使用运算符和逻辑表达式 (2)熟练掌握if语句的三种结构 【实验要求】 (1)掌握运算符的优先级和结合方向,正确使用运算符和逻辑表达式。 (2)熟练掌握if语句的多分支结构。 (3)熟练掌握if语句关键字else的正确搭配使用。 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、程序改错 题目描述:阅读下面程序段,编译调试程序,并改正错误语句。#include < stdio.h > int main() { double x,y; scanf(“%lf”,&x);

if(x>=5) y=x^2; else if(0=

数据结构实验报告-答案

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测 试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"" #include"" #include"" #include"" typedef struct node . . 示意图:

head head head 心得体会: 本次实验使我们对链表的实质了解更加明确了,对链表的一些基本操作也更加熟练了。另外实验指导书上给出的代码是有一些问题的,这使我们认识到实验过程中不能想当然的直接编译执行,应当在阅读并完全理解代码的基础上再执行,这才是实验的意义所在。

实验2 实验题目:二叉树操作设计和实现 实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历 的操作,求所有叶子及结点总数的操作。 实验主要步骤: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针), 如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求 所有叶子及结点总数。 实验代码 #include"" #include"" #include"" #define Max 20 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; R[i] 留在原位

MATLAB实验三-选择结构程序设计方案

MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:2

实验三 选择结构程序设计 1. 求分段函数的值。 y=?????--≠≠<≤+--≠<-+其他 及且且,13250,653x 0,6222x x x x x x x x x x 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的值。 程序设计: x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0] if x<0&x~=-3 y=x.*x+x-6; elseif x>=0&x<5&x~=2&x~=3 y=x.*x-5*x+6; else y=x.*x-x-1 end y 运行结果: x = -5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = 29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 y = 29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 2.输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分一下为E 。 要求: (1)分别用if 语句和switch 语句实现。 用switch 语句实现 程序设计: score=input('请输入百分制成绩:'); switch fix(score/10) case {9,10} grade='A'; case {8} grade='B'; case {7} grade='C'; case {6} grade='D'; otherwise grade='E'; end grade

Python实验3选择结构程序设计

实验3 选择结构程序设计(续) 【实验目的】 1.掌握分支条件语句的使用。 2.掌握分支嵌套语句的使用。 【实验内容】 1.通过Input()函数任意输入三条边长,经过简单的计算后,判断三条边长能否构成三角 形,并确定是类型的三角形,如(等边,等腰,一般三角形)。 a=input("Please input the length of a:") b=input("Please input the length of b:") c=input("Please input the length of c:") if a+b>c and a+c>b and b+c>a: if a==b==c: print "This is an equilateral triangle." if a==b or a==c or b==c: print "This is an isosceles triangle." if a!=b!=c: print "This is a scalene triangle." else: print "These lengths can not form a triangle." 2.密码登录程序。要求:建立一个登录窗口,要求输入帐号和密码。设定用户名为”zhangshan”, 密码为“Python123”;若用户名正确,密码正确,则显示“Zhangshan先生,欢迎你!”;如果用户名错误,则显示“用户名错误,请重新输入!”;若密码不正确,显示“对不起,密码错误,无法登录!”。 x=raw_input("User:") y=raw_input("Password:") if x=="zhangshan" and y=="Python123": print "Welcome,Mr.Zhangshan!" if x=="zhangshan" and y!="Python123": print "Wrong password.No right to log-in." while x!="zhangshan" and y=="Python123": x=raw_input("Wrong user's name.Please enter again:") if x=="zhangshan": print "Zhangshan先生,欢迎你!"

实验三 顺序及选择结构程序设计

实验三顺序及选择结构程序设计 一、实验目的 1、掌握顺序结构程序的设计方法。 2、掌握赋值语句、注释语句、InputBox()函数、MsgBox语句与函数的使用方法。 3、掌握Print方法、Tab函数、字体类型、打印机输出的使用。 4、掌握简单块If语句、多分支块If语句、行If语句、IIf()函数的使用。 5、掌握情况语句(Select Case)的使用。 二、实验内容 要求:实验一、实验二中选做一个,实验三、实验四中选做一个 1、实验一。 2、实验二。 3、实验三。 4、实验四。 三、实验指导 1、实验一。 用InputBox()函数输入弧度值,将弧度值转换为角度值(度、分、秒)的形式,然后在窗体上打印出来。 【提示】利用InputBox()函数输入弧度值后,首先把弧度值转换为原始角度值,然后取整,结果就为角度值中的度值,然后把原始角度值减去度值,把结果转化为分值,采用类似思维即可求出结果。 【参考代码】 Private Sub Cmd1_Click() Dim s As Single, a As Integer, b As Integer, c As Integer Const pi As Single = 3.14159 s = Val(InputBox("请输入弧度值:")) s = s * 180 / pi a = Int(s) s = s - a s = s * 60 b = Int(s) s = s - b c = s * 60 Print "对应的角度值为:"; a & "度" & b & "分" & c & "秒。" End Sub 程序运行界面如图4.1所示。

实验4选择结构程序设计

实验4 选择结构程序设计 一、实验目的 1.掌握C语言中逻辑量的表示和使用方法。 2.掌握if语句及switch语句的使用。 3.熟悉各种表达式作为if语句及switch语句的条件。 4.了解Turbo C程序的基本调试方法。 二、实验内容 1.验证性实验 (1)分析程序的运行结果。 ①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。 #include void main() { int week; printf("Input(1-7):"); scanf("%d",&week); switch(week) { case 1:printf("Mon.\n"); break; case 2:printf("Tue.\n"); break; case 3:printf("Wed.\n"); break; case 4:printf("Tur.\n"); break; case 5:printf("Fri.\n"); break; case 6:printf("Sat.\n"); break; case 7:printf("Sun.\n"); break; default:printf("The input is wrong!\n"); } } ②运行5次下列程序,输入的数据分别是1,2,3,4,5,请观察每次的运行结果,并根据结果分析原因。 #include void main() { int n,a=0,b=0,c=0,d=0,k=0; scanf("%d",&n); switch(n) { case 1:b++;break; case 2:c++; case 3:d++;break; case 4:k++; default:a++; } printf("%d,%d,%d,%d",a,b,c,d,n); } (2)输入x的不同值,以下程序将求一给定“y=f(x)”函数的值。

厦门理工学院C语言报告实验3_顺序、选择结构

《C语言程序设计》实验报告 实验序号:3 实验项目名称:顺序、选择结构 网工学号姓名专业、班级 实验地点316 指导教师林老师实验时间11.1 一、实验目的及要求 1.掌握正确使用逻辑运算符和逻辑表达式表示逻辑判断; 2.熟练掌握用if语句编写选择结构的程序; 3.掌握switch语句的正确使用; 4.初步了解调试程序的一般方法。 二、实验设备(环境)及要求 使用Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤 1.输入一个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32)。 输出要求有文字说明,取2位小数。 【算法提示】 1)定义实变量c,f 2)提示输入"Please enter f:" 3)读入f 4)根据公式计算c 5)打印两位精度的结果。 测试结果: 华氏温度f 摄氏温度c 100.25 0.5 23.78

2.有一函数 x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10) 用scanf函输入x的值,求y值。 【算法提示】 1)定义实变量x,y 2)提示输入"Please enter x:" 3)读入x 4)判断x所在的区间,对应出y的计算公式并求值(进一步细化) 5)打印结果。 运行结构截图: \ 3.从键盘上输入一个正整数,判断这个数能否同时被3和5整除; 运行结构截图: 4.设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321。(提示:分别应用/ 求整数部分,%求余数部分。例如7/5=1,7%5=2)。 运行结构截图: 5.某公司的招聘条件如下:①Experience with C ②bachelor degree ③less than 30 要求屏幕输出如下:

实验3选择结构程序设计

《C语言程序设计》实验报告 ---------------------------------------------------------------------------------------------- 实验3选择结构程序设计 一.实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式 3.熟练掌握if语句和switch语句; 4.结合程序掌握一些简单的算法。 5.学习调试程序 二.实验内容和步骤 1.基础知识和概念 (1)分析下面程序,掌握关系表达式的运算规则。 #include int main() { char ch='w'; int a=2,b=3,c=1,d,x=10; printf("%d",a>b==c); printf("%d",d=a>b); printf("%d",ch>'a'+1); printf("%d",d=a+b>c); printf("%d",3<=x<=5); printf("%d\n",b-1==a!=c); return 0; } 总结与反思:1.运用关系运算符比较的结果,真为1,假为0;2.注意掌握运 算符的优先顺序;3. (3<=x)<=5结果为真=1,(1==1)!=1结果为假=0 (2)分析运行下面的程序,掌握逻辑表达式的运算规则。 #include int main() { char ch='w';

int a=2,b=0,c=0; float x=3.0; printf("%d",a&&b); printf("%d",a||b&&c); printf("%d",!a&&b); printf("%d",a||3+10&&2); printf("%d",!(x==2)); printf("%d",!x==2); printf("%d\n",ch||b); return 0; } 总结与反思:1.运用逻辑运算符比较的结果,真为1,假为0;2.逻辑与&&优 先级11大于逻辑或||优先级12 (3)分析运行下面的程序,掌握关系及逻辑混合表达式的运算规则。 #include int main() { int a=3,b=5,c=8; if(a++<3&&c--!=0) b=b+1; printf("a=%d\tb=%d\tc=%d\n",a,b,c); return 0; } 总结与反思:该程序中的条件判断表达式“a++<3&&c--!0”是一个逻辑表达式, 关系表达式“a++<3”的值为假,因此后一部分“c--!=0”不再计算。 2.程序改错和填空 (1)给定程序c3-4.c的功能是,对于以下函数: y=x(x<1) y=2x-1(1<=x<10) y=3x-11(x>=10) 用scanf函数输入x的值,求y的值。 #include int main() { int x,y; scanf("%d",&x); if (x<1) y=x; else if (1<=x&&x<10) y=2*x-1; else y=3*x-11; printf("y=%d\n",y); return 0; } 反思与总结:1.在紧跟着if选择语句的条件表达式的圆括号之后没有分号;2.

实 验 3 选择结构程序设计

实验三选择结构程序设计 一、实验目的 1.熟悉JDK开发环境 2.进一步了解Java Application的程序结构和开发过程 3.掌握选择结构程序设计 二、实验环境:JDK1.5 三、实验内容 编写程序,在主类中完成以下功能。 提示:输入数据可以用java.util.Scanner包中的Scanner(中文意思是扫描仪)类,用法如下例: import java.util.Scanner;//必须要先导入java.util.Scanner包 public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in);//创建Scanner类的对象sc System.out.println("请输入一个整数:");//输出提示信息 int i = sc.nextInt();//sc对象的nextInt()方法可得到整数 System.out.println(i); } } 这个例子就可以得到一个整型的数据,然后输出。 1.从键盘上输入3个整数分别存入变量a,b,c,输出其中的最大值。 2.输入一个整数,打印出它是奇数还是偶数。 3.计算如下分段函数值: 具体要求如下: ①用if语句实现分支。自变量x与函数值均用单精度类型。 ②自变量x由键盘输入,且输入前要有提示。结果的输出采用以下形式: x=具体值,f(x)=具体值 ③请编写程序并上机调试。分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运 行该程序,写出运行结果。 4.输入一个年份,判断是不是闰年。闰年的条件有两个:①能被4整除,但不能被 100整除;②能被400整除。 5.由键盘输入3个整数,判断以此3个数为边长的三角形属于什么类型(不等边、等 腰、等边或不能构成三角形)。请编写程序并上机调试。 6.根据百分制分数决定成绩等级如下: ①80分(含)以上为A级。 ②70分(含)以上且80分以下为B级。 ③60分(含)以上且70分以下为C级。 ④60分以下为D级。 用多分支语句if-else if和switch两种方法编写程序,输入一个百分制分数,输出相

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

实验四 答案 选择结构程序设计

实验四选择结构程序设计答案 实验时间:年月日 【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include void main() { char ch; printf("input a character:"); ch=getchar(); if(ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch); } 具体要求: ①从键盘上输入a,分析程序运行的结果。 ②从键盘上输入A,分析程序运行的结果。 ③从键盘上输入5,分析程序运行的结果。 程序运行结果: ①a ②a ③5 (2)ex4_2.c #include void main() { int x,y,z; printf("input x,y,z"); scanf("%d,%d,%d",&x,&y,&z); if(x

②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序运行结果: a=2,b=1 (4)ex4_4.c #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++; } printf("a=%d,b=%d\n",a,b); } 具体要求:

数据结构上机实验答案

《数据结构实验指导书》答案 实验一: 1、请编写函数int fun(int *a, int *b),函数的功能是判断两个指针a和b所指存储单元的值 的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。在主函数中输入2个整数、调用函数fun、输出结果。 #include int fun(int *a, int *b) { if (*a*(*b)>0) return(1); else return(0); } main() { int x,y; scanf("%d%d",&x,&y); if (fun(&x,&y)) printf("yes\n"); else printf("no"); } 2、计算1+2+3+……+100,要求用指针进行设计。即设计函数int fun(int *n)实现求 1+2+3+……+*n,在主函数中输入、调用、输出结果。 #include int fun(int *n) { int i,sum=0; for (i=1;i<=*n;i++) sum+=i; return(sum); } main() { int x,sum; scanf("%d",&x); printf("the sum is %d\n",fun(&x)); } 3、函数的功能是求数组a中最大数的位置(位序号)。在主函数中输入10个整数、调用函

数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i*max) max=a+i; return(max-a); } main() {int a[N],maxi; input(a,N); maxi=fun(a,N); printf("\n the max position is %d\n",maxi); } 4、请编写函数fun(int *a,int n, int *odd, int *even),函数的功能是分别求出数组a中所有奇数之和和所有偶数之和。形参n给出数组中数据的个数;利用指针odd和even分别返回奇数之和和偶数之和。在主函数中输入10个整数、调用函数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i

实验三程序的选择结构

实验三程序的选择结构 一、实验目的 1.掌握赋值语句的使用。 2.掌握用户交互函数InputBox与MsgBox的使用。 3.掌握IF语句与Select Case语句的使用。 二、实验内容 1.编写一个程序,判断用户输入的年份是否是闰年。 提示:利用InputBox输入年份,利用MsgBox显示判断结果。 2.编写一个程序,判断一个输入的3位整数是否“水仙花数”。水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如,153=13+53+33。 3.输入三角形的三边a、b、c的值,根据其数值,判断能否构成三角形。若能,还要显示三角形的性质:等边三角形、等腰三角形、直角三角形、任意三角形。 提示:使用if语句的嵌套。 4、编写程序,根据输入的学生成绩判断学生的等级。 100-90:等级为A 89-80:等级为B 79-70:等级为C 69-60:等级为D 50-0:等级为E 图3.1 运行界面 提示:可使用多分支IF语句实现。 5.某商场促销采用购物打折的优惠办法,即每位顾客一次购物金额: ①在1000元以上者,按九五折优惠; ②在2000元以上者,按九折优惠; ③在3000元以上者,按八五折优惠; ④在5000元以上者,按八折优惠。 程序界面如图3.2所示。

图3.2 运行界面 提示: 此例用多分支结构实现,注意计算公式和条件表达式的正确书写。 6.输入x、y、z三个整数,按从大到小的次序显示,如图3.3所示。 图3.3 运行界面 提示: ①利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;若放在字 符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”>“2345”>“126789”的情况。 ②对三个数进行排序,通过两两比较,一般可用三条单分支IF语句来实现。方法如下: 先将x与y比较,使得x>y;然后将x与z比较,使得x>z,此时x最大;最后将y与z 比较,使得y>z。 7.输入一元二次方程ax2+bx+c=0的系数a,b,c,计算并输出一元二次方程的两个根x1,x2。界面如图3-4所示。 图3.4 运行界面

实验3-顺序结构、选择结构

实验3-顺序结构、选择结构 以下是为大家整理的实验3-顺序结构、选择结构的相关范文,本文关键词为实验,顺序,结构,选择,c语言程序设计,实验,报告,序号,项,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。 《c语言程序设计》实验报告 实验序号:3实验项目名称:顺序结构、选择结构学号实验地点1507052114实1-316姓名指导教师何蕾吴芸专业、班级实验时间15

软件工程1班20XX/11/10一、实验目的及要求1.2.3.4.掌握正确使用逻辑运算符和逻辑表达式表示逻辑判断;熟练掌握用if语句编写选择结构的程序;掌握switch语句的正确使用;初步了解调试程序的一般方法。二、实验设备(环境)及要求使用Turboc或Visualc++6.0;windows 系列操作系统的环境。三、实验内容与步骤0.根据输入的百分制成绩score,转换成相应的五分制成绩grade并打印输出。标准为:grade=A90≤score【算法提示】1)定义实变量c,f2)提示输入\3)读入f4)根据公式计算c5)打印两位精度的结果。测试结果:华氏温度f100.250.523.782.有一函数x(x=10)用scanf函输入x的值,求y 值。【算法提示】1)定义实变量x,y2)提示输入\3)读入x4)判断x所在的区间,对应出y的计算公式并求值(进一步细化)5)打印结果。运行结构截图:摄氏温度c37.92-17.50-4.573.从键盘上输入一个正整数,判断这个数能否同时被3和5整除;运行结构截图 :4.设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321。(提示:分别应用/求整数部分,%求余数部分。例如7/5=1,7%5=2)。运行结构截图:5.某公司的招聘条件如下:①experiencewithc②bachelordegree③lessthan30要求屏幕输出如下:根据应聘者输入数据逐步提问,如应聘者输入n,则提示应聘者全满足则输出【提示】:必须考虑用户输入大写Y或者n。6.假设手机有两种收费方式,第一种是每分钟0.6元,无月租费;另一种是每分钟0.4元再收50元月租费,输入一个月打电话的时间(分钟),判断那一种更省钱。

实验(4)-选择结构-参考答案

C语言程序设计实验教学(4) 【实验目的】通过程序设计实现,掌握if结构和switch结构的正确应用。【实验要求】使用if结构和switch结构实现多种条件的选择结构程序,熟练二者的应用范围和注意事项。练习条件表达式的书写。 【实验课时】4.0 【实验内容】 1、运行下列程序,分析结果。 main( ) { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=ab?a:b; max=max>c?max:c;

printf("max is %d\n",max);} main() {int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); if(a>b) max=a; else max=b; if(c>max) max=c; printf("max is %d\n",max);} main() {int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); if(a>b) if(a>c) max=a; else max=c; else if(b>c) max=b; else max=c; printf("max is %d\n",max);} 4、编写程序,实现从键盘上输入4个整数,并按从大到小顺序输出。 main() {int a,b,c,d,t; scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b) {t=a;a=b;b=t;}

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

相关主题
文本预览
相关文档 最新文档