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

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

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

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

选择题

1.以下叙述中错误的是(B)

A. 可以用typedef将已存在的类型用一个新的名字来代表

B. 可以通过typedef增加新的类型

C. 用typedef定义新的类型名后,原有类型名仍有效

D. 用typedef可以为各种类型起别名,但不能为变量起别名

解析:C语言允许用typedef说明一种新类型名,说明新类型名的语句一般形式为:typedef类型名 标识符;在此,“类型名”必须是在此语句之前已有定义的类型标识符。“标误符”是一个用户定义标识符,用作新的类型名。typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。

2.以下关于typedef的叙述错误的是(C)

A. typedef只是将已存在的类型用一个新的名字来代表

B. 用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

C. 用typedef可以增加新类型

D. 用typedef为类型说明一个新名,通常可以增加程序的可读性

解析:C语言允许用typedef说明一种新的类型名,其一般形式为:typedef类型名标识符;在此“类型名”必须是在此语句之前已有定义的类型标识符。“标识符”是一个用户定义标识符,用作新的类型名。聊edef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原来的类型名依然有效,这样可以增加程序的可读性。

3.以下结构体类型说明和变量定义中正确的是

A

解析:定义结构体类型的一般形式为:struct结构体名{成员列表};struct结构体名后不能加“;”号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为“struct t1,t2;”。选项A为用户自定义类型,其为正确的定义形式。

4.以下叙述中错误的是(B)

A. 可以用typedef将已存在的类型用一个新的名字来代表

B. 可以通过typedef增加新的类型

C. 用typedef定义新的类型名后,原有类型名仍有效

D. 用typedef可以为各种类型起别名,但不能为变量起别名

解析:C语言允许用typedef说明一种新类型名:typedef 类型名 标识符;。

其中“类型名”必须是在此语句之前已定义的类型标识符;“标识符”是一个用户定义标识符,用作新的类型名:typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。

5.若有定义typedefint*T;T a[10];则a的定义与下面哪个语句等价(A)

A. int*a[10];

B. int(*a)[10];

C. int*a;

D. int a[10];

解析:typedef的主要功能是为存在的类型命名,后面的代码中可以利用该新定义的类型名定义变量,题目中定义了整型指针类型T,而后利用T定义了整型指针数组a,含有10个元素,选项A中定义了整型指针数组a,选项B定义了一个指向一维数组的指针a,选项C定义指针变量,,而选项D为定义整型数组最常用的形式,数组a中可以存放10个数据元素。

6.若有定义typedef char T[10];T*a;上述定义中a的类型与下面选项中完全相同的是(D)

A. char(*a)[10];

B. char*a;

C. char a[10];

D. char*a[10];

解析:题目中利用typedef定义了字符数组类型T,而后定义了该类型的指针a,因此a为指针数组。

7.以下结构体说明和变量定义中,正确的是

A

解析:选项B中结构体定义中每个成员后面的分号都不能省略,double m后没分号,因此错误。选项C结构体类型定义完毕后,}外没加分号。选项D中定义变量要加上关键字struct。

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

A. 使用typedef说明新类型名时,其格式是:typedef新类型名原类型名;

B. 使用typedef说明新类型名时,后面不能加分号

C. 在程序中,允许用typedef来说明一种新的类型名

D. 在使用typedef改变原类型的名称后,只能使用新的类型名

解析:C语言允许用typedef说明一种新类型名。定义形式:typedef 类型名 标识符;

其中“类型名”必须是在此语句之前已定义的类型标识符;“标识符”是一个用户定义标识符,用作新的类型名;typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。

9.以下叙述中错误的是(B)

A. typedef的作用是用一个新的标识符来代表已存在的类型名

B. typedef说明的新类型名必须使用大写字母,否则会出编译错误

C. 可以用typedef说明的新类型名来定义变量

D. 用typedef可以说明一种新的类型名

解析:typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原来类型名依然有效。为了便于识别,一般习惯将新的类型名用人写字母表示。

10.有以下程序段

Typedef struct NODE

{int hum;struct NODE*next;

}OLD;

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

A. 以上的说明形式非法

B. NODE是一个结构体类型

C. OLD是一个结构型类型

D. OLD是一个结构变量

解析:本题考查结构体和typedf类型定义。本题的声明代码相当于两部分,首先定义struct NODE,然后是一typedef定义OLD类型,因此OLD是结构体类型。选项C正确,其他选项错误。

11.下面结构体的定义语句中,错误的是

B

解析:在选项B中,由于在定义完结构体后缺少分号“;”,所以这是一条不完整的语句,因而是错误的。

12.有以下程序

#include

typedef struct{int b,p;}A;

void f(A c)/*注意:c是结构变量名*/{

int j;

c.b+=1;c.p+=2;}

main(){i;A a={1,2};

f[a);

printf(\\(B)

A. 2,4

B. 1,2

C. 1,4

D. 2,3

解析:在C语言中,数据只能从实参单向传递给形参,称为“按值”传递。也就是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。所以本题中在main()函数f(a)语句中结构体实参a作为值,传递给函数f(A c)中的形参c:这种值传递的方式不会对实参a产生任何影响,所以结构体实参a的值不会发生变化。

13.有以下程序

struct S {int a,b;)data[2]={10,100,20,200};

main(){

struct S p=data[1];printf(\\(C)

A. 11

B. 20

C.

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号