C語言基礎(chǔ)(一)

目的:掌握用C語言編程的基本技能
內(nèi)容: 1. 注釋的使用
???2. #include的作用
???3. main函數(shù)的使用
???4. printf函數(shù)格式化輸出
???5.scanf函數(shù)格式化輸入
???6.C語言基本數(shù)據(jù)類型
???7.變量
???8. 運算符
???9.循環(huán):if
???10.工資計算實戰(zhàn)
???11.年齡轉(zhuǎn)換實戰(zhàn)

注釋的使用

  1. //注釋內(nèi)容?單行注釋:注釋內(nèi)容較簡短且為一行的情況下使用
  2. /* 注釋內(nèi)容 */?多行注釋:注釋內(nèi)容較多且為多行的情況下使用
  3. / ** 注釋內(nèi)容 */?文檔注釋(用于生成開發(fā)者文檔):java語言特有的注釋,其中的注釋內(nèi)容可以被JDK提供的工具javadoc所解析,生成一套能夠以網(wǎng)頁形式體現(xiàn)程序的說明文檔

#include的作用

  1. include---宏?用來導(dǎo)入頭文件。如果系統(tǒng)已經(jīng)提供某些功能的實現(xiàn),只需要使用include將這些功能所在的頭文件導(dǎo)入進(jìn)來
  2. < >?用來導(dǎo)入系統(tǒng)提供的類庫,如:stdio.h?stdlib.h?math.h?string.h
    " "?用來導(dǎo)入自己定義的頭文件,如:calculate.h
  3. include<stdio.h>? 編譯器首先從系統(tǒng)的類庫里面去查找這個頭文件,如果沒有,再到自己的文件中查找,否則報錯

main函數(shù)的使用

  1. main函數(shù)=代碼塊=完成特定功能,所有程序的入口都是main函數(shù)
  2. int返回值,用來記錄當(dāng)前程序的運行狀態(tài),0:正常結(jié)束?資源自由分配,非0:?1?異常結(jié)束?沒收資源
  3. int argc:參數(shù)個數(shù)?argument count;char* argv[ ]:每個參數(shù)組成的字符串?dāng)?shù)組


    main函數(shù)的使用

printf函數(shù)格式化輸出

  1. printf輸出語句,用來讓終端輸出數(shù)據(jù)
  2. 打印常量字符串:printf("hello world");
  3. 轉(zhuǎn)義字符:\n表示回車換行,從當(dāng)前位置移到下一行的開頭;\r表示回車,從當(dāng)前位置移到本行的開頭;\t表示水平制表符,從當(dāng)前位置移到下一個tab位置


    printf函數(shù)格式化輸出

scanf函數(shù)格式化輸入

  1. scanf輸入語句,用來向終端輸入數(shù)據(jù)
  2. 當(dāng)用戶在終端輸入數(shù)據(jù)時,數(shù)據(jù)會被存放到緩沖流,scanf用于在緩沖流中找到數(shù)據(jù)并將其放入到給定的位置
  3. 放入到給定的位置就是保存輸入的數(shù)據(jù),保存數(shù)據(jù)需要用到變量,我們只需要把數(shù)據(jù)送到對應(yīng)變量的地址就可以存儲該數(shù)據(jù),并通過該變量使用該數(shù)據(jù)。所以使用&獲得變量pwd的地址
int pwd=0;
  scanf("%d",&pwd);
  printf("pwd=%d\n",pwd);
  1. 利用如下格式可一次性輸入兩條數(shù)據(jù)
int num1,num2;
  scanf("%d %d",&num1,&num2);
  printf("%d %d\n",num1,num2);
  1. 注意:不要在scanf里隨便寫內(nèi)容,scanf函數(shù)中" "里的內(nèi)容是用來控制用戶輸入格式的。如下,此時輸入數(shù)據(jù)必須按rose+數(shù)據(jù)的格式,才可以將數(shù)據(jù)送入到變量中
int pwd=0;
  scanf("rose%d",&pwd);
  printf("pwd=%d\n",pwd);

C語言基本數(shù)據(jù)類型

1.首先明確, C語言并沒有具體規(guī)定哪個基本類型應(yīng)該有多少字節(jié)數(shù),而且這個與OS、編譯器有關(guān)

  1. 雖然16位、32位或者64位的機子各種類型并不一樣,但有幾條規(guī)則(ANSI / ISO制定):
  • short 至少占用2個字節(jié)
  • int 建議為一個機器字長,32位環(huán)境下為4個字節(jié),64位環(huán)境下為8個字節(jié)
  • short 的長度不能大于int,long 的長度不能小于int
  1. 基本數(shù)據(jù)類型參考:
  • char 字符,如:'a','d'
  • short 短整型
  • int 整型,如:1,67
  • long 長整型
  • float 單精度浮點數(shù),如:1.5,78.0
  • double 雙精度浮點數(shù)
    可自己使用 printf("%d\n",sizeof(int)); 測試具體的數(shù)據(jù)
  1. 控制輸出格式:
  • %md:要求輸出字段寬度為m,右對齊,不夠左端補空格,大于m按實際輸出,如%3d
  • %0md:要求輸出字段寬度為m,右對齊,不夠左端補0,大于m按實際輸出,如%02d
  • %m.nd:要求輸出字段寬度為m,右對齊,后面n個位置當(dāng)作小數(shù),沒有的補0,最前面m-n個沒有的補空格,如%3.2d
  1. 注意:
  • C語言中printf輸出float和double都可以用%f,而double型數(shù)據(jù)還可以用%lf
  • scanf當(dāng)中,若是對雙精度的變量賦值,必須是%后跟lf;printf當(dāng)中可以用%f也可以用%lf
  • printf()只會看到雙精度數(shù),printf的%f格式總是得到double,所以在printf()中使用%f和%lf的輸出顯示效果是一樣的
  • 對于變量來說,double類型比float類型的精度要高。double精度更高是指它存儲的小數(shù)位數(shù)更多,但是輸出默認(rèn)都是6位小數(shù)。如果你想輸出更多小數(shù),可以自己控制,比如%.10lf就輸出10位小數(shù)

變量

  1. 變量是程序可操作的存儲區(qū)的名稱;變量的類型決定了變量存儲的大小;變量的名稱可以由下劃線、字母、數(shù)字組成,它必須以字母或者下劃線開頭。簡單來說,變量就是用來記錄數(shù)據(jù)的。
  2. 變量的聲明:沒有分配內(nèi)存空間,使用的時候才會分配,如 int a;
  3. 變量的定義:立刻為我們分配內(nèi)存空間?賦初值,如 int a = 0;
  4. 變量的使用:
int num1,num2;
  scanf("%d %d",&num1,&num2);
  printf("%d %d\n",num1,num2);
  1. bool類型的變量(需要導(dǎo)入stdbool.h),其值:非零即真(1),零為假(0)
bool status=-3;//false
  printf("%d\n",status);//結(jié)果是1    

運算符

  1. 算術(shù)運算符:
  • +?
  • -?
  • *?
  • /?取整
  • %?取余
  • ++?自增運算符,整數(shù)值加1
  • --?自減運算符,整數(shù)值減1
    注意:a++是先賦值后運算,++a是先運算后賦值
  1. 邏輯運算符:
  • && ?,如果兩個操作數(shù)都非零,則條件為真
  • || ?,如果兩個操作數(shù)有任意一個非零,則條件為真
  • *? ,逆轉(zhuǎn)操作數(shù)的邏輯狀態(tài)
  1. 關(guān)系運算符
  • ?==?檢查兩個操作數(shù)的值是否相等,如果相等則條件為真
  • ?!=?檢查兩個操作數(shù)的值是否相等,如果不相等則條件為真
  • ?>?判斷左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真
  • ?<?判斷左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真
  • ?>=?判斷左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是則條件為真
  • ?<=?判斷左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是則條件為真
  1. 賦值運算符
  • =?C=A+B表示將A+B的值賦給C
  • +=?C += A相當(dāng)于C = A + C
  • -=?C -= A相當(dāng)于C = A - C
  • *=?C *= A相當(dāng)于C = A * C
  • /=?C /= A相當(dāng)于C = A / C
  • %=?C %= A相當(dāng)于C = A % C

循環(huán):if

  1. if語句的形式:C語言把任何非0和非null的值假定為true,把0或null假定為false


  2. 問號表達(dá)式(也稱之為三目運算符):
    (表達(dá)式1)?(表達(dá)式2):(表達(dá)式3),如果表達(dá)式1成立則執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3


a > b ? s = a + b : s = a - b

這里的例子:如果a>b,那么s的值為a+b,否則s的值為a-b

  1. 逗號表達(dá)式:
    將兩個及以上的式子連接,從左往右逐個計算表達(dá)式,整個表達(dá)式的值為最后一個表達(dá)式的值
    例如:(1+2,3+5)稱為逗號表達(dá)式,其求解過程先1+2,后3+5,整個表達(dá)式的值為8
  int temp = 1;
  if(temp--,temp){
      printf("temp是1"); 
  }else{
      printf("temp是0");
  }
  
  //輸出結(jié)果:temp是0 

工資計算實戰(zhàn)

#include <stdio.h>

int main(){
  int salary = 0;//記錄工資
  int tax = 0;//稅 
  
  //接收輸入
  printf("請輸入工資:"); 
  scanf("%d",&salary);
  
  //開始計算 
  if(salary <= 5000){
      
  } else if(salary > 5000 && salary <= 8000){
      tax= (salary - 5000)*0.1;
  } else if(salary > 8000 && salary <=10000){
      tax = (salary - 8000)*0.15 + 3000*0.1;
  } else{
      tax = (salary - 10000)*0.2 + 2000*0.15 + 3000*0.1;
  }
  
  //輸出工資 
   printf("到手工資:%d",salary -tax);
   return 0;
}

年齡轉(zhuǎn)換實戰(zhàn)

#include <stdio.h>
//輸入年齡 20
//your age is twenty; 

int main(){
  int age = 0;
  
  //保存?zhèn)€位數(shù) 21%10 = 1 
  char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"}; 
  //保存10-19
  char* temp[] = >{"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","ninet>een"};
  //保存十位 
  char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; 
  
  printf("請輸入年齡:");
  scanf("%d", &age);
  
  char *name;//保存每次取出的字符串 
  if(age < 10){
      //直接訪問各位數(shù)數(shù)組
      name = gewei[age];
  }else if(age >= 10 && age <= 19){
      //獲取個位數(shù)  
      int index = age % 10;
      name = temp[index];
  } else{
      //獲取個位數(shù) 
      int g = age % 10; 
      //獲取十位數(shù) 
      int s = age / 10;
      //取出對應(yīng)的單詞
      int sString = shiwei[s-2];
      int gString = gewei[g];
      
      printf("your age is %s-%s\n"
      ,sString,gString); 
      
      //程序還未運行完畢就提前結(jié)束
      return 0; 
  } 
  
  printf("your age is %s\n",name);
   
  return 0;
}

注:僅用于1~99歲的轉(zhuǎn)換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容