C語言題目,能解答給過程嗎,C語言題目每一步要有過程求大佬解答。。

時間 2021-07-04 15:37:45

1樓:自我程式設計

你這個**結構陣列xs初始化,大括號只是劃分了兩個陣列元素,內部成員陣列沒有明確劃分,這屬於定義不明確!所以一般編譯器會按照結構內部空間順序賦初值。

所以,xs[0]的成員no,cj[0],cj[1],cj[2]分別對應初值1,60,61,0。(最後乙個0是因為初值個數不完全對應,沒有初值的就取預設值0)。

同理,xs[1]的成員分別對應2,71,72,0。

所以,最後迴圈列印的是3個值,分別是(60.0+71.0)/2,(61.0+72.0)/2,(0+0)/2。

也就列印65.5 66.5 0.0。

注意!題目有錯,明顯題意是迴圈打兩個陣列元素的成員陣列cj對應元素的平均值。所以最後列印語句應該是:cj[i]而不是cj[1]。

2樓:

定義時賦初值,缺少的元素會自動填0,這是乙個基本知識點。據此,就可以解決本題了。aqui te amo。

3樓:匿名使用者

讀懂題目就行啦,沒有特別大的邏輯問題,賦值**將後兩個數字賦值給陣列,迴圈**一次取出相加除二輸出即可。

c語言題目每一步要有過程求大佬解答。。

4樓:無欲無求的淫男

第乙個**,分別是 3 1回車4 3回車2 2回車1 2回車

5樓:匿名使用者

這是什麼,密碼嗎,看不懂

一道c語言題目,希望高手給個解答過程!

6樓:匿名使用者

無非是考察運算子優先順序嘛,樓主去查一下運算子優先順序,嚴格按照優先順序來算一下不就行了。

需要注意的是,==,>這些比較運算子的結果,如果是真,則為1,假為0。

7樓:匿名使用者

樓上的程式有錯,打錯符號了b=  x  y>=z;

這個是什麼啊

8樓:匿名使用者

x=9 y=8 z=7

a=1 b= c=0

由於b的算是看不懂,所以沒寫

9樓:問到你翻臉

第5行和第6行編譯失敗

10樓:

為什麼不執行下,呢????

11樓:匿名使用者

x=8, y=8,z=7

a=0, b=0,c=1

一道c語言的題目,跪求大神解答,拜託能不能解釋一下執行過程 5

12樓:油條大巴

#include

int main()

,*p1[3],(*p2)[3];

// 二維陣列p有3行,每行有3個整數.

// 應該寫成int p[3][3]=, ,  };

// p等於0x28fee4,這是十六進製制數,是記憶體位址,從這個記憶體位址開始,連續存放9個整數.

// p[0]等於0x28fee4,這是第0行的首位址,存放1,2,3這三個整數,每個整數占用記憶體4個位元組,

//     其中,[0x28fee4]=p[0][0]=1,[0x28fee8]=p[0][1]=2,[0x28feec]=p[0][2]=3

// p[1]等於0x28fef0,這是第1行的首位址,存放4,5,6這三個整數,每個整數占用記憶體4個位元組,

//     其中,[0x28fef0]=p[1][0]=4,[0x28fef4]=p[1][1]=5,[0x28fef8]=p[1][2]=6

// p[2]等於0x28fefc,這是第2行的首位址,存放7,8,9這三個整數,每個整數占用記憶體4個位元組,

//     其中,[0x28fefc]=p[2][0]=7,[0x28ff00]=p[2][1]=8,[0x28ff04]=p[2][2]=9

for(i=0;i<3;i++) p1[i]=p[i];

// int *p1[3]是"指標陣列",是一種"陣列",裡面存放的是"指標",也就是存放"記憶體位址".

// 定義p1裡的數字"3"表示能存放3個"指標",也就是3個"記憶體位址".

// i分別等於0,1,2

// i=0時,p1[0]等於p[0]=0x28fee4, p1[0]指向p的第0行的首位址,也就是指向的首位址.

// i=1時,p1[1]等於p[1]=0x28fef0, p1[1]指向p的第1行的首位址,也就是指向的首位址.

// i=2時,p1[2]等於p[2]=0x28fefc, p1[2]指向p的第2行的首位址,也就是指向的首位址.

// p1等於0x28fed8,這是記憶體位址,

// 記憶體位址0x28fed8裡連續存放了三個資料:0x28fee4,0x28fef0,0x28fefc

// *p1=*(p1+0)等於0x28fee4,也就是 *p1 = p1[0]=p[0]=0x28fee4

//                        也就是*p1指向二維陣列p的第0行的首位址

// *(p1+1)等於0x28fef0,也就是 *(p1+1) = p1[1]=p[1]=0x28fef0

//                     也就是*(p1+1)指向二維陣列p的第1行的首位址

// *(p1+2)等於0x28fefc,也就是 *(p1+2) = p1[2]=p[2]=0x28fefc

//                     也就是*(p1+2)指向二維陣列p的第2行的首位址

// 所以,p1這個"指標陣列",存放了三個記憶體位址 ,

// 也就是 .

// 這三個資料就是三個"指標",也就是三個"記憶體位址",分別是二維陣列p的三行整數的首位址.

// 例如,*(p1+1)+0 指向 p[1] 的第0個整數4的記憶體位址

//      *(p1+1)+1 指向 p[1] 的第1個整數5的記憶體位址

//      *(p1+1)+2 指向 p[1] 的第2個整數6的記憶體位址

//      *(*(p1+0)+0) = p[0][0] = 1

//      *(*(p1+0)+1) = p[0][1] = 2

//      *(*(p1+0)+2) = p[0][2] = 3

//      *(*(p1+1)+0) = p[1][0] = 4

//      *(*(p1+1)+1) = p[1][1] = 5

//      *(*(p1+1)+2) = p[1][2] = 6

//      *(*(p1+2)+0) = p[2][0] = 7

//      *(*(p1+2)+1) = p[2][1] = 8

//      *(*(p1+2)+2) = p[2][2] = 9

p2=p;

// int (*p2)[3]是"陣列指標". 語句p2=p表示"陣列指標"p2指向二維資料p的首位址.

// 定義p2裡的數字"3"表示每行有3個整數.

// p2等於0x28fee4,這是記憶體位址,是二維資料p的首位址.

// *p2 = *(p2 + 0) = p[0] = 整數p[0][0]的記憶體位址

//       *(p2 + 1) = p[1] = 整數p[1][0]的記憶體位址

//       *(p2 + 2) = p[2] = 整數p[2][0]的記憶體位址

// *( *p2 + 0 ) = *( *(p2 + 0) + 0 ) = p[0][0] = 1

// *( *p2 + 1 ) = *( *(p2 + 0) + 1 ) = p[0][1] = 2

// *( *p2 + 2 ) = *( *(p2 + 0) + 2 ) = p[0][2] = 3

//                *( *(p2 + 1) + 0 ) = p[1][0] = 4

//                *( *(p2 + 1) + 1 ) = p[1][1] = 5

//                *( *(p2 + 1) + 2 ) = p[1][2] = 6

//                *( *(p2 + 2) + 0 ) = p[2][0] = 7

//                *( *(p2 + 2) + 1 ) = p[2][1] = 8

//                *( *(p2 + 2) + 2 ) = p[2][2] = 9

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

printf("%d,%d\n",*(*(p1+i)+1)+1,*(*++p2+1)+1);

// i分別等於1,2

// i=1時, *(*(p1+i)+1)+1 = *(*(p1+1)+1)+1

// 其中,*(p1+1) 等於0x28fef0,也就是 *(p1+1) = p1[1]=p[1]=0x28fef0

// 也就是 *(p1+1) 指向二維陣列p的第1行的第0個整數的記憶體位址

// 而 *(p1+1)+1 指向二維陣列p的第1行的第1個整數的記憶體位址

// *(*(p1+1)+1)就是提取"第1行的第1個整數",也就是

// *(*(p1+1)+1) = p[1][1] = 5

// 所以,*(*(p1+1)+1) + 1 = 5 + 1 = 6 (這是螢幕輸出的第一行第乙個整數)

// 對於 *(*++p2+1) ,原本是 *( *(p2 + 0) + 1) = p[0][1] = 2

// 由於有"++p2"的運算,成為 *( *(p2 + 1) + 1 ) = p[1][1] = 5

// 所以, *(*++p2+1) + 1 = 5 + 1 =6 (這是螢幕輸出的第一行第二個整數)

// i=2時, *(*(p1+i)+1)+1 = *(*(p1+2)+1)+1

// 其中,*(p1+2) 等於0x28fefc,也就是 *(p1+2) = p1[2]=p[2]=0x28fefc

// 也就是 *(p1+2) 指向二維陣列p的第2行的第0個整數的記憶體位址

// 而 *(p1+2)+1 指向二維陣列p的第2行的第1個整數的記憶體位址

// *(*(p1+2)+1)就是提取"第2行的第1個整數",也就是

// *(*(p1+2)+1) = p[2][1] = 8

// 所以,*(*(p1+2)+1) + 1 = 8 + 1 = 9 (這是螢幕輸出的第二行第乙個整數)

// 對於 *(*++p2+1) ,之前i等於1時,是 *( *(p2 + 1) + 1 )

// 由於有"++p2"的運算,現在成為 *( *(p2 + 2) + 1 ) = p[2][1] = 8

// 所以, *(*++p2+1) + 1 = 8 + 1 =9 (這是螢幕輸出的第二行第二個整數)

// 所以,程式輸出的第一行是6,6, 第二行是9,9

return 0;}

請c語言高手解答下,C語言題目,求大佬解答

include int main s i k s 0 1 一的階層不再迴圈裡。for i 0 i 50 i 求各個奇數階層的總和printf d sum 輸出。return 0 include include char a 10 b 40000 void largeadd char aa,char ...

c語言 題目如下 求大神解答,C語言 題目如下 求大神解答

東北角雜草 你是在看翁愷老師的 程式設計入門 c語言 吧,我也在學哦 o 努力!下面的 是我自己寫的,我驗證過,但還是可能會有些錯誤沒發現哈其中ujt 10的部分參考了樓上的答案 附件裡有原檔案 今天上課吃點啥 mooc裡的c語言課我也在學 5分答案 include int main include...

C語言題目求大佬解答,c語言程式設計題目,求大佬解答

3 2 3 1 2 解答 注意,全域性變數的a和函式形參區域性變數的a是不同的,主函式裡面的a指的是全域性變數的a。不管是字首自增還是字尾自增,a始終都要加1再輸出,故主函式裡的結果是a 2。a表示a先加1再進入函式運算,此時f a 等價於f 1 其中a 2表示a 3,b是靜態型別,作用域是全域性,...