一道簡單的c語言題,一道簡單的C語言題

2022-02-14 15:56:07 字數 2155 閱讀 7303

1樓:匿名使用者

這道題的答案是和具體的平臺有關的,因為按照c/c++的語言定義,沒有明確規定型別如int, long, double, char,等的大小,僅僅規定了它們相互之間的大小關係,如1==sizeof(char)<=sizeof(short)<=sizeof(int)<=sizeof(long)

具體到你這道題,如果以32位windows平臺為例,sizeof(int) = sizeof(long) = 4; sizeof(double) = 8;

union取各成員中size最大者,為int k[5], 大小是5 * sizeof(int) = 20;

然後可以計算得:sizeof(max) = 20; sizeof(struct date) = sizeof(int) + sizeof(date) + sizeof(double) = 4 + 20 + 8 = 32; 最後結果是20 + 32 = 52

2樓:大嘴小炒

union是聯合體,需要那裡最大的,long是8個位元組,所以上面的date是8位元組。

struct是結構體,結構體需要一個補齊的概念,你就記住一點,結構體裡的型別大小必須是4的倍數,不是補齊,所以,max大小是4+8+8=20.

3樓:加菲貓餓啦

sizeof是個函式 用來求結構體的大小的。

一道簡單的c語言題

4樓:匿名使用者

其實這就是個迴圈連結串列,順便理解自增操作就行了。

可知a[2].i 的值為3,故選d。

5樓:匿名使用者

答案為d

a[3]陣列之中元素值(每一個陣列元素都是結構體)a[0] =

a[1] =

a[2] =

ptr =&a[1];

選項a ptr->i++ = 1+1 =2;

選項bptr++->i =(ptr->i)++此時ptr->i =2,由於是字尾,所以在此式子之後才變化b、d就是++i,i++區別了。

選項c為

*ptr->i =*(ptr->i) //錯誤選項d++ptr->i = ++(ptr->i)

c語言一道簡單的題目

6樓:匿名使用者

因為這裡是值傳遞,是單向的。

只是把a,b的值傳遞給了swap函式,然後在函式裡面新建了兩個變數,並賦值為傳遞過來的值,然後在swap裡面交換新建立的兩個變數的值,swap結束,釋放記憶體,新建的變數被**,原來的a,b不受影響~

7樓:澤國笑玉

在自己建立的函式中運算值,對主函式沒有影響

求解一道簡單的c語言題

8樓:匿名使用者

#include

int main()}

一道簡單的c語言題

9樓:聽不清啊

#include

unsigned set_n(unsigned x,int pos,int n)

{for(int i=pos;i

一道簡單的c語言題

10樓:聽不清啊

其中的 n+2 中的 n 未知是什麼量啊?所以沒法做的。

int main()

sizeof(unsigned)-1   -----是(sizeof(unsigned))-1),不是sizeof(unsigned)(-1)

11樓:自我程式設計

#include

int main()

一道簡單的c語言題

12樓:匿名使用者

就是5,編譯器親測;因為第一個\0就被認為結束了字串;自動忽略掉後續的字元了;

13樓:匿名使用者

應該是5個

strlen()從開始一直找到\0中止 到第一個\0就返回了 返回字串實際長度

strlen看到的字串只是"abcde"

14樓:

不可能是12,也不是6,是5。所以要選d。

一道簡單的c語言題求e的值,一道簡單的C語言題,求e的值,e1111213用for迴圈,計算前50項。

少了大括號導致for的迴圈體錯誤。更正如下 include main printf lf e 1 少對大括號 e e 1 s 這句也是for迴圈裡面的 改成這樣 include main printf lf e 1 請把for迴圈的內容用花括號處理一下 沒啥問題啊,能執行出來說明程式本身是沒有問題的...

求解一道簡單C語言題目求過程,一道簡單的c語言題目求解

a i 訪問a陣列下標為i的元素。將 a i b 改為 b i a i 行不行?語法行,邏輯不行 不是原意了 要使用strlen函式,需要include什麼標頭檔案?string.h。程式的輸出結果是什麼?lisi 一道簡單的c語言題目求解 5 include int main int main 在...

一道簡單的C語言程式

那麼程式應該沒其他問題了,只要把scanf d,d n,num1,num2 裡面的 n去掉就行了.另外輸入時注意輸入的兩數之間要加逗號 果然是樓主輸入錯誤,你的scanf裡面格式是 d,d,那麼你當然只能輸入16,8這樣啊,輸入16 8或者16 8都是格式錯誤,當然不正確.scanf d,d n,n...