实验三参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:参考答案
1、编写程序实现以下功能:输入一个整数,打印出它是奇数还是偶数(文件名为31.c )。 【参考程序】
#include
clrscr(); /*清屏*/
printf("Please Input a:\n"); scanf("%d",&a);
if(a%2==0) printf("%d is ou shu\n",a);/*判断a 是否偶数*/ else printf("%d is ji shu\n",a); }
2、有一函数:
y=⎪⎩
⎪⎨⎧<<+=<<--)
100(12)0(2)05(12x x x x
x x 编写程序,要求输入x 的值,根据上述函数输出y 的值(文件名为32.c )。 【参考程序】
#include
{float x,y; clrscr();
printf("Please Input x:\n"); scanf("%f",&x);
if(x<=-5||x>=10) printf("data error\n");/*如输入数据不在题目所要求区间内,则输出数据错误*/
else if(x>-5&&x<0) printf("y=%f\n",2*x-1); else if(x==0) printf("y=%f\n",2*x);
else if(x>0&&x<10) printf("y=%f\n",2*x+1); }
3、回文是指正读和反读都一样的数或文本段。例如:12321、55555都是回文。编写程序,读取一个包含五位数字的整数,判断它是否回文(文件名为33.c 。提示:用除法和求余运算符把整数分解成单个的数字)。 【参考程序】
#include
{long x,x1,x2,x4,x5; clrscr();
printf("Please Input x:\n");
scanf("%ld",&x);/*因为x定义为长整型,所以此处的格式控制符应用"%ld"*/
x1=x/10000; /*计算万位*/
x5=x%10; /*计算个位*/
x2=x/1000%10; /*计算千位*/
x4=x%100/10; /*计算十位*/
if(x1==x5&&x2==x4) printf("%ld is hui wen\n",x);/*如万位等于个位,千位等于十位,则x是回文,注意此处输出格式应用"%ld" */
else printf("%ld is not hui wen\n",x);
}
4、编写一个程序,读入三个非0整数,判断并打印出这些值是否能够构成一个三角形的三条边,如能,判断出此三角形的类型(等边、等腰、任意)(文件名为34.c)。
【参考程序】
#include
main()
{int x,y,z;
clrscr();
printf("Please Input x,y,z:\n");
scanf("%d%d%d",&x,&y,&z);
/*判断输入的数能组成三角形*/ printf("%d %d %d neng zu cheng ",x,y,z);
/*判断等边*/ else if(x==y||y==z||x==z) printf("deng yao san jiao xing\n");/*判断等腰*/
else printf("ren yi san jiao xing\n");/*判断任意*/
}
else printf("%d %d %d bu neng zu cheng san jiao xing\n",x,y,z);/*输出不能组成三角形*/
}
5、用switch语句实现:输入一百分制成绩,要求输出成绩等级:90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’(文件名为35.c)。
【参考程序】
#include
main()
{float grade;
clrscr();
printf("Input grade:");
scanf("%f",&grade);
switch((int)grade/10) /*将grade强制转换成整型后再整除10*/
{case 10:
case 9: printf("A");break;
case 8: printf("B");break;
case 7: printf("C");break;
case 6: printf("D");break;
default: printf("E");
}
}
6、请编写程序,其功能是:求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则输出方程无实根(文件名为36.c)。
例如:当a=1,b=2,c=1时,方程的两个根分别是x1= -1.00,x2= -1.00。
【参考程序】
#include
main()
{float a,b,c,disc,x1,x2;
clrscr();
do /* 此段黑体字程序保证输入的a,b,c的值能使得b2-4ac不小于0 */
{
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("disc=%f\n Input again!\n",disc);
}while( disc<0 );
printf("******the result******\n");
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2);
}
7、某公司想用电话来传送数据,但又担心被人窃听。数据都是由四个数字组成的整数。为了使数据传送更加安全一些,公司要你编写一个加密数据的程序。程序读取一个四位整数,然后按如下规则加密:每位数字都加上7,然后用和除以10的余数取代该数字;再把第1位与第3位交换,第2位与第4位交换。再单独编写一个程序,读取一个加密后的四位数字的整数,把它解密成原来的数。
【参考程序】
/*下列程序实现加密算法*/
#include
main()
{int x,x1,x2,x3,x4,y;
clrscr();
printf("Please Input x:\n");
scanf("%d",&x);
x1=x/1000;