C语言6结构体练习题6

合集下载

(完整版),数据结构c语言版试题大全(含答案),推荐文档

(完整版),数据结构c语言版试题大全(含答案),推荐文档

B
16C
18、逻辑结构|顺序存储结构|链式存储结构|以上都对
B
17B
19、每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域|结点的最后一个数据域是 18B
指针类型|每个结点有多少个后继,就设多少个指针域
A
19A
20、效率与采用何种存储结构有关|是根据存储结构来定义的|有算术运算和关系运算两大类|必须用 20A
31、一个有限序列,可以为空|一个有限序列,不可以为空|一个无限序列,可以为空|一个无限序列, 37A
不可以为空
A
38B
32、必须是连续的|一定是不连续的|部分地址必须是连续的|连续与否均可以
D
39B
33、可随机访问任一结点|插入删除不需要移动元素|不必事先估计存储空间|所需空间与其长度成正 40D
-3-
35、设线性表有 n 个元素,以下操作中,_______在顺序表上实现比在链表上实现效率更高。 输出第 i(1<=i<=n)个元素值|交换第 1 个元素与第 2 个元素的值|顺序输出这 n 个元素的值|输出与给定值 x 相等的元素在线性表中的序号 36、对于一个线性表,既要求能够较快地进行插入和删除,又要求存储结构能够反映数据元素之间的逻辑 关系,则应采用_______存储结构。 顺序|链式|散列|索引 37、设线性表中有 2n 个元素,以下操作中,______在单链表上实现要比在顺序表上实现效率更高。 删除指定的元素|在最后一个元素的后面插入一个新元素|顺序输出前 k 个元素|交换第 i 个元素和第 2n-i-1 个元素的值(i=0,1,…,n-1) 38、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是______。 单链表|静态链表|线性链表|顺序存储结构 39、如果最常用其所长的操作是取第 i 个结点及其前驱,则采用______结构方式最节省时间。 单链表|双链表|单循环链表|顺序表 40、与单链表相比,双链表的优点之一是______。 插入、删除操作更简单|可以进行随机访问|可以省略表头指针或表尾指针|访问前后相邻结点更灵活 41、数据结构在计算机内存中的表示是指______. 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系 42、下面程序段的时间复杂度为_________. O(m)| O(n)|O(m*n)|O(m+n)

结构体与共用体相关题目练习

结构体与共用体相关题目练习

结构体与共用体1.说明一个结构体变量时系统分配给它的内存是A)各成员所需要内存量的总和 B)结构体中第一个成员所需内存量C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量2.C语言结构体类型变量在程序执行期间A)所有成员一直驻留在内存中 B)只有一个成员驻留在内存中C)部分成员驻留在在内存中 D)没有成员驻留在内存中3.设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是A) struct 是结构体类型的关键字 B) struct stu 是用户定义的结构体类型C) stutype 是用户定义的结构体类型名 D) a和b都是结构体成员名4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

struct stud { char num[6]; int s[4]; double ave; } a,*p;5.程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是A)编译出错B)程序将顺利编译、连接、执行C)能顺利通过编译、连接、但不能执行 D)能顺利通过编译、但连接出错6.有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam", 16};根据上述定义,能输出字母M的语句是A) prinft(" %c\n",class[3].name); B) printf(" %c\n",class[3].name[1]);C) prinft(" %c\n",class[2].name[1]); D) printf(" %c\n",class[2].name[0]);7.下面程序的输出是A)0 B)1 C)3 D)6main(){ struct cmplx { int x; int y;} cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}8.下列程序的输出结果是A)5 B)6 C)7 D)8struct abc { int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}};int t;t=s[0].a+s[1].b;printf("%d \n",t);}9.有以下程序struct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n" ,(*p).name); }main(){ struct stu students[3]={{9801,"Zhang",20} ,{9802,"Wang", 19} , {9803,"Zhao",18} };fun(students+2);}输出结果是A)Zhang B)Zhao C)Wang D)1810.设有如下定义:struct sk {int a ;float b ;}data ,*p ;若有p=&data ;,则对data中的a域的正确引用是A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a11.下面程序的输出结果为int dt[4]={10 ,20 ,30 ,40} ;struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] } ;main(){ p=aa ;printf("%d\n" , ++p->x );printf("%d\n" ,(++p)->x);printf("%d\n" , ++( *p->y));}A)10 B)50 C)51 D)6020 60 60 7020 21 21 3112.为了建立如图所示的存储结构(即每个结点含两个域, data 是数据域,next是指向结点的指针域,)请填空。

C语言习题结构体和杂类(答案)

C语言习题结构体和杂类(答案)

C语言习题结构体和杂类(答案)第十章结构体和杂类一.选择题1.如下说明语句,则下面叙述不正确的是(C)。

tructtu{inta;floatb;}tutype;A.truct是结构体类型的关键字B.tructtu是用户定义结构体类型C.tutype是用户定义的结构体类型名(变量名)D.a和b都是结构体成员名2.在16位PC机中,若有定义:tructdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是(D)。

A.1B.2C.8D.11A.1和2B.2和3C.7和2D.7和84.以下程序的输出结果是(D)。

unionmyun{truct{int某,y,z;}u;intk;}a;main(){a.u.某=4;a.u.y=5;a.u.z=6;a.k=0;printf(\A.4B.5C.6D.05.当定义一个共用体变量时,系统分配给它的内存是(C)。

A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大的容量D.结构中最后一个成员所需内存量6.若有以下程序段:uniondata{inti;charc;floatf;}a;intn;则以下语句正确的是(C)。

A.a=5;B.a={2,’a’,1.2}C.printf(“%d”,a);D.n=a;7.设truct{inta;charb;}Q,某p=&Q;错误的表达式是(d)。

A.Q.aB.(某p).bC.p->aD.某p.b9.以下对C语言中共用体类型数据的叙述正确的是(c)。

A.可以对共用体变量直接赋值B.一个共用体变量中可以同时存放其所有成员C.一个共用体变量中不能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员10.下面对typedef的叙述中不正确的是(b)。

A.用typedef可以定义多种类型名,但不能用来定义变量B.用typedef可以增加新类型C.用typedef只是将已存在的类型用一个新的标识符来代表D.使用typedef有利于程序的通用和移植二.判断题1.共用体类型的变量的字节数等于各成员字节数之和。

C语言程序设计基础-结构体习题

C语言程序设计基础-结构体习题

{ int num; char name[20]; float score; };
int main()
{ struct Student stu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",
86
},{10108,“Ling”, 73.5},{10110,“Fun”, 100 } };
hing at a time and All things in their being are good for somethin
#include <stdio.h>
#define N 3
struct Student
{ int num;
char name[20];
float score[3];
float aver;
printf(" No. Name sex age\n"); for(p=stu;p<stu+3;p++)
printf(“%5d %-20s %2c %4d\n”,p->num, p->name, p->sex, p->age); return 0; }
7、有 n 个结构体变量,内含学生学号、姓名和 3 门课程的成绩。要求输出平均成绩最高的 学生的信息(包括学号、姓名、3 门课程成绩和平均成绩)。
person[i].category.clas); else
printf("%-6d%-10s%-4c%-4c% -10s\n",person[i].num,person[i].
name,person[i].sex, person[i].job, person[i].category.position); } return 0; }

C语言练习题(带详解答案)

C语言练习题(带详解答案)

C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。

C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

结构体、链表综合习题

结构体、链表综合习题

已知某链表中结点的数据结构定义如下: #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语言程序设计(结构)习题与答案

一、单选题1、设有定义:struct complex{int real, unreal;} data1={1,8},data2;则以下赋值语句中错误的是()。

A.data2.real=data1.unreal;B.data2=(2,6);C.data2=data1;D.data2.real=data1.real;正确答案:B2、设有定义:struct{char mark[12];int num1;double num2;} t1,t2;若变量均已正确赋初值,则以下语句中错误的是()。

A.t2.num1=t1.num1;B.t2.num2=t1.num2;C.t1=t2;D.t2.mark=t1.mark;正确答案:D3、有以下定义语句:struct student{int num;char name[9];};则不能正确定义结构体数组并赋初始值的是( )。

A.struct stu[]={{1,"zhangsan"},{2,"li si"}};B.struct student stu[2]={{1,"zhangsan"},{2,"li si"}};C.struct student stu[2]={1, "zhangsan",2,"li si"};D.struct student stu[]={{1,"zhangsan"},{2,"li si"}}; 正确答案:A4、有以下程序:#include<stdio.h>struct S{ int a,b;}data[2]={10,100,20,200};int main(){struct S p=data[1];printf("%d\n",++(p.a));return 0;}程序运行后的输出结果是()。

C语言程序设计结构体与共用体

C语言程序设计结构体与共用体

C语⾔程序设计结构体与共⽤体⼀、选择题1、定义结构类型时,下列叙述正确的是()A、系统会按成员⼤⼩分配每个空间B、系统会按最⼤成员⼤⼩分配空间C、系统不会分配空间D、以上说法均不正确2、已知结构类型变量x的初始化值为{“20”,30,40,35.5},请问合适的结构定义是()A、 Struct s{int no;int x,y,z};B、 Struct s{char no[2];int x,y,z};C、 Struct s{int no;float x,y,z};D、Struct s{char no[2];float x,y,z};3、若程序中有定义struct abc{int x;char y;};abc s1,s2;则会发⽣的情况是()A、编译时会有错误B、链接时会有错误C、运⾏时会有错误D、程序没有错误4、已知学⽣记录描述为struct student{int no;char name[20];char set;struct{int year;int month;int day;}birth;};struct student s;设变量s中的“⽣⽇”应是“1984年11⽉11⽇”,下列对⽣⽇的正确赋值⽅式是( ). A)year=1984; B)birth.year=1984;month=11; birth.month=11;day=11; birth.day=11;C)s.year=1984; D)s.birth.year=1984;5、当说明⼀个结构体变量时系统分配给它的内存是( ).A)各成员所需内存量的总和 B)结构中第⼀个成员所需内存量C)成员中占内存量最⼤者所需的容量 D)结构中最后⼀个成员所需内存量6、以下对结构体类型变量的定义中不正确的是( ).A)#define STUDENT struct student B)struct studentSTUDENT {int num;{int num; float age;float age; }std1;}std1;C)struct D)struct{int num; int num;float age; float age;}std1; }student;struct student std1;7、设有以下说明语句struct stu{int a;float b;}stutype;则下⾯的叙述不正确的是( ).A)struct是结构体类型的关键字B)struct stu是⽤户定义的结构体类型C)stutype是⽤户定义的结构体类型名D)a和b都是结构体成员名8、C语⾔结构体类型变量在程序执⾏期间( )..A)所有成员⼀直驻留在内存中B)只有⼀个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中9、在16位IBM-PC机上使⽤C语⾔,若有如下定义:struct data{int i;char ch;则结构变量b占⽤内存的字节数是( ).A)1 B)2 C)3 D)410、以下程序的运⾏结果是( ).#include “stdio.h”main(){struct data{int year,month,day;}today;printf(“%d\n”,sizeof(struct data));}A)6 B)8 C)10 D)1211、若有以下定义和语句;struct student{int age;int num ;};struct student stu [3]={{1001,20 },{1002,19},{1003,21}};main(){struct student *p;p=stu;…..}则以下不正确的引⽤是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章结构体
1.下面对结构变量的叙述中错误的是
A.相同类型的结构变量间可以相互赋值
B.通过结构变量,可以任意引用它的成员
C.结构变量中某个成员与这个成员类型相同的简单变量间可相互赋值D.结构变量与简单变量间可以赋值
*2.有枚举型定义如下:
enum s {x1, x2=5, x3, x4=10} l;
则枚举变量x可取的枚举元素x2、x3所对应的整数常量值是
A.1,2 B.2,3 C.5,2 D.5,6
*3.以下各选项企图说明一种新的类型名,其中正确的是
A.typedef v1 int; B.typedef v2=int;
C.typedef int v3; D.typedef v4: int;
*4.设有下列结构型变量w的定义,则表达式”sizeof(w)”的值是 struct { long num;
char name[15];
union {float x ; short z; } yz;
}w;
A.19 B.20 C.23 D.25
*5.若有结构类型定义如下:
struct bd
{
int x;
float y;
}r,*p=&r;
那么,对r中的成员x的正确引用是
A.(*p).r.x B.(*p).x C.p->r.x D.p.r.x
6.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是struct stud
{ char num[6];
int s[4];
double ave;
} a;
A.22 B.18 C.14 D.28
7.设有以下说明语句
struct ex
{ int x ;
float y;
char z ;} example;
则下面的叙述中不正确的是
A.struct ex是结构体类型B.example是结构体类型名
C.x,y,z都是结构体成员名D.struct是结构体类型的关键字
*8.在Turbo C中有如下定义:
union dat
{ int i;
char ch;
float f;
}x;
x在内存中占的字节数为
A.4 B.7 C.8 D.6
*9.有如下结构类型定义以及有关的语句:
struct ms
{ int x;
int *p;
}s1,s2;
s1.x=10;
s2.x=s1.x+10;
s1.p=&s2.x;
s2.p=&s1.x;
*s1.p+=*s2.p;
试问,执行以上语句后,s1.x和s2.x的值应该是
A.10,30 B.10,20 C.20,20 D.20,10
10.下列关于结构类型与结构变量的说法中,错误的是
A.结构类型与结构变量是两个不同的概念,其区别如同int类型与int型变量的区别一样。

B.“结构”可将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用。

C.“结构类型名”和“数据项”的命名规则,与变量名相同。

D.结构类型中的成员名,不可以与程序中的变量同名。

11.能够逐个访问结构体成员的成员运算符是
A.“.”B.“,”C.“:”D.“;”。

相关文档
最新文档