習 ?題 ?3 ?(參考答案)
1.編程實現(xiàn):用字符輸入/輸出函數(shù)輸入3個字符,將它們反向輸出。
參考代碼(盡量運用本章所學知識)
#include <stdio.h>
main(?)
{ char c1,c2,c3;
??c1=getchar(); c2=getchar(); c3=getchar();
??putchar(c3); putchar(c2); putchar(c1);
}
?
2.編程實現(xiàn):用格式輸入/輸出函數(shù)輸入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 類型,調(diào)用函數(shù):
scanf("%d", &k);
不能使變量k得到正確數(shù)值的原因是:
scanf("%d", &k);中的格式控制類型與變量k的定義類型不匹配,應(yīng)將%d改為%f.
4. (略)
一 選擇題
?1-20 ???DBDCA ???CBDDA ????ACABC ??BCBBC
?
二、寫出下列程序的運行結(jié)果
1. ?z=36
2. ?20 0
3. ?12
4. ?48,48
5. ?13
6. ?02
?
三 編程題(參考答案)
1.輸入4個整數(shù)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.據(jù)所輸入的3條邊長值,判斷它們能否構(gòu)成三角形,如能構(gòu)成,再判斷是等腰三角形、直角三角形還是一般三角形?
源程序:
#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.輸入一個整數(shù),如果能被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.編寫程序。根據(jù)以下函數(shù)關(guān)系,對輸入的每個x值進行計算,并輸出相應(yīng)的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);
}