《明解C語言》第一章學習筆記

2020-10-23 11:00:26

學習目標:

學習《明解C語言》第3版
第一章
初始C語言


學習內容:

1-1 顯示計算結果

1-2 變數
1-3 輸入與顯示


學習時間:

2020年10月22日晚7-9時

學習筆記

1-1顯示計算結果

1.計算整數的和並顯示結果

#include<stdio.h>  //注意不要和studio混淆,stdio是standard I/O(標準輸入輸出)的縮寫
int main(void)
{

  printf("%d",15+37);  /*用十進位制數顯示整數15和37的和*/
  return 0;
  }

基本程式和固定程式碼

#include<stdio.h>
int main(void)
{

   /*...*/
   return 0;
               }

1.註釋為//,可以把想要表達的意思以註釋的形式記錄下來。

2.printf函數:格式化輸出函數

如果想要使用某個函數的功能,就必須通過函數呼叫(function call)來實現。

ex:呼叫printf函數顯示15和37的和

函數呼叫:printf /函數名/ ( 「%d」 /實參/ , 15+37 /實參/);

顯示結果為 52.

/*呼叫此函數既發出了「顯示這些內容」的請求,然後通過括號內的實參(argument)來傳遞想要顯示的內容。當實參超過兩個時,需要用逗號隔開 */

/* 注意!! 原則上語句必須以分號結尾! */

2.換行的必要性

1-3

#include<stdio.h>
int main (void)
{
  printf("15與37的和是%d。/n",15+37);
  return 0;
  }

1.%d指定了實參要以十進位制數的形式顯示,這就是轉換說明(conversion specification)。
2.\n 是代表換行的符號,\ 和 n 組成的一個特殊的換行符。
/* 畫面中不會顯示\n,而是輸入一個(看不見的)換行符。

!大多數執行環境下,程式執行後,程式的輸入結果後面都會緊跟著提示符。若在程式後輸入換行符,則不會緊跟著提示符。

練習1-1

  /* 編寫一段程式,計算出15減去37的結果,並以「15減去37
的結果時-22。」的格式進行顯示。*/
 
#include <stdio.h>
 
int main (void)
{
    printf("15減去37的結果是%d\n",15-37);
 
    return 0;
 }

練習1-2

/*  換行顯示天地人  */
 
#include <stdio.h>
 
int main(void)
{
	printf("天\n地\n人\n");
	
	return 0; 
}

練習1-3

/*  換行表示喂!您好!再見!  */
#include <stdio.h>
 
int main(void)
{
	printf("喂!\n\n您好!\n再見。");
	return 0; 
 } 

1-2 變數

1.為兩個變數賦整數值並顯示

#include<stdio.h>
int main(void)
{
    int vx,vy;
    vx= 57;
    vy = vx + 10;
   printf("vx的值是%d。\n",vx);
   printf("vy的值是%d。\n",vy);
return 0;
}

int vx ; /*變數 */
int vy ; /*變數 */
宣告兩個變數。
vx = 54;
vy = vx +10;
為兩變數賦值。

2.初始化和賦值
初始化:在生成變數的時候放入數值。
賦值:在意生成的變數中放入數值。

細的 = 表示初始化,粗體的 = 表示賦值。

練習1-4

/*   在int型變數的宣告中為變數賦一個實數值的初始值
(如3.14或5.7等)會怎樣?   */
 
#include <stdio.h>
 
int main(void)
{
	int x = 3.14;
	printf("%d",x); 
	return 0;
 } 

1-3 輸入和顯示

1.格式化輸入函數scanf

#include<stido.h>
int main(void)
{
  int no;
  pritnf("請輸入一個整數:");
  scanf("%d",&no);   //和printf不同,此處需要使用&!!!
  printf("您輸入的是%d。\n",no);
  return 0;
  }

與printf函數不同的是,在使用scanf函數進行讀取時,變數名前必須加上一個特殊符號&!

// printf("%d",no) //scanf("%d",&no)

練習1-5

/*   讀取一個整數並顯示該整數加上12之後的結果。   */
 
#include <stdio.h>
 
int main(void)
{
	int no;
	printf("請輸入一個整數:");scanf("%d",&no);
	printf("該整數加上12的結果是%d。", no + 12);
	return 0;
 } 

練習1-6

/*   讀取一個整數並顯示該整數減去6之後的結果   */
 
#include <stdio.h>
 
int main(void)
{
	int no;
	printf("請輸入一個整數:");scanf("%d",&no);
	printf("該整數減去6的結果是%d",no - 6);
	
	return 0; 
 } 

2.輸出函數puts

#include<stdio.h>
int main(void)
{
    int n1,n2;
    puts("請輸入兩個整數。");
    printf("整數1:");scanf("%d",&n1);
    printf("整數2:");scanf("%d",&n2);
    
    printf("它們的和是%d。\n", n1+n2);
   
    return 0;
    }

puts("…")與printf("…\n")的功能基本相同。
puts函數可以按順序輸出作為實參的字串,並在結尾換行。

// puts函數的實參只能有一個。且符號%的顯示方法和printf函數有所不同。

練習1-7

/*   用puts函數輸出天地人   */
 
#include <stdio.h>
 
int main(void)
{
	puts("天");
	puts("地");
	puts("人"); 
	
	return 0;
 } 

練習1-8

/*  顯示讀取到的兩個整數27與35的乘積。   */
 
#include <stdio.h>
 
int main(void)
{
	int a,b; 
	
	puts("請輸入兩個整數。");
	printf("整數1:");
	scanf("%d",&a);
	
	printf("整數2:");
	scanf("%d",&b);
	
	printf("它們的乘積是%d",a * b);
	
	return 0;
}

練習1-9



/*   顯示讀取到的三個整數的和   */

#include<stdio.h>
int main(void)
{
int a,b,c;
puts("請輸入三個整數");
printf("整數1:");scanf("%d",&a);
printf("整數2:");scanf("%d",&b);
printf("整數3:");scanf("%d",&c);

printf("它們的和是%d",a+b+c);

return 0;
}