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 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 的字元修正。所以你的理... 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... 36 輸出 1 x 0xffff 如果用十六進位制表示的話,數前面要加0x以表示是十六進位制。ffff用二進位制表示就是16個1,1111111111111111,轉換成十進位制就是2 16 1,即65535。因為int型資料範圍是 32767 32768,二進位制在計算機中表示時,第一位是符號位 ...c語言譯密碼問題,下面這個程式,ifcZc
資料結構C語言問題,下面程式錯在哪裡
c語言 下列程式執行後的輸出結果是1為什麼