-第三章上机实验2-switch语句习题-答案
c程序设计实验参考答案

main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
C语言上机4Switch和循环结构-答案

C语言上机4Switch和循环结构-答案C语言上机四逻辑及循环结构程序设计一、上机目的1.熟练掌握switch语句;2.熟练掌握switch语句中break语句的作用。
3.熟练使用while、do-while语句实现循环程序设计4.理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处二、上机内容输入程序,观察输出结果,并对输出结果做出合理的解释。
1)switch#includeint main(){int a;printf("input integer number: ");scanf("%d",&a);switch (a){case 1:printf("Monday\n"); break;case 2:printf("Tuesday\n"); break;case 3:printf("Wednesday\n"); break;case 4:printf("Thursday\n"); break;case 5:printf("Friday\n"); break;case 6:printf("Saturday\n"); break;case 7:printf("Sunday\n"); break;default:printf("error\n");}return 0;}观察输出结果如何修改程序,加上break语句,使程序能够正确输出。
2)switch与break语句#include"stdio.h"void main(){int x=1,y=0;switch(x){case 1:switch(y){case 0:printf("**1**\n");break; //只跳出当前的switchcase 1:printf("**2**\n");break;} //这里没有break语句执行完上一case后,下面的case继续执行。
matlab第三章课后部分答案

matlab第三章课后部分答案习题三3-2 从键盘输入一个三位整数,将它反向输出。
如输入639,输出为936程序如下:m=input('请输入一个三位整数:');m1=fix(m/100);%求m的百位整数m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字m=m3*100+m2*10+m1%反向输出m3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
程序如下:(1)if语句c=input('请输入成绩:');if c>=90&c<=100disp('A 成绩合理');elseif c>=80&c<=89disp('B 成绩合理');elseif c>=70&c<=79disp('C 成绩合理'); elseif c>=60&c<=69disp('D 成绩合理'); elseif c<60disp('E 成绩合理');elsedisp('成绩错误');end(2)switch语句c=input('请输入成绩:'); switch fix(c)case num2cell(90:100)disp('A 成绩合理'); case num2cell(80:89)disp('B 成绩合理'); case num2cell(70:79)disp('C 成绩合理'); case num2cell(60:69)disp('D 成绩合理'); case num2cell(0:59)disp('E 成绩合理');x=fix(rand(1,20)*89)+10;x1=fix(sum(x)/20);disp(['平均数是:',num2str(x1)])m=(rem(x,2)==0&x<x1);n=find(m);disp(['小于平均数的数是:',num2str(x(n))]); 3-6 输入20个数,求其中最大数和最小数。
2014 第三章上机实验2 switch 学生问题

2. 给出一个百分制的成绩,要求输出成绩等级'A','B','C','D','E'。
90分以上为'A',80~89分为'B',70~79分为'C',60z69分为'D',60分以下为'E'。
#include <iostream.h>main(){char a,b;cout<<"请输入成绩:"<<endl;cin>>a;b=a%10;switch(a){case'9':cout<<"A"<<endl;break;case'8':cout<<"B"<<endl;break;case'7':cout<<"C"<<endl;break;case'6':cout<<"D"<<endl;break;case'5':case'4':case'3':case'2':case'1':case'0':cout<<"E"<<endl;}}学生成绩不能是字符类型#include<iostream.h>int main(){int ch,grade;cin>>grade;ch=grade/10;switch(ch){case '10':C++程序设计(第2版)case '9':cout<<"A"<<endl;break;case '8':cout<<"B"<<endl;break;case '7':cout<<"C"<<endl;break;case '6':cout<<"D"<<endl;break;default:cout<<"E"<<endl;}}运行结果:所有结果都运行了一遍,结果正确。
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
北京交通大学-数据结构上机实验-2

数据结构上机实验二实验内容:栈和链队列的基本操作实验目的:1)熟悉C/C++基本编程,培养动手能力.2)通过实验,加深对堆栈和队列的理解.实验要求:1) 栈和队列的显示要作为函数被调用.2) 把自己使用的栈和队列结构明确的表达出来.分组要求:可单独完成,也可两人一组。
评分标准:1) 只完成第一或第二题,3分;2)完成一和二题,得5分;3)在2)基础上,可选做三)中的题目。
题目:一)堆栈题(顺序栈):创建一个栈+入栈+出栈(1)由键盘一个一个的输入正整数,建立相应的堆栈,输入-1时,堆栈结束;(2)在(1)中创建的堆栈中添加一个元素;(3)在(1)中创建的堆栈中删除一个元素;(要求在显示器可见);#include<stdio.h>#include<stdlib.h>#include <string>#define OK 1#define ERROR 0#define Status int#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struct Stack{int *base;int *top;Status stacksize;}SqStack;Status CreatStack(SqStack &S) //创建空栈{S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(struct Stack));if(!S.base) return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status InStack(SqStack &S) //创建栈元素{int e;printf("请输入初始栈元素:\n");scanf("%d",&e);while(e!=-1){if(S.top-S.base>=S.stacksize) //栈满,追加存储空间{S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(struct Stack));if(!S.base) return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;scanf("%d",&e);}return OK;}Status Push(SqStack &S,int e) //栈加元素{if(S.top-S.base>=S.stacksize) //栈满,追加存储空间{S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(struct Stack));if(!S.base) return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,int e) //栈中删除元素{if(S.top==S.base) return ERROR;e=*--S.top;printf("\n请输出出栈元素:%d",e);printf("\n");return OK;}void print(){printf("\n菜单:");printf("\n1.由键盘一个一个的输入正整数,建立相应的堆栈,输入-1时,堆栈结束:");printf("\n2.在创建的堆栈中添加一个元素:");printf("\n3.在创建的堆栈中删除一个元素:");printf("\n3.退出");}void printS(SqStack &S) //打印堆栈{int *p;printf("请输出堆栈中的元素:\n");for(p=S.base;p<S.top;p++){printf("%d ",*p);}}void main() //主程序{SqStack S;int e,choice;do{print();printf("\n请输入选项:");scanf("%d",&choice);switch(choice){case 1:if(CreatStack(S)==1){if(InStack(S)==1)printS(S);}break;case 2:printf("\n请输入入栈元素:");scanf("%d",&e);Push(S,e);printS(S);break;case 3:Pop(S,e);printS(S);break;case 4:exit(0);break;}}while(1);}二)链队列题目:初始化队列+入队列+出队列+销毁队列(1)初始化一个链队列;(2)在初始化好的链队列中放入数,入队列,完成后要求显示;(3)从队列中出队列,要求显示出来的元素和之后的队列;(4)销毁创建的队列,释放内存;#include <stdio.h>#include <malloc.h>typedef struct Qnode{//队列结点int data;struct Qnode *next;}QNode, *QueuePtr;typedef struct {QueuePtr front; //队头指针QueuePtr rear; //队尾指针}LinkQueue;void InitQueue(LinkQueue &Q){ //初始化链队列Q.front=Q.rear=(QueuePtr) malloc(sizeof(QNode));Q.front->next=NULL;}void EnQueue(LinkQueue &Q,int e){//入队列QueuePtr p;while(e!=-1){p=(QueuePtr)malloc(sizeof(QNode));p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;scanf("%d",&e);}}int QueueLength (LinkQueue Q){//求队列长度QueuePtr p;p=Q.front->next; //p指向队头int i=1;while(p!=Q.rear){ //遍历链队列,统计结点数i++;p=p->next;}return i;}// QueueLengthvoid DeQueue(LinkQueue &Q){ //出队列QueuePtr p;int e;if(Q.front==Q.rear)printf("The queue is empty\n");else{p=Q.front->next;e=p->data;printf("The delete elem is:%d\n",e);Q.front->next=p->next;if(Q.rear==p) Q.rear=Q.front;free(p);}printf("The new queue is :\n");}void DestroyQueue(LinkQueue &Q){ //销毁队列while(Q.front){Q.rear=Q.front->next;free(Q.front);Q.front=Q.rear;}}void QueueTraverse (LinkQueue Q){//遍历显示队列QueuePtr p;for(p=Q.front->next;p!=Q.rear;p=p->next)printf("%d ",p->data);printf("%d ",p->data);}void main(){LinkQueue Q;int e;InitQueue(Q);printf("Put in the elems:\n");scanf("%d",&e);EnQueue(Q,e);printf("The queue is:\n");QueueTraverse(Q);printf("\n");DeQueue(Q);QueueTraverse(Q);printf("\n");DestroyQueue(Q);}三)应用题(1)编制程序,将输入的十进制数据M 转换为八进制数据M8,将其调试通过。
if语句switch语句上机练习

1126上机练习1、要将“China”翻译成密码。
密码规律是:用原来字母的后面第4个字母代替原来的字母。
请编写一程序实现。
并输出结果。
(Glmre)2、输入一个字母,将该字母进行大小写转换,输出转换后的字母。
3、输入一个不大于255的自然数x,计算y=(1+x)/x2。
4、给定一个三位正整数,分别输出它的个位数、十位数和百位数。
5、编写程序,实现从键盘上输入4个整数,并按从大到小顺序输出。
6、编写一个程序,实现对给出的一百分制成绩,输出相应的成绩等级。
即:90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’7、输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。
C>40时,打印“Hot”30<C≤40时,打印“Warm”20<C≤30时,打印“Room Temperature”10<C≤20时,打印“Cool”0<C≤10时,打印“Cold”C≤0时,打印“Freezing”8、编一程序,要求实现下面的功能:输入一个实数后,屏幕上显示如下菜单(加粗部分):1.输出相反数2.输出平方数3.输出平方根4.退出程序运行的效果为:若按1键,则输出该数的相反数;若按2键,则输出该数的平方数;……。
按1 ~4之外的其他键时,显示出错,、。
9、列程序想求出满足如下条件的三位数n:(1)n除以11(整数相除)所得到的商等于n的各位数字的平方和;(2)n中至少有二位数字相同。
如:131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。
程序设计上机实验课后答案

第3章程序控制结构1.1 选择结构部分一、选择题二、填空题1.OK!NO!ERROR!2.x=1 y=0x=23.ch>=’A’&& c<=’Z’ ch=ch-324.-15.x=66.(1)2(2)3CCa=2,b=2,c=4 7.(1)a<b||a<c(2)a>c&&b>c(3)a<c||b<c(4)a%28.32339.0 1三、程序设计题1.#include <stdio.h>#define pi 3.14159main( ){int k;float r,c,a;printf(“input r,k\n”);scanf(“%f%d”,&r,&k);switch(k){case 1: a=pi*r*r; printf(“area=%f\n”,a);break;case 2: c=2*pi*r;printf(“circle=%f\n”,c);break;cese 3: a=pi*r*r;c=2*pi*r;printf(“area=%f circle=%f\n”,a,c);break;}}2.main( ){int year,leap;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”);}3.#include <math.h>main(){float x,y;scanf(“%f”,&x);if(x<0) y=x*x;else if(x>=0&&x<10) y=-0.5*x+10;else y=x-sqrt(x);printf(“y=%f”,y);}1.2 循环结构部分二、填空题1.(1)先判断条件是否成立(为真),若成立(为真)再执行循环语句(2)先执行循环语句,再判断条件是否成立(为真),若成立则继续执行循环,若不成立,则结束循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 1:
case 2:
case 3:
case 4:
case 5:cout<<"工作日愉快"<<endl;
break;
case 6:
case 7:cout<<"周末愉快"<<endl;
break;
default:cout<<"请输入位于1到7之间的数"<<endl;
}
return 0;
}
1、查询自动售货机中商品的价格,假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单,用户可以查询商品的价格,用户输入编号1~4,显示相应商品的价格;输入其他编号,显示价格为0。
cin>>a>>b;
area=a*b/2;
cout<<"三角形面积为:"<<area;
break;
}
case 'C':case'c':
{
float r,area;
cout<<"请输入圆的半径";
cin>>r;
area=pi*r*r;
cout<<"圆面积为:"<<area;
break;
}
default:
cout<<"[4] Select cola \n";
cout<<"Enter choice: ";
cin>>choice;
switch (choice) {
case 1: price=3.0; break;
case 2: price=2.5; break;
case 3: price=4.0; break;
2.给出一个百分制的成绩,要求输出成绩等级'A','B','C','D','E'。90分以上为'A',80~89分为'B',70~79分为'C',60z69分为'D',60分以下为'E'。
解1
#include <iostream.h>
int main()
{
int x,y;
cout<<"请输入学生成绩"<<endl;
int main()
{
int a,b;char op;
cout<<"\n输入操作数1,运算符,操作数2: ";
cin>>a>>op>>b;
switch(op)
{
case '+':cout<<a<<'+'<<b<<'='<<a+b;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:cout<<"E"<<endl;
break;
default:cout<<"输入错误"<<endl;
}
return 0;
}
3、编写一个程序,当输入’S’或’s’、’T’或’t、’’C’或’c’时,分别转去执行计算正方形、三角形和圆的面积,分别用switch语句实现
cin>>x;
y=x/10;
if (x<0 || xFra bibliotek100)cout<<"输入错误"<<endl;
else
switch(x/10)
{
case 10:
case 9:cout<<"A"<<endl;
break;
case 8:cout<<"B"<<endl;
break;
case 7:cout<<"C"<<endl;
cin>>x;
y=x/10;
if (x==100) y=9;//剔除x=103之类出现10的情况
switch(x/10)
{
case 9:cout<<"A"<<endl;
break;
case 8:cout<<"B"<<endl;
break;
case 7:cout<<"C"<<endl;
break;
case 6:cout<<"D"<<endl;
break;
case 6:cout<<"D"<<endl;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:cout<<"E"<<endl;
}
return 0;
}
解2:
#include <iostream.h>
int main()
{
int x,y;
cout<<"请输入学生成绩"<<endl;
cout<<"输入错误";
}
return 0;
}
6编写一个程序,要求用户输入今天星期几,根据用户的输入判断是工作日还是周末,并显示合适的问候语。如果输入的数字不在1~7之间,显示“请输入位于1到7之间的数”,如果输入数字为6或7,显示“周末愉快”,如果输入数字1-5,显示“工作日愉快”
#include <iostream.h>
运行实例
#include <iostream.h>
int main()
{
int choice, i;
double price;
cout<<"[1] Select crisps \n";
cout<<"[2] Select popcorn \n";
cout<<"[3] Select chocolate \n";
运行实例
#include <iostream.h>
int main()
{
const float pi=3.1415926;
char ch;
cout<<"请输入想计算哪种图形面积?\n";
cout<<"\'S\'or\'s\'代表正方形,\'T\'or\'t\'代表三角形,\'C\'or\'c\'代表圆\n";
case 4: price=3.5; break;
default: price=0.0; break;
}
cout<<"price ="<<price<<endl;
return 0;
}
2、输入一个形式如“操作数运算符操作数”的四则运算表达式,输出运算结果。
解1:
#include <iostream.h>
main()
{
int x;
cout<<"星期几的代号为:"<<'\n'<<"星期一=1"<<'\n'<<"星期二=2"<<'\n'<<"星期三=3"<<'\n'<<"星期四=4"<<'\n'<<"星期五=5"<<'\n'<<"星期六=6"<<'\n'<<"星期日=7"<<'\n';cin>>x;
switch(x)
cin>>ch;
switch (ch)
{
case 'S':case 's':
{
float a,area;
cout<<"请输入正方形边长";
cin>>a;
area=a*a;
cout<<"正方形面积为:"<<area;
break;
}
case 'T':case 't':
{
float a,b,area;
cout<<"请输入三角形底和高";