fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。A)字符串读入后会自动加入'\0'B)fp是指向该文件的文件型指针C)fgets函数将从文件中最多读入n个字符D)fgcts函数将从文件中最多读入n-1个字符

题目

fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。

A)字符串读入后会自动加入'\0'

B)fp是指向该文件的文件型指针

C)fgets函数将从文件中最多读入n个字符

D)fgcts函数将从文件中最多读入n-1个字符


相似考题
更多“fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。A)字符串读入后会自动加入'\0 ”相关问题
  • 第1题:

    给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),并写入文件myfile4.txt中,用-1作为字符串输入结束的标志,然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。

    [注意] 部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    [试题源程序]

    include<stdio.h>

    include<string.h>

    include<stdlib.h>

    void WriteText(FILE *);

    void ReadText(FILE *);

    main()

    {

    FILE *fp;

    if((fp=fopen("myfile4.txt", "W"))==NULL)

    {

    printf("open fail !!\n"); exit(0);

    }

    WriteText(fp);

    fclose(fp);

    if((fp=fopen("myfile4.txt", "r"))==NULL)

    printf("open fail !!1\n"); exit(0);

    }

    ReadText(fp);

    fclose(fp);

    }

    /*********found*********/

    void WriteText(FILE (1) )

    {

    char str[81];

    printf("\nEnter string with -1 to end :\n");

    gets(str);

    while(strcmp(Str, "-1")!=0){

    /**********found*********/

    fputs( (2) , fw);

    fputs("\n", fw);

    gets(str);

    }

    }

    void ReadText(FILE *fr)

    {

    char str[81];

    printf("\nRead file and output to screen :\n");

    fgets(str, 81, fr);

    while( !feof(fr)){

    /**********found**********/

    printf("%s", (3) );

    fgets(str, 81, fr);

    }

    }


    正确答案:[1] fw [2] str [3] str
    [1] fw [2] str [3] str 解析: 填空1:在该函数中,对已有的语句fputs("\n", fw);分析可知:由于文件流变量fw在函数体中没有定义过,故应填*fw或fw[]。
    填空2:要把从键盘上输入的内容写入指定的文件中,键盘上输入的内容已存入字符串str变量中,故应填写str。
    填空3:要把已存入文件中的内容从文件中读出且已存入字符串变量str中,最后在屏幕上显示出来,故应填写str。

  • 第2题:

    从一个数据文件中读入以换行符结束的一行字符串的函数为()。

    A.gets()

    B.fgets()

    C.fgetc()

    D.getc()


    参考答案:B

  • 第3题:

    编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。

    函数ReadWrite()实现从文件in.dat中读取两个字符串并调用函数findStr(),最后把结果输出到文件out.dat中。

    注意:部分程序已经给出。

    请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。

    include <stdio.h>

    include <string.h>

    include <conio.h>

    int findStr(char *str,char *substr)

    {

    }

    main()

    {

    char str[81],substr[3];

    int n;

    clrscr();

    printf("输入原字符串");

    gets(str) ;

    printf("输入子字符串:");

    gets(substr);

    puts(str);

    puts(substr);

    n=findStr(str, substr);

    printf("n=%d\n", n);

    ReadWrite();

    }

    ReadWrite()

    {

    char str[81],substr[3],ch;

    int n, len,i=0;

    FILE *rf, *wf;

    rf=fopen("in.dat", "r");

    wf=fopen("out.dat", "w");

    while(i<25)

    {

    fgets(str, 80, rf);

    fgets(substr, 10, rf);

    len=strlen(substr)-1;

    ch=substr[len];

    if(ch=='\n' || ch==0xla)substr[len]=0;

    n=findStr(str, substr);

    fprintf(wf, "%dkn", n);

    i++;

    }

    fclose(rf);

    fclose(wf);

    }


    正确答案:int findStr(char *strchar *substr) { int n; char *p *r; n=0; while( *str ) { p=str; r=substr; while(*r) if(*r==*p) { r++; p++; } else break; if(*r=='\O') n++; str++; } return n; }
    int findStr(char *str,char *substr) { int n; char *p , *r; n=0; while( *str ) { p=str; r=substr; while(*r) if(*r==*p) { r++; p++; } else break; if(*r=='\O') n++; str++; } return n; } 解析:该程序属于按条件查找类型的题目,考核的知识点为:
    (1)在给定的字符串中查找指定字符;
    (2)统计查找后满足条件的个数。
    本题的解题思路是:对原字符串中的字符进行扫描,若原字符串中含有子字符串,即原字符串的其中一部分与子字符串完全相同时,统计出个数。判断原字符串是否含有子字符串,可以将原字符串中的元素逐个与子字符串相比较,当两字符串中各个元素都相同且子字符串结束时,则证明原字符串包含一个子字符串。在统计个数的时候需要设置一个记录变量,每当原字符串包含子字符串一次的时候,该记录变量自动加1。
    程序的流程是:首先通过键盘接收两个字符串,其中一个作为原字符串,另一个作为子字符串,然后调用findStr()函数对两字符串进行比较,处理后的结果由ReadWrite()函数写回文件out.dat中。
    答案解析如下:
    int findStr(char *str,char *substr)
    {
    int n;/*定义变量,n代表子符串出现次数*/
    char p,r;/*定义指针变量*/
    n=0;
    while(str)
    /*当原字符串不为空,即*str不为空时进入到外层while,此时循环中原字符串指针str和子字符串指针substr都指向其字符串内的第一个元素*/
    {
    p=str;/*将字符串的指针str赋给p*/
    r=substr;/*将字符串的指针substr赋给r*/
    while(*r)/*当子字符串也不为空时,即*r不空时进入内嵌的while循环*/
    if(*r==*p)/*将原字符串与子字符串逐个元素进行比较看是否相等*/
    {
    r++;
    p++;
    }
    /*将原字符串与子字符串分别后移一个字符*/
    else
    break;/*否则结束循环*/
    if(*r=='\0')/*结束while循环的情况有两种:(1)比较完毕,即原字符串中包含该子字符串,此时子字符串的指针指向串尾(为“\0”);(2)未比较完毕,此时子字符串的指针不指向串尾。if语句的功能是通过判断子字符串的指针是否指向串尾进而来判断内层while循环结束的原因*/
    n++;/*出现的次数加1*/
    str++;/*牟字符串指针也指向下一个字符*/
    }
    return n;/*返回出现的次数*/
    }

  • 第4题:

    编写一个函数findStr(),该函数统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为“as”,函数返回值是6。

    函数ReadWrite()的功能是实现从文件in40.dat中读取两个字符串,并调用函数findstr(),最后把结果输出到文件out40.dat中。

    注意:部分源程序已给出。

    请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你所编写的若干语句。

    include<stdio.h>

    include<string.h>

    include<conio.h>

    int findStr(char *str,char *substr)

    {

    main ( )

    {

    char str[81],substr[3];

    int n;

    clrscr();

    printf("输入原字符串: ");

    gets(str);

    printf ("输入子字符串: ");

    gets(substr);

    puts(str);

    puts(substr);

    n=findStr(str,substr);

    printf("n=%dkn",n);

    ReadWrite();

    }

    ReadWrite()

    {

    char ch, str[81],substr[3];

    int n,len, i=0;

    FILE *rf,*wf;

    rf=fopen("in40.dat","r");

    wf=fopen("out40.dat","w");

    while(i<5)

    {

    fgets(str,80,rf);

    fgets(substr,10,rf);

    len=strlen(substr)-1;

    ch=substr[len];

    if(ch=='\n'||ch==Oxla)

    substr[len]=0;

    n=findStr(str,substr);

    fprintf(wf,"%dln",n);

    i++;

    }

    fclose(rf);

    fclose(wf);

    }


    正确答案:int findStr(char *strchar*substr) {int n; char *p*r; n=0; while(*str) { p=str; /*指针p指向字符串首地址*/ r=substr; /*指针r指向子字符串首地址*/ while(*r) if(*r==*p) /*如果子字符串的第一个字符等于字符串中的该字符则继续比较下一个字符*/ { r++; p++; } else break; /*否则退出循环*/ if(*r=='\0') /*如果子字符串在字符串中出现了一次*/ n++; /*则n加1进行统计*/ str++; /*指向字符串中的下一个字符*/ } return n; /*返回n*/ }
    int findStr(char *str,char*substr) {int n; char *p,*r; n=0; while(*str) { p=str; /*指针p指向字符串首地址*/ r=substr; /*指针r指向子字符串首地址*/ while(*r) if(*r==*p) /*如果子字符串的第一个字符等于字符串中的该字符,则继续比较下一个字符*/ { r++; p++; } else break; /*否则退出循环*/ if(*r=='\0') /*如果子字符串在字符串中出现了一次*/ n++; /*则n加1,进行统计*/ str++; /*指向字符串中的下一个字符*/ } return n; /*返回n*/ } 解析:本题考查的知识点如下:
    (1)指针的相关操作。
    (2)强行退出———break的使用。
    指针是C语言中的一个难点。在这里,我们要使用指针实现对数组的访问继而进行字符韵比较。使用数组存放字符串时,存放的字符个数要比数组的容量小1,因为数组最后一个位置存放的是空格或者结束标志位。我们可利用这一点来判断一个字符串是否已经结束。在循环结构中常常要出现强行退出的情况,这里要使用到bleak语句强行退出一层循环。当字符串中的某个字符与子字符串的第一个字符不同时,则将字符串中的下一个字符与子字符串中的第一个字符比较,而不是与子字符串中的第二个字符比较。

  • 第5题:

    fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是 ( )

    A.字符串读入后不会自动加入'\0'

    B.fp是file类型的指针

    C.fgets函数从文件中最多读入n-1个字符

    D.fgets函数从文件中最多读入n个字符


    正确答案:C

  • 第6题:

    C语言库函数fgets(str,n,fg)的功能是_______。

    A.从中指向的文件中读取长度n的字符串存入str指向的内存

    B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

    C.从fp指向的文件中读取n个字符串存入str指向的内存

    D.从sb读取至多n个字符到文件fp


    正确答案:B
    解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加一个‘\0’字符,因此得到的字符串共有n个字符。

  • 第7题:

    C语言库函数fgets(str,n,fp)功能是______。

    A.从中指向的文件中读取长度n的字符串存入int指向的内存

    B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

    C.从fp指向的文件中读到n个字符串存入str指向的内存

    D.从str读取至多n个字符到文件fp


    正确答案:B
    解析:fgets函数的作用是从指定的文件读入—个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加—个“\0”字符,因此得到的字符串共有n个字符。

  • 第8题:

    fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。

    A.字符串读入后会自动加入'\0'

    B.fp是指向该文件的文件型指针

    C.fgets函数将从文件中最多读入n个字符

    D.fgets函数将从文件中最多读入n-1个字符


    正确答案:C
    解析:字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。s可以是一个字符数组名,或是指向字符串的指针;n为要读取的最多的字符个数:fp是指向该文件的文件型指针。字符串输入函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串存放到字符数组s中。

  • 第9题:

    C语言库函数fgets (str,n,fp)的功能是______。

    A.从中指向的文件中读取长度n的字符串存入str指向的内存

    B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

    C.从fp指向的文件中读取n个字符串存入str指向的内存

    D.从str读取至多n个字符到文件fp


    正确答案:B
    解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp)冲的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加一个'\0'字符,因此得到的字符串共有n个字符。

  • 第10题:

    阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    函数removeDuplicates(chai *str)的功能是移除给定字符串中的重复字符,使每种字符仅保留一个,其方法是:对原字符串逐个字符进行扫描,遇到重复出现的字符时,设置标志,并将其后的非重复字符前移。例如,若str指向的字符串为"aaabbbbscbsss",则函数运行后该字符串为"absc"。

    [C代码] voidremoveDuplicates(char *str) { inti,len=strlen(str); /*求字符串长度*/ if(______)return; /*空串或长度为1的字符串无需处理*/ for(i=0;i<len;i++){ int flag=0; /*字符是否重复标志*/ int m; for(m=______; m<len;m++){ if(Str[i]==str[m]){ ______; break; } } if (flag) { int n,idx=m; /*将字符串第idx字符之后、与str[i]不同的字符向前移*/ for(n=idx+1; n<len; n++) if(Str[n]!=str[i]){ str[idx]=str[n];______; } str[______]='\0'; /*设置字符串结束标志*/ } } }


    答案:
    解析:
    len<2 或len<=1 或等价表示
    i+1 或等价表示
    flag=1 或给flag赋值为任何一个不是0的值
    idx++ 或idx=idx+1 或等价表示
    idx 或等价表示

  • 第11题:

    C语言标准库函数""fgets(string,n,fp)""的功能是()。

    • A、从文件fp中读取长度为n的字符串存入指针string指向的内存
    • B、从文件fp中读取长度为n-1的字符串存入指针string指向的内存
    • C、从文件fp中读取n个字符串存入指针string指向的内存
    • D、从文件fp中读取长度不超过长度为n-1的字符串存入指针string指向的内存

    正确答案:D

  • 第12题:

    单选题
    C语言标准库函数""fgets(string,n,fp)""的功能是()。
    A

    从文件fp中读取长度为n的字符串存入指针string指向的内存

    B

    从文件fp中读取长度为n-1的字符串存入指针string指向的内存

    C

    从文件fp中读取n个字符串存入指针string指向的内存

    D

    从文件fp中读取长度不超过长度为n-1的字符串存入指针string指向的内存


    正确答案: C
    解析: 暂无解析

  • 第13题:

    请补充函数fun(),该函数的功能是:把ASCII码为奇数的字符从字符串str中删除,结果仍然保存在字符串str中。字符串str从键盘输入,其长度作为参数传入函数fun()。

    例如,输入“abcdef”,输出“bdf”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio.h>

    define N 80

    void fun(char s[],int n)

    {

    int i, j;

    j=0;

    for(i=0;【 】;i++)

    {

    if(【 】)

    s [j++]-s [i];

    }

    【 】;

    }

    main ( )

    {

    int i=0, strlen=0;

    char str [N];

    clrscr ();

    printf ("\nInput a string: \n");

    gets (str);

    while (str [i] !='\0')

    {

    strlen++;

    i++;

    }

    fun(str, strlen);

    printf("\n*** display string ***\n");

    puts (str);

    }


    正确答案:in s[i]%2=0 s[j]= '\0'
    in s[i]%2=0 s[j]= '\0' 解析:第一空:变量n为字符串的长度,所以字符数组的下标的取值范甲是从0到n-1。第二空:如果当前字符的ASCII码对2取余等于0,就说明这个字符的ASCII码为偶数,故不能删除,而是将它存于字符串s中。第三空:通过保留ASCII码为偶数的字符的力法,来实现删除ASCII码为奇数的字符的目的。处理结束后,还要在字符串s的最后加上结束标记符'\0'。

  • 第14题:

    阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。

    【函数1.1说明】

    本程序可以打印出如下图形(菱形):

    *

    ***

    *****

    *******

    *****

    ***

    *

    【函数2.1】

    main()

    {

    int i,j,k;

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

    {

    for(j=0;j<=2-i;j++)

    printf(" ");

    for((1))

    printf("*");

    printf("\n");

    }

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

    {

    for((2))

    printf(" ");

    for(k=0;k<=4-2*i;k++)

    printf("*");

    printf("\n");

    }

    }

    【函数2.2说明】

    通过本程序,可以从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“CsaiWgm”中保存,输入的字符串以“!”结束。

    【函数2.2】

    include "stdio.h"

    main()

    {

    FILE *fp;

    char str[100],filename[10];

    int i=0;

    if((fp=fopen("CsaiWgm","w"))==NULL)

    {

    printf("cannot open the file\n");

    exit(0);

    }

    printf("please input a string:\n");

    gets(str);

    while((3))

    {

    if(str[i]>='a'&&str[i]<='z')

    str[i]=(4);

    fputc(str[i],fp);

    (5);

    }

    fclose(fp);

    fp=fopen("CsaiWgm","r");

    fgets(str,stden(str)+1,fp);

    printf("%s\n",str);

    fclose(fp);

    }


    正确答案:(1)k=0;k=2*i;k++ (2)j=0;j=i;j++ (3)str[i]!='!' (4)str[i]-32 (5)i++
    (1)k=0;k=2*i;k++ (2)j=0;j=i;j++ (3)str[i]!='!' (4)str[i]-32 (5)i++ 解析:本题考查用C语言实现菱形的输出与大小写字母的转换。
    在函数2.1中,题目要求实现对菱形的输出,从图中可以看出每行的“*”字符个数为(2×行号-1),最长的一行其长度为8个“*”字符,最短的一行是1个“*”字符,从最短到最长一共是4行。下面来[分析]代码。
    第(1)空是第二重循环的循环条件,从程序中可以推断出这个循环的作用是用来输出一行的“*”字符,根据上面的[分析],每行的“*”字符个数为(2×行号-1)可以得到循环的上界,再结合程序可以知道此空用的变量是k,而每行的行号存放在变量i中,因此,此空答案为k=0;k=2*i;k++。
    第(2)空在第二个二重循环下面,这个二重循环用来输出图形中下半部分,此空是循环的条件。由于菱形具有对称性,我们可以对照程序上面相应的循环中的条件,很容易就可以得到结果,此空答案为j=0;j=i;j++。
    在函数2.2中,题目要求从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件CsaiWgm中保存。此题的关键在于如何将小写字母变成大写字母。
    第(3)空是循环的循环条件,从程序中可以推断出这个循环的作用是用来将字符串的小写字母全部转换成大写字母,那么可以知道循环的条件是只要取到的字符不为结束字符“!”,循环就继续,因此,此空答案为str[i]!='!'。
    第(4)空是条件判断语句下面的语句,根据程序给出的代码不难发现,如果此条件判断语句结果为真,说明当前取到的字符是小写字母,那么应该将其转换为大写字母,因此,此空答案为str[i]-32。
    第(5)空是循环的最后一条语句,从程序中不难发现,循环对字符串的位置没有移动,那么此空应该用来实现对字符串位置的往后移动。而记录当前字符串位置的是变量i,因此,此空答案为i++。

  • 第15题:

    下列叙述中错误的是( )。

    A.gets函数用于从终端读入字符串

    B.getchar函数用于从磁盘文件读入字符

    C.fputs函数用于把字符串输出到文件

    D.fwrite函数用于以二进制形式输出数据到文件


    正确答案:B
    B。【解析】本题考查的是c语言中输入、输出函数的使用,gets和getchar函数用于从标准输入设备键盘读入字符串和字符;fputs用于把字符串输出到文件;fwrite用于以二进制形式输出数据到文件。

  • 第16题:

    阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

    【程序】

    include < stdio. h >

    main( )

    { FILE * fp;

    char str[100]; int i=0;

    if((fp=fopen("text.txt"(1))) ==NULL)

    { printf("can't open this file. \n") ;exit(0) ;}

    printf(" input astring: \n" ); gest(str);

    while( str[i] )

    { if(str[i] >='a' && str[i] <='z')

    str[i]=(2);

    fputc(str[i],(3));

    i++;

    }

    fclose(fp);

    fp=fopen(" test.txt",(4));

    fgets(str, 100, fp);

    printf("%s\n" ,str);

    (5);

    }


    正确答案:(1)W (2)str[i]-'a'+'A' (3)fp (4)r (5)fclose(fp)
    (1)W (2)str[i]-'a'+'A' (3)fp (4)r (5)fclose(fp) 解析:程序运行后,首先打开文件test.txt用于写入,因此(1)空填w。
    程序从键盘读入字符串到变量str中,对str中每个字符,如是小写字母,则将其转换成大写字母。(2)空是小写字母转换大写字母的操作。(3)空是将str中的字符写入文件text.txt中。
    str中所有字符处理完后,关闭文件test.txt(对应语句是fclose (fp)),然后重新以读方式打开,因此(4)空填r,将test.txt中的内容读到str中并显示输出后,关闭文件test.txt,即(5)空填fclose(fp)。

  • 第17题:

    C语言库函数fgets(str,n,fp)的功能是 ______。

    A.从fp指向的文件中读取长度n的字符串存入str旨向的内存

    B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

    C.从fb指向的文件中读取n个字符串存入str指向的内存

    D.从str读取至多n个字符到文fp


    正确答案:B
    解析:fgets函数的作用是从指定的文件读入—个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从中指向的文件输入n-1个字符,然后在最后加—个'\0'字符,因此得到的字符串共有n个字符。

  • 第18题:

    以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}


    正确答案:p+n
    在本题中,函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址。
    在本题的程序中,fun函数带有两个形参,其中一个是指针str,它指向字符串的首地址,另一个是字符变量c。程序首先定义了一个整型变量n,从程序中可知,它是字符串str中参数c相对于首地址的偏移量,然后定义了一个指针变量p,指向字符串str的首地址,然后执行条件语句,如果字符串不为空,则执行循环语句,循环结束的条件是要么字符串结束,要么找到形参c中对应的字符。根据循环结束的条件我们可以判断,其非死循环,循环结束后,从程序中可以看出,判断循环结束的原因是否因为字符串结束而结束的,如果是,说明没找到形参c中对应的字符,返回NULL。
    如果不是,则说明是因为找到了形参c中对应的字符而结束循环的。根据题目要求,需要返回以形参c中字符开头的后续字符串的首地址,而这时以形参c中字符开头的后续字符串的首地址为p+n。

  • 第19题:

    标准库函数fgets(s,n,file)的功能是( )。A.从文件file中读取长度为n的字符串存入字符数s由 SXB

    标准库函数fgets(s,n,file)的功能是( )。

    A.从文件file中读取长度为n的字符串存入字符数s由

    B.从文件file中读取长度不超过n-1个字符的字符放到字符数组S中

    C.从文件file中读到n个字符串存入字符数组s中

    D.从文件file中读取长度为n-1个字符的字符串存字符数组S中


    正确答案:B
    本题考查fgets函数的使用调用形式:fgets(s,n,fp)。fgets函数参数说明:“S”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组S中,读入字符串后会自动在字符串末尾加入"\0"结束符,表示字符串结束。

  • 第20题:

    标准库函数fgets(s,n,file)的功能是( )。A.从文件file中读取长度为n的字符串存入字符数组S由S

    标准库函数fgets(s,n,file)的功能是( )。

    A.从文件file中读取长度为n的字符串存入字符数组S由

    B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组S中

    C.从文件file中读到n个字符串存入字符数组s中

    D.从文件file中读取长度为n-1个字符的字符串存人字符数组s中


    正确答案:B
    本题考查fgets()函数的使用调用形式:fgets(S,n,fp)。fgets函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组s中,读入字符串后会自动在字符串末尾加入″\0″结束符。表示字符串结束。

  • 第21题:

    C语言库函数fgets(str,n,fp)的功能是______。

    A.从fp指向的文件中读取长度n的字符串存入str指向的内存

    B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

    C.从fp指向的文件中读取n个字符串存入str指向的内存

    D.从str读取至多n个字符到文件fp


    正确答案:B
    解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加—个'\0'字符,因此得到的字符串共有n个字符。

  • 第22题:

    从一个数据文件中读入以换行符结束的一行字符串的函数为()。

    Agets()

    Bfgets()

    Cgetc()

    Dfgetc()


    B

  • 第23题:

    单选题
    以下不能将键盘输入的字符串:This is a string<回车>读入到str中的程序段是(  )。

    正确答案: A
    解析:
    在使用scanf函数时,在输入数据时,遇到空格,或按“回车”键或按“跳格”(Tab)键时该数据认为结束。A项中输入This后有一个空格,认为数据输入结束,以后的数据不能再读入到str中。B项用getchar读人字符,键盘输入的所有字符均被认为是有效字符读入,用while循环控制读入,当读入字符为回车时结束读入,字符串被正确的读入到str中。C项用gets函数读入字符串,它读入键盘输入的所有字符,遇到回车自动结束读入,所以也能正确读入字符串到str中。D项用do…while和指针循环控制字符输入,依次判断输入字符是否为回车符,若不是回车符则放人字符数组中,直到读入回车符,结束循环,数组str中正确存放人指定的字符串。答案选择A选项。