选择题区域
1.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素____的值为6。 (2分)
A.a[3][2]
B.a[2][1]
C.a[1][2]
D.a[2][3]
正确答案为 B
错误原因是当时没考虑清楚数组元素从【0】开始
2.以下定义语句中不正确的是__。 (2分)
A.double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};
B.char c2[]={’\x10’, ‘\xa’, ‘\x8’};
C.char c1[]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’};
D.int y[5]={0,1,3,5,7,9};
正确答案为 D
错误原因 int类型虽然不从零开始,但是已经规定只能含有5个元素
3.以下程序的输出结果是( )。 (1分)
struct NODE{ int num; struct NODE *next; };
int main(void)
{ struct NODE p,q,r;
p=(struct NODE)malloc(sizeof(struct NODE));
q=(struct NODE)malloc(sizeof(struct NODE));
r=(struct NODE)malloc(sizeof(struct NODE));
p->num=10; q->num=20; r->num=30;
p->next=q;q->next=r;
printf(“%d\n”,p->num+q->next->num);
return 0; }
A.10
B.20
C.30
D.40
正确答案是 40
心得,学习链表不要慌张,仔细看清从哪儿指向哪儿就好,从题目中可以看出10+q->next->num
就是10+30=40,所以看清就行!
4.设有如下定义的链表,则值为7的表达式是( )。 (1分)
struct st{
int n;
struct st *next;} a[3] = {5, &a[1], 7, &a[2], 9, NULL}, *p = &a;
A.p->n
B.(p->n)++
C.++p->n
D.p->next->n
正确答案是 D
原因,p->下一个元素,就是a【1】,所以当a【1】再向下指时就是7。
5.如果二进制文件a.dat已经存在,现在要求写入全新数据,应以()方式打开。 (2分)
A.“w”
B.“wb”
C.“w+”
D.“wb+”
正确答案 B
错因:没看清题目要求为二进制文件,二进制文件就是后面要接 b
6.定义FILE *fp; 则文件指针fp 指向的是()。(2分)
A.文件在磁盘上的读写位置
B.文件在缓冲区上的读写位置
C.整个磁盘文件
D.文件类型结构体