当前位置:文档之家› 实验3:分支结构程序设计-推荐下载

实验3:分支结构程序设计-推荐下载

实验2 顺序程序结构程序设计一、实验目的1.进一步掌握关系表达式和逻辑表达式的使用。

2.熟悉选择结构程序设计。

3.熟练使用if语句进行程序设计。

4.使用switch语句实现多分支选择结构。

二、实验要求1.复习关系表达式、逻辑表达式、条件表达式的相关内容;2.复习if语句、if…else语句、switch语句的执行流程;3.完成各项实验任务及问题讨论。

三、实验内容(一)程序改错题说明:给出的程序可能存在语法或算法上的问题或需要补充完整,但需要修改的地方肯定在/*******Found*******/下的第一行上且每行仅有一个(类)错误,不能修改其它地方,不能修改或删除/*******Found*******/本身,遵循最少修改、保持一行一条语句及{与}单独一行的原则。

考试时由于是计算机自动阅卷,修改时不能增加行或删除行,哪怕是一个空行都不行,否则可能得0分。

1.程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x<>y。

(序号:7)#include<stdio.h>int main(void){/*********Found************/char x, y;x = 39270;y = 41001;/*********Found************/if (x != y){printf("x=y");}/*********Found************/else;;{printf("x<>y\n");}return 0;}2.程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。

(序号:20)#include<stdio.h>#include<stdio.h>int main(void){float a, b, c, t;printf("please input three numbers:\n");/*********Found************/scanf("%f%f", &a, &b, &c);printf("before sort:a=%g,b=%g,c=%g\n", a, b, c);if (a > b){t = a;a = b;/*********Found************/b = a;}if (a > c){t = a;a = c;c = t;}if (b > c){t = b;b = c;c = t;}printf("after sort:a=%g,b=%g,c=%g\n", a, b, c);return 0;}3. 程序D1006.c的功能是判断输入的数据是否与已经给出的数据j相等。

(序号:26)#include<stdio.h>#include<stdio.h>int main(void){long int i = 79870, j = 23;/*****Found*****/scanf("%f", &i);/*****Found*****/if (j == i);{printf("Equal!");}else{printf("Not equal!");}return 0;}4.程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符.(序号:27)#include<stdio.h>int main(void){char ch;/****Found****/getchar(ch);/*****Found*****/if ('A' <= ch, ch <= 'Z'){printf("yes");}else{printf("no");}return 0;}5.程序D1008.c的功能是判断用户是不是输入的整数0。

(序号:28)#include<stdio.h>int main(void){int n;scanf("%d", &n);/****Found****/switch (n);{/****Found****/case0:printf("Zero\n");break;default:printf("Non-Zero");break;}return 0;}6.程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出0。

(序号:29)#include<stdio.h>int main(void){int x, y;scanf("%d", &x);switch (x){/*********Found************/case x == 1:y = 100;break;/*********Found************/case x == 2:y = 200;break;default:/*********Found************/y = 500;break;}printf("%d\n", y);return 0;}(二)编程题说明:程序的输出格式和运行界面要求完全一样1. 编写一程序P7-710.C实现以下功能(查点:字符变量输入、输出函数的正确使用 )(序号:42)输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应的大写字母及其ASCII码。

编程可用素材:printf("Input a lowercase letter: ")...、printf("\n...(...)...。

程序的运行效果应类似地如图1所示,图1中的y是从键盘输入的内容图12.编写一程序P7-712.C实现以下功能(考查点:简单双分支结构程序)(序号:44)判断输入的正整数是否既是5又是7的整倍数,若是,则输出“Yes.”;否则输出“No.”。

程序的运行效果应类似地如图1和图2所示,图1中的75和图2中的105是从键盘输入的内容。

图1图23. 编写一程序P7-713.C实现以下功能(序号:45)用scanf输入某年某月某日,判断这一天是这一年的第几天?以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份≥3时需考虑多加一天。

注:判断年份是否为闰年的方法——为400的倍数为闰年,如2000年;若非100的倍数,而是4的倍数,为闰年,如1996年。

编程可用素材:printf("Please input: year-month-day\n")...、printf("\nIt is the ...th day.\n"...。

程序的运行效果应类似地如图1所示,图1中的2000-3-1是从键盘输入的内容#include <stdio.h>void main(){int year,month,day,x;printf("Please input :year-month-day");scanf("%d-%d-%d",&year,&month,&day);switch(month){case 1: x=day;break;case 2: x=31+day;break;case 3: x=59+day;break;case 4: x=90+day;break;case 5: x=120+day;break;case 6: x=151+day;break;case 7: x=181+day;break;case 8: x=212+day;break;case 9: x=243+day;break;case 10: x=273+day;break;case 11: x=304+day;break;case 12: x=334+day;break;}if(month>2&&(year%400==0||(year%4==0&&year%100!=0)))x+=1;printf("It is the %dth day.\n",x);}图1四、问题讨论1.对于多分支选择结构何时使用if语句的嵌套,何时使用switch语句?2.编程题,给出源程序清单或程序流程图。

相关主题