c語言題下面程式段執行後輸出結果是

2021-12-19 08:33:40 字數 5065 閱讀 9296

1樓:御含靈

c沒有錯 static的變數 系統會全部初始化為0的

j=3,實際上第三列 從來沒賦過值 當然是0

2樓:

答案是對的,你想一下,在兩個for 迴圈中,a[0][0]=0,a[0][1]=1,a[0][2]=2,a[0][3]~a[0][7]都是為0的,下面以此類推,這個的原理很簡單,就是我們已經定義了一個二維陣列a[8][8],只是為a[0][0]~a[2][2],其中的a[0][3]開始的資料,都是系統自動儲存0的。下面j由於迴圈結束,j=3跳出for迴圈,在執行x+=a[i][j],就是 x=a[0][3]+a[1][3]+...+a[7][3]=0的,所以答案是沒有錯的,要人情沒有分配的空間裡,陣列是儲存0的就好啦,請採納

3樓:

首先是for兩層巢狀迴圈,迴圈完畢後j的值為3,從a[0][0]到a[2][2]分別都有賦值,後面的都為0

進行最後的for迴圈時,j還是3,a[i][3]都為0,所以迴圈結束後x還是0

4樓:戚文柏

for(i=0;i<8;i++)

x+=a[i][j];

這裡有問題,少了一個for(j=0;j<8;j++) 不然不能確定指向的二維陣列元素

一道c語言題:下面的程式段執行後,輸出結果是

5樓:匿名使用者

答案是0;

int i,j,x=0;

static int a[8][8]; //定義的bai時候系統自動初du

始化,把陣列中zhi所有的元dao素都賦成0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

a[i][j]=2*i+j; //將陣列右上角的回3x3的子矩答陣賦值;(注意,此時結束時j的值是3)

for(i=0;i<8;i++)

x+=a[i][j];//這裡j的值是3,所以相當於把a[0][3] a[1][3] a[2][3]到a[7][3]累加到x上,而在上面的賦值中又沒有給這些值賦值,所以這些值都是0;而x的初值也是0,所以最後輸出的x應當為0;

printf("%d",x);

6樓:匿名使用者

用來static定義陣列,就已經給陣列初值了源,即使所有的值均為0.

你用for在給陣列賦值的時候,只給了a[0][0]至a[2][2]的值,即那些值現在已經有變化了.在經過兩個for之後,j的值應該變為了3.

那麼再經歷下一個for,應該執行的語句就是x+=a[i][3],可想而知,不論你經歷多少次迴圈,只要j是3,那麼些a[n][3]就是0.因為第3列根本就沒有變化過.值仍舊為0

所以結果為0

7樓:匿名使用者

static int a[8][8], a中的每個元素都是0

第三個for的時候 j=3, a[i][3]都是0,所以結果是0

8樓:匿名使用者

是0 e:\case.win\nasm>gcc z.c -o z.exe

e:\case.win\nasm>z

0 e:\case.win\nasm>

#include "stdio.h"

int main()

c語言題目:下面程式段的輸出結果是什麼? 15

9樓:匿名使用者

答案是0

int k沒有初始化,所以初始值不確定,但是int型別 4個位元組(範圍是-2147483648~2147483647). 所以在計算k的值時候,從起始地址往下數32位, 超出32位的會被截斷

如果是正數,那最後就是0,很直觀

如果是負數(8個位元組來看)

0xffffffffffffffff === -10xfffffffffffffffe === -20xffffffff80000000 === -21474836480xffffffff7fffffff === -2147483649但整型4個位元組,所以對於-2147483649,它計算0x7fffffff的大小,變成了2147483647,回到正數,最後為0

10樓:匿名使用者

如果正確答案是a;那麼那個老師是有問題的;c語言中出現這種情況,答案是d才對

11樓:知道嗎

你沒賦值,預設數值為0 的

c語言題 求執行結果 給出解釋. 下列程式段執行後的輸出結果是( )

12樓:你若安好

這段**最抄後輸出的是-4,(ps:/n應該是\n)a?b:

c語句的意思是 1.假如a(邏輯表示式或0、1)的邏輯值為0,則語句的值為b(b為表示式則取最後的值)2.假如a的邏輯值為1,則取c的值。

在你的語句中a對應的為「k

不懂可追問

13樓:好嘞啊啊啊啊

k

判斷 k

答案d應該是-4 而不是4

14樓:摩羯橋穎穎

選a~~ 條件運算子,右結合性,,k

15樓:匿名使用者

int k=-4,a=3,b=2,c=1;

printf("%d\n",k輸出:-4

k

16樓:匿名使用者

k=-4嗎,感覺這題有問題阿

下面程式段的輸出結果是??為什麼??c語言

17樓:煙火夜空

a的資料型別是什麼?

不管了,

我就當是 int 型的了。

a=100,a>120不成立,所以while()不執行,而while後面的內內

容是容 分號,也就是 while的內容為 空;所以結束while後執行a=a+1;得a=101,列印a=101

18樓:楊兵

a=100;

while(a>120); //請注意這裡有沒有bai「;」a=a+1;

printf(″%d″,a);

如果有du的「;」話,zhi答案就是101,因dao為while迴圈的是空回語句答,a=a+1;是下一條語句,一定會執行的。

如果沒有「;」的話,答案就是100,因為while的迴圈語句是a=a+1;,當不滿足判定條件a>120時,不執行a=a+1;,所以a的值不變,仍為100

c語言的一道題:下面程式段的執行結果是:__ for (a=1,i=-1;-1<=i<1;i++)

19樓:匿名使用者

c語言中 -1<=i<1 這樣的語句是無法達到你要的效果的,對於這個句子,c語言是這樣處理的:

(-1<=i)<1 (1)這樣的話,-1<=i為真,所以這個表示式的值為1,也就是說(1)這個表示式等價於(1<1)然後這個式子為假,所以不會進入該迴圈,所以i沒有發生變化,也不會輸出i,所以答案為-1

如果for迴圈寫成這樣:for (a=1,i=-1;-1<=i&&i<1;i++) 那麼題主你的答案就對了。

20樓:擺渡人生

a=3i=1

你 i 打錯了 是小寫才對

c語言題 以下程式中函式 程式執行後輸出的結果是怎麼得到的

21樓:匿名使用者

f函式的功能是:對於傳入的陣列b首地址起的n個數進行排序,當flag為1時,進行由小到大排列專,當flag為0時進行由大到小屬排列。

那麼f(&a[2],5,0);的意思就是:從a[2]開始的5個數進行由大到小排列,即3,2,1,6,7變成7,6,3,2,1。原陣列變成5,4,7,6,3,2,1,8,9,10

f(a,5,1);:從a[0]開始的5個數進行由小到大排列,即5,4,7,6,3變成3,4,5,6,7。原陣列變成3,4,5,6,7,2,1,8,9,10

22樓:藍風停

a?b:c //如果a為1,執行表示式b;如果a為0,執行表示式c;

23樓:匿名使用者

f函式功能並不是bai 當duflag為1時,進行由小到大排列zhi,當daoflag為0時進行由大到小排

版列;而是,兩個

權數交換,但沒有對全部的數進行排列。

f(&a[2],5,0); &a[2]是從a[2]開始 第一次處理的是 3 2 1 6 7

f(a,5,1);是從a[0]開始處理。

c語言,以下程式執行後的輸出結果是

24樓:匿名使用者

c=(a+=a-=5)是一個

表示式,(a=b,b+3)是另一個表示式。

a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,將值賦給c,c=-10,此時,a=-5

a=b,將b的值賦給a,a=0,執行b+3=0+3=3,這個3不對任何變數賦值。

因此最終結果a=0,b=0,c=-10

輸出a、b、c的值,輸出0,0,-10

求解一道c語言填空題:以下程式執行後的輸出結果是()

25樓:oo戼爫爫

做這道題首先要知道牽涉到的連結串列。結構體等知識,主函式前定義的就是結構體,我做出來的答案是5

26樓:匿名使用者

程式前面加一句:#include

sun=0x0005

27樓:匿名使用者

s0的下一個指向s1,s1的下一個指向s2,s2的下一個指向s0,p指向s0,q指向s1,r指向s2,所以sum=q->nextt->num(即s1的num--2)+r->next->next->num(即s2的num3)=5

最後答案5

c語言譯密碼問題,下面這個程式,ifcZc

if c z c z 4 baic z c c 26 我認為,應該是 if c z c z 4 c z c c 26 題目應du該是對輸入的英文zhi字母dao加密,加密方法版是向後移動4個字權母,即把a變成e,並且迴圈變化,如z變成d。這裡的判斷就是對轉碼後超過 z 和 z 的字元修正。所以你的理...

資料結構C語言問題,下面程式錯在哪裡

1 q.front queueptr malloc sizeof qnode q.front queueptr malloc sizeof struct qnode 或者q.front queueptr malloc sizeof queueptr 2 void enqueue int e if q...

c語言 下列程式執行後的輸出結果是1為什麼

36 輸出 1 x 0xffff 如果用十六進位制表示的話,數前面要加0x以表示是十六進位制。ffff用二進位制表示就是16個1,1111111111111111,轉換成十進位制就是2 16 1,即65535。因為int型資料範圍是 32767 32768,二進位制在計算機中表示時,第一位是符號位 ...