999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言表達式運算技巧探究

2021-12-19 20:51:43白宗輝
電腦知識與技術 2021年32期
關鍵詞:技巧方法

白宗輝

摘要:通過具體的步驟和案例分析,詳解C語言表達式的運算方法和技巧。論文的研究成果,即是表達式求解的具體思路、方法和技巧,可以為C語言學習者借鑒學習,也可以為C語言教師提供教學參考。

關鍵詞:表達式運算;運算符;方法;技巧

中圖分類號:TP311 ? ? ?文獻標識碼:A

文章編號:1009-3044(2021)32-0109-02

C語言中的表達式的類型比較多,有算術表達式,賦值表達式,條件表達式,逗號表達式,關系表達式和邏輯表達式等。每種表達式都有特定的運算符,有的有一個,有的有多個。 我們實際學習中遇到的表達式,大部分不是一種表達式,而是幾種不同類型的混合表達式,表達式中更有多種不同的運算符和操作數。

因此很多學習C程序設計的學生,比較畏懼c語言表達式的運算問題,遇到之后,感覺無從下手。本文將深入探究有關c語言表達式的運算技巧問題,供C語言學習的初學者和C語言授課教師借鑒和參考。

1考慮優先級

1)定義:表達是由各種運算符和操作數組成,一個表達式中,操作數和運算符的結合先后次序是由運算符的優先級決定。不同的運算符具有不同的優先級。優先級越高,越先進行計算。

2) C運算優先級與結合性表(表一):C語言運算符的優先級共有15級,按照次序,最高的是1級,最低的是15級。

要求學生必須熟記每一種運算符的優先級。

3)應用舉例。

例1,c語言表達式:-a+(a+b)/2。分析表達式后可知,表達式中優先級最高的運算符是“()”是1級,余下依次是“-”是2級,“/”是3級,“+”是4級。表達式的運算過程:

(1)求負運算符高于加法運算符,先求-a的值。

(2)括號運算符優先級高于除法優先級,求(a+6)的值。

(3)除法的優先級高于加法優先級,求(2)/2的值。

(4)求(1)+(3)的值,結算線束。

2考慮結合性

1)定義:如果運算符的優先級相同,那么運算次序由結合性決定。結合性是指操作數左右兩邊的兩個運算符的優先級相同時,應該優先運算的方向。結合性分為左結合性即運算方向為自左至右,和右結合性即運算方向為自右至左。

具體規則可查閱表一。這就要求,學生能夠像熟練掌握運算符的優先級一樣,要牢記每個運算符的結合性。

2)結合性應用舉例:

例2,如a、b、c、d均為整型變量,求表達式a=b=c=d=3的值。

根據運算符的結合性可知,運算符的結合方向為自右向左,變量賦值過程如下,d=3,c=d,c=3,b=c,b=3,a=b,a=3。

3及時標注變量值的變化

1)概念注釋:表達式中有賦值運算符時,變量都會進行初始化賦值。但是變量的值在運算過程中是會發生變化的,每次運算時,要看變量上一次結束后的最新值。如果一直用初始化的值,那么就會出錯了。

2)應用舉例,

例3,已知b=10,求c語言表達式: b+=b-=b*b的值。

根據我們上面講到的運算規則,

(1)考慮優先級,先進行b*b運算,即b*b=10*10=100,表達式b+=b-=b*b變為b+=b-=100。此時無變量值發生變化。

(2)考慮結合性:計算b+=b-=100,根據賦值運算符結合性是自右向左,先執行b-=100,相當于b=b-100=10-100= -90,此時應及時標注變量變化,即b=-90,同時表達式b==b-= 100變為b+=-90。再運算b+= -90,相當于b=b+(-90)=-90-90= -180。

在本步驟中可以注意到,變量的標注其實是伴隨著優先級和結合性使用過程當中的,并不是單獨地存在于某一環節。

4合理使用輔助工具“括號”

1)概念注釋:雖然,我們知道在計算順序上可以利用優先級和結合性判定c語言表達式的運算方向。但有時候在計算的時候直觀性仍然很差。這時候我們可以在表達式中添加括號,來輔助我們清晰判斷程序的執行方向和先后順序。

2)應用舉例

例4,b+=b-=b*b+a,共有四個運算符,我們根據運算符的優先級和結合性可以加括號如下:b+=(b-=((b*b)+a)),本表達式中共加了3個括號,第一個括號和第二個括號,是根據運算符的優先級,第三個括號是根據運算符的結合性。3個括號的輔助,即讓c語言表達式的運算次序和方向變得一目了然。

3)注意點:括號的使用可以幫助我們理解表達式,切記括號的添加和使用不是隨意的,括號的使用不能改變原來的運算次序和方向。

5含有邏輯運算符的表達式的求值,及表達式中變量的求值

1)邏輯與運算符的表達式。

如果表達式1&&表達式2,當表達式1的值為0時,整個表達式運算停止,不再對表達式2進行運算。如果表達式1的值為非0時,則要對表達式2進行運算。

(1)邏輯與“&&”運算符左邊表達式為假。

例5,如定義:int a=0,b=2。語句1 為:a++&&b++,求語句1的值及執行語句1后a和b的值。

解:執行語句1,先判斷a++是否為0,由于a為0,所以a++為0,則邏輯表達式a++&&b++的值為0,表達式運算停止,不再執行&&運算右邊b++的運算。在判斷a是否為非0后,a的值自增1。所以語句1執行后,表達式的值為0。同時a=1,b=2。

(2)邏輯與“&&”運算符左邊表達式為真。

例6,如定義:int a=1,b=2;

a++&&b++;

求表達式a++&&b++的值,及執行該表達式后a和b的值。

解:執行表達式a++&&b++,先判斷a是否為0,由于a為非0值1,所以a++為非0。故判斷b是否為非0,b為非0,所以整個表達式的值為真。在判斷a是否為非0后,a的值自增1,同理,在判斷b是否為非零后,b自增1,所以,表達式執行完畢后,a=2,b=3。

由此可見,邏輯與表達式的運算,如果“&&”運算符左邊表達式為0,則不執行邏輯與運算,運算停止,邏輯與表達式的值為假;如果“&&”運算符左邊表達式為非0,則執行邏輯與運算,表達式的結果由右邊表達式的值決定,右邊表達式的結果為0,整個表達式為假,右邊表達式的值為非0,整個表達式的結果為真。

2)邏輯或表達式的運算。

如果表達式1||表達式2,當表達式1的值為非0時,表達式停止運算;如果表達式1的值為0時,則繼續執行邏輯或運算。

例7,已知a=1,b=1;

++a||++b;

求表達式++a||++b的值,及執行后a、b的值。

解:執行表達式++a||++b,根據邏輯或結合性是自左向右,所以先判斷++ a的值,由于++a的值為非0,所以表達式的值為真,整個表達式停止運算。在判斷++a是否為0后,a自增1。所以表達式執行結束后,a=2,b=1。

3)邏輯或與邏輯與的混合表達式。

(1)這時候要先判斷邏輯或運算符左邊表達式的結果,不一定先進行與運算。

例8,已知,int ?a=1,b=1,c=1;

++a||++b&&++c;

求表達式++a||++b&&++c的值,及執行該表達式后a、b、c的值。

解:執行表達式++a||++b&&++c,先判斷++a的值,由于++a的值為非0,所以表達式的值為真,整個表達式停止運算。這時候不再執行“||”右邊的表達式“++b&&++c”的運算。在判斷++a是否為0后,a自增1。故表達式執行結束后,a=2,b=1,c=1。

(2)邏輯或“||”運算符的左邊表達式為假,先執行邏輯與運算。

例9,已知,int ?a=0,b=1,c=1;

a++||++b&&++c;

求表達式a++||++b&&++c的值,及執行該表達式后a、b、c的值。

解:先判斷a是否為0,由于a為0,則執行++b&&++c,判斷++b不為0,執行與運算,因為++c不為0,所以邏輯與表達式為真,所以表達式a++||++b&&++c為真。同理,在執行完整個語句后,a=1,b=2,c=2。

從上面的實例中可以總結出:邏輯表達式運算時,最重要的一點是判斷邏輯表達式什么時候停止運算,什么時候執行運算。并通過執行過程,可以判斷出變量的值是否改變。

C語言學習者,只要在掌握c語言各類運算符的優先級和結合性基礎上,參照本篇文章所講的五個要素,多練習,多思考,多總結,就能夠準確地解決各種復雜的C語言表達式的運算。而以扎實的基礎,輕松跨入C語言下一階段的學習。

參考文獻:

[1] 李紅衛,李秉璋.C程序設計與訓練[M].3版. 大連理工大學出版社,2014.

[2] 譚浩強.C程序設計[M].5版. 北京: 清華大學出版社, 2017.

[3] C/C++語言中的復合自增自減運算規則探究[J].電腦編程技巧與維護,2019(9):47-49.

[4] 基于省級創新訓練平臺的“C語言程序設計”教學改革與實踐[J].科教導刊,2017(22):115-116.

[5] 李海豐,李俊生,謝麗霞,等."三位一體"的C語言程序設計課程教學改革實踐[J].計算機時代,2019(11):93-95.

【通聯編輯:唐一東】

猜你喜歡
技巧方法
肉兔短期增肥有技巧
今日農業(2021年1期)2021-11-26 07:00:56
網上點外賣的7個技巧
中老年保健(2021年4期)2021-08-22 07:10:02
開好家長會的幾點技巧
甘肅教育(2020年12期)2020-04-13 06:24:46
學習方法
指正要有技巧
4個技巧快速消除頭上的飛發
提問的技巧
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产真实二区一区在线亚洲 | 国产精品jizz在线观看软件| av天堂最新版在线| 在线亚洲精品自拍| 中文无码精品a∨在线观看| 人禽伦免费交视频网页播放| 三上悠亚在线精品二区| 无码AV高清毛片中国一级毛片 | 一区二区理伦视频| 小13箩利洗澡无码视频免费网站| 啪啪啪亚洲无码| 亚洲国产一区在线观看| 在线国产欧美| 欧美区日韩区| 91成人在线免费观看| 亚洲V日韩V无码一区二区| AV无码一区二区三区四区| 亚洲一级色| 久久人人97超碰人人澡爱香蕉 | 欧美视频在线不卡| 成人午夜免费视频| 国产乱人伦AV在线A| 日韩午夜片| 91精品久久久无码中文字幕vr| 久热re国产手机在线观看| 亚洲精品福利视频| 潮喷在线无码白浆| 好吊妞欧美视频免费| 欧美色综合网站| 亚洲男人的天堂久久香蕉网| 欧美亚洲网| 999国内精品视频免费| 日韩欧美高清视频| 四虎综合网| 欧洲av毛片| 免费又爽又刺激高潮网址 | 欧美一区日韩一区中文字幕页| 日韩精品亚洲一区中文字幕| 看av免费毛片手机播放| 小13箩利洗澡无码视频免费网站| 国产一区二区影院| 精品免费在线视频| 中国国产一级毛片| 国产在线观看精品| Aⅴ无码专区在线观看| 精品国产香蕉在线播出| 欧美在线综合视频| 亚洲最新在线| 国产高清在线精品一区二区三区| 国产00高中生在线播放| 国产国语一级毛片| 激情在线网| 全色黄大色大片免费久久老太| 国产免费怡红院视频| 黄色网址手机国内免费在线观看| 亚洲成人www| 无码日韩精品91超碰| 日韩国产综合精选| 日韩精品一区二区深田咏美| 日韩欧美亚洲国产成人综合| 自偷自拍三级全三级视频| 在线综合亚洲欧美网站| 人妻中文久热无码丝袜| 99热这里只有精品5| 日韩专区欧美| 欧美日韩中文国产va另类| 999国产精品永久免费视频精品久久| 国产午夜在线观看视频| 日本免费精品| 国产极品美女在线| 在线国产毛片手机小视频| 久操线在视频在线观看| 亚洲 成人国产| 国产精品30p| 婷婷色婷婷| 久久香蕉国产线看观看亚洲片| 免费看黄片一区二区三区| 超碰精品无码一区二区| 999国产精品| 国产精鲁鲁网在线视频| 国产激情在线视频| 免费精品一区二区h|