1. 程式人生 > >第2次上機題目2018年10月12日 條件1

第2次上機題目2018年10月12日 條件1

第2次上機題目2018年10月12日
以下內容僅供娛樂,歡迎隨時探討,請多指教!
⒈ 輸入一個年份,判斷其是否為閏年。

#include<stdio.h>
int main()
{
	printf("輸入一個年份\n");
	int year;
	scanf("%d",&year);
	if((year%4 == 0 && year%100 != 0) | |(year%400 == 0))
	printf("Yes\n");
	else 
	printf("No\n");
	return 0;
 } 

⒉ 假設現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。請編寫程式,輸入顧客的加油量a,汽油品種b(90、93或97)和服務型別c(m為自助服務,e為協助服務),計算並輸出應付款(保留小數點後2位)。

#include<stdio.h>
#define type90 6.95
#define type95 7.44
#define type97 7.93
#define dm 0.95
#define de 0.97
int main()
{
    printf("輸入顧客的加油量a,汽油品種b(90、93或97)"
           "和服務型別c(m為自助服務,e為協助服務)\n");
    double a,b;
    char c;
    scanf("%lf%lf",&a,&b);
    getchar();c=getchar();
    //注意字元包括空格 ,輸入時注意不要空格。
if('m' == c){ if(b == 90) printf("%.2lf",a*type90*dm); else if(b == 93) printf("%.2lf",a*type95*dm); else if(b == 97) printf("%.2lf",a*type97*dm); } else if('e' == c){ if(b == 90) printf("%.2lf",a*type90*de); else if(b == 93) printf("%.2lf",a*type95*de)
; else if(b == 97) printf("%.2lf",a*type97*de); } else printf("你輸錯了!"); return 0; }

⒊ 給一個不多於5位的正整數,求出它是幾位數,並計算組成該整數的每位上的數字的和。

#include<stdio.h>
int main()
{
	printf("輸入一個不多於5位的正整數\n");
    int x,sum=0,count=0;
    scanf("%d",&x);
    //注意求單個數的方法,把數分解
    if(x>0)count++,sum+=x%10,x/=10;
    if(x>0)count++,sum+=x%10,x/=10;
    if(x>0)count++,sum+=x%10,x/=10;
    if(x>0)count++,sum+=x%10,x/=10;
    if(x>0)count++,sum+=x%10,x/=10;
    //以後可以用迴圈解決 
    printf("數字的和=%d\n位數=%d",sum,count);
    return 0;
} 

⒋ 輸入三角形的三邊a,b,c,判斷能否構成三角形,輸出直角、等邊或者等腰三角形。

#include<stdio.h>
int main()
{
    double a,b,c;
    printf("輸入三角形的三邊a,b,c\n");
    scanf("%lf%lf%lf",&a,&b,&c);
    if(a+b>c && a+c>b && b+c>a){
    printf("是三角形,");
    if(a*a+b*b == c*c || a*a == b*b+c*c || a*a+c*c == b*b){
    printf("這是直角三角形。\n");
    }
    if(a == b && b==c){
    printf("這是等邊三角形。\n");
    }
    else if(a == b || b ==c || a == c){
    printf("這是等腰三角形。\n");
    }
    	}
    else printf("不是三角形。\n") ;
    return 0;
} 

⒌ 輸入某學生語文課程的成績,輸出該成績的等級。判斷規則為:如果成績在90-100的範圍內,則等級為A;若成績在80-89的範圍內,則等級為B;若成績在70-79的範圍內,則等級為C;若成績在60-69的範圍內,則等級為D;若少於60分,則等級為F。(要求:用switch語句實現。)

#include<stdio.h>
 int main()
 {
 	printf("請輸入一個成績\n");
 	double s;
 	scanf("%lf",&s);//選好判斷量,整除10縮小
 	switch((int)(s/10)){
 	case 10:
 	case 9:
             printf("等級為A\n");break;
 	case 8:
             printf("等級為B\n");break;
 	case 7:
             printf("等級為C\n");break;
 	case 6:
             printf("等級為D\n");break;
	default:
             printf("等級為F\n");break;
 			}
 	return 0;
  } 

6、輸入四個整數,按大小順序輸出(要求按四個變數的輸入順序依次輸出)。

 #include<stdio.h>
 int main()
  {
  	double t,a,b,c,d;
  	printf("請輸入4個數:\n");
  	scanf("%lf%lf%lf%lf",&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("由大到小輸出:%d %d %d %d\n",a,b,c,d);
  	return 0;
 }

7、輸入一個一元二次方程,根據實際情況,判斷輸出等根、實根和虛根的值。

#include"math.h"
#include"stdio.h"
int main()
{
    double a,b,c,d,n;
    printf("請輸入3個數a,b,c(形如ax*x+bx+c=0)\n");
    //ax*x+bx+c=0,注意數學求解方法
    scanf("%lf%lf%lf",&a,&b,&c);
    d= sqrt(b*b-4*a*c);
    n=(int)d;
    if(n>0) printf("%lf\n%lf\n",(-b+d/(2*a)),(-b-d/(2*a)));
    else if(n == 0) printf("%lf\n",-(b/(2*a)));
    else if(n<0) printf("實部%lf虛部%lf\n實部%lf虛部%lf\n"
                        ,-b/(2*a),-d/(2*a),-b/(2*a),-d/(2*a));
    return 0;
}

##3個題目寫實驗報告!##
8、輸入一個數,判斷是否能同時被3和5整除,輸出“YES”或“NO”。

 #include<stdio.h>
 int main()
 {
 	int a;
 	printf("輸入一個數\n"); 
 	scanf("%d",&a);
 	if(a%3 == 0 && a%5 == 0) printf("YES\n");
 	else printf("NO\n");
 	return 0;
 }

9、 已知三個數a,b,c,找出最大值放於max中。

#include<stdio.h>
int main()
{
	double a,b,c,max;
	printf("輸入3個數\n"); 
	scanf("%lf%lf%lf",&a,&b,&c);
	if(a>b) max=a;
	else max=b;
	if(max<c) max=c;
	printf("max=%d",max);
	return 0;
}

10、有一分段函式:用scanf函式輸入x的值(分別為x<1,1~10,>=10三種情況),求y值。
這是函式。

#include<stdio.h>
int main()
{
    double x,y;
    printf("輸入1個數\n");
    scanf("%lf",&x);
    y=(int)x;
    if(y<1) printf("y=%lf\n",x);
    else if(y >= 1 && x<10) printf("y=%lf\n",2*x-1);
    else printf("y=%lf\n",3*x-11);
    return 0;
}