C Primer Plus 第5章 運算符、表達式和語句 編程練習及答案

一、編寫一個程序,將用分鐘表示的時間轉換成以小時和分鐘表示的時間。使用#define或const來建立一個表明60的符號常量。使用while循環來容許用戶重複鍵入值,而且當鍵入一個小於等於0的時間終止循環。編程

#include 
#define HOUR 60

int main()
{
    int minutes;
    printf("Please enter the minutes:");
    scanf("%d",&minutes);
    while(minutes>0)
    {
        printf("%d hour,%d minutes.\n",minutes/HOUR,minutes%HOUR);
        printf("Please enter the minutes again:");
        scanf("%d",&minutes);
    }
    return 0;
}

二、編寫一個程序,此程序要求輸入一個整數,而後打印從輸入(包含)到比輸入大10(包含)的全部整數值(也就說,若是輸入是5,那麼輸出就從5到15)。要求在各個輸出之間用空格、製表符或換行符分開。函數

#include 
int main(void)
{
    int num,i;
    i=0;
    printf("Please input the number.\n");
    scanf("%d",&num);
    while(i++<11)
    {
        printf("%d ",num++);     
    }
    return 0;
}

三、編寫一個程序,該程序要求用戶輸入天數,而後將該值轉換爲週數和天數。例如,該程序將把18天轉換爲2周4天。用下面的格式顯示結果:ui

18 days are 2 weeks,4 days.設計

#include 
#define DAYS_W 7

int main(void)
{
    int days;
    printf("Please input the days:\n");
    scanf("%d",&days);
    while(days>0)
    {
         printf("%d days are %d weeks,%d days.\n",days,days/DAYS_W,days%DAYS_W);
         printf("Please input the days:\n");
         scanf("%d",&days);
    }

    return 0;
}

四、編寫一個程序,讓用戶按釐米輸入高度值,而後程序按釐米和英尺英寸顯示這個高度值。容許釐米和英尺英寸的值出現小數部分。程序容許用戶輸入,直到用戶輸入一個非正的數值。程序運行示例以下:code

Enter a height in centemeters:182input

182.0 cm = 5 feet,11.7 inchesit

Enter a height in centimeters  (<=0 to quit): 168io

168.0 cm = 5 feet ,6.1 inchesclass

Enter a height in centimeters  (<=0 to quit): 0變量

bye

#include 
#define INCH 2.54    //1 INCH = 2.54 CM

int main(void)
{
    float cm;
    printf("Enter a height in centimeters:");
    scanf("%f",&cm);
    while (cm>0)
    {
        printf("%.1f cm = %d feet,%.1f inches\n",cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12);
        printf("Enter a height in centimeters(<=0 to quit):");
        scanf("%f",&cm);
    }
    printf("bye\n");
    return 0;
}

五、改寫用來找到前20個整數以後的程序addemup.c(程序清單5.13)(若是你願意,能夠把addemup.c程序看做是一個計算若是您第一天獲得$1,次日獲得$2,以此類推,您在20天內會賺多少錢的程序)。修改該程序,目的是您能交互地告訴程序,計算將進行到哪裏。也就是說,有一個讀入的變量來代替20.

#include
int main(void)
{
    int count,sam,max;
    count=0;
    sam=0;
    printf("Input the max:\n");
    scanf("%d",&max);
    while(count++

六、如今修改編程練習5中的程序,使它可以計算整數平方的和。C沒有平方函數,可是您能夠利用n的平方是n*n的事實。

#include int main(void) { int count,sam,max; count=0; sam=0; printf("Input the max:\n"); scanf("%d",&max); while(count++#include int main(void) { int count,sam,max; count=0; sam=0; printf("Input the max:\n"); scanf("%d",&max); while(count++

 七、編寫一個程序,該程序要求輸入一個float型值,並打印該值的立方數。使用您本身設計的函數來計算該值的立方數並將其立方數打印出來。main()函數把輸入的值傳遞給該函數。

#include<stdio.h>
float cube(float n);
int main(void)
{
    float num;
    printf("Input a float:\n");
    scanf("%f",&num);
    printf("The cube of %f is %f.\n ",num,cube(num));
    return 0;
}
float cube(float n)
{
    return(n*n*n);
}

八、編寫一個程序,該程序要求用戶輸入一個華氏溫度。程序以double類型讀取溫度值,並將它做爲一個參數傳遞給用戶提供的函數Temperatures()。該函數將計算相應的攝氏溫度和絕對溫度,並以小數點右邊有兩位數字的精度顯示這三種溫度。它應該用每一個值所表明的溫度刻度來標識這3個值。下面是將華氏溫度轉換成攝氏溫度的方程:

Celsius = 1.8*Fahrenheit + 32.0;

一般用在科學上的絕對溫度的刻度是0表明絕對零,是可能溫度的下界。下面是將攝氏溫度轉換爲絕對溫度的方程:

kelvin = Celsius + 273.16

Temperatures()函數使用const來建立表明該轉換裏的3個常量的符號。main()函數將使用一個循環來容許用戶重複的輸入溫度,當用戶輸入Q或其餘非數字值時,循環結束。

#include<stdio.h>
void Temperatures(double);

int main(void)
{
    double fahrenheit;
    printf("Please input a fahrenheit:\n");
    while(scanf("%lf",&fahrenheit)==1)
    {
        Temperatures(fahrenheit);
        printf("Please input a fahrenheit:\n");
    }
    printf("End.\n");
    return 0;
}
void Temperatures(double num)
{
     const double a=1.8,b=32.0,c=273.16;
     printf("Fahrenheit = %lf\t",num);
     printf("Celsius = %lf\t",a * num + b);
     printf("Kelvin = %lf\n",a * num + b + c);

}
相關文章
相關標籤/搜索