1. 程式人生 > 其它 >【C語言】第3章 最簡單的C程式設計

【C語言】第3章 最簡單的C程式設計

第3章 最簡單的C程式設計

順序程式設計
資料的表現形式及其運算

常量、變數、常變數、識別符號

資料型別

整型、浮點型

  1. 整型資料的分類
    最基本的整型型別
    基本整型(int型):佔2個或4個位元組
    短整型(short int):VC++6.0中佔2個位元組
    長整型(long int):VC++6.0中佔4個位元組
    雙長整型(long long int):C99新增的

  2. 整型變數的符號屬性
    整型變數的值的範圍包括負數到正數
    可以將變數定義為“無符號”型別
    擴充的整形型別:

    有符號基本整型 [signed] int;
    無符號基本整型 unsigned int;
    有符號短整型 [signed] short [int];
    無符號短整型 unsigned short [int];
    有符號長整型 [signed] long [int];
    無符號長整型 unsigned long [int]
    有符號雙長整型 [signed] long long [int];
    無符號雙長整型 unsigned long long [int]

字元型資料
  1. 字元與字元程式碼
    大多數系統採用ASCII字符集
    字母:A ~Z,a ~z
    數字:0~9
    專門符號:29個:! ” # & ‘ ( ) *等
    空格符:空格、水平製表符、換行等
    不能顯示的字元:空(null)字元(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等

字元’1’和整數1是不同的概念:

字元’1’只是代表一個形狀為’1’的符號,在需要時按原樣輸出,在記憶體中以ASCII碼形式儲存,佔1個位元組
整數1是以整數儲存方式(二進位制補碼方式)儲存的,佔2個或4個位元組

  1. 字元變數
    用型別符char定義字元變數
浮點型資料

浮點型資料是用來表示具有小數點的實數
float型(單精度浮點型)
編譯系統為float型變數分配4個位元組
數值以規範化的二進位制數指數形式存放
double型(雙精度浮點型)
編譯系統為double型變數分配8個位元組
15位有效數字
long double(長雙精度)型

運算子和表示式

1、基本的算術運算子

2、自增、自減運算子

3、算術表示式和運算子的優先順序與結合性

4、不同型別資料間的混合運算

%c、%d

5、強制型別轉換運算子

系統自動進行的型別轉換
強制型別轉換

6、C運算子

算術運算子 (+ - * / % ++ --)
關係運算符 (> < == >= <= !=)
邏輯運算子 (!&& ||)
位運算子 (<< >> ~ | ∧ &)
賦值運算子 (=及其擴充套件賦值運算子)
條件運算子 (?:)

逗號運算子 (,)
指標運算子 (*和&)
求位元組數運算子 (sizeof)
強制型別轉換運算子 ( (型別) )
成員運算子 (. 和 ->)
下標運算子 ([ ])
其他 (如函式呼叫運算子())

C語言的作用和分類

C語句分為以下5類:
控制語句: if、switch、for、while、do…while、continue、break、return、goto等
函式呼叫語句
表示式語句
空語句
複合語句

and 賦值語句(賦值運算子、複合的賦值運算子、賦值表示式、賦值過程中的型別轉換、變數賦初值)、輸入輸出語句

//給出三角形的三邊長,求三角形面積。

#include <stdio.h>
#include <math.h>
int main ( )
{ double a,b,c,s,area; 
   a=3.67;                                
   b=5.43;                            
   c=6.21;                            
   s=(a+b+c)/2;	                      
   area=sqrt(s*(s-a)*(s-b)*(s-c));   
   printf("a=%f\tb=%f\t%f\n",a,b,c);     
   printf("area=%f\n",area);                
   return 0;
 }
求a*x^2+b*x+c = 0方程的根
▲>0
    
#include <stdio.h>
#include  <math.h>
int main ( ) 
{double a,b,c,disc,x1,x2,p,q;
  scanf("%lf%lf%lf",&a,&b,&c);
  disc=b*b-4*a*c;
  p=-b/(2.0*a);
  q=sqrt(disc)/(2.0*a);
  x1=p+q;   x2=p-q;
  printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
  return 0;
}
有關資料輸入輸出的概念

(1) 所謂輸入輸出是以計算機主機為主體而言的
從計算機向輸出裝置(如顯示器、印表機等)輸出資料稱為輸出
從輸入裝置(如鍵盤、磁碟、光碟、掃描器等)向計算機輸入資料稱為輸入

(2) C語言本身不提供輸入輸出語句
輸入和輸出操作是由C標準函式庫中的函式來實現的
printf和scanf不是C語言的關鍵字,而只是庫函式的名字
putchar、getchar、puts、gets

(3) 在使用輸入輸出函式時,要在程式檔案的開頭用預編譯指令
#include <stdio.h> 或 #include ″stdio.h″

用printf函式輸出資料:

printf(格式控制,輸出表列)
  例如:
  printf(”i=%d,c=%c\n”,i,c);

%d輸出int型資料、%ld輸出long型資料、%c輸出一個字元、%s輸出一個字串、

%f輸出實數用小數形式輸出
	不指定資料寬度和小數位數,用%f
	指定資料寬度和小數位數。用%m.nf
	輸出的資料向左對齊,用%-m.nf
%s輸出以指數形式輸出實數
	printf(”%e”,123.456);//1.234560 e+002
%m.ne
	printf(”%13.2e”,123.456);//    1.23 e+002(前面有4個空格)
用scanf函式輸入資料

scanf(格式控制,地址表列)
	scanf("a=%f,b=%f,c=%f",&a,&b,&c);
 scanf(”%f%f%f”,a,b,c);   錯
 scanf(”%f%f%f”,&a,&b,&c);   對
 
對於scanf("a=%f,b=%f,c=%f",&a,&b,&c);
        1 3 2↙            錯
       a=1,b=3,c=2↙        對
       a=1 b=3 c=2↙         錯
            
對於scanf(”%c%c%c”,&c1,&c2,&c3);
 abc↙        對
 a b c↙      錯
字元資料的輸入輸出
用putchar函式輸出一個字元
	putchar(c) 
	putchar(’\101’)   (輸出字元A)
	putchar(’\’’)        (輸出單撇號字元’)
用getchar函式輸入一個字元
	getchar( )

從鍵盤輸入BOY三個字元,然後把它們輸出到螢幕。
#include <stdio.h>
int  main ( )                
{ char a,b,c; 
   a=getchar(); 
   b=getchar(); 
   c=getchar(); 
   putchar(a); putchar(b); putchar(c); 
   putchar('\n');                
   return 0;
 }

#include <stdio.h>
int  main ( )                
{  putchar(getchar());
   putchar(getchar());
   putchar(getchar());                
   putchar('\n');                
   return 0;
 }