当前位置:文档之家› 选择结构程序设计题

选择结构程序设计题

选择结构程序设计一、实验目的1.熟练掌握关系表达式和逻辑表达式的使用。

2.熟练掌握嵌套的if语句和switch语句实现多分支结构程序设计。

3.掌握选择结构程序设计的方法。

4.继续熟悉跟踪调试程序的方法和过程。

二、实验内容及步骤1.分析程序并上机运行验证结果。

#include<stdio.h>void main(){int a,b,t;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if(a<b){t=a;a=b;b=t;}printf("%d ,%d \n",a,b);2,3>>3,2 3,2>>3,2}思考:从输入数据和运行结果分析程序的功能。

将“{t=a;a=b;b=t;}”改为“t=a,a=b,b=t;”,程序的功能改变了吗?为什么?一样的将“if(a<b) {t=a;a=b;b=t;} ”中的花括号去掉后,程序的功能改变了吗?为什么?2,3》》3,2 3,2》》2,-8589934602.分析程序功能,上机验证时输入不同的数据。

#include<stdio.h>void main(){int a,b;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if (b) printf("a/b=%d \n",a/b); //在确保b非零的情况下执行a/b运算else printf("ERROR:Cannot divide by zero!\n");}提示:程序的功能是实现两个整数相除。

程序设计时应避免被零除的错误,所以“if(b)printf("a/b=%d \n",a/b);”就是在确保b非零的情况下执行a/b运算。

if(b)也可以写作if(b!=0)。

3.阅读、分析程序,记录结果,并上机运行验证结果。

#include<stdio.h>void main(){char c;printf("Enter a single character:");c=getchar( );if((c>= 'A'&&c<='Z')|| (c>= 'A'&&c<='Z'))printf("It’s an alphabetic character.\n");else if(c>= '0'&&c<='9')printf("It’s a digit.\n");else printf("It’s a special character.\n");}9 enter It’s a digit. ! It's a special character A It's an alphabetic character 4.分析程序,记录结果,并上机运行验证结果。

#include<stdio.h>void main(){int a=1,b=2,c=3,d=4,m=1,n=1,t;t=((m=a>b)&&(n=c>d));printf("%d , %d ,%d \n",m,n,t);}0,1,05.阅读、分析程序,记录结果,并上机运行验证结果。

#include<stdio.h>void main( ){int a=13,b=21,m=0;switch(a%3){case 0:m++;break;case 1:m++;switch(b%2){default:m++;case 0:m++;break;}}printf("m=%d\n",m);} 36.阅读、分析程序,记录结果,并上机运行验证结果。

#include<stdio.h>void main(){int score;char ch;printf("请输入你的期末考试成绩:");scanf("%d ",&score);ch= score>=60? '\1': '\2';printf("%c",ch);}78-78 enter kulian7.请将下列程序填写完整,并上机运行验证。

(2007年9月)以下程序的功能是:输出a、b、c三个变量中的最小值。

#include<stdio.h>void main(){int a,b,c,t1,t2;scanf("%d%d%d",&a,&b,&c);t1=a<b ? a:b;t2=c<t1? c:t1;printf("%d\n",t2);} 4 5 6enter 48.改正下列程序中的错误,程序功能是判定输入的字符如果是大写字母,则将其改为对应的小写字母,否则输出数据出错提示。

#include <stdio.h>void main( ){char x,y;printf("Please input the upper letter:");scanf("%c",&x);if(x>='A'&&x<='Z')y=x+32;printf("The lower letter is:%c\n",y);elseprintf("The input data is wrong!\n");}改正后#include <stdio.h>void main( ){char x,y;printf("Please input the upper letter:");scanf("%c",&x);if(x>='A'&&x<='Z'){y=x+32;printf("The lower letter is:%c\n",y);}elseprintf("The input data is wrong!\n");}9.下列程序的功能是输出3个整数中的中间数。

找出程序中的错误并按照程序的思路进行修改,使其能运行并输出正确结果。

#include <stdio.h>void main( ){int x,y,z;printf("请输入3个数据:a b c\n");scanf("%d%d%d ",&x,&y, &z);if(x<y<z) printf("middle is %d ",y);else if(y<x<z) printf("middle is %d ",x);else printf("middle is %d ",z);}提示:数学中“x<y<z”表示y介于x和z之间,而在C语言中则不同,“x<y”的结果为0或1,然后将“x<y”的结果与z比较,不能表示y介于x和z之间。

要表示并且关系,应当用逻辑与运算符来实现。

10.计算器程序。

改正下列程序中的错误,输入一个形式如“操作数运算符操作数”的表达式,对两个整数进行四则运算。

#include <stdio.h>void main( ){char sign;int x,y;printf("输入x 运算符y:");scanf("%d%c%d", &x, &sign, &y);if(sign='+')printf("%d + %d = %d\n",x,y,x+y);else if(sign='-')printf("%d -%d = %d\n",x,y,x-y);else if(sign='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign='/')printf("%d / %d = %d\n",x,y,x/y);else printf("运算符输入错误!\n");}思考:如果除数为0,如何完善以上程序。

#include <stdio.h>void main( ){char sign;int x,y;printf("输入x 运算符y:");scanf("%d%c%d", &x, &sign, &y);if(sign=='+')printf("%d + %d = %d\n",x,y,x+y);else if(sign=='-')printf("%d -%d = %d\n",x,y,x-y);else if(sign=='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign=='/')printf("%d / %d = %d\n",x,y,x/y);else printf("运算符输入错误!\n");}11.请用switch结构改写第10题计算器程序,并上机验证。

12.日常生活中经常会面临选择情况,请根据以下餐馆点餐示意图编写程序实现之。

13.有一函数x-1 (x<1)y = 5(x-1) (1<=x<10)7x-10 (x>=10)编程求当分别输入x的值为0.7,5.9,13时,y的值。

#include<stdio.h>void main(){float x,y;printf("请输入x=");scanf("%f",&x);if(x<1)y=x-1;elseif(x<10)y=5*(x-1);elsey=7*x-10;printf("%0.3f",y);}14.假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。

相关主题