若有以下程序段: struct st { int n; int *m; }; int a=2,b=3,c=5; struct st s[3]=({101,&a},{102,&c},{103,&b}}; main() { struct st *p; p=s; … } 则以下表达式中值为5的是( )。
举一反三
- 若有下述程序段,则表达式( )的值为6。 Struct st {int n; struct st *next; }; struct st a[3]={5,&a[1],6,&a[2],9,'0000'},*p=a;
- 值为7的表达式是【 】。 struct st{int n; struct st *next;} struct st a[3]={5,&a [1],7,&a [2],9,NULL}, *p; p=&a[0];
- 若有以下定义和语句 struct a { int n,m;}; struct a st[3]={{1,20},{2,19},{3,21}}; struct a *p=st; 则以下错误的引用是( ).
- 设有以下程序 struct st { int x; int *y;} ; main() { int a, b, dt[4]={ 10,20,30,40 }; struct st aa[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]},*p; p = aa; a = (++p)->x; b= ++(*p->y); } 程序运行后,a=______,b=______。
- 若有以下定义和语句:struct st{int x;int y;}s;则下列赋值不正确的是()。 A: st.s.x=10; B: struct st a;a.x=10; C: struct st a={10}; D: s.x=10 ;