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...