C語言結構體題目,c語言結構體題目

2022-02-26 21:41:11 字數 5699 閱讀 6047

1樓:褒振梅麼子

p為結構

st的指標

;陣列a[3]為結構

st的陣列

,既有3個st,

每個結構

st裡有2個元素,所以有6個數值(第三問);

a為陣列a[3]第一個元素a[0]的地址

;p=a,將陣列a的地址賦值給p,

p指向a[0]

;(p->x),即為a[0].x

(樓主學結構應該知道

「.」)

&dt[0]指取dt[0]

的地址(第二問);

a[0].x在第四行初始為50

(p->x),即為a[0].x

++(p->x),為51

;printf("%d

\n",

++(p->x)

);等價於printf("%d

\n",

51);

(第一問)完畢;

2樓:寶蘭潮靜

p是struct

st型別的指標,

p->x

是結構體指標成員運算子,

就是結構休裡面的x

struct st a[3]=;是初始化結構體,y是int指標,

&dt[0]

是陣列dt裡面第0個元素的地址,

就是讓y

指向dt[0]

的地址是6個值是因為每個結構體變數有2個成員,所以3*2=

6個了.

3樓:時若谷海丁

p->x

==a[0]->x

==50

50加1就是51了p=

a那裡表示指標p只想陣列a的開頭。,,陣列a是一個結構體,每個包含兩個元素,2*3

就是六個了。

st第一個元素是整數第二個是整數的指標所以複製的時候就需要一個整數一個指標50,&dt[0],&dt[0]表示去dt[0]的地址。

c語言結構體題目 120

4樓:水裡風

主要是題目有點煩,因為%d%s%d這個地方字串的接收遇到一個空格可能就接收完了,但是第二組資料pencial box本身就是帶空格的,跑了一下發現這組資料生成了兩個結構體變數,一個是pencial,另一個是pen,pencial裡的另外兩個資料是亂碼的。考慮到所有的商品名稱都有可能是多個單片語合成的,而本身又無法提前知道會有多少個空格進來,所以這裡的輸入可能得考慮直接用%s接收,然後從陣列最後往前割出需要的數字,再用 atof()將字串轉換為小數,atoi()將字串轉換為整數,能弄出來的但是太麻煩了= =或者有什麼更好的scanf接收格式,暫時也沒找到。。。

5樓:匿名使用者

這種情況,不能使用scanf,而是應該一次讀入一行資料,然後再對讀入資料進行解析,分離各個資料。

用fgets,  或getline

並且,既然你的name有英式風格(允許空格),那麼就應該使用其它符號做間隔符,如逗號。

或者這樣,把輸入分開來寫。

scanf("%[^\n]", a[i].name);

輸入的時候,name獨立一行輸入, num, price可以一行輸入。

6樓:秦思

scanf("%s%d%f"

中間加空格

scanf("%s %d %f"

最後那個sum

列印printf("%f",sum);

for迴圈i從0開始

7樓:匿名使用者

scanf中的"%s%d%f"改為"\n%[^0-9]%d%f"

8樓:匿名使用者

有兩個問題:1. 有越界問題,而且a[0]浪費了

2. 為什麼不初始化呢?

c語言結構體題目

9樓:王囧囧

st結構體由兩個成員組成,即int型變數x與int*型變數y陣列a有3個元素構成,每個元素均為st型別;因此,對於a的初始化可以像題目中那麼寫,依次為3個元素的6個成員賦值,等價於:

a[0].x = 50; a[0].y = &dt[0];

a[1].x = 60; a[1].y = &dt[0];

a[2].x = 70; a[2].y = &dt[0];

p = a 將陣列的起始地址賦值給p,此時p指向了a陣列的第一個元素,即a[0],

p->x表示「指標p指向的結構體的x成員」,也就是50,執行++操作就是51了

建議樓主學習一下c語言指標的基礎知識

10樓:匿名使用者

p 為結構 st 的指標 ;

陣列a[3]為結構 st 的陣列 ,既有3個st, 每個結構 st 裡有2個元素,所以有6個數值(第三問);

a為陣列a[3]第一個元素a[0]的地址 ;

p=a,將陣列a的地址賦值給p,

p指向a[0] ;

(p->x),即為a[0].x (樓主學結構應該知道 「.」 )&dt[0]指取dt[0] 的地址

(第二問);

a[0].x在第四行初始為50

(p->x),即為a[0].x

++(p->x),為51 ;

printf("%d \n", ++(p->x) ); 等價於printf("%d \n", 51) ; (第一問)

完畢 ;

11樓:匿名使用者

p 是 struct st 型別的指標,

p->x 是結構體指標成員運算子, 就是結構休裡面的xstruct st a[3]=;

是初始化結構體, y 是int指標, &dt[0] 是陣列  dt 裡面第0個元素的地址, 就是讓 y 指向 dt[0] 的地址

是6個值是因為每個結構體變數有2個成員, 所以3 * 2 = 6 個了.

12樓:

p->x == a[0]->x == 50 50 加1就是51了

p = a 那裡表示指標p只想陣列a的開頭。,,陣列a是一個結構體,每個包含兩個元素,2*3 就是六個了。

st第一個元素是整數第二個是整數的指標所以複製的時候就需要一個整數一個指標50,&dt[0],&dt[0]表示去dt[0]的地址。

c語言結構體程式設計題目

13樓:

把n換成學生個數,有點迷糊,如果有毛病自己看看吧#include

using namespace std;

struct stinfo //學生資訊結構;struct scinfo //成績資訊結構;int main()

for(int i=0;i

for(int i=0;i

for(int j=0;j

return 0;}

c語言題目,用結構體寫

14樓:古神孤鴻

#include

struct date;

struct car;

int main(void)

};printf ("車牌號\t載客量\t顏色\t出廠日期\n");

printf ("%d\t%d\t%s\t%d/%d/%d", vehicle.license, vehicle.busload, vehicle.

color, vehicle.date.year, vehicle.

date.month, vehicle.date.

day);

return 0;}

c語言結構體題 30

15樓:愛時光推移

第9章 結構體 1.定義以下結構體型別 struct s ; 則語句printf("%d",sizeof(struct s))的輸出結果為【 】。 a) 3 b) 7 c) 6 d) 4 2.當定義一個結構體變數時,系統為它分配的記憶體空間是【 】 a)結構中一個成員所需的記憶體容量 b)結構中第一個成員所需的記憶體容量 c)結構體中佔記憶體容量最大者所需的容量 d)結構中各成員所需記憶體容量之和 3.定義以下結構體型別 struct s a[3]; 語句printf("%d",sizeof(a))的輸出結果為 【 】 a) 4 b) 12 c) 18 d) 6 4.定義以下結構體陣列 struct c s[2]=; 語句printf("%d",s[0].x*s[1].

x)的輸出結果為 【 】 a) 14 b) 6 c) 2 d) 21 5.執行下列程式段,輸出結果是 【 】 struct country x[5]=; struct country *p; p=x+2; printf("%d,%c",p->num,(*p).name[2]); a) 3,a b) 4,g c) 2,u d) 5,s 6.下面程式的執行結果是【 】。 struct keyword kw=; main() a) i,3 b) n,3 c) f,4 d) l,4 7.定義以下結構體型別 struct student stud1; 則stud1佔用記憶體的位元組數是【 】。

a) 64 b) 114 c) 228 d) 7 8.如果有下面的定義和賦值,則使用【 】不可以輸出n中data的值

data c) p->data d) (*p).data 9.根據下面的定義,能輸出mary的語句是【】。

struct person ; struct person class[5]=; a) printf("%s\n",class[1].name); b) printf("%s\n",class[2].name); c) printf("%s\n",class[3].

name); d) printf("%s\n",class[0].name); 10.定義以下結構體陣列 struct date ; struct s x[4]=, }; 語句 printf("%s,%d,%d,%d",x[0].

name,x[1].birthday.year); 的輸出結果為 【 】。

a) guangzhou,2009 b) guangzhou,2008 c) tianjin,2008 d) tianjin,2009 11.執行下列程式段,輸出結果是【】。 struct country x[5]=; struct country *p; p=x+2; printf("%d,%s",p->num,x[0].name); a) 2,france b) 3,france c) 4,england d) 3, china 12. 定義以下結構體陣列 struct x[3]=; 語句printf("\n%d,%s",x[1].

num,x[2].name)的輸出結果為【 】 a)2,usa b)3,england c)1,china d)2,england 13. 定義以下結構體陣列 struct date { int year; int month;

C語言結構體,C語言結構體定義

sort函式引數裡寫的是陣列,因此呼叫函式的時候傳的是變數的地址,當結構體變數的值在sort函式發生變化的時候,在主函式的值也會發生同樣的變化,因此這個函式其實不需要返回一個具體的數值,寫return就可以了。其實如果不需要返回值的話,可以直接定義為void型別,這樣就不需要return語句了。so...

C語言結構體程式設計題,求助大神,C語言結構體程式設計題,求大神!

define crt secure no warnings include struct student student s int n int fun1 return result n void fun2 int main fun2 c語言結構體程式設計題,求大神!c語言程式設計題,求助大神 in...

C語言結構體程式設計題,求大神解答,C語言結構體程式設計題,求大神!

struct stu int main c語言結構體程式設計題,求大神!c語言結構體程式設計題,求助大神 define crt secure no warnings include struct student student s int n int fun1 return result n voi...