(单选题)
1.关于typedef 的叙述中错误的是( )。
A)用typedef 可以为各种类型起别名,但不能为变量起别名
B)可以通过typedef 增加新的类型
C)用typedef 定义新的类型名后,原有类型名仍有效
D)可以用typedef 将已存在的类型用一个新的名字来代表
2.关于typedef 的叙述中错误的是( )。
A)用typedef 为类型说明一个新名,通常可以增加程序的可读性
B)用typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名
C)用typedef 可以增加新类型
D)typedef 只是将已存在的类型用一个新的名字来代表
3.正确的结构体类型说明和变量定义是( )。
A)typedef struct f {int n;char c;}STR; STR t1,t2;
B)struct STR;{ int n;char c;};STR t1,t2;
C)typedef struct STR;{ int n=0; char c='A';}t1,t2;
D)struct{ intn;char c;}STR; STR t1,t2;
4.关于typedef 的叙述中错误的是( )。
A)用typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名
B)可以通过typedef 增加新的类型
C)用typedef 定义新的类型名后,原有类型名仍有效
D)用typedef 可以为各种类型起别名,但不能为变量起别名
5.若typedef int*T;T a[5];则与a 的定义相同的是( )。
A)int *a[5]; B)int a[5];
C)int *a; D)int a[5];
6.若typedef char T[3];T*a;上述定义中a 的类型与下面选项中完全相同的是( )。
A)char(*A)[3]; B)char *a;
C)chara[3]; D)char*a[3];
7.关于结构体说明和变量定义中,正确的是( )。
A)typedef struct abc{ int n;double m;}ABC; ABC x,y;
B)struct abc{ int n;float m};struct abc x,y;
C)struct ABC{ int n;float m;} struct ABC x,y;
D)struct abc{ int n;float m;};abc x,y;
8.关于typedef 的叙述中正确的是( )。
A)在使用typedef 改变原类型的名称后,只能使用新的类型名
B)使用typedef 说明新类型名时,后面不能加分号
C)在程序中,允许用typedef 来说明一种新的类型名
D)使用typedef 说明新类型名时,其格式是:typedef 新类型名 原类型名
9.关于typedef 的叙述中错误的是( )。
A)用typedef 可以说明一种新的类型名
B)typedef 说明的新类型名必须使用大写字母,否则会出编译错误
C)可以用typedef 说明的新类型名来定义变量
D)typedef 的作用是用一个新的标识符来代表已存在的类型名
10.对以下程序段的叙述中正确的是( )。
A)以上的说明形式非法
B)NODE 是一个结构体类型
C)mynode 是一个结构体类型
D)mynode 是一个结构体变量
11.下面结构体的定义语句中,错误的是( )。
A)struct STR {int x;int y;int z;}; struct STR a;
B)struct STR{int x;int y;int z;} struct STR a;
C)struct STR{int x;int y;int z;} a;
D)struct {int x;int y;int z;} a;
12.以下程序的输出结果是( )。
A)11 B)20
C)21 D)10
13.设有定义:
则以下赋值语句中错误的是( )。
A)data2=(2,6);
B)data2=data1;
C)data2.real=data1.real;
D)data2.real=data1.unreal;
14.以下程序的输出结果是( )。
A)10,9,8,7,6,5,4,3,2,1,
B)10,9,8,7,6,1,2,3,4,5,
C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,4,5,6,7,8,9,10,
15.以下程序的输出结果是( )。
A)Tom,m,85,90,Tom,m,85,90
B)Lily,f,95,92,Lily,f,95,92
C)Tom,m,85,90,Lily,f,95,92
D)Lily,f,95,92,Tom,m,85,90
16.设struct STR{char name[10]; int age; char sex;}s[5],*ps;ps=&s[0];则以下scanf 函数调用语句有错误的是( )。
A)scanf("%c",&(ps->sex));
B)scan("%d",&s[0].age);
C)scanf("%s",s[0].name);
D)scanf("%d",ps->age);
17.若typedef struct STR{int g;char h;}T;以下叙述中正确的是( )。
A)T 是struct STR 类型的变量
B)STR 是struct 类型的变量
C)可用STR 定义结构体变量
D)可用T 定义结构体变量
18.以下程序的输出结果是( )。
A)1002,Bob,1202.0
B)1002,Mike,1202.0
C)1001,Mike,1098.0
D)1001,Bob,1098.0
19.设typedef struct STR{ char c;int a[4];}TV;则下面叙述中正确的是( )。
A)STR 是struct 类型的变量
B)可以用STR 定义结构体变量
C)TV 是struct STR 类型的变量
D)可以用TV 定义结构体变量
20.以下程序的输出结果是( )。
A)1,2 B)2,3
C)3,4 D)4,1
21.有以下程序段( )。
以下选项中表达式的值为11 的是
A)(pt++)->x B)pt->x
C)++pt->x D)*pt->y
22.有下列程序的输出结果是( )。
A)2,4,6,8,10,12,14,16,18,10
B)2,3,1,6,8,7,5,4,10,9,
C)1,3,5,7,9,11,13,15,17,10,
D)1,2,3,6,8,7,5,4,10,9,
23.关于结构体类型的叙述中正确的是( )。
A)结构体类型中各个成分的类型必须是一致的
B)在定义结构体类型时,编译程序就为它分配了内存空间(www.xing528.com)
C)结构体类型中的成分只能是C 语言中预先定义的基本数据类型
D)一个结构体类型可以由多个称为成员(或域)的成分组成
24.关于结构体类型的叙述中正确的是( )。
B)结构体类型的变量,不能在声明结构体类型组成时一起定义
C)使用typedef 定义新类型名后,新类型名与原类型名实际上是等价的
D)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
25.关于结构体函数的叙述中正确的是( )。
A)函数的返回值不能是结构体指针类型
B)函数的返回值不能是结构体类型
C)在调用函数时,可以将结构体变量作为实参传给函数
D)结构体数组不能作为参数传给函数
26.关于结构体函数的叙述中正确的是( )。
A)即使是同类型的结构体变量,也不能进行整体赋值
B)结构体数组名不能作为实参传给函数
C)结构体变量的地址不能作为实参传给函数
D)结构体中可以含有指向本结构体的指针成员
27.以下程序的输出结果是( )。
A)1 B)2
C)4 D)64
28.以下程序的输出结果是( )。
A)0 B)2
C)4 D)8
29.关于位运算的叙述中正确的是( )。
A)右移运算时,高位总是补0
B)左移运算的结果总是原操作数据2 倍
C)位运算符都需要两个操作数
30.变量a=01011101,变量b=11110000,若要求将a 的高4 位取反,低4 位不变,所要执行的运算是( )。
A)a^b B)a&b
C)a<<2 D)a|4
31.以下程序段的输出结果是( )。
A)2 B)4
C)16 D)32
32.以下程序的输出结果是( )。
A)0 B)1
C)3 D)2
33.以下程序的输出结果是( )。
A)2 B)4
C)8 D)16
34.以下程序的输出结果是( )。
A)8 B)16
C)64 D)4
35.以下程序的输出结果是( )。
A)1 B)11
C)21 D)20
36.以下程序段的输出结果是( )。
A)32 B)-1
C)1 D)0
37.以下程序的输出结果是( )。
A)15 B)0
C)5 D)100000
38.以下程序的输出结果是( )。
A)18 B)5
C)13 D)8
39.以下程序的输出结果是( )。
A)0 B)1 C)编辑出错 D)-1
40.关于文件操作的叙述中正确的是( )。
A)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1 个数据
B)C 语言中的文件是流式文件,因此只能顺序存取数据
C)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
41.关于C 语言文件的叙述中正确的是( )。
A)C 语言中的文件是流式文件,因此只能顺序存取数据
B)文件由一系列数据依次排列组成,只能构成二进制文件
C)文件由数据序列组成,可以构成二进制文件或文本文件
D)文件由字符序列组成,其类型只能是文本文件
42.关于C 语言文件指针的叙述正确的是( )。
A)文件指针就是文件位置指针,表示当前读写数据的位置
B)文件指针指向文件在计算机中的存储位置
C)文件指针是程序中用FILE 定义的指针变量
D)文件指针就是fscanf 函数返回的值
43.设fp=fopen(“file”,“w”);,关于文件操作叙述的选项中正确的是( )。
A)可以使用二进制读写
B)只能写不能读
C)可以随意读和写
D)可以在原有内容后追加写
44.不能用于向文件中写入数据的C 语言函数是( )。
A)fprintf B)fputc
C)ftell D)fwrite
45.设文件指针fp 己定义,执行语句fp=fopen("file","r");后,以下针对文本文件file 操作叙述的选项中正确的是( )。
A)只能检索不能读写
B)只能写不能读
C)可以读和写
D)只能读不能写
46.C 语言中的fread(buffer,size,count,fp);函数是用来读取二进制文件的,关于buffer 的叙述正确的是( )。
A)一个自定义变量
B)一个内存块的首地址,代表读入数据存放的地址
C)一个文件指针,指向待读取的文件
D)一个内存块的字节数
47.关于C 语言的输入输出函数,以下叙述中错误的是( )。
A)gets 函数用于从终端读入字符串
B)getchar 函数用于从磁盘文件读入字符
C)puts 函数用于把字符串输出到终端设备
D)fwrite 函数用于以二进制形式输出数据到文件
48.关于文件操作中的标高符“EOF”的叙述中正确的是( )。
A)EOF 即NULL
B)文本文件和二进制文件都可以用EOF 作为文件结束标志
C)EOF 是在库函数文件中定义的符号常量
D)对于文本文件,fgetc 函数读入最后一个字符时,返回值是EOF
49.若fp 是指向某文件的指针,且不是末尾,则feof(fp)的函数返回值是( )。
A)0 B)非0
C)1 D)EOF
50.以下程序依次把从终端输入的字符存放到file 文件中, 用# 作为结束输入的标志,则在横线处应填入的选项是( )。
A)fpoint,ch B)ch C)ch,fpoint D)ch, "file"
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。