c語言程式設計的基礎題目求教,請給解析(多追積分)

2022-06-25 02:05:09 字數 3871 閱讀 3772

1樓:匿名使用者

1全部1:已知a=13,b=6,a%b的十進位制數值為()

a%b,整數%整數,表示求餘數,因此13%6=1

2:設x的值為15,n的值為了2,則表示式x%=(n+3)運算後的x的值是()

x%=(n+3)相當於x=x%(n+3),x%=n+3也表示x=x%(n+3),類似的有+=,-=,*=,/=

因此x=x%(n+3),x=15%5,x=0.

3:int x=y=4,z=2;x=y==z;則x的值為()

x=y=4,等號是右結合的,也就是這種情況下要從右向左計算,因此相當於y=4;x=y;

而x=y==z,==的優先順序比=高,因此相當於x=(y==z),y=4,z=2所以y==z不成立,所以y==z這個表示式的值是false,也就是0,所以x=0

4:若有定義:int a=10,b=9,c=8;接著順序執行後下列語句是,變數b中的值是()

c=(a-=(b-5));

c=(a%11)+(b=3);

由上面的幾題為基礎,

c=(a-=(b-5))相當於c=(a=a-(b-5)),c=(a=10-(9-5)),c=(a=6),所以a=6,c=6,b=9(表示式b-5並沒有改變b的值)

c=(a%11)+(b=3)相當於,c=6%11+3=6+3=9,所以a=6,c=9,b=3

5:int x=2,y=2,z=0;則表示式的x==y>z的值為()

x==y>z這個一個復合邏輯表示式,>優先順序高於==,所以相當於x==(y>z),y>z成立,所以y>z==1,x==1不成立,所以表示式的值為0

6:若有以下定義和語句int a[4]=,*p;

p=&a[2];則*--p的值是()

p=&a[2];表示p是a[2]的地址

*--p相當於*(--p),就是先將p減1,也就是a[1]的地址,然後用*操作符取出地址中的值,也就是1

2樓:匿名使用者

1.1 %表示求餘數

2.0 x%=(n+3)表示把x對n+3的餘數賦值給x3.0 x=(y==z)表示把y==z的值給x,x==y是邏輯運算,假為0

4.3 只要看b的值就行了,最後一條b=3就把3付給了b5.1 x==y表示x等於y的邏輯值,真為1假為0,顯然x,y都為2,2>z是真,所以結果是0

6.1 p=&a[2]使p指向a[2]即2,前--優先順序高於*,--p使p指向a[1]即1

3樓:匿名使用者

1:已知a=13,b=6,a%b的十進位制數值為(1) // 13/6=2餘1 (&就是取餘數的意思)

2:設x的值為15,n的值為了2,則表示式x%=(n+3)運算後的x的值是(0);

//即x=15%(2+3)

3:int x=y=4,z=2;x=y==z;則x的值為(0)

// y=4,z=2; y==z返回值為假,即0; (== 的意思是比較,返回值是一個bool值)

4:若有定義:int a=10,b=9,c=8;接著順序執行後下列語句是,變數b中的值是(3)

c=(a-=(b-5));

c=(a%11)+(b=3);

// 只看最後(b=3)就夠了,只有這句改變了b的值

5:int x=2,y=2,z=0;則表示式的x==y>z的值為(0)

// >號的優先順序更高,即先算 y>z值為真-即值為1

//再算 x==1;的得值為假,即最後答案為0

6:若有以下定義和語句int a[4]=,*p;

p=&a[2];則*--p的值是(1);

//p被賦值為a[2]的地址,則 --p的值是 a[1]的地址,

//它指向的內容就是a[1]即*--p的值是1;

//&是取地址的意思,*是通過地址獲取物件的意思

如果再要詳細的解釋就去看書吧,這邊說沒意思,這邊來就是基礎知識

4樓:小老鼠

1:已知a=13,b=6,a%b的十進位制數值為()

%是取餘運算子 ,注意兩邊的運算元必須是整數,13%6 商就是2 餘數就是1 ,所以結果為1

2:設x的值為15,n的值為了2,則表示式x%=(n+3)運算後的x的值是()

%=是複合運算子,就為x=x%(n+3) ; 15%5 商是3 餘數為0

3:int x=y=4,z=2;x=y==z;則x的值為()

x=y是賦值表示式,優先順序最低,y==z是判斷y是否等於z,如果不等,則表示式值為假(0);否則為真(1); y!=z 所以x的值為0

4:若有定義:int a=10,b=9,c=8;接著順序執行後下列語句是,變數b中的值是()

c=(a-=(b-5));

c=(a%11)+(b=3);

c=(a=a-(b-5)) 所以a=6;c=6;

c=(a%11)+(b=3) c=6+3=9;b還是等於9,所有表示式中並沒有改變b的值;

5:int x=2,y=2,z=0;則表示式的x==y>z的值為()

關係運算子優先順序要比等於運算子高,所以先判斷y>z; 值為真,所以等於1;

再判斷 x==z ??值為假,整個表示式值為0;

6:若有以下定義和語句int a[4]=,*p;

p=&a[2];則*--p的值是()

p=&a[2] 所以*p=2;

*--p;指標運算子和自減運算子優先順序相同,看結合性,是從右到左;所以相當於*(--p) 先減 後取值 結果等於1

5樓:匿名使用者

1 %是求餘數 ( 1)13除以6餘數為12 (0)這裡先算()裡面的n+3=5然後15除以5餘數為0賦值給x

3 (0)這裡y不等於z所以這裡為假還有記住==後結果只能為0或1(==就是我們數學中的等於)(=是我們說的給它一個數但可以變的)

4 (3)一開始b=9但是後來c=(a%11)+(b=3);

這裡有一個b=3所以最後b=3了記得b它是一個變數5(0)第五題和第三題差不多

6 (1)這題的*p是一個指標變數

然後將a[2]的地址賦給p

然後又有一個(--p)這裡就是p先自減1(也就是退1)所以p現在是a[1]的地址了

*p就是輸出它的值

如果是*p--那麼結果就是2了

因為p--是先計算後自減

--p則是先自減後計算

6樓:

你的題大部分是關於運算子的,建議多看看c 語言書的相關章節

1. 答案是1. %表示求餘數,13%6 , 就相當於13/6 = 2 餘 1,13%6 = 1.

2. 答案是0. 根據優先順序,先算n+3 = 2+3 =5; 然後 x % = 5,相當於x = x%5;x%5 = 15%5 =0;所以 x =0;

3.答案是0. 求x的值,實際上是算x=y==z, 根據優先順序相當於x=( y==z );先算y==z, 運算子 == 是一個邏輯運算的符號,如果兩邊相等,它的值是1,如果不等就是0;所以(y == z) 就是0; 然後 x = 0, 注意這個式子中的 = 也是一個符合不是等號,叫賦值號, 把 0 賦給 x, 最終 x 值為 0.

4.答案是3. 可以不用管第一句,關鍵是b =3,因為是賦值,所以這句話完後b 就等於3了,其他的東西對b 的值沒影響。

5.答案是0. 這道題只有兩種答案1 或者0;前面我們提到==是邏輯運算子,>也是邏輯運算子,根據優先順序相當於 x==( y>z ),明顯y>z,所以(y>z)的值是1;

所以答案就相當於 x==1, 但x不等於1,所以(x==1)這個式子的值就是0.

6.答案是1. 這個估計你還沒學, int a[4]=,定義了一個陣列, *p定義了一個指標變數p; p=&a[2],表示p指向陣列裡下標為2的元素,也就是 之中的2; *--p 按優先順序是*(--p),所以先--p,變成了&a[1], *表示取該指標所指向的值,所以 *(&a[1]) = 1 .

這個沒懂沒關係,算是對初學者比較難的了。

c語言的程式設計題目,請高手幫忙!謝謝

第一題 從鍵盤輸入任意兩個正整數x和y,程式設計求出兩數的最大公因子和最小公倍數 include int main void a 0 b 0 for i 2 i x y i if a 0 printf d 和 d 沒有公因子。最小公倍數是 d。n x,y,b else printf d 和 d 的最...

程式語言c語言,c語言是所有語言的基礎嗎

一是要看呼叫函式對引數的要求,比如scanf如果輸入整數要求給一個指向整數變數的指標,而int a 是整數變數,它不是指標,而是int型的,所以要取出這個變數的地址寫到引數位置 a 如果是int a 10 10 那麼a也不是指向整數變數的指標,假設輸入a i j 這個變數,它的型別是int型的,也需...

初學者求教一道c語言題目,一道C語言程式設計題,初學者求教

include include int main void height height pow 0.5,n 小數點後多保留幾位,不然容易出現0.0,同時double型別應該是 lf printf distance 6lf n distance printf distance 1f n distanc...