1. 程式人生 > >C語言之變量和數據類型

C語言之變量和數據類型

更改 地址 輸入 name style span 控制臺 標示 otto

常量:程序在運行過程中無法對值進行更改。

變量:是在計算機內存空間一種表示,聲明變量將會向計算機內存申請存儲空間,用於保存數據,計算機的CPU會從內存中加載數據。

聲明變量:

數據類型 變量名[=];

也可以一次性聲明多個變量: 數據類型 變量名1,變量名2….變量名N;

變量的使用需要滿足:先聲明, 後賦值,在使用。

比如:

int a;

a=10;

int a=10;

標示符的命名規範:見名知意

  1. 有字母,數字和下劃線組成,不能有其他特殊字符,不能以數字開頭。
  2. 不能使用預留關鍵字. 比如int
  3. 嚴格區分大小寫。 City ,city是兩個變量
  4. 建議采用駝峰命名法:首單詞小寫,其他單詞的首字母大寫
    (employeeName)

數據類型

1、分為數值型、非數值型(char)

2、數值型又分為整形和浮點型

3、整形又分為長整型(long)、整形(int)、短整型(short)

4、浮點型分為單精度浮點型(float)、雙精度浮點型(double)

printf()/scanf():輸出和輸入

常用的占位符:%d 十進制的整型int , %f:浮點型float,默認精確到小數點後6,

%lf:雙精度浮點型double, %c:字符型char ,%s: 字符串

scanf(“%d”,&a);à &取地址符號

例一:

計算圓柱體積

float raduis,height,vol,pi=3.14;//聲明兩個變量分別用於保存半徑和高

printf("請輸入半徑:\n");

scanf("%f",&raduis);

printf("請輸入高:\n");

scanf("%f",&height);

vol = pi*raduis*raduis*height;

printf("圓柱的體積vol=%0.2f",vol);

例二:

//打印購物小票

float price=20,totalPrice,realPrice,disCount;//牙膏價格

float total,change;//付款金額和找零

int num;//要購買的牙膏的數量

printf("牙膏的價格為20元每只\n");

printf("請輸入購買牙膏的數量:\n");

scanf("%d",&num);//獲取輸入的數量

printf("請輸入折扣:\n");

scanf("%f",&disCount);//獲取輸入的折扣

printf("請輸入付款金額:\n");

scanf("%f",&total);//獲取付款金額

totalPrice = price*num;//計算總價(原價)

realPrice = (1- disCount)*totalPrice;//計算應付金額

change = total-realPrice;//計算找零

printf("***************購物小票**************\n");

printf("單價\t數量\t小計\n");

printf("%0.2f\t%d\t%0.2f\n",price,num,totalPrice);

printf("折扣:%0.2f,折扣價:%0.2f\n",disCount,disCount*totalPrice);

printf("應付:%0.2f,實付:%0.2f,找零:%0.2f\n",realPrice,total,change);

printf("************************************");

算術運算符:分為一元運算符和二元運算符

二元運算符(操作數有兩個):+,-,*,/,%(求余或取模)

一元運算符(操作數只有1):++(自加1),--(自減1)

int num=5;

printf("%d\n",num++);//5

printf("%d\n",num);//6

printf("%d\n",++num);//7

printf("%d\n",num);//7

printf("*************************\n");

printf("%d\n",num--);//7

printf("%d\n",num);//6

printf("%d\n",--num);//5

printf("%d\n",num);//5

類型轉換: 自動轉換和強制轉換

自動轉換:

1.兩種數據類型相互兼容

2.目標類型大於源類型--->範圍小的可以向範圍大的自動轉化

short--->int--->long--->float--->double

強制轉換:在強制轉換的過程中有可能會發生進度的丟失

語法: (數據類型)變量或數值;

int a=3,b=2;

float c,d,e,f;

c=a/b;//1.000000

d=(float)(a/b);//1.000000

e=(float)a/b;//1.500000

f=(int)c%a;//1.000000

getchar()putchar()的函數

  1. getchar()獲取用戶輸入的字符, 類似於scanf()
  2. putchar(char c):輸入字符到顯示器(控制臺), 類似於printf()

示例:

char c;

c = getchar();//scanf("%c",&c);

putchar(c); //printf("%c",c);

示例2

char a,b;

printf("請輸入兩個字符:");

a=getchar();

fflush(stdin);

b=getchar();

fflush(stdin);

putchar(a);

putchar(b);

putchar(‘\n‘);

作業1: 聲明兩個整型的變量用於接收用戶輸入的兩個整數,完成交換用戶輸入的值。

int a=10;

int b=5;

e a=5,b=10;

//1.獲取用戶輸入的兩個數值,並完成交換

int num1,num2,temp;

printf("請輸入num1的值:\n");

scanf("%d",&num1);

printf("請輸入num2的值:\n");

scanf("%d",&num2);

printf("交換前:num1=%d,num2=%d\n",num1,num2);

//交換num1num2的值

temp=num1;

num1=num2;

num2=temp;

printf("交換後:num1=%d,num2=%d\n",num1,num2);

作業2: 根據用戶輸入的上底,下底和高計算梯形的面積。

面積=(上底+下底)*/2;

//2.根據用戶輸入的上底,下底和高計算梯形的面積。

//面積=(上底+下底)*/2;

float top,bottom,height,s;

printf("請輸入梯形的上底:\n");

scanf("%f",&top);

printf("請輸入梯形的下底:\n");

scanf("%f",&bottom);

printf("請輸入梯形的高:\n");

scanf("%f",&height);

s=(top+bottom)*height/2;//計算面積

printf("梯形的面積為:%0.2f",s);

C語言之變量和數據類型