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
主站蜘蛛池模板: lhav亚洲精品| 在线视频精品一区| 四虎永久在线精品影院| 免费观看成人久久网免费观看| 激情六月丁香婷婷| 亚洲男人天堂2020| 蜜桃臀无码内射一区二区三区| 丁香婷婷久久| 成年看免费观看视频拍拍| 91丝袜乱伦| 五月婷婷丁香综合| 女人av社区男人的天堂| 性欧美精品xxxx| 91成人免费观看在线观看| 欧美激情视频一区| 国产美女自慰在线观看| 小说区 亚洲 自拍 另类| 制服丝袜一区| 婷婷色一二三区波多野衣| 免费激情网站| 亚洲成A人V欧美综合天堂| 国产剧情国内精品原创| 国产微拍一区二区三区四区| 中文精品久久久久国产网址 | 亚洲国产精品一区二区第一页免 | 经典三级久久| 香蕉久久永久视频| a毛片在线| 青草免费在线观看| 欧洲欧美人成免费全部视频 | 免费人成视网站在线不卡| 狠狠操夜夜爽| 亚洲婷婷在线视频| 99精品热视频这里只有精品7 | 操国产美女| 九九热精品视频在线| 欧洲精品视频在线观看| 国产精品人成在线播放| 99re在线免费视频| 中文国产成人精品久久一| 国产肉感大码AV无码| 欧美不卡视频在线观看| 国产性精品| 欧美精品高清| 欧美亚洲国产精品久久蜜芽| 重口调教一区二区视频| 国产成人一区免费观看| 久久这里只有精品免费| 日本免费高清一区| 国产精品天干天干在线观看| 亚洲熟女中文字幕男人总站| 欧美精品1区| 亚洲欧美人成电影在线观看 | 国产精品一区在线麻豆| 亚洲无码在线午夜电影| 久久亚洲AⅤ无码精品午夜麻豆| 国产精品成| 欧美97色| 国产在线第二页| 亚洲黄色高清| 一级片一区| 亚洲精品视频在线观看视频| 无码精油按摩潮喷在线播放| 谁有在线观看日韩亚洲最新视频 | 日韩欧美国产成人| 久久伊人久久亚洲综合| 国产成人高清精品免费| 欧美成人h精品网站| v天堂中文在线| 色有码无码视频| 亚洲天堂高清| 国产a在视频线精品视频下载| 亚洲码一区二区三区| 在线播放国产一区| 久久视精品| 久久久噜噜噜| 伊人久久综在合线亚洲91| 8090午夜无码专区| 国产成人精品2021欧美日韩| 亚洲综合中文字幕国产精品欧美| 久久精品欧美一区二区| 国产精品香蕉在线|