C语言程序设计精髓 第15周——学会保存你的数据 练兵区——单选题

1单选(1分)

下面的程序执行后,文件test中的内容是

#include 
#include 
void Fun(char *fname,char *st)
{ 
    FILE *myf; int i;
    myf=fopen(fname,"w" );
    if (myf == NULL)
    {
        printf("cannot open the file.\n");
        exit(0);
    }
     
   for(i=0;i<strlen(st); i++)
   {
        fputc(st[i],myf);
   }
    
   fclose(myf);
}
 
int main()
{ 
    Fun("test","new world"); 
    Fun("test","hello");
    return 0;
}

得分/总分

A.
new worldhello

B.
new world

C. hello

1.00/1.00

D.
hello rld

2单选(1分)

有如下程序, 若文本文件f1.txt中原有内容为:good,则运行以下程序后文件f1.txt中的内容为

#include 
int main()
 {
     FILE *fp1;
     fp1=fopen("f1.txt","w");
      
     if (fp1 == NULL)
     {
         printf("cannot open the file.\n");
         exit(0);
     }
     
     fprintf(fp1,"abc");
     fclose(fp1);
     return 0;
 }

得分/总分

A.
good

B.
goodabc

C. abc

1.00/1.00

D.
abcgood

3单选(1分)

下列关于C语言数据文件的叙述中正确的是

得分/总分

A.
文件由ASCII码字符序列组成,C语言只能读写文本文件

B. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

1.00/1.00

C.
文件由二进制数据序列组成,C语言只能读写二进制文件

D.
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

4单选(1分)

以下程序希望把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。出错的原因是

#include 
int main()
{ 
    FILE *fout; char ch;
    fout=fopen('abc.txt','w');
    if (fout == NULL)
    {
        printf("cannot open infile.\n");
        exit(0);
    }
     
    ch=fgetc(stdin);
    while(ch!='#')
    { 
        fputc(ch,fout);
        ch=fgetc(stdin);
    }
     
    fclose(fout);
    return 0;
}

得分/总分

A.
文件指针stdin没有定义

B.
输入文件没有关闭

C. 函数fopen()调用形式错误

1.00/1.00

D.
函数fgetc()调用形式错误

5单选(1分)

设有以下结构类型,并且结构数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下形式错误的是

struct st
{
    char name[8];
    int num;
    float s[4];
} student[50];

得分/总分

A.
fwrite(student, 25 * sizeof(struct st), 2, fp);

B.
fwrite(student, 50 * sizeof(struct st), 1, fp);

C.
fwrite(student, sizeof(struct st), 50, fp);

D. for (i = 0; i < 50; i++) fwrite(student, sizeof(struct st), 1, fp);

1.00/1.00

6单选(1分)

C语言中标准输入文件stdin是指

得分/总分

A. 键盘

1.00/1.00

B.
U盘

C.
硬盘

D.
显示器

7单选(1分)

若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该是

得分/总分

A.
“rb+”

B. “wb+”

1.00/1.00

C.
“ab”

D.
“ab+”

8单选(1分)

在进行文件操作时,写文件的一般含义是

得分/总分

A. 将计算机内存中的信息存入磁盘。

1.00/1.00

B.
将磁盘中的信息存入计算机CPU。

C.
将计算机CPU中的信息存入磁盘。

D.
将磁盘中的信息存入计算机内存。

9单选(1分)

关于文件读写,正确的叙述是

得分/总分

A. 文件用完一定要关闭,否则,可能会引起数据丢失,或者影响其他文件的打开,因为多数情况下,系统限制同时处于打开状态的文件总数。

1.00/1.00

B.
C语言中的文件都是流式文件,只能按顺序读写,不能进行随机读写。

C.
文件一旦按二进制方式打开,无论用fwrite还是fprintf函数写入数字1,最后生成的都是二进制文件,对应的内容都是数值1。

D.
用FILE只能定义指向二进制文件的文件指针。

10单选(1分)

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

得分/总分

A.
以上各种说法都不正确。

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

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

1.00/1.00

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

11单选(1分)

在C语言中,从计算机内存中将数据写入文件中,称为

得分/总分

A. 输出

1.00/1.00

B.
修改

C.
输入

D.
删除

12单选(1分)

以下叙述中错误的是

得分/总分

A.
C语言中随机读写方式不适用于文本文件

B. C语言中顺序读写方式不适用于二进制文件

1.00/1.00

C.
C语言中的文本文件以ASCⅡ码形式存储数据

D.
C语言中对二进制文件的访问速度比文本文件快

13单选(1分)

以下程序执行后输出结果是

#include 
int main()
{ 
    FILE *fp; 
    int i,k=0,n=0;
    fp=fopen("d1.dat","w");
     
    if (fp == NULL)
    {
        printf("cannot open the file.\n");
        exit(0);
    }
     
    for(i=1;i<4;i++) 
    {
        fprintf(fp,"%d",i);
    }
    fclose(fp);
     
    fp=fopen("d1.dat","r");
    if (fp == NULL)
    {
        printf("cannot open infile.\n");
        exit(0);
    }
     
    fscanf(fp,"%d%d",&k,&n); 
    printf("%d %d\n",k,n);
    fclose(fp);
    return 0;
}

得分/总分

A. 123 0

1.00/1.00

B.
1 23

C.
0 0

D.
1 2

14单选(1分)

以下叙述中错误的是

得分/总分

A. 不可以用FILE定义指向二进制文件的文件指针。

1.00/1.00

B.
在程序结束时,应当用fclose()函数关闭已打开的文件。

C.
在利用fread()函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据。

D.
二进制文件打开后可以先读文件的末尾,而顺序文件不可以。

15单选(1分)

若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为

得分/总分

A.
-1

B. 0

1.00/1.00

C.
一个非0值

D.
1

你可能感兴趣的:(C语言程序设计精髓,C语言)