资源描述:
《C语言结构体单元练习.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.有以下定义和语句:structstudent{ intage;intnum;};structstudent stu[3]={{1001,20},{1002,19},{1003,21}};main(){structstudent*p;p=stu;…… }则以下不正确的引用是 。A)(p++)->num B)p++ C)(*p)。num D)p=&stu.age2。有以下结构体定义:structexample{intx;inty; }v1;则正确的引用或定义是 。A)example。x=10 B
2、) examplev2; v2.x=10;C)structv2;v2.x=10; D) structexamplev2={10};3。对于如下结构体定义,若对变量person的出生年份进行赋值,正确的赋值是 。structdate{intyear,month,day;};structworklist{ charname[20]; charsex; struct datebirth;}person;A)year=1976 B)birth。year=1976 C)person。birth。year=197
3、6 D)person.year=19764.根据下述定义,可以输出字符'A'的语句是 。struct person{charname[11];struct{ charname[11];int age;}other[10];};structpersonman[10]={{"Jone”,{”Paul”,20}},{”Paul",{"Mary",18}},{”Mary”,{”Adam”,23}},{"Adam”,{"Jone",22}}};A) printf(”%c”,man[2].other[0]。name[0]); B
4、)printf("%c",other[0].name[0]);C)printf("%c",man[2].(*other[0])); D)printf("%c",man[3].name);5.若有以下程序段:structst{int n;structst*next;};struct sta[3]={5,&a[1],7,&a[2],9,'0’},*p=a;则值为6的表达式为 。A)p++->n B)p—〉n++ C)(*p).n++ D) ++p—〉n6。对于以下定义,不正确的叙述是 。union
5、 data{int i;charc;float f;}a,b;A)变量a所占的内存长度等于成员f的长度B)变量a的地址和它的各成员地址都是相同的C)不能对变量a赋初值D) 可以在定义的时候对a初始化7.下述程序运行结果为 。#include <stdio。h>structst{intn; int *m;}*p;void main(){int d[5]={10,20,30,40,50};structstarr[5]={100,d,200,d+1,300,d+2,400,d+3,500,d+4};p=arr;printf(
6、"%dt”,++p->n);printf("%dt",(++p)—>n);printf(”%d",++(*p->m));}A)101 200 21 B)101 20 30 C)200 101 21 D)101101 108、以下程序的运行结构是 。#include〈stdio。h〉main( ){union{longa;intb;charc;}m;printf("%d\n",sizeof(m));}A)2 B)4 C)6 D) 79.若要利用下面的程序段使指针变量p指向一
7、个存储整型变量的存储单元,则在空格中应填入的内容是 .int*p;p= malloc(sizeof(int));A)int B) int * C) (*int) D)(int*)10、执行下述语句后的结果是 。enumweekday{sun,mon=3,tue,wed,thu};enumweekdayday;day=wed;printf("%d",day);A) 5 B) 3 C)4 D)编译时出错11、下面程序的输出结果是 。main(){enumabc{green=3,red}
8、;char*clr[]={"red","blue",”yellow","black","white”,”green"};printf("%sand ",clr[green]);printf(”%s",clr[red]);}12、已知指针变量head指向单链表表头,下面程序用来统计链表中各个结点的数据项之和,请填空。struct l