亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語言表達(dá)式運(yùn)算技巧探究

        2021-12-19 20:51:43白宗輝
        電腦知識(shí)與技術(shù) 2021年32期
        關(guān)鍵詞:技巧方法

        白宗輝

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

        關(guān)鍵詞:表達(dá)式運(yùn)算;運(yùn)算符;方法;技巧

        中圖分類號(hào):TP311 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

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

        C語言中的表達(dá)式的類型比較多,有算術(shù)表達(dá)式,賦值表達(dá)式,條件表達(dá)式,逗號(hào)表達(dá)式,關(guān)系表達(dá)式和邏輯表達(dá)式等。每種表達(dá)式都有特定的運(yùn)算符,有的有一個(gè),有的有多個(gè)。 我們實(shí)際學(xué)習(xí)中遇到的表達(dá)式,大部分不是一種表達(dá)式,而是幾種不同類型的混合表達(dá)式,表達(dá)式中更有多種不同的運(yùn)算符和操作數(shù)。

        因此很多學(xué)習(xí)C程序設(shè)計(jì)的學(xué)生,比較畏懼c語言表達(dá)式的運(yùn)算問題,遇到之后,感覺無從下手。本文將深入探究有關(guān)c語言表達(dá)式的運(yùn)算技巧問題,供C語言學(xué)習(xí)的初學(xué)者和C語言授課教師借鑒和參考。

        1考慮優(yōu)先級(jí)

        1)定義:表達(dá)是由各種運(yùn)算符和操作數(shù)組成,一個(gè)表達(dá)式中,操作數(shù)和運(yùn)算符的結(jié)合先后次序是由運(yùn)算符的優(yōu)先級(jí)決定。不同的運(yùn)算符具有不同的優(yōu)先級(jí)。優(yōu)先級(jí)越高,越先進(jìn)行計(jì)算。

        2) C運(yùn)算優(yōu)先級(jí)與結(jié)合性表(表一):C語言運(yùn)算符的優(yōu)先級(jí)共有15級(jí),按照次序,最高的是1級(jí),最低的是15級(jí)。

        要求學(xué)生必須熟記每一種運(yùn)算符的優(yōu)先級(jí)。

        3)應(yīng)用舉例。

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

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

        (2)括號(hào)運(yùn)算符優(yōu)先級(jí)高于除法優(yōu)先級(jí),求(a+6)的值。

        (3)除法的優(yōu)先級(jí)高于加法優(yōu)先級(jí),求(2)/2的值。

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

        2考慮結(jié)合性

        1)定義:如果運(yùn)算符的優(yōu)先級(jí)相同,那么運(yùn)算次序由結(jié)合性決定。結(jié)合性是指操作數(shù)左右兩邊的兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同時(shí),應(yīng)該優(yōu)先運(yùn)算的方向。結(jié)合性分為左結(jié)合性即運(yùn)算方向?yàn)樽宰笾劣?,和右結(jié)合性即運(yùn)算方向?yàn)樽杂抑磷蟆?/p>

        具體規(guī)則可查閱表一。這就要求,學(xué)生能夠像熟練掌握運(yùn)算符的優(yōu)先級(jí)一樣,要牢記每個(gè)運(yùn)算符的結(jié)合性。

        2)結(jié)合性應(yīng)用舉例:

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

        根據(jù)運(yùn)算符的結(jié)合性可知,運(yùn)算符的結(jié)合方向?yàn)樽杂蚁蜃?,變量賦值過程如下,d=3,c=d,c=3,b=c,b=3,a=b,a=3。

        3及時(shí)標(biāo)注變量值的變化

        1)概念注釋:表達(dá)式中有賦值運(yùn)算符時(shí),變量都會(huì)進(jìn)行初始化賦值。但是變量的值在運(yùn)算過程中是會(huì)發(fā)生變化的,每次運(yùn)算時(shí),要看變量上一次結(jié)束后的最新值。如果一直用初始化的值,那么就會(huì)出錯(cuò)了。

        2)應(yīng)用舉例,

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

        根據(jù)我們上面講到的運(yùn)算規(guī)則,

        (1)考慮優(yōu)先級(jí),先進(jìn)行b*b運(yùn)算,即b*b=10*10=100,表達(dá)式b+=b-=b*b變?yōu)閎+=b-=100。此時(shí)無變量值發(fā)生變化。

        (2)考慮結(jié)合性:計(jì)算b+=b-=100,根據(jù)賦值運(yùn)算符結(jié)合性是自右向左,先執(zhí)行b-=100,相當(dāng)于b=b-100=10-100= -90,此時(shí)應(yīng)及時(shí)標(biāo)注變量變化,即b=-90,同時(shí)表達(dá)式b==b-= 100變?yōu)閎+=-90。再運(yùn)算b+= -90,相當(dāng)于b=b+(-90)=-90-90= -180。

        在本步驟中可以注意到,變量的標(biāo)注其實(shí)是伴隨著優(yōu)先級(jí)和結(jié)合性使用過程當(dāng)中的,并不是單獨(dú)地存在于某一環(huán)節(jié)。

        4合理使用輔助工具“括號(hào)”

        1)概念注釋:雖然,我們知道在計(jì)算順序上可以利用優(yōu)先級(jí)和結(jié)合性判定c語言表達(dá)式的運(yùn)算方向。但有時(shí)候在計(jì)算的時(shí)候直觀性仍然很差。這時(shí)候我們可以在表達(dá)式中添加括號(hào),來輔助我們清晰判斷程序的執(zhí)行方向和先后順序。

        2)應(yīng)用舉例

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

        3)注意點(diǎn):括號(hào)的使用可以幫助我們理解表達(dá)式,切記括號(hào)的添加和使用不是隨意的,括號(hào)的使用不能改變?cè)瓉淼倪\(yùn)算次序和方向。

        5含有邏輯運(yùn)算符的表達(dá)式的求值,及表達(dá)式中變量的求值

        1)邏輯與運(yùn)算符的表達(dá)式。

        如果表達(dá)式1&&表達(dá)式2,當(dāng)表達(dá)式1的值為0時(shí),整個(gè)表達(dá)式運(yùn)算停止,不再對(duì)表達(dá)式2進(jìn)行運(yùn)算。如果表達(dá)式1的值為非0時(shí),則要對(duì)表達(dá)式2進(jìn)行運(yùn)算。

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

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

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

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

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

        a++&&b++;

        求表達(dá)式a++&&b++的值,及執(zhí)行該表達(dá)式后a和b的值。

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

        由此可見,邏輯與表達(dá)式的運(yùn)算,如果“&&”運(yùn)算符左邊表達(dá)式為0,則不執(zhí)行邏輯與運(yùn)算,運(yùn)算停止,邏輯與表達(dá)式的值為假;如果“&&”運(yùn)算符左邊表達(dá)式為非0,則執(zhí)行邏輯與運(yùn)算,表達(dá)式的結(jié)果由右邊表達(dá)式的值決定,右邊表達(dá)式的結(jié)果為0,整個(gè)表達(dá)式為假,右邊表達(dá)式的值為非0,整個(gè)表達(dá)式的結(jié)果為真。

        2)邏輯或表達(dá)式的運(yùn)算。

        如果表達(dá)式1||表達(dá)式2,當(dāng)表達(dá)式1的值為非0時(shí),表達(dá)式停止運(yùn)算;如果表達(dá)式1的值為0時(shí),則繼續(xù)執(zhí)行邏輯或運(yùn)算。

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

        ++a||++b;

        求表達(dá)式++a||++b的值,及執(zhí)行后a、b的值。

        解:執(zhí)行表達(dá)式++a||++b,根據(jù)邏輯或結(jié)合性是自左向右,所以先判斷++ a的值,由于++a的值為非0,所以表達(dá)式的值為真,整個(gè)表達(dá)式停止運(yùn)算。在判斷++a是否為0后,a自增1。所以表達(dá)式執(zhí)行結(jié)束后,a=2,b=1。

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

        (1)這時(shí)候要先判斷邏輯或運(yùn)算符左邊表達(dá)式的結(jié)果,不一定先進(jìn)行與運(yùn)算。

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

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

        求表達(dá)式++a||++b&&++c的值,及執(zhí)行該表達(dá)式后a、b、c的值。

        解:執(zhí)行表達(dá)式++a||++b&&++c,先判斷++a的值,由于++a的值為非0,所以表達(dá)式的值為真,整個(gè)表達(dá)式停止運(yùn)算。這時(shí)候不再執(zhí)行“||”右邊的表達(dá)式“++b&&++c”的運(yùn)算。在判斷++a是否為0后,a自增1。故表達(dá)式執(zhí)行結(jié)束后,a=2,b=1,c=1。

        (2)邏輯或“||”運(yùn)算符的左邊表達(dá)式為假,先執(zhí)行邏輯與運(yùn)算。

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

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

        求表達(dá)式a++||++b&&++c的值,及執(zhí)行該表達(dá)式后a、b、c的值。

        解:先判斷a是否為0,由于a為0,則執(zhí)行++b&&++c,判斷++b不為0,執(zhí)行與運(yùn)算,因?yàn)?+c不為0,所以邏輯與表達(dá)式為真,所以表達(dá)式a++||++b&&++c為真。同理,在執(zhí)行完整個(gè)語句后,a=1,b=2,c=2。

        從上面的實(shí)例中可以總結(jié)出:邏輯表達(dá)式運(yùn)算時(shí),最重要的一點(diǎn)是判斷邏輯表達(dá)式什么時(shí)候停止運(yùn)算,什么時(shí)候執(zhí)行運(yùn)算。并通過執(zhí)行過程,可以判斷出變量的值是否改變。

        C語言學(xué)習(xí)者,只要在掌握c語言各類運(yùn)算符的優(yōu)先級(jí)和結(jié)合性基礎(chǔ)上,參照本篇文章所講的五個(gè)要素,多練習(xí),多思考,多總結(jié),就能夠準(zhǔn)確地解決各種復(fù)雜的C語言表達(dá)式的運(yùn)算。而以扎實(shí)的基礎(chǔ),輕松跨入C語言下一階段的學(xué)習(xí)。

        參考文獻(xiàn):

        [1] 李紅衛(wèi),李秉璋.C程序設(shè)計(jì)與訓(xùn)練[M].3版. 大連理工大學(xué)出版社,2014.

        [2] 譚浩強(qiáng).C程序設(shè)計(jì)[M].5版. 北京: 清華大學(xué)出版社, 2017.

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

        [4] 基于省級(jí)創(chuàng)新訓(xùn)練平臺(tái)的“C語言程序設(shè)計(jì)”教學(xué)改革與實(shí)踐[J].科教導(dǎo)刊,2017(22):115-116.

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

        【通聯(lián)編輯:唐一東】

        猜你喜歡
        技巧方法
        肉兔短期增肥有技巧
        網(wǎng)上點(diǎn)外賣的7個(gè)技巧
        中老年保健(2021年4期)2021-08-22 07:10:02
        開好家長(zhǎng)會(huì)的幾點(diǎn)技巧
        甘肅教育(2020年12期)2020-04-13 06:24:46
        學(xué)習(xí)方法
        指正要有技巧
        4個(gè)技巧快速消除頭上的飛發(fā)
        提問的技巧
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        亚洲精品av一区二区| 国产AⅤ无码久久丝袜美腿| 囯产精品无码一区二区三区AV| 国产黄色一级到三级视频| 日本一二三区在线观看视频| 曰欧一片内射vα在线影院| 在线看片无码永久免费aⅴ| 精品国产日韩无 影视| 人妻精品久久一区二区三区 | 国产精品日本天堂| 麻豆视频av在线观看| 亚洲av成人无码一二三在线观看 | 国色天香精品亚洲精品| 国产在线观看一区二区三区av| 成 人色 网 站 欧美大片在线观看| 中文字幕日本特黄aa毛片| 成人无码区免费AⅤ片WWW| 蜜桃av一区二区三区久久| 亚洲av无码乱码国产麻豆 | 91国产超碰在线观看| 国产精品国产三级国产av18| 国产成人a人亚洲精品无码| 欧美成人久久久| 一区二区视频资源在线观看| 色婷婷av一区二区三区久久| 全免费a级毛片免费看网站| 国产精品久久国产三级国电话系列| 自拍偷拍亚洲视频一区二区三区| 亚洲国产精品综合久久网络 | 人人妻人人玩人人澡人人爽| 亚洲国产不卡av一区二区三区| 国产一区二区三区色哟哟| 亚洲裸男gv网站| 国产 中文 制服丝袜 另类| 国产免费一区二区三区在线观看 | 欧美精品久久久久久久自慰| 亚洲av福利天堂在线观看| 国产日产一区二区三区四区五区| 日韩精品无码中文字幕电影| 日韩一区二区超清视频| 亚洲一区二区懂色av|