當前位置:首頁 » 編程語言 » c語言的變化量用什麼表示
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的變化量用什麼表示

發布時間: 2022-05-24 13:23:00

1. 在c語言中,程序運行期間,其值可以改變的量叫做()

在c語言中,程序運行期間,其值可以改變的量叫做變數。

當在窗體中設計用戶界面時,c語言會自動為產生的對象(包括窗體本身)創建一組變數,即屬性變數,並為每個變數設置其預設值。這類變數可供用戶直接使用,比如引用它或給它賦新值。用戶也可以創建自己的變數,以便存放程序執行過程中的臨時數據或結果數據等等。

(1)c語言的變化量用什麼表示擴展閱讀:

變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被Script中所有過程所識別,稱為Script級變數,具有Script級作用域。

變數可以保存程序運行時用戶輸入的數據、特定運算的結果以及要在窗體上顯示的一段數據等。變數聲明後沒有賦值的話,編譯器會自動提示並賦予默認值。

2. C語言中變數與常量的概念是什麼

在C程序執行過程中,其值不發生改變的量稱為常量,其值可變的量稱為變數。它們可與數據類型結合起來分類。例如,可分為整型常量、整型變數、浮點常量、浮點變數、字元常量、字元變數、枚舉常量、枚舉變數。在程序中,直接常量是可以不經說明而直接引用的,而符號常量和變數則必須先定義後使用。
具體說明:
1、在程序執行過程中,其值不發生改變的量稱為常量。
①直接常量
整型常量:12、0、-3;
實型常量:4.6、-1.23;
字元常量:『a』、『b』。
②符號常量
標識符:用來標識變數名、符號常量名、函數名、數組名、類型名、文件名的有效字元序列。
符號常量:用標示符代表一個常量。在C語言中,可以用一個標識符來表示一個常量,稱之為符號常量。
符號常量在使用之前必須先定義,其一般形式為:#define 標識符 常量其中#define也是一條預處理命令(預處理命令都以"#"開頭),稱為宏定義命令(在後面預處理程序中將進一步介紹),其功能是把該標識符定義為其後的常量值。一經定義,以後在程序中所有出現該標識符的地方均代之以該常量值。
· 習慣上符號常量的標識符用大寫字母,變數標識符用小寫字母,以示區別。
【例3.1】符號常量的使用。#define PRICE 30main(){ int num,total;num=10;total=num* PRICE;printf(「total=%d」,total);}
· 用標識符代表一個常量,稱為符號常量。
· 符號常量與變數不同,它的值在其作用域內不能改變,也不能再被賦值。
· 使用符號常量的好處是:
含義清楚;
能做到「一改全改」。
2、其值可以改變的量稱為變數。一個變數應該有一個名字,在內存中占據一定的存儲單元。變數定義必須放在變數使用之前。一般放在函數體的開頭部分。要區分變數名和變數值是兩個不同的概念。

3. C語言如何顯示前後變化量

1、VS中,先啟動調試,然後點擊菜單欄:調試>窗口>內存>內存1(快捷鍵alt+6)。
2、可以查看內存情況,調試>窗口>局部變數(快捷鍵alt+4)可以查看變數的值,其實你在調試過程中直用滑鼠接指向變數,它會出現一個小框,會顯示變數的內存或值(優先)。

4. 在c語言中 變數是指其值可以改變的量 變數用什麼

變數即在程序運行過程中它的值是允許改變的量。
常量即在程序運行過程中它的值是不允許改變的量。
變數必須說明,說明的目的,是讓程序知道變數類並給變數分配相應數量的存儲單元。例如,int量要分配4個bytes,
double
要分配8個bytes.
也讓程序知道用它來計算應當如何操作。
變數必須先說明,後使用。變數名不可為系統保留字。
編譯器認識常量,所以不要說明,編譯器自動分配它們的存儲單元。
常量有
數字常量(123,
-345.6,
1.0E-06
等),ASCII字元常量('\t','a'),
字元串常量("string
abc")。
常量不需說明,也不得說明。

5. 求助,關於c語言的。

C語言基礎(01-引言及預備知識): C語言是一門功能強大的編程語言,它也是C++語言的基礎。C語言屬於中級語言。這里所說的中級是相對於計算機的底層硬體而言的。匯編語言是最低級的語言,它可以直接與硬體打交道。高級語言有Pascal、Basic、Fortran等等。高級語言的一條語句對應低級語言的很多條語句,任何高級語言編寫的程序都要經過編譯程序的編譯、連接才能成為可以運行的程序。編譯連接的過程也就是把高級語言翻譯成機器語言(二進制機器碼)的過程,而匯編語言是基本上與機器語言一 一對應的一種語言。這個翻譯過程是由編譯程序自動完成的。把C語言定為中級語言是有它的道理的,因為C語言既有匯編語言的存取底層硬體的能力,又具有高級語言的許多特點。熟練掌握了C語言,學習其它的各種編程語言應該是很輕松的了。

C語言的書寫格式:
1) 一個C語言編寫的源程序,必定有一個主程序(稱為main()函數,在C語言中子程序稱為「函數」(當然,不要理解成為數學裡面的「函數」)。但是決不能有一個以上的main函數(即只能有一個)。
2) 函數語句塊用『{』括弧開始, 以『}』反括弧結束。這樣的花括弧必須成對出現。
3) 表達式寫在小括弧裡面,以『(』括弧開始,以『)』反括弧結束。
4) 函數不能嵌套,即函數裡面不能再套函數。(每一個函數是完成一個特定功能的函數模塊)

C語言的組成:
C語言是由許多函數組成的。其中只有一個主函數(main()函數)。C程序執行時總是從main函數的『{』處開始,至main函數的反大括弧'}'處結束。當然還有其它一些規則,這將在以後的學習中去熟悉它。

C語言的書寫規則:
C語言在書寫時有它自身的特點:書寫格式比較自由,在一行里可以寫多條語句,一個語句也可以分寫在多行上。雖然如此,在書寫源程序時還是要注意哪些可以自由書寫,而哪些必須要按照書寫規則來書寫。
幾條規則寫在下面:
1) 一行內可以寫幾個語句,建議一行不超過兩條語句;
2) 一條語句可以寫在多行上;
3) C語句不需要寫行標號;
4) 每條語句及數據定義的後面要寫上分號以表示該語句結束;
5) C語言中注釋用 /* */來表示;
6) 建議書寫時採用縮進格式;
7) 花括弧、小括弧都是成對出現的。

一個最簡單的C程序的編寫:
/* 程序代碼*/ /* 注釋部分*/
main() /*main是主函數名。緊跟在main後面的括弧是放參數的。
括弧裡面為空說明main函數不需要參數*/
{ /*正寫的大花括弧表示main函數從這里開始*/

} /*反寫的大花括弧表示main函數到這里結束*/

說明:由於是一個演示程序,在函數體內並沒有任何可以執行的語句,也就是這個程序什麼事也不做。
這個程序就是這么簡單: 寫在一行上就是 main() { }
你在TC的編輯環境下把這段代碼輸入進去,按F9鍵編譯連接,按CTRL_F5運行,一定很正常。但是什麼結果也不會有,因為在main函數裡面什麼代碼也沒有。

下面再舉一個可以向屏幕上輸出一條信息的例子:
main()
{
printf("這就是C語言編寫的程序!"); /*這一條語句的作用是向屏幕輸出一條信息
」這就是C語言編寫的程序!"*/
}
在這個程序中,main函數只有一條語句:printf("這就是C語言編寫的程序!");這個語句的作用是向屏幕輸出一個字元串。有關這個語句的知識以後再講。現在要注意的是一個C語言程序的框架是怎樣組成的。

C語言程序的幾種文件格式:
1、 源程序---在TC集成環境中輸入的程序文本稱為源程序。源程序是一種文本文件。它是我們看得見並認識的一種文件。其擴展名為.C。例如你把文件保存為TEST,那麼在磁碟上應看得到TEST.C這個文件。這樣的文件可以用記事本打開。
2、二進制文件---寫完了源程序後接著要做的是編譯這個文件。在TC集成環境里是按ALT_F9鍵,編譯後生成了一個二進制文件,這個二進制文件名為TEST.OBJ,也就是擴展名為OBJ的目標文件。
3、運行文件---最後一步是make(或Link),在TC集成環境里是按F9鍵Make之後生成了一個可以在DOS下運行的文件,其擴展名為EXE。如TEST.EXE。這個EXE文件是由第2步中的OBJ文件生成的。OBJ文件雖然是二進制文件,而電腦又是可以運行二進制文件的,為什麼還要把OBJ文件Link為EXE文件才能運行?這里的知識就比較多了,這里不能多講。但是要明白一點,在DOS下僅僅有了一個二進制文件還不能運行,因為操作系統要把這些二進制文件加以規劃,把相應的數據、程序代碼放到應該放的內存位置,這樣的經過嚴密規劃和組織好了的二進制文件才能運行。而這些只有在生成的EXE文件裡面才做完了這些工作。

---------------------------------------

作業題:
1、下列程序中格式錯在( )處。
A. main() B. int a,b,z;
C. a=2:b=3; D. z=a+b;

分析:A,B,D 沒有錯誤。 C 中在a=2後面應該是分號而不應是":"號
答: C

2、C語言允許將一條語句寫在兩行上,下列語句不正確的是
A. int a,
B;
B. int a
,b;
C. int
a,b
D. int a,b
;
分析:C語言規定可以在語句中的任何一個分隔符或空格處換行。上面4個選項中D.有問題因為在D.中第一行的最後沒有分隔符,而第二行只有一個分號,可以看做一個語句。所以D中的錯誤為:第一行是一個獨立的語句,但是少了一個分號。
答: D
3. C語言的一行寫不下時,可以
A. 用逗號換行 B. 用分號換行
C. 在任意一空格處換行 D. 用回車符換行
分析:C語言可以在任何一個分隔符或空格處換行,所以此題的正確答案是 C
答: C
4. 下列程序段中,哪一個是錯誤的注釋方法?
A. #in/*包含*/clude<stdio.h>
void main()
{

}

B. #include<stdio.h>
void main/* */(/*主函數*/)
{

}

C. #include<stdio.h>
void main()
{ int x/*初始化*/=10;
/*列印*/printf("%d",x);
}

D. #include<stdio.h>
void main()
{
int x=10;
printf("%d",x);
/*列印x的值*」*=10*/
}
分析:根據C語言的規定:注釋不能插在標識符的中間,在其它有分隔符的地方都可以插入注釋,上面四個程序段中只有A是將注釋插入在標識符的中間了。所以A是錯誤的。
答: A

5. C語言程序是由( )組成的?
答:C程序是由函數組成的。

6. C程序運行時,運行的是什麼文件?

數據的類型:

在程序中要處理大量的數據,把這些數據按其特點分為幾種基本的數據類型,它們分別是:

1 、整型 2 、字元型 3 、實型

還有其它的一些擴展的數據類型,但是開始學習時要先熟悉這三種基本數據類型。

在 C 語言中這幾種數據類型用符號表示如下:

整型數據類型 int /* 一般指可以運算的數,如自然數就是整型數據類型 */

字元數據類型 char /* 一般指文字,如英文字母;字元類型的 '1''2''3''4' 等 */

實型 float /* 也稱作浮點型,記住 float 類型的數都是有小數位的,如 425.23*/

常量和變數:

常量――程序運行過程中其值不變的量,如一個整數 134, 一個字元 『a'

變數――程序運行過程中其值可以變化的量,如 int a; char b; 那麼 a 和 b 都是變數。

符號常量 ――用一個「符號」來表示的一個「常量」稱為「符號常量」。

符號常量有什麼好處 ――在給符號常量命名的時候,按習慣取的名字與實際上的含義相符,可以「見名識意」;另外在需要修改常量的值的時候,只需要修改符號常量的定義部分即可,非常方便。

符號常量的定義方法 ―― #define 符號 常量

例: #define NUMBER 30 /* 定義了一個符號常量,在這里是用符號 NUMBER 表示整數 30 ,以後在程序里就可以

用符號 NUMBER 代替整數 30 進行運算 */

main()

{

int a=20; /* 把常量 20 賦給整型變數 a*/

int c; /* 定義了整型變數 c*/

c=NUMBER+a; /* 變數 c 的值此時為 50 ,符號常量 NUMBER 參與了運算 */

}

變數的定義方法 ――在變數的名字前面加上一個變數的數據類型,以說明已定義的變數可以用來存放什麼樣類型的數據。

例: int a; /* 定義了一個整型變數,以後這個變數只能存放整型類型的數 */

char b; /* 定義了一個字元型變數,以後這個變數只能存放符字元型數據 */

怎樣把常量值賦給已定義了的變數 ――用一個 = 號賦值。

例: int a; /* 定義一個整型孌量 a*/

char b; /* 定義了一個字元型變數 b*/

a=20; /* 用 = 號完成賦值,賦值後變數 a 的值此時為 20*/

b='d' /* 把常量字元 'd' 賦給變數 b ,此時變數 b 的值是字元 'd'*/

變數賦值時一種更靈活的方法 ――可以在一行上給多個相同數據類型的變數賦值,變數之間用逗號分隔。

例: int a,b,c,d; /* 定義了 4 個整型變數 */

char e,f,g; /* 定義了 3 個字元型變數 */

深入理解變數 ―― 1 ) 1 個變數必須有一個變數名。 2 )變數必須有其指定的數據類型

3 )變數一旦被定義,它就在內存中佔有一個位置,這個位置稱做該 變數的地址 。

4 )每一個變數都有其對應的值。

l 一定要牢記變數的這 4 個特性。

變數使用時的注意事項 ―― 1 )變數在使用之前一定要先定義,使用一個沒有定義的變數是錯誤的。

2 )變數必須在一個函數的開始部分定義。(這個限制在 C++ 中不存在)

例題:寫一個 2 個整數相加的程序。

/* 解題思路:求 2 個整數相加,必定要先定義 2 個變數來存放這 2 個數,另外還需要 1 個變數用來存放

相加的和,所以共需要定義 3 個整型變數 */

/* 注意每次在寫 C 程序的時候一定要注意書寫格式 */

main()

{

int a,b,c;

a=20,b=30; /* 在這里指定變數的值,因為還沒有講輸入輸出函數,只能這樣了。 */

c=a+b;

}

想一想,這樣簡單的一個題,需要知道的知識面卻不少。 用到了上面所講的哪些知識?

C語言中的庫函數――我們編寫C語言程序時要寫許多代碼,這些代碼是用基本程序語句如運算符、表達式、幾種語句結構來組成。這些語句組成了多個不同的函數,由多個函數組成一個完整的程序。實際上如果程序中的語句都要由自己來寫的話,那麼工作量是很大的了。並且有一些完成基本任務的函數如輸入輸出函數是經常需要使用的。這樣的一些常用的完成基本任務的函數有許多已經由提供編譯程序的公司為我們寫好了。這些已經寫好的函數放在TC或者BC編譯器的文件中。所謂「庫函數」,就是存放「函數」的「倉庫」。在TC中,函數的「倉庫」在哪裡呢?在TC的.\LIB目錄中。編寫程序的時候,如果我們需要使用某個庫函數,就要在這個程序開頭指明這庫函數存放在哪裡,以便讓編譯程序到這個地方去找。這個指明庫函數路徑的語句稱為「包含」語句,寫做#include。完整的寫法是:
#include <stdio.h>
#include 是包含的意思,<stdio.h> 是指明要使用的庫函數在 stdio.h這個文件裡面有說明。尖括弧<>是必須要寫的。而實際上,編譯程序在stdio.h之個文件里根據庫函數名可以在.\LIB目錄下的LIB文件里找到相關的代碼,寫進程序裡面去。使用不同的庫函數時要用不同的包含,關於怎樣使用#include,可以查看庫函數的幫助。
有了眾多的庫函數,給編寫程序帶來了很大的方便。就象做房子要用磚和瓦一樣。如果沒有磚和瓦,做房子自己要挖土燒磚,可想而知,那樣做房子的難度有多大。寫程序也是這樣,有了庫函數,在需要完成某些任務時,找到相應的庫函數調用一下就可以了,不需要自己一點一點的寫代碼。在學習編程的同時要多多了解一些庫函數的特點及用法,對編寫程序是有很大的好處的。
(在Windows下編寫程序,需要了解的「庫函數」就更多了,可以說不了解庫函數就不會編程。VC中用的是MFC,Win32中用的是API,它們都是函數庫)

先了解二個庫函數――1、scanf函數 /*格式化控制台輸入函數*/
函數原型:int scanf(control_string....); /*看上去很復雜。沒關系,以後自然會明白的*/
使用例:
void main()
{
int a,b,c; /*定義了三個整型變數*/
scanf("%d%d",&a,&b); /*從鍵盤輸入二個整數到孌量a和b中*/
c=a+b; /*把變數a與b相加的和送給變數c*/
}

下面仔細講一下scanf函數各參數的用法:
可以看到在小括弧里有二個%d,後面有二個變數a和b。二個%d的寫法為"%d%d",注意凡是這樣的符號都要寫在雙引號裡面,而變數則寫在雙引號的外面並用逗號分隔。這個%d我們稱為格式化說明符,第一個%d用於說明第一個變數a,第二個%d用於說明第二個變數b,這樣的順序是一一對應的。%d格式符說明了後面輸入的變數值是整型數。
另外注意的是二個%d是靠在一起的 %d%d,凡是這樣的寫法,在輸入數時,對於二個數之間的分隔是用「空隔鍵」來實現的。如輸入30和50這二個數形式為 30 50 如果二個%d寫成%d,%d中間有一個逗號,那麼在輸入數據時也一定要在輸入的數之間加上逗號,如 30,50。
再來看一下變數的寫法,可以看到在每一個變數名的前面都有一個&號,這個&號是取變數地址的意思,那麼&a寫在一起就是變數a的地址,&b寫在一起就是變數b的地址。
上面的scanf函數的作用就是把從鍵盤上輸入的二個整數分別送到變數a和變數b的地址裡面去。這個&號是非常重要,不要寫漏了。

scanf函數的格式說明符(格式說明符說明了下一步將讀的是什麼類型的數據)
格式碼 含義
%c 讀一單字元
%d 讀一整數
%i 讀一個浮點數
%e 讀一個浮點數
%f 讀一個浮點數
%g 讀一個浮點數
%o 讀一個八進制數
%s 讀一字元串
%x 讀一十六進制數
%p 讀一指針
%n 讀一個指針收一個等於到目前為止輸入的字元數止的整數
%u 讀一無符號整數
%[] 掃描一字元集

例:從鍵盤輸入二個字元,一個大寫,一個小寫,然後把這個小寫字元轉換成大寫,大寫字元轉換成小寫。
#include<stdio.h> /*因為在程序里用到了庫函數scanf,所以要使用包含#include<stdio.h>*/
void main()
{
char ch,chh; /*定義了二個字元型變數*/
scanf("%c%c",&ch,&chh); /*從鍵盤輸入二個字元,一個大寫,另一個小寫*/
ch=ch+32; /*大寫轉成小寫*/
chh=chh-32; /*小寫轉成大寫*/
}

2、printf函數 /*格式化輸出函數*/
函數原型:int printf(const char *control_string....);
說明:printf把變數的值或常量字元串輸出到控制台(一般是顯示屏)
使用例:
#include<stdio.h>
void main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("輸出二個整數相加的和"); /*輸出字元串常量,這里沒有用到格式化說明符*/
printf("%d",c); /*把變數c的值用整型格式輸出,這里%d是整型格式說明符*/
}

如果有幾個變數的值要輸出,用這樣的形式:printf("%d %d %d",a,b,c);
從這個printf輸出的格式中看出,每一個格式符對應一個變數,其對應順序也是一一對應的,第一個%d對應第一個變數a,以此類推。注意在printf函數中,變數前面就不要加&符號了。
注意printf函數中幾個%d之間留了一些空格,這里的用法與scanf相比有一點不同。在printf函數中格式符之間留多少空隔,輸出的時候每一個輸出的值之間就有多少空隔。如printf("%d %d %d",a,b,c);輸出則為:20 30 50 (這里的數是假設的)。如果寫為printf("%d,%d,%d",a,b,c);則輸出形式為 20,30,50

printf函數的格式符:
格式碼 格式
%c 單個字元
%d 十進制數
%i 十進制數
%e 科學法表示
%E 科學法表示
%f 十進制浮點數
%g 用%e或%f中較短的的一個(如果是%e,用小寫e)
%G 用%e或%f中較短的的一個(如果是%E,用大寫E)
%o 以八進制形式輸出
%s 字元串
%u 無符號十進制數
%x 十六進制數(小寫)
%X 十六進制數(大寫)
%p 顯示一個指針
%n 相關變數是整型指針,它所指處存放至今要寫入字元的總數
%% 列印一個%號

printf函數使用例:
1)char ss="abcdefghijk"; printf("%s",ss); /*輸出一個字元串,屏幕上顯示"abcdefghijk"*/
2)unsigned int a=65535; printf("%u",a); /*以十六進制形式輸出一個無符號數,顯示為ffff*/
3)int a=123,b=456,c=687; printf("%d\t%d\n%d",a,b,c);
輸出形式為:
123 456 /*'\t'是一個製表符,所以要移動一個製表位這么多空格數*/
687 /*'\n'是換行轉義符,在前面字元常量里講過。所以要換一行再輸出687*/

C語言基礎(05-運算符和表達式):運算符(也叫操作符)--運算符是一個表示特定的數學或邏輯操作的符號。如'+'號,表示了一個相加運算;'&&'號表示了一個邏輯『與』的運算。由運算符把需要進行運算的各個量(常量或變數)連接起來組成一個表達式。
下面要講的是標準的運算符,在C++中還有另外的一些運算符。運算符 進行的運算 所屬類別 備注
[ ] 間隔符 標點符號
( ) 間隔符 標點符號
· 直接分量選擇 雙目操作符
-> 間接分量選擇 雙目操作符
++ 前增量、後增量 單目操作符
-- 前減量、後減量 單目操作符
+ 加 雙目操作符、單目操作符
- 減 雙目操作符、單目操作符
* 1)乘 2)間接引用 雙目操作符、單目操作符
/ 除 雙目操作符
% 求余 雙目操作符
& 1)位『與』2)取地址 雙目操作符、單目操作符
! 邏輯『非』 單目操作符
&& 邏輯『與』 雙目操作符
|| 邏輯『或』 雙目操作符
<< 左移位 雙目操作符
>> 右移位 雙目操作符
< 小於 雙目操作符
> 大於 雙目操作符
== 等於 雙目操作符
!= 不等於 雙目操作符
^ 位『異或』 雙目操作符
+= 和賦值 雙目操作符
-= 差賦值 雙目操作符
*= 乘賦值 雙目操作符
/= 商賦值 雙目操作符
<<= 左移賦值 雙目操作符
>>= 右移賦值 雙目操作符
&= 按位『與』賦值 雙目操作符
^= 按位異或賦值 雙目操作符
|= 按位或賦值 雙目操作符
%= 模賦值 雙目操作符
= 賦值 雙目操作符
?: 按條件取值 雙目操作符
, 間隔符 標點符號
# 預處理符號 標點符號
## 預處理符號 標點符號
sizeof 求位元組數
~ 按位求反
| 位『或』
: 間隔符
; 間隔符
... 間隔符

要把表中的運算符仔細的分類是不容易的,因為同一個運算符,在不同的地方其含義是不同的。如*運算符,當作為乘運算時是雙目操作符(所謂雙目操作符,即運算時需要二個操作數),如3*6,那麼3與6總共是二個操作數。當作為取值運算時就是單目操作符(所謂單目操作符是只需要一個操作數)如對一個數求反:!a,這里只有一個操作數a。
要記住運算符的二個特點,一個是運算符的操作對象,另一個就是運算符的優先順序別。其中運算符的優先順序別是最不容易搞清楚和最容易出錯的地方。
在講運算符之前講一下「表達式」的概念:所謂表達式,就是用運算符把各個操作數連接成符合C語法規則的進行運算的式子。這里說的「符合C語法的規則」也很重要。如 a+b+5就是一個用算術運算符連接起來的表達式。
1、算術運算符:+、-、*、/、%
1)+、-、*、/ 分別是相加、相減、相乘、相除
2)% 求二個數運算的模。所謂求模就是求二個數相除後的余數。例:25/3的余數是1,可以說25%3的模是1。要注意的是求模運算時二個操作數必須是整數。如果求25.3/3.1這樣是不能運算的。
下面寫一個例子:
#include<stdio.h> /*程序中要用到輸入輸出庫函數,所以包含了stdio.h*/
void main()
{
int a=10,b=20,c=30; /*定義了3個整型變數,並同時進行了初始化賦值*/
a=a*b+c; /*a*b+c組成了一個算術表達式,運算後的結果為230並把值*/
/*賦給變數a*/
printf("%d",a); /*以整型格式輸出變數a的值。這里輸出230*/
a=a%b; /*進行求模運算。因為沒有餘數,最後的模為0*/
printf("%d",a); /*輸出變數a的值。這里輸出0*/
}

下面是一個要考慮運算符優先順序的例子:
#include<stdio.h>
void main()
{
int a=10,b=20,c=30;
a=c-a*b; /*這里就要考慮運算符優先順序,*運算符的優先順序比-運算符*/
/*的高,所以先進行乘運算。這里最後結果為-170*/
}

由上面這個例子看到,在一個有多個運算符連接起來的表達式中需要考慮運算符的優先順序,這個例子很簡單。關於運算符優先順序的概念其實在小學生的算術運算中就有這樣的概念了,只不過這里的運算符多了一些,要考慮的情況也就復雜了。
如果這個式子改寫一下,寫成:a=(c-a)*b;在運算時就以括弧中的運算優先。

幾個簡化的運算表達式:
在C語言的程序中,經常看到這樣的運算,如:i++;或者k--;這是運算符號的簡化寫法。
1、加1運算的簡寫
當一個變數進行加1運算時,如a=a+1;這是變數自身加1,簡寫為a++;
2、減1運算的簡寫
當一個變數進行減1運算時,如a=a-1;這是變數自身減1,簡寫為a--;
3、加1個常量運算的簡寫
當一個變數與一個常量相加時,如a=a+5;這是變數自身加5,簡寫為a+=5;
4、減一個常量運算的簡寫
當一個變數與一個常量相減時,如a=a-5;這是變數自身減5,簡寫為a-=5;
5、乘一個常量運算的簡寫
當一個變數與一個常量相乘時,如a=a*5,這是變數自身乘5,簡寫為a*=5;
6、除一個常量運算的簡寫
當一個變數與一個常量相除時,如a=a/5;這是變數自身除5,簡寫為a/=5;

運算符的結合性(或稱作關聯性)
在一個復雜的表達式中,常常有許多運算符和變數,這時就要判斷優先順序和結合性這二個因素。
例:-5+7; 這樣的一個表達式用結合性來判斷,因為運算符'-'和'+'相對於運算的數來說是『左』結合的,所以就有'-5'和'+7'所以運算的結果為 2。
通過這個例子要知道什麼是「左結合性」和「右結合性」
左結合性--變數(或常量)與左邊的運算符結合
右結合性--變數(或常量)與右邊的運算符結合

運算符的優先順序和結合性表
優先順序 運算符(高 ------→低) 結合率 運算符類型
高 ( ) [ ] -> . 從左至右 雙目運算符
! ~ ++ -- (類型) sizeof + - * & 從右至左 單目運算符
* / % 從左至右 雙目運算符
+ - 從左至右 雙目運算符
<< >> 從左至右 雙目運算符
< <= > >= 從左至右 雙目運算符
== != 從左至右 雙目運算符
& 從左至右 雙目運算符
^ 從左至右 雙目運算符
| 從左至右 雙目運算符
&& 從左至右 雙目運算符
|| 從左至右 雙目運算符
?: 從右至左 三目運算符
低 = += -= *= /= %= &= ^= |= <<= >>= 從左至右 雙目運算符
高 -------------→ 低

從表中可以看出一個規律,凡是單目運算符都是「右結合」的,凡是雙目運算符都是「左結合」的。其中有一個?:運算符是三目運算符是右結合的,記住了這個規律,運算符的結合性也就掌握了。
如果代碼行中的運算符比較多,用括弧確定表達式的操作順序,避免使用默認的優先順序。
由於將表熟記是比較困難的,為了防止產生歧義並提高可讀性,應當用括弧確定表達式的操作順序。例如:
d = (high << 8) | low /*用括弧把需要先運算的括起來*/

if ((a | b) && (a & c)) /*用括弧把需要先運算的括起來*/

例:
下列程序輸出的結果是
#include<stdio.h>
void main()
{
int a=2;
a%=4-1;
printf("%d",a);
a+=a*=a-=a*=3;
printf("\n%d",a);
}

A. 2,0 B. 1,0
C. -1,12 D. 2,12

分析:由於%=運算符的優先順序別低於-運算,a%=4-1即是a%=3,等價於a=a%3即a=2%3=2,所以選項B和C是錯誤的。表達式a+=a*=a-=a*=3,計算時注意賦值類表達式的值和變數的值隨時被更新,計算表達式的值,開始時a=2,表達式賦值是從左至右進行的,表達a*=3使得a=6,此表達式的值也為6,於是表達式a-=a*=3相當於a-=6=6-6=0,a的值為0,後面的計算就不用做了,所以a的值最終為0。
答:A

下列語句中錯誤的是
A.x=sizeof int;
B.x=sizeof 3.14
C.printf("%d",a=a+1,b--,c+1);
D.printf("%d",++x,x++);
分析:此題的選項A的作用是測試int類型所佔內存的位元組數,因為類型符要用括弧括起來,這時缺少括弧是錯誤的。
選項B是正確的。
選項C從表面上看似乎復雜一些,但其中的a=a+1,b--,c+1是一個逗號表達式,C語言允許使用這種表達式所以D也是正確的。
答案:A

下面的語句中,符合C語言語法的賦值語句是
A.a=7+b+c=a+7; B.a=7+b++=a+7;
C.a=7+b,b++,a+7; D.a=7+b;c=a+7;
分析:一般情況下,表達式不能放在賦值號的左邊,所

6. 當一個變數發生變化時執行一段程序,用C語言怎麼表達

int a = 0;
int Old_a = 0;

viod chang (viod){ //把這個放到主循環里就可以了
if(Old_a== a) { return; } //a的值沒有發生變化推出
Old_a = a;
fn_x();//需要執行的程序。
}

7. c語言常量的正確表示是什麼

正確的C語言常量是指針常量。

在除了『C/C++』的一些高級程序語言中,『常量』可以被zhuan稱作,「在一個信息變化過程中,始終不發生改變的量」,其可以是不隨著時間變化的某些量的固定信息;也可以表示為某一數值的字元(或字元串),常被用來標識、測量和比較兩者的差異。

用一對單引號將一個字元括起來表示合法的字元常量。例如『a』。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,後面由0到7八個數表示。

(7)c語言的變化量用什麼表示擴展閱讀:

在 『C/C++語言中』,『常量』如果還用『運行過程中不變的量』來描述,就顯得不太准確了,甚至是在具體使用時,這就是一個錯誤的概念。在 『C/C++』中,定義『指針常量』時,根據『const 』的位置的不同,可以定義出幾個不同的形式,雖然其看起來『符合常量的概念』,但是在實際運行中,其值或地址值是會發生變化的。所以本質還不是『常量概念』。

8. C語言中,變數到底是個什麼概念

C語言中的變數是指在程序運行時其值可以改變的量,變數的功能就是存儲數據。每個變數都有特定的類型,類型決定了變數存儲的大小和布局,該范圍內的值都可以存儲在內存中,運算符可應用於變數上。

變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。在指令式語言中,變數通常是可變的;但在純函數式語言(如Haskell)中,變數可能是不可變(immutable)的。

(8)c語言的變化量用什麼表示擴展閱讀

常量與變數

常量其值不可改變,符號常量名通常用大寫。

變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。

變數的聲明有兩種情況:

1、一種是需要建立存儲空間的。例如:int a 在聲明的時候就已經建立了存儲空間。

2、另一種是不需要建立存儲空間的,通過使用extern關鍵字聲明變數名而不定義它。 例如:extern int a 其中變數 a 可以在別的文件中定義的。

9. 請問高手,用C語言表示數字從1變化到0(或0變化到1),該怎麼表示!

要測試出某個變數的變化情況,需要增加一個表示變化狀態的標志。比如:

inta,a_flag;//一個當前a值,一個a變化的標志

a=!a;//a從0變到1,從1變到0,可以用取反,不用++或--
a_flag=1;//這句賦值要和上面的a變化的語句在一起

if(a_flag)//a變化的時候
{
a_flag=0;//使用過一次要清除變化標志
}
else//就是a沒有變化的時候
{
}