第十一章结构体的试题
C语言第11章结构体

29
【例】30张选票,对三名侯选人之一投票选举,输 入得票人名字,按名字计数,输出最后选举结果。 #include "stdio.h" #define N 30 struct person { char name[20]; int count; };
Li
0 Zhang 0 Wang 0
led[0].name
第十一章 结构体与பைடு நூலகம்用体
本章目标
1.理解结构体,共用体的数据类型
2.学会定义结构体、共用体的数据类型 的变量 3.能够正确使用结构体、共用体的成员
§11.1
已了解的数据类型:
引言
整型 浮点型 字符型 数组
简单数据类型
用户定义的数据类型
特点:所有的元素都是同一种类型
指针型 存在的问题:难以处理较复杂的数据
18
圆点运算符
引用形式:结构体变量名 . 成员名 其中:成员运算符’ . ‟ : 一级,自左而右;
stu1.num 引用结构体变量stu1的num成员; 引用stu1的name成员(字符指针); [i] 引用name成员的第i个元素; stu1.birthday.y 只能对最低级成员进行引用;
二、定义完结构体后,定义结构变量并初始化 struct student x2={0002, "Li Ming ", 85.5};
16
§11.4 访问结构成员
访问结构变量实质上是引用其成员 有两种运算符可访问结构成员
17
struct date { int m; int d; iny y; }; struct student { long num; char name[20]; char sex; struct date birthday; float score; char tel[15]; } stu1, stu2;
第11章 结构

第11 章结构与联合一、单选题1 下列关于结构的说法错误的是:A:结构是由用户自定义的一种数据类型B:结构中可设定若干个不同数据类型的成员C:结构中成员的数据类型可以是另一个已定义的结构D:在定义结构时,可以为成员设置默认值答案:D2 以下关于结构体的叙述中,错误的是:A:结构体是一种可由用户构造的数据类型B:结构体中的成员可以具有不同的数据类型C:结构体中的成员不可以与结构体变量同名D:结构体中的成员可以是指向自身结构的指针类型答案:C3 以下结构体类型说明和变量定义中,正确的是:A:struct SS{ char flag;float x;}struct SS a,b;B:struct{ char flag;float x;}SS;SS a,b;C:struct ss{ char flag;float x;};D:typedef{ char flag;float x;}SS;SS a,b;答案:C4 以下对结构体类型变量st的定义中,不正确的是:A:struct{ char c;int a;}st;B:struct{ char c;int a;}TT;struct TT st;C:typedef struct{ char c;int a;}TT;TT stD:#define TT structTT{ char c;int a;}st;答案:B5 设有以下说明语句:struct stu{ int a;float b;}stutype;则下面的叙述不正确的是:A:struct是结构体类型的关键字B:struct stu是用户定义的结构体类型名C:stutype是用户定义的结构体类型名D:a和b都是结构体成员名答案:C6 在16位IBM-PC机上使用C语言时,若有如下定义:struct data{ int i;char ch;double f;}b;则结构变量b占用内存的字节数是:A:1B:2C:8D: 11答案:D7 以下程序的运行结果是:#include "stdio.h"main( ){ struct date{ int year;int month;int day:}today;printf("%d\n",sizeof(struct date) );}A:6B:8C:10D: 12答案:A8 下面程序的运行结果是:main( ){ struct cmplx{ int x;int y;}c[2]={1,3,2,7};printf("%d",c[0].y/c[0].x*c[1].x);}A:0B:1C:3D:6答案:D9 若有以下说明和语句,则对pup中sex域的正确引用方式是:struct pupil{ char name[20];int sex;}pup,*p;p=&pup;A:p.pup.sexB:p->pup.sexC:(*p).pup.sexD:(*p).sex答案:D10 已知职工记录描述为struct workers{ int no;char name[20];char sex;struct{ int day;int month;int year;}birth;};struct workers w;设变量w中的“生日”应是“1993年10月25日”,下列对“生日”的正确赋值方式是:A:day=25;month=10;year=1993;B:w.dat=25;w.month=10;w.year=1993;C:w.birth.day=25;w.birth.month=10;w.birth.year=1993;D:birth.day=25;birth.month=10;birth.year=1993;答案:C11 当定义一个结构体变量时系统分配给它的内存是:A:各成员所需内存量的总和B:成员中占内存量最大者所需的容量C:结构中第一个成员所需内存量D:结构中最后一个成员所需内存量答案:A12 以下定义结构体类型的变量st1,其中不正确的是: A:typedef struct student{ int num;int age;}STD;STD st1;B:struct student{ int num;int age;}st1;C:struct{ int num;int age;}st1;D:truct student{ int num;int age;}struct student st1;答案:D13 设有以下定义:struct sk{ int a;float b;} data,*p;若要使p指向data中的a域,正确的赋值语句是:A:p=(struct sk *)&data.a;B:p=(struct sk *)data.a;C:p=&data.aD:*p=data.a答案:A14 若有以下的定义、说明和语句,则值为101的表达式是:struct wc{ int a; int *b;}*p;int x0[]={11,12},x1[]={31,32};static struct wc x[2]={100,x0,300,x1};p=x;A:*p->bB:p->aC:++p->aD:(p++)->a答案:C15 根据下面的定义,能打印出字母M的语句是:struct person{ char name[9];int age;};struct person chass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};A:printf("%c",class[3].name);B:printf("%c",class[3].name[1]);C:printf("%c",class[2].name[1]);D:printf("%c",class[2].name[0]);答案:D16 若有以下定义:struct person{ int id;char name[10]:}per,*s=&per;则以下对结构体成员的引用中错误的是:A:B:s->name[0]C:(*per).name[8]D:(*s).id答案:C17 若有以下说明和语句,则下面表达式中值为1002的是()struct student{ int age;int num;};struct student stu[3]={ {1001,20},{1002,19},{1003,21} };struct student *p;p=stu;A:(p++)->numB:(p++)->ageC:(*p).numD:(*++p).age答案:D18 当说明一个共用体变量时,系统分配给它的内存是()A:各成员所需内存量的总和B:共用体中第一个成员所需内存量C:成员中占内存量最大者所需的内存量D:共用体中最后一个成员所需内存量答案:C19 以下对C语言中共用体类型数据的叙述正确的是()A:可以对共用体变量名直接赋值B:一个共用体变量中可以同时存放所有成员C:一个共用体变量中不能同时存放其所有成员D:共用体类型定义中不能出现结构体类型的成员答案:C20 若有以下定义和语句:union data{ int i;char c;float f;}a;则以下语句正确的是:A:a=5B:printf("%d\n",a.i);C:a={2,'a',1.2};D:n=a答案:B二、多选题1.若有以下说明和语句:struct student{ int age; int num;}std,*p;p=&std;则以下对结构体变量std中成员age的引用方式正确的是( )A.std.age B.p->age C.(*p).age D.*p.age 答案:ABC2.设有以下说明语句struct stu{ int a;float b; }stutype;则以下叙述正确的是( )A.struct 是结构体类型的关键字 B.struct stu 是用户定义的结构体类型C.stutype 是用户定义的结构体类型名 D.a 和 b 都是结构体成员名答案:ABD3.以下说法正确的是( )A.结构体变量的名称为该结构体变量的存储首地址B.结构体变量占用空间的大小为各成员项占用空间大小之和C.结构体类型定义时不分配存储空间D.同一结构体类型的不同变量的同名成员项数据类型相同答案:CD4.有以下语句:struct lie{ int a, float b;}st;则在下面叙述中,正确的是( )A.struct是结构类型的关键字B.struct lie是用户定义的结构类型C.st是用户定义的结构类型名D.a和b都是结构成员名答案:ABD5.在说明一个共用体变量时,系统分配给他的存储空间,描述不正确的是( )A.该共用体中第一个成员所需存储空间B.该共用体中最后一个成员所需存储空间C.该共用体中占用最大存储空间的成员所需存储空间D.该共用体中所有成员所需存储空间的总和答案:ABD6.若有以下说明和定义union dt{int a;char b;double c;}data;以下叙述中正确的是A.data的每个成员起始地址都相同B.变量data所占的内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.data可以作为函数的实参答案:ABD7.设有如下说明typedef struct ST{long a;int b;char c[2];}NEW;则下面叙述中不正确的是A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量答案:AD8.关于枚举类型,描述正确的是()A.枚举类型变量的取值范围只限于类型定义时所列出的值。
2020高考地理湘教版一轮复习讲义:第十一章 第二讲 湿地资源的开发与保护——以洞庭湖区为例 Wo

姓名,年级:时间:第二讲湿地资源的开发与保护——以洞庭湖区为例[考纲展示]区域存在的环境与发展问题及其产生的危害,以及有关的治理保护措施。
授课提示:对应学生用书第207页[基础梳理]一、“地球之肾”—-湿地1.定义水位经常接近地表或为浅水覆盖的土地。
2.类型(1)自然湿地:沼泽、滩涂、低潮时水深不超过6米的浅海区、河流、湖泊等。
(2)人工湿地:水库、稻田等。
3.共同特点地表常年或经常有水,属于陆地与水体之间的过渡带。
4.湿地的功能湿地具有较高的生产力和丰富的生物资源。
在提供水资源、调节气候、涵养水源、调蓄洪水、美化环境、净化水中污染物质、保护生物多样性方面有重要作用.被称为“地球之肾”、“生命的摇篮”和“鸟类的乐园”。
5.洞庭湖湿地的重要价值维持生物多样性、调蓄洪水、提供丰富的农副产品、航运、旅游观光。
二、湿地资源问题1.产生原因人类对于资源、环境的过度开发利用。
2.表现错误!―→错误!―→错误!3.案例——洞庭湖萎缩(1)原因:泥沙淤积严重,大规模围湖造田。
(2)影响:洪涝灾害日趋严重,航道断航及生态环境问题增多。
三、保护湿地1.必要性湿地资源的破坏,严重威胁到居民的生存环境和区域的可持续发展。
2.措施一是保护与开发并重、协调一致;二是湿地既是自然资源,又是环境资源,要特别重视湿地的环境作用。
[图文拓展]1.东北地区湿地保护措施建立湿地保护区,保护好现存的天然湿地;对已经围垦的湿地逐步退田还湿;采取工程措施恢复已经退化的湿地。
2.森林涵养水源、保持水土的作用森林起着类似海绵的作用,能够吸纳和滞蓄大量降水,因而能涵养水源;森林的树冠减轻了雨水对地面的侵蚀,森林的土质疏松,一部分雨水渗入地下,使地表径流减少,因而森林能起到保持水土的作用.授课提示:对应学生用书第208页考点一湿地的开发和保护(高考经典题)地处干旱区的宁夏银川市,其周边地区曾广布湖泊,明清时有“七十二连湖”的说法.20世纪80年代银川周边湖泊所剩无几。
第11章 结构体与共用休

定义结构体类型的同时定义结构体变量
一般形式:
struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列;
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;
num
25B
name sex age num
name sex age
stu[0]
stu[1]
结构体数组初始化
分行初始化: 结构体数组引用 顺序初始化: struct student struct student 引用方式: 结构体数组名[下标].成员名 { int num; 例 { int student struct num; 例 struct num; char { char name[20]; int name[20]; stu[1].age++; struct student { char num; int sex; char sex; name[20]; int age; num; {char name[20]; int int age; char sex; }; char sex; }; int char name[20]; age; struct student stu[ ]={{100,“WangLin”,„M‟,20, int char sex; age; struct student stu[ ]={100,“Wang Lin”,„M‟,20}, }stu[ ]={{……},{……},{……}}; {101,“LiGang”,„M‟,19, int age; }stu[ ]={{……},{……},{……}}; 101,“Li Gang”,„M‟,19}, strcpy(stu[0].name,”ZhaoDa”); {110,“LiuYan”,„F‟,19}; }str[3]; 110,“Liu Yan”,„域
结构体、链表综合习题

已知某链表中结点的数据结构定义如下: #include<stdio.h> struct node{int x; struct node *next;}; 函数loop的功能是:根据dir的值循环移位head指向的链 表中的所有结点,当dir结点的指针。 例如,移位前的链表数据:head->1->3->5->4, 移一次后的链表数据:head->4->1->3->5。 算法提示:循环右移时,将链表最后一个结点删除,再将 其插入到链表首部;循环左移时,将链表第一个结点删 除,再将其连接到链表尾部。
结构体、链表综合习题
若要使表达式“P++”无语法错误,则变量P不能声明为 ___________。 D A. int P; B. double P; C. int *P; D. struct{int x;}P;
结构体、链表综合习题
数组和链表都可以用于存储一组彼此有关联的数据,以 下说法中不正确的是: B A:数组占用一块连续的存储区域,链表可能占用 若 干不连续的存储区域 B:数组和链表所占用的存储区域均不能在程序运行期 间动态地分配 C:数组中的数据可以随机存取或顺序存取,链表中的 数据只能顺序存取 D:数组的长度是固定的,链表的长度是不固定的
.以下程序中函数padd的功能是:调整pa指向的链表中各结点的位置,使得所
(1)p1!=pa #include<stdlib.h> typedef struct p{ int x; struct p *next;} PNODE; (2)p2->next PNODE *padd(PNODE *pa) {PNODE *p1, *p2,*p; p1=p2=pa; (3)pa=p while(p1) (4)NULL {if(p1->x%2= =0&& (1) ) {p=p1; p1=p1->next; (2) =p1; p->next=pa;(3) ; } else {p2=p1;p1=p1->next;} } return pa;} main() {PNODE a[10]={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}},*ha=a,*p; int i ; for(i=0;i<9;i++)a[i].next=&a[i+1]; a[9].next= (4) ; ha=padd(ha); p=ha; printf("\n"); while(p) {printf("%d->",p->x);p=p->next;}}
C语言试题库[完整版]
![C语言试题库[完整版]](https://img.taocdn.com/s3/m/7fa251e7a0116c175f0e48e6.png)
C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#incl ude “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
c语言char11

方式二:可以在说明结构体时真接定义变量, 方式二:可以在说明结构体时真接定义变量,如: struct student{ int num; char name[20]; …} s1, s2, b[10], *p; 方式三:可在说明一个无名结构体类型时, 方式三:可在说明一个无名结构体类型时,同时直接定义变 。(此方式只可在不再需要定义此类型变量的场合下 量。(此方式只可在不再需要定义此类型变量的场合下 使用) 使用) struct { int num; char name[20]; …}s1, s2, b[10], *p;
name “ Li Lin”
sex ‘M’ year 1982
birthday month 12 day 4
score 85.5
a
二、对结构体变量的成员操作: 对结构体变量的成员操作:
结构体变量中的每个成员都属于某个具体的数据类型。因此, 结构体变量中的每个成员都属于某个具体的数据类型。因此, 对结构体变量中的每个成员的操作与普通变量一样, 对结构体变量中的每个成员的操作与普通变量一样,包括 输入输出。换句话说,如果某个成员是某基本类型, 输入输出。换句话说,如果某个成员是某基本类型,就可 以将该成员作为基本类型变量来处理。 以将该成员作为基本类型变量来处理。 例: scanf(“%ld %ld”,&a.num); /*长整型量输入 长整型量输入* scanf( %ld ,&a.num); /*长整型量输入*/ gets(); /*字符串输入 字符串输入* gets(); /*字符串输入*/ sex=ˊMˊ; /*字符变量赋值 字符变量赋值* a.sex=ˊMˊ; /*字符变量赋值*/ score=93 93. /*实型变量赋值 实型变量赋值* a.score=93.5; /*实型变量赋值*/ (i=0 name[i]!=ˊ\ for (i=0;[i]!=ˊ\0ˊ;i++) printf(“% ,a name[i]); ,a. /*输出字符值 输出字符值* printf( %c”,[i]); /*输出字符值*/ sum=sum+a.score;
计算思维与程序设计C智慧树知到答案章节测试2023年宁波大学

第一章测试1.计算机唯一能直接识别的语言是()。
A:汇编语言B:编译语言C:高级语言D:机器语言答案:D2.计算机的基本功能是()。
A:软件、处理、硬件、数据和输出B:程序、数据、存储、输入和输出C:输入、编码、程序、控制、输出D:输入、存储、处理、控制和输出答案:D3.计算机选择二进制的原因有()。
A:二进制数据在逻辑运算方面比较方便B:容易使用物理器件实现C:人不使用二进制D:二进制运算规则简单答案:ABD4.计算机的CPU主要由()构成。
A:控制器和运算器B:运算器和寄存器C:中央处理器和存储器D:输入输出设备答案:A5.计算机中的数据以十六进制形式存储,指令以二进制形式存储。
()A:错B:对答案:A第二章测试1.C语言规定:在一个源程序中,main函数的位置()。
A:必须放在程序的后面B:可以放在程序的任何位置,但在执行程序时是从main函数开始执行的C:必须放在程序的开头D:可以放在程序的任何位置,但在执行程序时是从程序的开头执行答案:B2.C语言中,下列用户自定义标识符合法的是()。
A:sum_1B:f(x)C:test.cD:apple_price答案:AD3.C语言中运算对象可以是非整型的运算符是()。
A:%B:++C:=D:/答案:BCD4.在C语言中,函数体是由()括起来。
A:< >B:[ ]C:( )D:{ }答案:D5.<stdio.h>用尖括号时,表示系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式去查找。
()A:错B:对答案:A第三章测试1.如果“int a=3,b=4;”,则条件表达式a>b? a:b的值是()。
A:0B:3C:4D:1答案:C2.C语言中,关系表达式和逻辑表达式的值是()。
A:T或FB:True或falseC:真或假D:1或0答案:D3.设a为整型变量,能正确表达数学关系10<a<15的C语言表达式是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)()是关于C语言数据类型的正确叙述。
A) 枚举类型不是基本类型
B) 变量使用前应定义相应的数据类型
C) 不允许使用空类型
D) 数组不是构造类型
(2) 下列()对结构类型变量定义是错误的。
A) struct teacher
{ int num;
int age;
};
struct teacher teach1;
B) struct
{ int num;
int age;
} teach1, teach2;
C) struct
{ int num;
int age;
} teacher;
struct teacher teach1;
D) struct teacher
{ int num;
int age;
} teach1;
(3) 若有定义:
char ch;
int j,k;
enum day {sun, mon, tue, wed, thu, fri, sat};
int a[sat];
则()对下列语句是否符合语法规则的判断是正确的。
sun=0; /*语句1*/
j=mon+tue; /*语句2*/
if (a[mon]>0) j++; /*语句3*/
A) 语句1、2、3均正确
B) 语句2正确,语句1和语句3错误
C) 语句1错误,语句2和语句3正确
D) 语句1、2、3均错误
(4) 若有定义:
struct teacher
{ int num;
char sex;
int age;
} teacher1;
则下面叙述错误的是()。
A) teacher1是结构类型名
B) struct teacher是用户定义的结构类型
C) num、sex、age都是结构变量teacher1的成员
D) struct是结构类型的关键字
(5) 下列程序段运行后,表达式()的值为3。
struct point
{ int x;
int y;
} *p;
struct point a[3]={1,2,3,4,5,6};
p=a;
A) p[1].x
B) *(p+2)
C) p[3].x
D) p[2].x
(6) 若有定义:
typedef int NUM[100];
NUM n;
则()语句是正确的。
A) n[0]=2;
B) NUM=2;
C) NUM=n;
D) n=2;
(7) 若有定义int a=1,b=2,t=3;
struct data
{ char a;
float b[3];
long c;
}d1;
则变量d1的长度是()。
A) 4
B) 17
C) 12
D) 15
(8) 若有定义
struct teacher
{ int num;
char name[10];
char sex;
int age;
}t1={2001,”Li Ming”,’M’,35};
则下列()对结构变量引用是正确的。
A) t1->name
B)
C) [0]
D) t1->name[0]
(9) 若有定义enum day{sun,mon,tue,wed,thu,fri,sat};,则枚举常量sun、mon的值分别为()。
A) 0 1
B) 7 1
C) 7 0
D) 1 2
(10) 若有定义
union u_type
{ int x;
float y[3];
char z;
}a;
则变量a的长度是()
A) 4
B) 1
C) 15
D) 12
(11)()对枚举类型的定义是错误的。
A) enum b{1,2,3};
B) enum a{A,B,C};
C) enum d{X=0,Y=5,Z=9};
D) enum c{D=3,E,F};
(12) 以下程序段的运行结果是()。
union
{ int num1;
int num2;
}s;
s.num1=20;
s.num2=30;
printf(“%d”,s.num1);
A) 2030
B) 20
C) 50
D) 30
(13) 若有定义
Typedef int * INTEGER;
INTEGER p;
则下面叙述正确的是()
A) p是与INTEGER相同的类型
B) 程序中可用INTEGER定义int类型指针变量
C) p是一个整型变量
D) 程序中可用INTEGER定义int类型变量
(14) 若有定义:enum num{a1,a2=3,a3,a4=0};,则枚举常量a2、a3的值分别为()。
A) 2 3
B) 3 4
C) 3 3
D) 1 2
(15) 下列程序段的运行结果是()。
union data
{
int a;
char b;
} data1;
data1.b=’A’;
data1.a++;
printf(“%c\n”,data1.b);
A、66
B、65
C、B
D、A
(16) 若已定义:
struct teacher
{ int num;
char name[20];
} t1,*p=&t1;
下列对结构变量t1中成员num合法的引用是()。
A、teacher.num
B、t1->num
C、p->num
D、*p.num
(17) 以下语句正确的是()。
A、typedef INTEGER int;
B、typedef INTEGER=int;
C、typedef int INTEGER;
D、typedef INTEGER:int;
(18) 下列不属于C语言数据类型的是()。
A、枚举类型
B、复数类型
C、双精度型
D、长整型
(19) 以下程序段的运行结果是()。
union
{
int x;
float y;
char c;
} m,n;
m.x=5;
m.y=7.5;
m.c=’A’;
n.x=8;
printf("%d",m.x);
}
A) 5
B) 8
C) 7.5
D) 65
(20) 若已定义:
struct student
{
int num;
float score;
} stu[2]={{101, 85.5},{102, 90.0}},*p=stu;
下列对结构体数组引用错误的是()。
A、(*p).num
B、stu[0].num
C、p[1]->num
D、p->num。