首页 > 全部 > 二级C语言 > 国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷7

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷7

本单篇文档共8583字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 2968人下载
价格: 1.10 原价:¥8.80
收藏

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷7

选择题

1.有以下程序

struct A{int a;char b[10];

double c;};

void f(struct A t);

main(){structA a={1001,\\(B)

A. 1002,ChangRong,1202.0

B. 1001,ZhangDa,1098.0

C. 1001,ChangRong,1098.0

D. 1002,ZhangDa,1202.0

解析:在主函数中定义结构体A的变量a,并对其赋初值,再调用函数f(a),形参t接收实参的数据,在函数f(t)中对结构体变量t的各个成员进行了赋值操作,需要注意的,形参和实参之间是数据传递,因此对形参的操作对实参不产生影响,因此在主函数输出仍然输出变量a的数据。

2.若有以下程序

struct stu{char*name,gender;int score;};

main(){struct stu a={NULL,’m’,290},b;

a.name=(char*)malloc(10);

strcpy(a.name,\\(D)

A. Zhao,m,290,Qian,f,350

B. Qian,f,350,Qian,f,350

C. Zhao,m,290,Zhao,f,350

D. Qian,m,290,Qian,f,350

解析:主函数中定义结构体类型struct stu,有三个成员,第一个成员为字符指针变量。主函数中为stu类型变量a赋值,首先为a.name成员分配存储空间,存入数据。b=a;语句执行完毕以后,a和b的各个成员值相同,需要注意的是b.name和a.name成员都保存了同一段内存的地址,凼此当为变量b赋值的时候,同样更改了a的name成员,而其他成员由于有单独的存储空间而不会发生改变。

3.若有以下程序

typedef struct stu{char*name,gender;int score;}STU;

void f(char*p){P=(char*)malloc(10);strcpy(p,\\(D)

A. Zhao,m,290,Qian,f,350

B. Qian,f,350,Qian,f,350

C. Qian,m,290,Qian,f,350

D. Zhao,m,290,Zhao,f,350

解析:函数f(char*p)的主要功能申请字符串的存储空间,然后存入字符串\\

4.若有以下程序

typedef struct stu{char name[10],gender;int score;}STU;

void f(STU a,STU b){

b=a;

printf(\\(B)

A. Zhao,m,290,Zhao,m,290

B. Zhao,m,290,Qian,f,350

C. Qian,f,350,Qian,f,350

D. Zhao,m,290,Zhao,f,350

解析:函数f(STU a,STU b)的主要功能是为把结构体变量a的值存放到b中,然后输出b中各个成员的值。主函数中调用函数f(a,b),输出赋值以后b的数据,实际为a{\\

5.若有以下程序

typedef struct stu{char name[10],gender;int score;)STU;

void f(char*P){strcpy(P,\\(C)

A. Zhao,m,290,Zhao,m,290

B. Qian,f,350,Qian,f,350

C. Zhao,m,290,Qian,f,350

D. Zhao,m,290,Zhao,f,350

解析:主函数中结构体变量定义同时赋初值。执行b=a;语句后,b的数据和a的数据相同,调用函数f(b.name),形参指针p接收实参b.name的地址,此时p和b.name指向同一个存储空间,流程转到f执行,p指向的存储空间仔放字符串\\

6.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在__________处应填入的选项是

Struct link{char data;___________}node;

(A)

A. struct link*next;

B. link next;

C. link*next;

D. struct link next;

解析:单链表为动态分配的存储宅问,在分配时,每个结点之间可以是不连续的(结点内是连续的)。结点之问的联系用指针实现,即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域,该指针为了保持链表中结点的地址,因此其基类型和结点的类型相同,选项为A。

7.若有以下程序段

struct st{int n;struct st*next;};

struct st a[3]={5,&a[1],7,&a[2],9,’\0’},*p;

P=&a[0];

则以下选项中值为6的表达式是(A)

A. ++(p->n)

B. (*p).n

C. p->n++

D. P->n

解析:选项A)中表达式++(p->n)为前缀自加表达式,p->n和a[0].n等价,其值为5,前缀自加后值为6。选项B)中表达式(*p).n和选项D)的表达式p->n含义相同,表示取结构指针p所指向的成员,因此值为5。选项C)中表达式p->n++为后缀自加表达式,相当于(p->n)++,表达式值为5。

8.以下叙述中正确的是(D)

A. 结构体类型中的成分只能是C语言中预先定义的基本数据类型

B. 在定义结构体类型时,编译程序就为它分配了内存空间

C. 结构体类型中各个成分的类型必须是一致的

D. 一个结构体类型可以由多个称为成员(或域)的成分组成

解析:结构体类型,它是由若干“成员”组成,每一个成员可以是一个基本数据类型或者是一个构造类型。在说明和使用之前必须先定义它,也就是构造它。

定义一个结构的一般形式为:

struct 结构名

{成员列表};

成员列表由若干个成员组成,对何个成员也必须作类型说明,

其形式为:类型说明符成员名;

可以说明类型不同的各个成员。

9.以下叙述中正确的是(C)

A. 结构体类型中的各个成分均不能是数组或指针

B. 结构体类型的变量,不能在声明结构体类型组成时一起定义

C. 使用typedef定义新类型名后,新类型名与原类型名实际上是等价的

D. 元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义

解析:C语言允许用typedef说明一种新类型名,typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新

本文档预览:3600字符,共8583字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷7

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号