77范文网 - 专业文章范例文档资料分享平台

!!最新2009年12月C语言选择题(7)

来源:网络收集 时间:2019-04-14 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C.num、sex、age都是结构变量teacher1的成员 D.teacher1是结构类型名 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之间形成新链表的程序段是( )。

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;

31

}

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;

32

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

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

printf(\ if(!p) break; } }

/*这里原为p, 应显示单向链表中第二个结点的数据,无答案; 我改为!p后,答案D*/

A.显示单向链表中第一个结点的数据 B.显示单向链表中最后一个结点的数据 C.显示单向链表中的所有数据 D.显示单向链表中除第一个结点外的所有数据

51807若按如下定义,则函数link的功能是( C )。其中head指向链表首结点,整个链表结构如下图:

┌──┬─┐ ┌──┬─┐ ┌──┬──┐ head →│data│ ┼→│data│ ┼ → ?→│data│NULL│ └──┴─┘ └──┴─┘ └──┴──┘

struct node {int data;

struct node *next; };

int link(struct node* head) {int k=1;

struct node *p=head; while(p!=NULL)

{p=p->next; k++; } return k-1; }

A.删除链表head中的一个结点 B.插入一个新元素到链表head中 C.统计链表head中结点的个数 D.创建新链表head

51808 若按如下定义,函数link的功能是( B )。其中head指向链表首结点,整个链表结构如下图:

┌──┬─┐ ┌──┬─┐ ┌──┬──┐ head →│data│ ┼→│data│ ┼→? → │data│NULL│ └──┴─┘ └──┴─┘ └──┴──┘ struct node {int data;

struct node *next; }; void link(struct node* head) {struct node *p=head; while(p!=NULL)

33

{ if(p->data%2==1) printf(\ p=p->next; } }

A.计算链表head中结点的个数 B.遍历链表head,输出表中值为奇数的元素 C.删除链表head中的所有结点 D.插入一个新元素到链表head中 51809以下程序的输出结果是( B )。 #include #include typedef struct node {int data;

struct node *next; }Node;

Node list[4]={{4,&list[1]},{3,&list[2]},{2,&list[3]},{1,0}}; void output(Node *head) { Node *p=head; while(p!=NULL)

{ printf(\ p=p->next; } }

void main() {output(list); }

A.1 2 3 4 B.4 3 2 1 C.3 2 1 4 D.2 1 3 4 51810 若按以下定义: struct node { int data;

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

并已建立如下图所示的链表结构,指针p和q分别指向图中所示结点: ┌──┬──┐ ┌──┬──┐ ┌──┬──┐... p→│data│next┼→│data│NULL│ q→ │data│next│ └──┴──┘ └──┴──┘ └──┴──┘ 则可以将指针q所指的结点连接到链表末尾的程序段是( A )。

A.q->next=NULL; p=p->next; p->next=q; B.q->next=p->next; p=p->next; p->next=q; C.p=p->next; q->next=p; p->next=q; D.(*q).next=(*p).next; p=(*p).next; (*p).next=q; 51811 若有定义: struct node { int data;

struct node *next; };

float link(struct node *head) {int m=0,n=0; struct node *p=head;

while(p!=NULL) {m+=p->data;

34

n++; p=p->next; }

if(n>0) return 1.0*m/n; else return 0 }

调用link函数时head是指向链表首结点的指针,整个链表结构如下图: ┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head →│data│next┼→│data│next┼→...─→│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 则函数link()的功能是( B )。

A.统计链表head中结点的个数 B.遍历链表head,计算表中各结点成员data的平均值 C.遍历链表head,计算表中各结点成员data的总和 D.创建一个新链表head 51812 若有以下定义: struct node { int data;

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

指针p、t和q分别指向图中所示结点: p t q ↓ ↓ ↓

┌──┬──┐ ┌──┬──┐ ┌──┬──┐ │data│next┼→│data│next┼→│data│next┼→...

现要将t和q所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是( C ) A.t->next=q->next;p->next=q;q->next=t; B.p->next=q;t->next=q->next;q->next=t; C.q->next=t;t->next=q->next;p->next=q; D.t->next=q->next;q->next=t;p->next=q; 题号:51813 下列程序段运行后,表达式( B )的值为3。 struct point{ int x; int y;} *p; struct point a[3]={1,2,3,4,5,6};p=a; A.*(p+2) B.p[1].x C.p[2].x D.p[3].x

题号:51814 若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; , 则( D )表达式是错误的。 A.a[2] B.p++ C.p[2] D.a++

题号:51815 下列程序段运行后,( C )对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3)int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p = a; A.*(*(a+i)+j) B.p[i][j] C.*(*(p+i)[j]) D.*(p[i]+j)

题号:51816 若有定义:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a; , ( A )对数组a元素的引用是正确的。

A.*(p[2]+3) B.**(p+4) C.*(p[4]) D.(**p)[2] 题号:51817 ( B )能正确定义一个指向函数的指针。 A.int *p() B.int (*p)() C.(int *)p() D.int (*p()) 题号:51818 以下程序的运行结果是( A )。 main()

{ int a[3]={1,2,3}; int *num[3]; int **p,i;

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

35

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库!!最新2009年12月C语言选择题(7)在线全文阅读。

!!最新2009年12月C语言选择题(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/593070.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: