日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2、C语言面试笔试---运算符和表达式

發(fā)布時(shí)間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2、C语言面试笔试---运算符和表达式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 背景
  • 1、運(yùn)算符和表達(dá)式
    • 1.1自增自減運(yùn)算符++與--
    • 1.2 C語(yǔ)言符號(hào)的優(yōu)先級(jí)
    • 1.3 類型轉(zhuǎn)換
    • 1.4 順序點(diǎn)的概念
    • 1.5 貪心法
  • 2、面試筆試?yán)}

背景

1、運(yùn)算符和表達(dá)式

1.1自增自減運(yùn)算符++與–

n++:表示先返回n,再讓n+1=>n;
++n:表示先讓n+1=>n,再返回n;
n–:表示先返回n,再讓n-1=>n;
–n: 表示先讓n-1=>n,再返回n;

例如n=2,表達(dá)式n++是先返回n,即2,再n自增1變?yōu)?,表達(dá)式++n是先n自增1變?yōu)?,再返回n,即3.

#include <stdio.h>void main() { int a=4; int x=0; x=a++;printf("%d,%d",a,x);}


注意:

  • 1

++、–運(yùn)算可以提高程序的執(zhí)行效率。這是因?yàn)?#43;+、–只需要一條機(jī)器指令就可以完成,而n=n+1要對(duì)應(yīng)3條機(jī)器指令。

  • 2

自增自減運(yùn)算符的對(duì)象只能是簡(jiǎn)單變量,不能是常數(shù),或帶有運(yùn)算符的表達(dá)式,即5++、–(a+b)是錯(cuò)誤的。

  • 3
    編譯器實(shí)現(xiàn)n++/n–時(shí)是先創(chuàng)建n的一個(gè)副本,然后n自增/自減1,最后返回這個(gè)副本的值(這個(gè)副本與n的地址不同),所以n++.
    編譯器實(shí)現(xiàn)++n/–n時(shí)是先n自增/自減1,最后返回n的值(不是副本的值)
    C++ primer的書(shū)中,建議使用++n,而不是n++;++n的效率更高。

1.2 C語(yǔ)言符號(hào)的優(yōu)先級(jí)


注意逗號(hào)運(yùn)算符的優(yōu)先級(jí)別最低。以及自增自減運(yùn)算符.
注意或運(yùn)算,前面已經(jīng)是真后,不會(huì)再運(yùn)行后面的值。

1.3 類型轉(zhuǎn)換

注意所有浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅還有float但警服量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換為double類型,再做運(yùn)算。
char \short 參與運(yùn)算時(shí)必須先轉(zhuǎn)換成int類型
注意%求余只能在兩個(gè)整數(shù)之間進(jìn)行。

1.4 順序點(diǎn)的概念

#include <stdio.h>void main() { int a=2; int x=2; x=(++x)+(x++); a=a+++a++;printf("%d,%d\n",x,a);}


https://blog.csdn.net/qq_33436509/article/details/82111061
關(guān)于順序點(diǎn),我也有點(diǎn)迷糊,沒(méi)事,暫時(shí)擱置吧,留給以后領(lǐng)悟。

1.5 貪心法

符號(hào)指的是程序的一個(gè)基本組成單元,起作用相當(dāng)于一個(gè)句子中的單詞,在C編譯器解釋表達(dá)式符號(hào)時(shí),它在移動(dòng)到下一個(gè)符號(hào)之前在單個(gè)符號(hào)中包含盡可能多的字符,稱之為貪心法。
比如a++++b 這句話被解釋為(a++)++b(所以表達(dá)式錯(cuò)誤)
a+++b++被解釋為(a++)+(b++)表達(dá)式正確

2、面試筆試?yán)}

#include <stdio.h> int main() { int x; scanf("%d",&x); if (x++>5) printf("%d\n",x); else printf("%d\n",--x);//注意這行代碼 }


上面是輸入4,得到4

#include <stdio.h> int main() { int x; scanf("%d",&x); if (x++>5) printf("%d\n",x); else printf("%d\n",x--); }


上面是輸入4得到5

#include <stdio.h>void main() { double x=0;double y=0; x=1,y=7.0/2; printf("%lf,%lf\n",x,y);}

注意:y=7/2,如果取7.0/2,取得的結(jié)果就是浮點(diǎn)型,否則默認(rèn)取整。

總結(jié)

以上是生活随笔為你收集整理的2、C语言面试笔试---运算符和表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。