C語言程序設計(微課版)ch4-運算符和表達式_第1頁
C語言程序設計(微課版)ch4-運算符和表達式_第2頁
C語言程序設計(微課版)ch4-運算符和表達式_第3頁
C語言程序設計(微課版)ch4-運算符和表達式_第4頁
C語言程序設計(微課版)ch4-運算符和表達式_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

運算符與表達式第4章

4.1算術運算符和算術表達式4.2自增、自減運算4.3位運算4.4賦值運算4.5關系表達式與邏輯表達式4.6條件表達式與逗號表達式第四章運算符與表達式4.1算術運算符和算術表達式

運算符表達式

+3+5、+3-5-2、-3*3*5

/3/2(結果為1)

3/2.0,3.0/2,3.0/2.0(結果為1.5)%(求余)

7%4(結果為3)-9%5(結果為-4)

9%(-5)(結果為4

2.0%3(錯誤,2.0不是整數(shù))

字符以其ASCII碼參加運算:

'a'+1為98'b'-'a'為1'8'-'0'為8a/10+a%10(如a=24,則結果為6)

(b%100)/10(如b=4321,則結果為2)例如:設a為兩位整數(shù),求其各位數(shù)字之和。又如:求一個整數(shù)b的十位上的數(shù)字。字符ASCII碼字符ASCII碼A65a97B66b98C67c99D68d100E69e101F70f102G71g103H72h104I73i105J74j106K75k107L76l108M77m109N78n110O79o111P80p112Q81q113R82r114S83s115T84t116U85u117V86v118W87w119X88x120Y89y121Z90z122字符ASCII碼048149250351452553654755856957

若已定義x和y為double類型,則表達式x=1,y=x+3/2的值是().122.02.5ABCD提交單選題1分

若已定義x和y為double類型,則表達式x=1,y=x+3/2.0的值是().122.02.5ABCD提交單選題1分算術運算中的類型轉(zhuǎn)換自動轉(zhuǎn)換強制類型轉(zhuǎn)換

自動轉(zhuǎn)換doublefloatlongunsignedintchar,short低高例如:2+’a’+1.52+97+1.599+1.599.0+1.5100.5強制類型轉(zhuǎn)換

一般形式為:

(類型名)表達式例如:

(double)x(將x轉(zhuǎn)換成double類型)(double)x/y(將x轉(zhuǎn)換成double類型,再與y相除)(int)3.14%2(即3%2)

設f是單精度實型,i是雙精度實型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為().

int

float

double

不確定ABCD提交單選題1分如何求一個整數(shù)每一位上的數(shù)字注意整數(shù)相除取整比如1+1/2+1/3+1/4+……+1/n作業(yè):將一個四位整數(shù)的個位與千位交換,百位與十位交換。1234—>43214.2自增、自減運算

如i=3;j=++i;j:4,i:4如i=3;j=i++;j:3,i:4運算符++--使用格式++ii的值先加1,后使用i++i的值先使用,后加1--ii的值先減1,后使用i--i的值先使用,后減1

執(zhí)行下列語句后變量x和y的值是().y=10;x=y++;

x=10,y=10

x=11,y=11

x=10,y=11

x=11,y=10ABCD提交單選題1分

3+a++,若a的初值為6,則表達式值為?a的值為?9,79,610,710,6ABCD提交單選題1分

++x*y-z,若x,y,z的值分別為3,4,5,則表達式和x的值最后分別為?11,411,37,47,3ABCD提交單選題1分4.3位運算

種位運算符&按位與運算符|按位或運算符^按位異或運算符<<二進制左移運算符>>二進制右移運算符~按位取反運算符按位與運算(&)

當對應位均為1時,結果為1;否則為0。例如,12&10的運算如下:

12:00001100&10:00001010_________________

結果:00001000作用:保留某一位,用1和相應位進行與運算。按位或運算(|)

對應位均為0時,結果為0;否則結果為1。例如:

0123:01010011

|014:000011000123|014:01011111作用:指定某一位的值為1。按位異或運算(^)

當對應位相同時,結果為0;否則為1。例如:00110011

^1100001111110000

按位取反運算(~)

使每一位上的0變1;1變0。例如:~0115是將八進制數(shù)115按位求反。即:

~01001101

_______________

結果:10110010左移運算(<<)

例如:

chara=6,b;b=a<<2;

用二進制數(shù)如下:

a:00000110(a=6)b=a<<2:00011000(b=24)返回目錄

short

a=-071400,b;b=a>>2;

符號位↓

a的二進制原碼表示:1111001100000000a的二進制反碼表示:1000110011111111a的二進制補碼表示:1000110100000000(機內(nèi)存儲形式)b=a>>2:1110001101000000(b的二進制補碼表示)b的二進制反碼表示:1110001100111111b的二進制原碼表示:1001110011000000b的八進制數(shù):-016300右移運算(>>)

右移時,右端(低位)移出的二進制數(shù)舍棄;左端(高位)移入的二進制數(shù)分兩種情況:對于無符號整數(shù)和正整數(shù),高位補0;對于負整數(shù),高位補1。若x=2,y=3則x&y的結果是().

0

2

3

5ABCD提交單選題1分

若a=1,b=2則a|b的值是().0123ABCD提交單選題1分

在位運算中,操作數(shù)每左移一位,其結果相當于().

操作數(shù)乘以2

操作數(shù)除以2

操作數(shù)除以4

操作數(shù)乘以4ABCD提交單選題1分變量名=表達式;4.4賦值運算

變量名=表達式

右結合賦值表達式賦值語句如a=3b=2*a+10如a=3;c=b=a+3;賦值時數(shù)據(jù)類型的轉(zhuǎn)換

當左右類型不同時,系統(tǒng)自動轉(zhuǎn)換。例如:

intn;n=3.1415;/*n的值為3*/

復合賦值運算+=-=*=/=%=<<=>>=&=^=|=a+=3a=a+3x*=y+8x=x*(y+8)x/=2*y-10x=x/(2*y-10)a&=ba=a&b

設a=12,且a定義為整型變量.執(zhí)行語句a+=a-=a*=a;后a的值為().

12

144

0

132ABCD提交單選題1分4.5關系表達式與邏輯表達式關系運算符>(大于)>=(大于等于)<(小于)<=(小于或等于)==(等于)!=(不等于)例如:a>ba+b>=b+c關系表達式成立,其值為1關系表達式不成立,其值為04.5.1關系運算

【例4.1】分析下面程序的運行結果。#include<stdio.h>intmain(){floatx,y=0.6;y=y*11;x=6+0.6;if(x==y)printf("OK,x==y");elseprintf("NO,x!=y");return0;}程序運行結果:NO,x!=y#include<math.h>fabs(x-y)<1e-5

下列運算符中是C語言關系運算符的是().

~

!

&

!=ABCD提交單選題1分運算結果:用1表示“真”,用0表示“假”。

在邏輯運算中,將非0值視為真、將0視為假。邏輯運算符!(邏輯非)&&(邏輯與)||(邏輯或)邏輯表達式

!aa&&ba||b4.5.2邏輯運算

注意:在邏輯表達式的求解中,并不是所有的邏輯運算符都被執(zhí)行,只有在必須執(zhí)行下一個邏輯運算符才能求出表達式的值時,才執(zhí)行該運算符。(1)a&&b則a、b的值分別為0、1(2)a||b則a、b的值分別為2、1inta=1,b=1;--a&&++binta=1,b=1;++a||++b

在C語言中,能代表邏輯值“真”的是().

True

大于0的數(shù)

非0整數(shù)

非0的數(shù)ABCD提交單選題1分

已知x=43,ch='A',y=0;則表達式(x>=y&&ch<'B'&&!y)的值是().

0

語法錯1

"假"ABCD提交單選題1分

intx=2,y=3,z=4;則表達式x+y>z&&y==z的值為().0123ABCD提交單選題1分4.6條件表達式與逗號表達式

【例4.3】用條件表達式求解下列問題。(1)求兩個變量a、b的最大值。解s=(a>b)?a:b;(2)求三個變量a、b、c的最大值。解s=(s=a>b?a:b)>c?s:c;(3)對字符變量ch,若為小寫字母,則改為大寫字母,其余字符不變。解

ch=(ch>=’a’&&ch<=’z’)?(ch-32):ch;(4)輸出整型變量x的絕對值。解(x>0)?printf(“%d”,x):printf(“%d”,-x);條件運算符

?:

條件表達式表達式1?

表達式2

:

表達式34.6.1條件表達式

【例4.3】任意輸入三個整數(shù),按從大到小輸出。#include<stdio.h>intmain(){inta,b,c,m,n,k;scanf("%d%d%d",&a,&b,&c);m=(m=a>b?a:b)>c?m:c;/*將a、b、c中的最大數(shù)賦給m*/n=(n=a<b?a:b)<c?n:c;/*將a、b、c中的最小數(shù)賦給n*/k=a+b+c-m-n;/*將a、b、c中的中間數(shù)賦給k*/printf("%d%d%d\n",m,k,n);/*從大到小輸出三個數(shù)*/return0;}程序運行情況:3-59↙93-5

經(jīng)過以下語句定義后,表達式z+=x>y?x:y的值為().intx=1,y=2,z=3;

2365ABCD提交單選題1分例如:(1)a=2+3,4*5;(2)inta=2,c;c=(b=a++,a+2);(3)inta=2,c;c=b=a++,a+2;逗號運算符

,

逗號表達式表達式1,表達式2,……,表達式n4.6.2逗號表達式

假設所有變量都為整型,表達式(a=2,b=5,a>b?a++:b++,a+b)的值是().7685ABCD提交單選題1分4.1算術運算符和算術表達式:+-*/%4.2自增、自減運算:++

--4.3位運算:&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論