A)没有错 B)第l行有错 C)第6行有错 D)第7行有错
答案:B
评析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第l行文件包含命令是错误的。
(44)若有如下说明,则__________的叙述是正确的。
struct st
{ int a;
int b[2l;
}a;
A)结构体变量a与结构体成员a同名,定义是非法的
B)程序只在执行到该定义时才为结构体st分配存储单元
C)程序运行时为结构体st分配6个字节存储单元
D)类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)
答案:D
评析:结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是a.a,变量a处于不同的“层次”上,系统完全能够分清。st是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。
(45)若有以下结构体定义,则________是正确的引用或定义。
struct example
{ int x;
int y;
}v1;
A)example.x=10 B)example v2.x=10
C)struct v2;v2.x=lO D)struct example v2={10};
答案:D
评析:在定义结构体变量时,不能只用结构体名example或关键字strum进行定义,必需要用结构体类型名struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。
(46)下列程序的执行结果是_________。
#include
union un
{ int i;
char c[21;
};
void main()
{ union un x;
x.c[0]=10:
x.c[1]=1:
printf(“\n%d”,x.i);
}
A)266 B)ll C)265 D)138
答案:A
评析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[O]位于低字节,c[1]位于高字节,所以x.i的值为266。
(47)已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_______。
struct link Data next { char data;
___________
}node;
A)struct link next B)link*next
C)struct next link D)struct link*next
答案:D
评析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为struct link*next。
(48)已知小写字母a的ASCII码为97,大写字母A的ASCII.码为65,以下程序的结果是__________。
main()
{ unsigned int a=32,b=66;
printf(“%c\n”,atb);
}
A)66 B)98 C)b D)B
答案:C
评析:位运算符“l”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为l。最后以字符型输出, 98对应的字符“b”。
(49)C语言库函数龟ets(str,n,fp)的功能是_________。
A)从fp指向的文件中读取长度n的字符串存入str指向的内存
B)从fp指向的文件中读取长度不超过n-l的字符串存入str指向的内存
C)从fp指向的文件中读取n个字符串存/Xstr指向的内存
D)从str读取至多n个字符到文件fp