c語言題目求詳細解釋,C語言題目,求詳細解釋

2022-07-11 00:45:19 字數 4941 閱讀 7447

1樓:莊政警

在c語言裡,結構體在記憶體中存放時要遵從這樣的規則:

1:每個成員的相對於整個結構體起始地址的偏移值必須是該成員長度的整數倍

2:整個結構體的長度必須是最長的元素的整數倍

現在看整體是24,是最長元素8的倍數 ,符合規則2 ,於是長度就是24 就是選項d

如果換個次序變成下面這樣,就是32個位元組了

// 因為26不是8的倍數 ,所以湊到32位元組

第12題 p++就是從起始地址開始偏移1個short單位,也就是2個位元組 ,3000+2就是3002了

第9題 int s[2]=; 意思就是int s[2]=; s[1]就是0,*10還是0

2樓:匿名使用者

計算結構體型別空間大小的原則:結構體的有效對其值

1) 資料對齊原則---記憶體按結構體成員的先後順序排列,當排到該成員時,其前面已開闢的空間位元組數必須是該成員型別所佔位元組數的整數倍,如果不夠則補齊,依次向後類推。

2) 整體空間是佔用空間最大的成員型別所佔位元組數的整數倍。

char[10]位十個位元組,double是八個位元組,10不是8的倍數,不滿足第一項,向上補齊為16位元組,所以結構體大小位16+8 = 24,結構體成員佔用空間最大是double型別,24是8的倍數滿足第二項,所以結果為24.

指標偏移偏移的是指標所指型別的位元組個數:short型別指標偏移一位相當於地址移動sizeof(short)位元組。

陣列初始化時,下標代表陣列內元素個數,int s[2] = ;表示陣列s內有兩個元素,第一個元素位1,即s[0] = 1,所以陣列的第二個元素沒有初始化,預設為0,即s[1] = 0;所以計算結果為0。

c語言題目,求詳細解釋

c語言題目,求詳細解釋,謝謝

3樓:

選d吧,b,c肯定不對,因為s,t不是變數。a也不對,因為s還不能直接定義變數,struct s才是這個型別名。

c語言的題目,求詳細解釋啊,**等!

4樓:匿名使用者

答案是 japan korea

理由:str[3][6]是一個二維陣列,可以看成是 以str[6]為元素的陣列,大小為3。

str[1] 就是 字串「japan」

str[1][5]就是"japan"的第六個字元,也就是「\0」,即字串結束符

賦值語句把這個位置的字元改成了空格『 』 ,所以當讀取字串str[1]的時候,計算機一直要讀到結束符「\0」為止,因此會一直把下一個字串的內容也讀出來。

在記憶體中存放的順序就是

原來是: china\0

japan\0

korea\0

賦值以後:china\0

japan

korea\0

輸出str[1]的時候從j開始讀取內容一直到\0,因此得出結果japan korea

5樓:匿名使用者

str[3][6]=;

str如下

0 1 2 3 4 5

0 c h i n a \0

1 j a p a n \0

2 k o r e a \0

str[1][5]的值本來是'\0',是一個字串的結尾的標誌,被你修改成空格(空格不是'\0'),所以輸出str[1]就是japan這一行的時候,函式找不到字串結尾標誌,就一直讀下去,直到找到korea後面的'\0',輸出結束

6樓:

輸出內容為:japan korea

解釋:原來str[1][5]的值為'\0',也就是字串的結束符。加上這個語句str[1][5]=' ',就把為'\0'改成了' ',這樣輸出的就是japan korea了。

如果沒有str[1][5]=' '這個語句,則printf("%s\n",str[1]);輸出的內容為:japan

7樓:

樓上的解析得太對了,太詳細了!

c語言的一道簡單題目 求詳解

8樓:鬼採

答案是25,選c。

void prty,正確來說應該寫為void prty(int x),這句是定義一個沒有返回值的函式

內。根據題容目給出的程式,該函式的作用是列印該函式的引數。在主函式(main()函式)裡,先定義了一個整型變數a,並給a賦值為25,然後把變數a當成引數呼叫prty函式,則結果是列印變數a的值,也就是25,故選c。

9樓:

你是問bai

第一行?

第一行du中的void prty(int x)其中void表示此函式

沒zhi有返回值dao。(通俗理解就是呼叫這內個函式的那個「地方容」得不到這個函式的返回值 這個函式只是被單純的呼叫 不指望它給我們帶回什麼資料)

你問:「能夠解釋下void prty 是什麼意識?」

prty不用我解釋了吧?是一個函式的名字。

這個屬於c的函式那一塊的知識了。這都是最最基礎的東西了。

10樓:東風冷雪

結果 25

那是一個函式,而已

11樓:匿名使用者

void 指的是沒有輸出 修飾prty函式

12樓:宿雨厭厭

void 是 空型別 的意思

prty 是函式的名稱

void prty(int x)的意思是:ptry 函式的參量版為 一個int的變數 x,返回值為 void(不返回任何類權型)

如果是 int prty(int),那麼返回值就是 int,在 prty(int)

中函式體就必須寫

return num;//num 必須是一個 int 變數

c語言的一些題目:不太理解**,求詳細解釋,手寫部分看不懂 10

13樓:

首先main()是主函式,通俗來說就是一個程式的入口,只能先執行main函式。

而題中的fun在main中被呼叫了,並且傳入的引數值是500從題目中得知,需要取 被13或17整除的數字下圖紅框可知,k就是那個除數,也就是500,所以int fun括號中輸入的應該是k

所以填入int k

最後題目要求最大十個,我也懶得說了

14樓:匿名使用者

main是主函式,fun是呼叫函式,按照這個思路去看就能明白了

一些c語言題求詳解

15樓:匿名使用者

2a:不改變

3a:我不怎麼確定

4c:整形自動去餘數

6c:只有它是對的

7d:應該為printf("%lf",a);8d:

16樓:落幕羈絆著思念

2.b 3.d 4.c 6.b 7.a 8.d

c語言題目。求大神詳細的解釋。。

17樓:匿名使用者

這個很簡單的,就是陣列的問題,你的k定義為2,但是陣列下標只到2,而且for迴圈裡面的陣列加法只會執行到陣列下標為1的元素,也就是講,陣列元素下標為2的元素沒有執行加法,所以還是初始化時候的值,也就是0,不懂的問我,你把陣列拿章仔細的看看就明白 了

18樓:匿名使用者

第一個for迴圈把n[3]陣列全部值賦值為0,即n[0]==0,n[1]==0,n[2]==0

下面的巢狀迴圈因為k=2,且i和j都小於k,所以只改變了n[0]和n[1]的值。n[2]的值一直沒變,還是0.

最後輸出n[2]就是0

最後時陣列n[3]=

一道c語言的題目,求詳細解釋*pa與pa的區別

19樓:匿名使用者

這裡涉及的主要是對指標的理解;

首先宣告四個變數,兩個int型別的變數,兩個int *型別的變數;int型別的變數儲存的是int型別的值,int *型別的變數儲存的是一個地址,這個變數可以儲存一個int型別的地址,而這個int型別的地址裡面毫無疑問儲存的是一個int型別的值。

int *pa=&a,可分解成:

int *pa;

pa = &a;//把a的地址賦給pa

這樣pa這個指標就指向了變數a的地址;

* 是一個解引用符,在這裡,*pa就是指標pa所指向的記憶體當中儲存的變數;也就是說這時*pa與a是等價的。

pb與b的關係也是一樣的;

現在就很清楚了:

*pa=3;//往a這個變數裡存3

*pb=4;//往b裡存4

a=5;//往a裡存5

b=6;//往b裡存6

pb=pa;//pb這個指標指向變數a的地址*pa + *pb;//就是a + a,並且此時a = 5答案自然是 a

20樓:匿名使用者

答案為a、10

你迷惑的可能是這裡:

int *pa=&a,*pb=&b;

其實這個相當於:

int *pa,*pb;

pa = &a;

pb = &b;

這個是初始化的地址賦值模式,和指標正常賦值語句*pa=a是不一樣的。

21樓:匿名使用者

#include

void main()

/*a、10 b、11 c、12 d、7*//*其實我沒看懂,試過只後才知道結果是什麼*/a=5,b=6

pa=0012ff7c,pb=0012ff78*pa=5,*pb=6

a=5,b=6

pa=0012ff7c,pb=0012ff7c*pa=5,*pb=5

10press any key to continue

c語言求詳細解答,c語言題目,求詳細解答步驟,謝謝。

解釋 各個函式題主都明白吧。fseek fp,0l,0 是移動指標到檔案頭,rewind fp 也是,所以程式一開始往文回件裡答寫了個a 0 fprintf fp,d n a 0 這句 寫了個1,然後做了個迴圈,迴圈5次 i 1,2,3,4,5 每次迴圈先定位到檔案頭,再取出一個數字,就是取出檔案裡...

c語言題目,求解,C語言題目求解

x就是16進位制的,0就是零字元,一個十六進位制的數佔一個位元組,零字元在算位元組時不佔位元組,之後結果就是佔一個位元組 我就說要點了。1 double x,y x 1 y x 3 2 y的值為什麼是2.0?3 2兩個整型相除得整型1。2 main x 1值為0那麼輸出的應該為0 為什麼答案是1?單...

C語言程式設計題目,c語言程式設計題目

include void main 某年1月1日是第一天 int days 0 對 i 月份 進行判斷 for i 1.i month,i days a i 1 對year進行判斷是否是閏年,是就加1,否則不加 如何判斷閏年去c課本上找 if year 閏年 days else return day...