11计算机二级考试C语言选择题 下载本文

{ int a[]={1,2,3,4,5},*p,*q,i; p=a; q=p+4;

for(i=1;i<5;i++) printf(\ A.24334251 B.51423324 C.15243342 D.42332415 51612 下面程序运行结果是( B )。

main( )

{ static char a[]=\ char *p=a,*q=b; int i;

for(i=0;i<=6;i++)

if(*(p+i)==*(q+i)) printf(\ A.geca B.aceg C.bdf D.fdb

51700 若定义如下结构,则能打印出字母M的语句是( B )。 struct person{ char name[9]; int age;};

struct person class[10]={\ A.printf(\C.printf(\51701 以下程序段的运行结果是( D )。 union { int n; char str[2]; }t;

t.n=80; t.str[0]='a'; t.str[1]=0; printf(\ A.80 B.a C.0 D.97

51702一个结构体变量占用的内存大小是( B )。

A.占内存容量最大的成员所需容量 B.各成员所需内存容量之和 C.第一个成员所需内存容量 D.最后一个成员所需内存容量 51703以下程序段的运行结果是( C )。 union { int x; float y; char c; }m,n; m.x=5;m.y=7.5;m.c='A';n.x=8;printf(\ A.5 B.7.5 C.65 D.8 51704若有定义: struct student {int num; char name[8]; char sex;

float score;}stu1;

则变量stu1所占用的内存字节数是( A )。 A.15 B.16 C.8 D.19

51705定义结构体类型变量teach1,不正确的是( D )。 A.struct teacher {int num; struct teacher teach1; B.struct teacher {int num; C.struct

{int num;

D.struct {int num;

int age;

}teach1;

int age;

}teach1;

int age;

};

int age; }teacher;

struct teacher teach1;

51706若有定义:struct student{int num; char sex; int age;}stu1;下列叙述不正确的是

21

( A )。

A.student是结构体类型名 B.struct student是结构体类型名

C.stu1是用户定义的结构体类型变量名 D.num,sex,age都是结构体变量stu1的成员 51707下面程序的运行结果是( A )。 #include

union data { int i; char c; double d; }a[2]; void main() {printf(\ A.16 B.8 C.4 D.2

51708下面程序的运行结果是( B )。

#include

union data {int i; char c; };

struct {char a[2]; int i; union data d; }p; void main() {printf(\ A.5 B.6 C.7 D.8

51709以下C语言共用体类型数据的描述中,正确的是( C )。 A.共用体变量占的内存大小等于所有成员所占的内存大小之和 B.共用体类型不可以出现在结构体类型定义中

C.在定义共用体变量的同时允许对第一个成员的值进行初始化 D.同一共用体中各成员的首地址不相同 51710设有如下语句:

struct stu {int num; int age; };

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

则下面表达式的值为102的是( B )。

A.(p++)->num B.(*++p).num C.(*p++).num D.*(++p)->num 51711若有下面定义,能打印出字母'L'的语句是( A )。 struct class { char name[8];

int age; };

struct class s[12]={\ A.printf(\C.printf(\51712若有下面定义,对结构体变量成员不正确引用的语句是( A )。 struct pup { char name[20]; int age; int sex; }p[3],*q; q=p;

A.scanf(\C.scanf(\

22

51800 以下程序的输出结果是( A )。 main()

{ printf( \fac(int n) { int s;

if(n==1) return 1; else return n*fac(n-1); }

A.120 B.60 C.6 D.1 51801 若有以下定义:

struct node { int data;

struct node *next; }

struct node *p; 已建立如下图所示的链表:

┌──┬──┐ ┌──┬──┐ ┌──┬──┐ p →│data│next┼ →│data│next┼ →... →│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘

指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是( D )。 A.while(p!=NULL) { printf(\B.while(p) { printf(\C.for( ; p!=NULL; p++) printf(\D.for( ; p; p=p->next) printf(\51802 若有以下定义:

struct node { int data;

struct node *next; }

struct node m,n,k, *head, *p; 已建立如下图所示的链表:

m n k

┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head →│data│next┼ →│data│NULL│ p → │data│next│

└──┴──┘ └──┴──┘ └──┴──┘

指针head指向变量m, m.next指向变量n,p指向变量k,不能把结点k插到m和n之间形成新链表的程序段是( C )。

A.m.next = p; p->next = head->next; B.(*head).next = p; (*p).next = &n; C.head->next = &k; p->next = head->next; D.m.next = &k; k.next = &n; 51803若有以下定义:

struct node { int data;

struct node *next; }

23

struct node *head,*p; 已建立如下图所示的链表: p ↓

┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head → │data│next┼→│data│next┼→... →│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 能删除指针p所指向结点的程序段是( C )。

A.p = p->next; head->next=p->next; free(p); B.free(p); p = p->next; head->next=p->next; C.head->next = p->next; free(p); D.free(p); head->next = p->next; 51804若有以下定义:

struct node { int data;

struct node *next; } *p,*q;

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

┌──┬──┐ ┌──┬──┐

... p →│data│next┼→│data│NULL│

└──┴──┘ └──┴──┘

┌──┬──┐ q →│data│next│ └──┴──┘

不能将指针q所指结点连到上图所示链表末尾的语句是( D )。

A.q->next=NULL; p=p->next; p->next=q; B.p=p->next; p->next=q; q->next=NULL; C.p=p->next; q->next=p->next; p->next=q; D.q->next=p->next; p=p->next; p->next=q; 51805若有定义:

struct node { int data;

struct node *next; };

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

┌─┬─┐ ┌─┬─┐ ┌─┬─┐ head →│1 │ ┼→│3 │ ┼→ ? →│25│ ┼→NULL └─┴─┘ └─┴─┘ └─┴─┘ 指针head指向链表首结点,以下函数的功能是( B )。 void fun(struct node * head) { struct node * p = head; while(p)

{ printf(\ A.显示并删除单向链表 B.显示单向链表中的第一个结点的数据 C.显示单向链表中的所有数据 D.显示单向链表中除第一个结点外的所有数据 51806若有定义: struct node { int data;

struct node *next;};

24