习 题 3 (参考答案)
1.编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。
参考代码(尽量运用本章所学知识)
#include <stdio.h>
main( )
{ char c1,c2,c3;
c1=getchar(); c2=getchar(); c3=getchar();
putchar(c3); putchar(c2); putchar(c1);
}
2.编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。
参考代码(尽量运用本章所学知识)
#include <stdio.h>
main( )
{ char c1,c2,c3;
scanf ("%c%c%c", &c1, &c2, &c3) ;
printf("%c %d,%c %d,%c %d ", c3,c3,c2,c2,c1,c1) ;
}
3.变量k为float 类型,调用函数:
scanf("%d", &k);
不能使变量k得到正确数值的原因是:
scanf("%d", &k);中的格式控制类型与变量k的定义类型不匹配,应将%d改为%f.
4. (略)
一 选择题
1-20 DBDCA CBDDA ACABC BCBBC
二、写出下列程序的运行结果
1. z=36
2. 20 0
3. 12
4. 48,48
5. 13
6. 02
三 编程题(参考答案)
1.输入4个整数a,b,c,d,编写程序,将它们按从大到小顺序输出。
#include<stdio.h>
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("%4d%4d%4d%4d",a,b,c,d);
}
2.据所输入的3条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、直角三角形还是一般三角形?
源程序:
#include<stdio.h>
#include "math.h"
main()
{float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a)&&(fabs(a-b)<c)&&(fabs(a-c)<b)&&(fabs(b-c)<a))
{
if(a==b&&b==c)
printf("等边三角形");
else if(a==b||b==c||a==c)
printf("等腰三角形");
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf("直角三角形");
else printf("一般三角形");
}
else printf("不能组成三角形");
}
3.输入一个整数,如果能被3,4,5同时整除,则输出“YES”,否则输出“NO”。
#include<stdio.h>
main()
{ int t,flag;
scanf("%d",&t);
if(t%3==0&&t%4==0&&t%5==0)
printf("YES");
else
printf("NO");
}
4.输入年号,判断是否为闰年。判别闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
#include<stdio.h>
main()
{ int year;
printf("input the year:");
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%400==0)
printf(" %d is leap year\n",year);
else
printf(" %d is't leap year\n",year);
}
5.编写程序。根据以下函数关系,对输入的每个x值进行计算,并输出相应的y值。
x | y |
x>10 | 3x+10 |
1<x≤10 | x(x+2) |
x≤1 | x2-3x+10 |
#include<stdio.h>
main()
{ double x,y;
scanf("%lf",&x);
if(x>10) y=3*x+10;
else if(x>1) y=x*x+2*x;
else y=x*x-3*x+10;
printf(" %lf \n",y);
}