版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用户自定义的数据类型复习题一、 选择题1下列程序的输出结果是()。A) 5 B) 6 C) 7 D) 8struct abc int a, b, c; ;main() struct abc s2=1,2,3,4,5,6; int t;t=s0,a+s1,b;printf(%d n,t);2下列程序执行后的输出结果是()。A) 6 B) 8 C) 10 D) 12#define MA(x) x*(x-1)main() int a=1,b=2; printf(%d n,MA(1+a+b);3. 有以下结构体说明和变量的定义,则不能把结点b连接到结点a之后的语句是()。A) a.next=q; B)
2、 p.next=&b;C) p-next=&b; D) (*p).next=q;struct node char data;struct node *next; a,b,*p=&a,*q=&b;4变量a所占内存字节数是()。A) 4 B) 5 C) 6 D) 8union U char st4;int i;long l;struct A int c;union U u;a;5有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 #main() int i; for(i=1;ix);8以下程序的输出结果是()。struct HAR int x, y;
3、 struct HAR *p; h2;main() h0,x=1;h0;y=2;h1,x=3;h1;y=4;h0,p=&h1,p=h;printf(“%d %d n”,(h0,p)-x,(h1,p)-y);A) 12 B) 23 C) 14 D) 329. 以下程序的输出结果是()。union myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf(%dn”,a.u.x);A) 4 B) 5 C) 6 D) 010. 以下程序的输出结果是()。#define M(x,y,z) x*y+z
4、main() int a=1,b=2, c=3;printf(“%dn”, M(a+b,b+c, c+a);A) 19 B) 17 C) 15 D) 1211. 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()。A) p=2*(int*)malloc(sizeof(int);B) p=(int*)malloc(2*sizeof(int);C) p=(int*)malloc(2*2);D) p=(int*)calloc(2,sizeof(int);12. 若有下面的说明和定义:struct test int ml; char m2; float m3;union uu
5、 char ul5; int u22; ua; myaa;则sizeof(struct test )的值是()。A) 12 B) 16 C) 14 D) 913. 若以下定义:struct link int data;struck link *next;a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:a b cdata next data next data next 5 9 0 7 p q指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:()。A) a.next=c; c.next=b; B) p.next=q; q.next=p.nex
6、t;C) p-next=&c; q-next=p-next; D) (*p).next=q; (*q).next=&b;14. 设有以下说明语句typedef struct int n;char ch8;PER;则下面叙述中正确的是()。A) PER 是结构体变量名 B) PER是结构体类型名C) typedef struct 是结构体类型 D) struct 是结构体类型名15. 程序中头文件typel.h 的内容是:#define N 5#define M1 N*3程序如下:#include “type1.h”#define M2 N*2main() int i;i=M1+M2; prin
7、tf(“%dn”,i);程序编译后运行的输出结果是:()。A) 10 B) 20 C) 25 D) 3016. 有以下程序struct STU char num10; float score3; ;main() struct stu s3=“20021”,90,95,85,“20022”,95,80,75,“20023”,100,95,90,*p=s;int i; float sum=0;for(i=0;iscorei;printf(“%6.2fn”,sum);程序运行后的输出结果是()。A) 260.00 B) 270.00 C) 280.00 D) 285.0017. 设有如下定义:str
8、uck sk int a;float b;data;int *p;若要使P指向data中的a域,正确的赋值语句是()。A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a;18. 有以下程序#include struct NODE int num; struct NODE *next; ;main() struct NODE *p,*Q,*R;p=(struct NODE*)malloc(sizeof(struct NODE);q=(struct NODE*)malloc(sizeof(struct NODE);r=(struct NODE*)mal
9、loc(sizeof(struct NODE);p-num=10; q-num=20; r-num=30;p-next=q;q-next=r;printf(“%dn”,p-num+q-next-num);程序运行后的输出结果是()。A) 10 B) 20 C) 30 D) 4019.若有以下说明和定义typedef int *INTEGER;INTEGER p,*q;以下叙述正确的是()。A) P是int型变量 B) p是基类型为int的指针变量C) q是基类型为int的指针变量 D) 程序中可用INTEGER代替int类型名20. 有以下程序main() unsigned char a,b,
10、c;a=0x3; b=a|0x8; c=b1;printf(“%d%dn”,b,c);程序运行后的输出结果是()。A) 11 12 B) 6 13 C) 12 24 D) 11 2221. 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(int xN) int i=0; while(isex);26. 以下选项中不能正确把cl定义成结构体变量的是()。A)typedef struct B)struct color cl int red; int red;int green; int green;int blue; int blue; C
11、OLOR; ;COLOR cl;C)struct color D)struct int red; int red;int green; int green;int blue;int blue; cl; cl;27. 有以下程序#include #define F(X,Y) (X)*(Y)main() int a=3, b=4;printf(%dn, F(a+, b+);程序运行后的输出结果是()。A)12 B)15 C)16 D)2028. 有以下程序struct s int x,y; data2=10,100,20,200;main() struct s *p=data;printf(%dn
12、,+(p-x);程序运行后的输出结果是()。A)10 B)11 C)20 D)2129. 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。struct node int data;struct node *next; *p, *q, *r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。A)r-next=q; q-next=r-next; p-next=r;B)q-next=r-next; p-next=r; r-next=q;C)p-next=r; q-next=r-next; r-next=q;D)q-next=r-n
13、ext; r-next=q; p-next=r;30有以下程序#define f(x) x*xmain( ) int i; i=f(4+4)/f(2+2); printf(“%dn”,i);执行后输出结果是()。A) 28 B) 22 C) 16 D) 431. 设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是()。A) 可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量32.有以下程序struc STU char name10; int num;void f1(struct S
14、TU C) struct STU b=“LiSiGuo”,2042; c=b;void f2(struct STU *C) struct STU b=“SunDan”,2044; *c=b;main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043; f1(A) ;f2(&B) ; printf(“%d %dn”,a.num,b.num);执行后的输出结果是()。A)2041 2044 B)2041 2043 C)2042 2044 D)2042 204333. 有以下程序main( ) unsigned char a,b; a=4|3; b=4&
15、3; printf(“%d %dn”,a,b(;执行后输出结果是()。A) 7 0 B) 0 7 C) 1 1 D) 43 034. 有以下程序struct STU char name10; int num; int Score;main( ) struct STU s5=“YangSan”,20041,703,“LiSiGuo”,20042,580, “wangYin”,20043,680,“SunDan”,20044,550, “Penghua”,20045,537,*p5,*t; int i,j; for(i=0;i5;i+) pi=&si; for(i=0;i4;i+) for(j=i
16、+1;jScorepj-Score) t=pi;pi=pj;pj=t; printf(“5d %dn”,s1.Score,p1-Score);执行后输出结果是()。A) 550 550 B) 680 680 C) 580 550 D) 580 68035. 有以下程序#include struct NODEint num;struct NODE *next;main( ) struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE);q=(struct NODE *)malloc(sizeof(struct
17、 NODE);r=(struct NODE *)malloc(sizeof(struct NODE);p-num=1;q-num=2;r-num=3;p-next=q;q-next=r;r-next=NULL;sum+=q-next-num;sum+=p-num;printf(“%dn”,sum);执行后的输出结果是()。A) 3 B) 4 C) 5 D) 636. 有以下说明和定义语句 struct student int age; char num8; struct student stu3=20,21,109,; struct student *p=stu; 以下选项中引用结构体变量成员
18、的表达式错误的是 ()。A) (p+)-num B)p-numC)(*p).num D)stu3.age3739.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的 字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出 正确的选项。 #include stuct node char data; struct node *next; (37) CreatList(char *s) struct node *h,*p,*q); h=(struct node *) malloc(sizeof(struct node); p=q=h; while(*s!=0) p=
19、(struct node *) malloc(sizeof(struct node); p-data= (38) ; q-next=p; q= (39) ; s+; p-next=0; return h; main() char str=link list; struct node *head; head=CreatList(str); . (37)A)char * B)struct nodeC) struct node*D) char(38)A)*s B)s C)*s+D)(*s)+(39)A)p-nextB)pC)s D)s-next40. 有以下程序#define N 20fun(int
20、 a,int n,int m) int i,j;for(i=m;i=n;i-)ai+1=ai;main()int i,aN=1,2,3,4,5,6,7,8,9,10;fun(a,2,9);for(i=0;iy B) pt-x C) +pt-x D) (pt+)-x 二、 填空1.以下程序的输出结果是 。 #define MAX(x,y) (x)(y)?(x):(y) main() int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(%dn,t); 2.若要使指针p指向一个double类型的动态存储单元,请填空。 p= malloc(sizeof(d
21、ouble); 3.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 18 。 Struct stud char num6; int s4; double ave; a,*p;4. 以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。struct st char name20; double score; ;main() struct st ex;printf(“ex size: %dn”,sizeof( 【14】 );5. 以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。#define N 3#define M 4voi
22、d LineMax(int xNM) int i,j,p;for(i=0; i p=0;for(j=1; j if(xip printf(“The max value in line %d is %dn”, i, 【19】 );main() int xNM=1,5,7,4,2,6,4,3,8,2,3,1;【20】 6. 以下程序段用于构成一个简单的单向链表,请填空。struct STRU int x, y ;float rate;【18】 p; a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;7. 若有如
23、下结构体说明:struct STRU int a, b ; char c; double d:struct STRU p1,p2;请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型【19】 t20;8. 设有如下宏定义#define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通过宏调用实现变量a、b内容交换,请填空。float a=5,b=16,c;MYSWAP( 【15】 ,a,b);9. 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#define N 3#defi
24、ne M 3 select(int aNM,int *n) int i,j,row=1,colum=1;for(i=0;ifor(j=0;jif(aijarowcolum)row=i;colum=j;*n= 【17】;return 【18】; main() int aNM=9,11,23,6,1,15,9,17,20,max,n; max=select(a,&n); printf(max=%d,line=%dn,max,n); 10. fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。#include #define
25、 N 100int fun(int(*a)N) int row,col,max,min;for(row=0;row for(max=arow0,col=1;colif( 13 )max=arowcol; if( row=0)min=max; else if( 14 )min=max; return min;11. 下面程序的运行结果是: 19 。typedef union student char name10;long sno;char sex;float score4;STU;main() STU a5;printf(“%dn”,sizeof(a);12. 以下程序的输出结果是【18】 。#defint MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)+mmain() int i=2,j=3; printf(%dn,MCRB(j,MCRA(i);13.设有以下定义struct ss int info;struct ss *link;x,y,z;且已建立如下图所示链表结构: X Y Z请写出删除点y的赋值语句【19】 。14. 已有定义如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年兰州科技职业学院单招综合素质考试题库带答案详解(达标题)
- 2026年信阳涉外职业技术学院单招职业倾向性考试题库带答案详解(培优a卷)
- 2026年六安职业技术学院单招职业适应性测试题库含答案详解(培优b卷)
- 2026年土木工程材料与施工技术专业知识测试题
- 2026年产品设计与创新思路测试题
- 2026年计算机编程技能测试题编程语言及算法应用题目
- 2026年电影特效师职业资格认证模拟考试题目
- 2026年中医药专业知识与技能笔试题目
- 2026年公共关系管理师技能测试题集含危机公关处理
- 2026年心理学类试题心理咨询技巧与案例分析模拟题
- (2025版)中国焦虑障碍防治指南
- 2026届北京市东城区高三语文期末试题及答案
- 46566-2025温室气体管理体系管理手册及全套程序文件
- GB/T 26951-2025焊缝无损检测磁粉检测
- 2025年广东省高职院校三二分段转段考试文化课测试(英语)
- (13)普通高中艺术课程标准日常修订版(2017年版2025年修订)
- 2025年公务员联考《申论》(海南卷)真题答案及解析
- 2024绍兴文理学院元培学院教师招聘考试真题及答案
- 下腔静脉滤器置入术课件
- (正式版)DB61∕T 5079-2023 《城市轨道交通工程沿线土遗址振动控制与监测标准》
- 汽车托管与租赁合同协议
评论
0/150
提交评论