2016年10月23日 星期日

C 格式化輸入輸出

1. 除錯題

#include<stdio.h>
#include<stdlib.h>
int main(){
    int num=100;
    printf("我只喝%d%%純果汁\n",num);
    /* 輸出結果應為 我只喝100%純果汁*/
    system("pause");
    return 0;
}

2. 除錯題

#include<stdio.h>
#include<stdlib.h>
int main(){
    float num1=123.456;
    double num2=234.567;
    printf("num1=%f\n",num1);
    printf("num2=%f\n",num2);
    system("pause");
    return 0;
}

3. 除錯題

#include<stdio.h>
#include<stdlib.h>
int main(){
    int num;
    printf("請輸入一個整數值: ");
    scanf("%d",&num);
    printf("您輸入的整數值: %d\n",num);
    system("pause");
    return 0;
}

4. 除錯題

#include<stdio.h>
#include<stdlib.h>
int main(){
    char ch;
    int int_num;
    float float_num;
    double double_num;
    printf("請輸入一個字元: ");
    scanf("%c",&ch);
    printf("請輸入一個整數: ");
    scanf("%d",&int_num);
    printf("請輸入一個float浮點數: ");
    scanf("%f",&float_num);
    printf("請輸入一個double浮點數: ");
    scanf("%lf",&double_num);
    printf("您輸入的字元為%c\n",ch);
    printf("您輸入的整數為%d\n",int_num);
    printf("您輸入的float浮點數%f\n",float_num);
    printf("您輸入的double浮點數%lf\n",double_num);
    system("pause");
    return 0;
}

5. 除錯題

#include<stdio.h>
#include<stdlib.h>
int main(){
    int hour,min,sec;
    int year,month,days;
    printf("請輸入現在時間(hour,min,sec): ");
    scanf("%d:%d:%d:",&year,&month,&days);
    printf("\n請輸入今天日期(year,month,days):");
    scanf("%d-%d-%d",&year,&month,&days);
    printf("現在時間:%d點%d分%d秒\n",year,month,days);
    printf("今天日期:西元%d年%d月%d日\n",year,month,days);
    system("pause");
    return 0;
}

6. (觀察 轉換規格, 轉換修飾詞, 旗標欄位與寬度,精確度欄位)列為一段 完整程式碼,請寫出執行結果,並以程式驗證右方的答案。


7. 請用程式撰寫以下的描述.

(1) 宣告三個整數變數

 (2) 顯示提示文字:請輸入整數(ex. 12 15 18) 

(3) 擷取使用者輸入的三個整數

 (4) 輸出使用者的輸入值

#include <stdio.h>
#include <stdlib.h>
int main(){
    int num1, num2, num3;
    printf("請輸入3個整數:");
    scanf("%d %d %d",&num1, &num2, &num3);
    printf("%d %d %d\n",num1, num2, num3);
    system("pause");
    return 0;
}

8. 請用程式撰寫以下的描述 

(1) 設計一個可以讓使用者輸入 學號(stud_no), 姓名(stud_name),國 文(chin_score),

  英文 (eng_score), 數學 (math_score) 

(2) 輸入成績後, 寫幾行指令詢問使用者是否要繼續? 

  例如: Do you want to continue(y/n)?

(3) 計算本次考試的平均成績(avg_score),

  使用公式:  (國文分數× 2 +英文分數 + 數學分數 ×2 )/ 5

 (4) 輸出成績( 結果參考如下 ~~~)

#include<stdio.h>
#include<stdlib.h>
int main(){
    float std_no,std_name,chi_score,math_score,eng_score;
    double average;
    char chl,new_line;
    /*輸入資料*/
    printf("請輸入學號:");
    scanf("%d,std_no");
    printf("請輸入姓名:");
    scanf("%s,std_name");
    /*-------------*/
    printf("****>>>請輸入國文成績:");
    scanf("%d",&chi_score);
    printf("****>>>請輸入數學成績:");
    scanf("%d",&math_score);
    printf("****>>>請輸入英文成績:");
    scanf("%d",&eng_score);
    /*--------------*/
   // scanf("%c",&new_line);
    fflush(stdin);
    printf("Do you want to continue(yes/no)?");
    scanf("%c",&chl);
    printf("國文分數*****>>%.1f\n",chi_score);
    printf("數學分數*****>>%.1f\n",math_score);
    printf("英文分數*****>>%.1f\n",eng_score);
    average = (chi_score*2 + eng_score + math_score*2)/5.; 
    printf("平均分數:%.1f",average);
    system("pause");
    return 0;
}

9. 下列程式中執行後:


10. 下列程式中執行後 :

(1) 如輸入任意三個字元 , 然後按 Enter,則輸出結果為? 

(2) 如輸入任意二個字元 , 然後按 Enter, 則結果如何?

#include<stdio.h>
#include<stdlib.h>
int main(){
    char c1,c2,c3;
    printf("請輸入三個字元:");
    scanf("%c %c",&c1,&c2);
    scanf("%c",&c3);
    printf("c1=%c ASCII code=%d\n",c1,c1);
    printf("c2=%c ASCII code=%d\n",c2,c2);
    printf("c3=%c ASCII code=%d\n",c3,c3);
    system("pause");
    return 0;
}

11.下列程式中執行後:

 (1) 第 9 行輸入一個數字後按 Enter 鍵後 , 則結果如何? 

(2) 第 15 及 17 行輸入資料後按 Enter, 則結果如何 


12.下列程式中執行後 : 

(1) 輸入兩個字元 , 則結果如何? 

(2) 輸入兩個以上的字元, 則結果如何? 

(3) 輸入兩個字元及一串數字, 則結果如何?


13.下列程式中執行後 ,:

(1) 輸入兩個字元 , 則結果如何? 


14.設計一個程式:可輸入華式溫度,並將其轉換為攝氏溫度( 轉換公 式: C=(F-32)× (5÷9))

#include<stdio.h>
#include<stdlib.h>
int main(){
    int f;  //華氏溫度
    float c; //攝氏溫度 
    printf("");
    printf("****************>>>>>\n");
    printf("請輸入華氏溫度:");
    scanf("%d",&f);
    c=(f-32)*((float)5/9);
    printf("****************>>>>>\n");
    printf("轉換結果為攝氏: %.2f\n",c);
    system("pause");
    return 0;
}

15.試將下列三個句子使用 printf() 函式搭配欄位寬加以輸出: 

#include <stdio.h>
#include <stdlib.h>
int main(){
    double num1, num2, num3;
    num1 = 95.48;
    num2 = 88.72;
    num3 = 90.53;
    printf("C language %30lf\n",num1);
    printf("Accounting %30lf\n",num2);
    printf("Calculus %30lf\n",num3);
    system("pause");  
    return 0;  
}

16.設計一個程式:開心高中週考考完三科(國文, 英文, 數學), 某學 生分數為 80,70,50 , 設計可讓使用者可以輸入這三科成績, 然後於螢幕上 輸出每筆成績與計算三科成績的總分與平均成績 (註: 請自行設計 標題) 


17.請設計一 C 程式,可以讓使用者進行日期輸入,格式 YYYY-MM-DD,並顯示輸入的結果。 


18.下面的這個程式是進行除法運算, 並顯示運算結果的百分比, 但 百分比符號無法顯示, 請問應如何修改 ? 

#include <stdio.h>
#include <stdlib.h>
int main(){
    float i=9, j=15;
    printf("百分比:%.1f \%%\n", (i/j)*100);
    system("pause");
    return 0;
}

19.下列為一段完整程式碼,請寫出執行結果(以程式驗證右方的答 案)

#include <stdio.h>
#include <stdlib.h>
int main (){
    char str[]="***";
    int   a=13;
    float b=123.14159;
    /* 輸出結果       */
    printf("1234567890<-字元數標示行\n");
    printf("%6s\n",str);
    printf("%-6s\n",str);
    printf("a=%.6d\n",a);
    printf("a=%06d\n",a);
    printf("a=%6d\n",a);
    printf("b=%6.2f\n",b);
    printf("b=%12.5f\n",b);
    system("pause");  
    return 0;
}

20.下面這個程式進行除法運算,如果想得到較精確的結果,請問當 中有何錯誤?

#include <stdio.h>
#include <stdlib.h>
int main(void){
    double x=10, y=3;
    printf("x/y=%f\n",x/y);
    system("pause");
    return 0;
}

21有個學生為了修正上一個問題之錯誤,而改寫程式如下,但結果 仍然不對,請問錯誤在哪? 

#include<stdio.h>
#include<stdlib.h>
int main(void){
    int x=10, y=3;
    float z;
    z=((float)x/y);
    printf("x/y=%f\n",z);
    system("pause");
    return 0;
}  

沒有留言:

張貼留言