c等级考试试卷集成(选择题)06.6-08.1 联系客服

发布时间 : 星期日 文章c等级考试试卷集成(选择题)06.6-08.1更新完毕开始阅读8dfa708b71fe910ef12df899

if(*(p+i)==*(q+i)) x=*(p+i)*2; A) 2 B) 4 C) 6 D) 不确定

51606 C 以下程序段运行后x的值为()。 int a[9]={1,2,3,4,5,6,3,8,9}; int *p,*q; int i ,x; p=&a[0]; q=&a[8]; for(i=0;i<3;i++) if(*(p+i)==*(q-i)) x=*(p+i)*2; A) 2 B) 4 C) 6

D) 不确定

51607 A 下面程序输出结果是()。 #include void main()

{ int i ; char *s=“abc”; for(i=0;i<3;i++)

printf(“%s\\n”,s+i); }

A) abc bc c B) c

bc

abc C) abc

c bc D) a

ab abc

51608 A 下面程序输出是()。 #include void main()

{ char *str=“12345”,*ps=str+4; printf(“%c\\n”,ps[-4]); } A) 1 B) 2 C) 3 D) 错误

51609 A 从键盘输入1 2 3 4 5<回车>,输出为()。#include

#define N 5

void main()

{ int a[N]; int *p=a; while(pa)

printf(“%d”,*(- -p)); }

A) 5 4 3 2 1 B) 1 2 3 4 5 C) 2 3 4 5 1 D) 4 3 2 1 5

51610 B 以下程序的运行结果是()。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0;

for(i=1;i<6;i++) s+=p[i++]; printf(“%d”,s);

A) 12 B) 15 C) 25 D) 27 51701 C 设有以下定义语句:

struct student {int num; char name[10]; float score;

}wang,zhang;

则不正确的叙述是( )。

A)

struct是结构体类型的关键字 B) zhang是结构体变量名 C) wang是结构体类型名 D)

num,name,score都是结构体类型student的成员名

51702 B 设有以下定义语句: struct student {int num;

char name[10];

float score; }wang,zhang;

则变量wang所占的内存字节数是( )。 A) 14 B) 16 C) 18 D) 20

51703 B 设有如下定义语句:

union u_type {int i;

double x; float f; };

13

struct str_type {char str[100];

union u_type u[2];

}

则语句 printf(“%d”,sizeof(struct str_type)); 的输出结果是( )。 A) 100 B) 116 C) 120 D) 200

51704 C 若有定义: struct teacher { int nun;

char name[10];

char sex; int age; float score; }teacher1;

则变量teacher1所占用的内存字节数是()。 A) 5 B) 14 C) 19 D) 20

51705 C 下列对结构体类型变量定义不正确的是()。 A) struct teacher {int num; int age; }teach1; B) struct

{int num; int age;

}teach1,teach2; C) struct

{int num;

int age; }teacher;

struct teacher teach1; D) struct teacher

{int num; int age; };

struct teacher teach1; 51706 D 若有定义: struct teacher {int num; char sex; int age;

14

}teacher1;

则下列叙述不正确的是()。

A) struct是结构体类型的关键字

B) struct teacher是用户定义的结构体类型

C) num,sex,age都是结构体变量teacher1的成员 D) teacher1是结构体类型名

51707 D 以下程序的运行结果是()。 #include union Utype{ int i;

float f; }u[2];

void main()

{printf(\}

A) 2 B) 4 C) 6 D) 8

51708 D 以下程序运行结果为()。 #include union utype {int i; float f; }; struct

{ char ch[2]; int i;

union utype u; }a;

void main()

{ printf(“sizeof(a):%d\\n”,sizeof(a)) } A) 5 B) 6 C) 7 D) 8

51709 D 以下C语言共用体类型数据的描述中,不正确的是()。 A) 共用体变量占的内存大小等于所需内存最大的成员所占的内存

B) 共用体类型可以出现在结构体类型定义中 C) 在定义共用体变量的同时允许对第一个成员的值

进行初始化 D) 同一共用体中各成员的首地址不相同

51710 B 若有以下类型说明,则( )是正确的叙述。 typedef union { char str[2];

int i;

}sp;

A) sp是一个共用体变量名 B) sp是一个共用体类型名 C) union sp是共用体类型名 D) typedef union是共用体类型名 51711 D 设有如下语句: struct student { int num; int age;

};

struct student stu[3]={{101,18},{102,21},{103,19}}; struct student *p=stu;

则下面表达式的值为102的是()。 51801 A 若有以下定义:

struct link

{int data;

struct link *next;

}*head,*p;

并已建立如下图所示的链表结构:

data next head

指针p指向如下结点:

data next p

A) (p++)->num B) (p++)->age

C) (*p).age D) (*++p).num

51712 B 以下程序的运行结果是() union

{ int num; char str[2]; } s; s.num=20; s.str[0]=?A?;

s.str[1]=?\\0?;

printf(“%d”,s.num);

A) 20 B) 65 C) 0 D) A

data next data NULL ??

则能够把p所指结点插入到链表中成为链表第2个结点的程序段是( )。 A) p–>next = head–>next; head–>next = p; B) head–>next = p; p–>next = head–>next; C) p.next = head.next; head.next = p; D) (*head).next = p; (*p).next = (*head).next; 51802 D 若有以下定义:

struct link

{int data;

struct link *next;

}a,b,c,*head,*p;

其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示: a b c

head data next data NULL p data next

则能够把c插入到a和b之间并形成新链表的程序段是( )。 A) a.next = c; c.next = b;

B) head.next = p; p.next = head.next; C) head–>next = &c; p–>next = head–>next; D) (*head).next = p; (*p).next = &b;

15

51803 A 若有以下定义:

struct link {int data;

struct link *next; }*head,*p;

并已建立如下图所示的链表结构:

p

next head data data next ?? data NULL

则能保留链表其它结点,而删除P所指向结点的程序段是(A)。

A) head–>next = p–>next; free(p);

B) head–>next = p; p–>next = head–>next; free(p); C) free(p); head–>next = p; p–>next = head–>next; D) free(p); head–>next = p–>next; 51804 A 若有定义: struct node { int data;

struct node *next; }; 及函数: void fun (struct node *head)

{ struct node *p=head; while(p)

{struct node *q=p->next;

free(p);

p=q;}

}

调用head是指向链表首结点的指针,整个链表的结构图如下图:

head

2 15 ?? 27 NULL 则函数fun() 的功能是( )。

A) 删除整个单向链表 B) 删除单向链表中的一个结点 C) 显示单向链表中的所有数据 D) 创建单向链表 51805 C 若有定义: struct node

{ int data;

struct node *next; }; 及函数: void fun (struct node *head)

{ struct node *p=head; while(p)

{ printf(“%d”,p->data);

p=p->next; }

}

调用head是指向链表首结点的指针,整个链表的结构图如下图:

head

25 47 ?? 13 NULL 则函数fun() 的功能是( )。

A) 删除单向链表 B)显示单向链表中的所有数据 C)显示单向链表中的第一个数据 D)创建单向链表

16