{
int num; char str[2]; }s;
s.num=20; s.str[0]='A'; s.str[1]='\\0';
printf(\A.20 B.65 C.0 D.A
178.定义一个结构体变量后,该变量所占内存大小是() A.结构体中第一个成员所需内存容量 B.结构体中最后一个成员所需内存容量
C.结构体中各成员所需内存容量总和 D.结构体成员中占内存容量最大者所需的容量 179.设有如下定义: union u_type { int x; float y; double z; char m; }a,b,c;
执行语句a.x=8;a.y=7.5;a.m='N';b.x=9;后,共用体变量a中的值为() A.9 B.'N' C.7.5 D.8 180.若有定义: struct teacher {
int num;
char name[10]; char sex; int age; float score; }teacher1;
则变量teacher1所占用的内存字节数是() A.5 B.14 C.19 D.20 181.下列对结构体类型变量定义不正确的是() A.struct teacher {
int num; int age; }teach1; B.struct {
int num; int age;
}teach1,teach2;
21
C.struct {
int num; int age; }teacher;
struct teacher teach1; D.struct teacher {
int num; int age; };
struct teacher teach1; 182.若有定义: struct teacher {
int num; char sex; int age; }teacher1;
则下列叙述不正确的是() A.struct是结构体类型的关键字
B.struct teacher是用户定义的结构体类型
C.num,sex,age都是结构体变量teacher1的成员D.teacher1是结构体类型名
183.以下程序的运行结果是() #include
void main() {
printf(\}
A.2 B.4 C.6 D.8 184.以下程序的运行结果是() #include
22
{
char ch[2]; int i;
union Utype u; }a;
void main() {
printf(\}
A.5 B.6 C.7 D.8
185.以下C语言共用体类型数据的描述中,不正确的是()
A.共用体变量占的内存大小等于所需内存最大的成员所占的内存 B.共用体类型可以出现在结构体类型定义中
C.在定义共用体变量的同时允许对第一个成员的值进行初始化 D.同一共用体各成员的首地址不相同 186.设有如下语句: struct student {
int num; int age; };
struct student stu[3]={{101,18},{102,21},{103,19}}; struct student *p=stu;
则下面表达式的值为102的是()
A.(p++)->num B.(p++)->age C.(*p).age D.(*++p).num 187.根据下面定义,能打印出字母'H'的语句是() struct stu {
char name[8]; int age; };
struct stu class[12]={\
A.printf(\ B.printf(\C.printf(\ D.printf(\
枚举、自定义类型和位运算
199.对枚举类型进行定义,不正确的是()。 A.enum b{1,2,3}; B.enum a{A,B,C};
C.enum c{D=3,E,F}; D.enum d{X=0,Y=5,Z=9}; 200.假定已有如下变量说明和枚举定义: char ch; int j,k;
enum day{sun,mon,tue,wed,thu,fri,sat}; int a[sat];
23
判断下列语句是否符合语法规则,结果是()。 sun=0; /*语句1*/ j=mon+tue; /*语句2*/
if(a[mon]>0)j++; /*语句3*/
A.语句1错误,语句2和语句3正确 B.语句2正确,语句1和语句3错误 C.语句3正确,语句1和语句2错误 D.语句1正确,语句2和语句3错误 201.设有如下定义: typedef int * INTEGER; INTEGER p,*q;
则()是正确的叙述。
A.p是int型变量 B.q是基类型为int的指针变量
C.p是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名 202.在对无符号数的位运算中,操作数左移一位相当于()。
A.操作数除以2 B.操作数乘以2 C.操作数除以4 D.操作数乘以4 203.若有定义:int a=20,b=28,c;则执行语句c=(a^b)<<2;后c的值为()。 A.2 B.5 C.32 D.92
204.若有定义:int a=5,b=7,c;则执行语句c=a&b;后c的值为()。 A.12 B.2 C.6 D.5 205.下面程序的输出结果为()。 #include
enum Weekday{sun=7,mon=1,tue,wed,thu,fri,sat}; enum Weekday day=sat; printf(\} A.7 B.6 C.5 D.4 206.若有以下类型说明,叙述正确的是()。 typedef struct {
int num; char *name; int score;
}STU,*PSTU; A.STU是变量名 B.PSTU是变量名
C.PSTU是指向结构体类型STU的指针类型名 D.类型说明语句有错误
207.下面程序段的运行结果是()。 int a=5,b=6; printf(\A.5 B.6 C.7 D.8 208.若有以下类型说明,则()是正确的叙述。 typedef union
24
{
char str[2]; int i; }sp;
A.sp是一个共用体变量名 B.sp是一个共用体类型名 C.union sp是共用体类型名
D.typedef union是共用体类型名 209.定义枚举类型的关键字是()。 A.define B.enum C.union
D.struct
文件
210.以下程序的功能是()。 #include
FILE *fp; long int n;
fp=fopen(\fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp);
printf(\}
A.计算文件wj.txt的起始地址 B.计算文件wj.txt的终止地址 C.计算文件wj.txt内容的字节数 D.将文件指针定位到文件末尾 211.设有一文本文件test.txt,其内容为\(不包含引号),以下程序段的运行结果是()。 FILE *fp; char *str;
if((fp=fopen(\ str=fgets(str,5,fp); printf(\
A.cpro B.cprog C.progr D.cprogram 212.在C语言程序中,对文件操作的一般步骤是()。 A.打开文件,定义文件指针,读写文件,关闭文件 B.定义文件指针,读文件,写文件,关闭文件 C.定义文件指针,打开文件,读写文件,关闭文件 D.操作文件,定义文件指针,修改文件,关闭文件 213.下面程序运行后的结果是()。 #include
FILE *fp;int i=10,j=20,k,n;
25