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

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

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

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

选择题

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

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 类型名 标识符;在此“类型名”必须是在此语句之前已有定义的类型标识符。“标识符”是一个用户定义标识符,用作新的类型名。Typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原来的类型名依然有效,这样可以增加程序的可读性。

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.若有定义 typedef int* 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.下面结构体的定义语句中,错误的是

B

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

11.有以下程序

#include <stdio.h>

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的值不会发生变化。

12.有以下程序

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

main() {

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

A. 11

B. 20

C. 21

D. 10

解析:在题目中定义了结构体S类型的数组变量data,并对其赋初值。在程序中定义了指向结构体S类型的变量p,并把数组data的第二个元素data[1]的值赋给它,所以此时成员变量p.a的值等于20,在输出时分别加1,所以输入结果为选项A。

13.设有定义:

struct complex { int real,unreal;}

data1={1,8},data2;

则以下赋值语句中错误的是(A)

A. data2=(2,6);

B. data2=

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号