【PTA选择题/基础夯实/期末复习】链表&&文件操作

2-1

对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。

A.head==NULL

B.head→next==NULL

C.head→next==head

D.head!=NULL

2-2

链表不具有的特点是()。

A.可随机访问任一元素

B.插入、删除不需要移动元素

C.不必事先估计存储空间

D.所需空间与线性表长度成正比

2-3

结构说明和变量定义如下图所示, 指针p、q、r分别指向一个链表中的3个连续
结点。现要将q和r所指结点的先后位置交换, 同时要保持链表的连续, 以下错误的程序段是()。

1.png

struct node
{ int data;
struct node *next;} *p, *q, *r;

A.r->next =q; q->next =r->next; p->next =r;

B.q->next = r->next; p->next =r; r->next=q;

C.p->next=r; q->next=r->next; r->next = q;

D.q->next=r->next; r->next=q; p->next = r;

2-4

程序中已构成如下图所示的单向链表结构, 指针变量s、p、q均已正确定义, 并用于指向链表结点, 指针变量s总是作为头指针指向链表的第一个结点。

2.png

若有下列程序段:
q=s; s=s->next; p=s;
while(p->next) p=p->next;
p->next =q; q->next = NULL;
该程序段实现的功能是()。

A.首结点成为尾结点

B.尾结点成为首结点

C.删除首结点

D.删除尾结点

2-5

为了构建单链表,以下结构体类型定义正确的是:

A.

struct aa
{
    int a;
    struct aa *pa;
};

B.

struct bb
{
   int b;
   int *pb;
};

C.

struct cc
{
   int c;
   cc *pc;
};

D.

struct dd
{
   int *pd;
   int d;
};

2-6

如果二进制文件a.dat已经存在,现在要求写入全新数据,应以()方式打开。

A."w"

B."wb"

C."w+"

D."wb+"

2-7

若以“a+”方式打开一个已存在的文件。则以下叙述正确的是()。

A.文件打开时, 原有文件内容不被删除, 位置指针移到文件末尾, 可做添加和读操作

B.文件打开时, 原有文件内容不被删除, 位置指针移到文件开头, 可做重写和读操作

C.文件打开时, 原有文件内容被删除, 只可做写操作

D.以上各种说法都不正确

2-8

FILE *fp;
int x=32;
fp=fopen("my.txt","wb");
fwrite(&x,4,1,fp);
fclose(fp);

下面说法正确的是( )

A.my.txt保存的文件为文本文件,能够直接打开查看,文件内容为32。

B.fwrite是写文件,因此不用加&

C.my.txt虽然是文件文件,但内容是以二进制形式存储,不能直接打开查看。

D.fwrite是用于二进制的写操作,因为存储为txt文本文件,因此会转换成文本"32",作为文本文件存储。

2-9

有一个文本文件in.txt,其内容为"Thanks a lot."(不含双引号),以下程序段的运行结果为_____。

    FILE *fp;
    char str[80] ;

    if ( (fp = fopen("in.txt", "r"))!=NULL )
        fgets( str,6,fp );
    puts( str );


A.Thanks

B.Thanks a lot.

C.Thank

D.Thanks a lot

2-10

下列语句中,把变量fp定义为一个文件指针的是__________。

A.FILE *fp;

B.FILE fp;

C.file *fp;

D.file fp;

你可能感兴趣的:(PTA,链表,数据结构,算法,c语言)