itgle.com

编写一个函数int charnum(char fn[10]),该函数以只读方式打开文件fn,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。注意:部分源程序已存在文件test7_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。文件test7_2.cpp的内容如下:include<iostream.h>include<fstream.h>include<stdlib.h>int charnum(char fn[10]);void m

题目

编写一个函数int charnum(char fn[10]),该函数以只读方式打开文件fn,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。

注意:部分源程序已存在文件test7_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。

文件test7_2.cpp的内容如下:

include<iostream.h>

include<fstream.h>

include<stdlib.h>

int charnum(char fn[10]);

void main()

{

int num;

num=charnum("abc.txt");

cout<<"num="<<num<<endl;

}

int charnum(char fn[10])

{

}


相似考题
更多“编写一个函数int charnum(char fn[10]),该函数以只读方式打开文件fn,通过统计,返回文件中字符的 ”相关问题
  • 第1题:

    请编写一个函数fun(),该函数的功能是:返回给定字符串中大写字母字符的个数。

    如字符串"Hello World"中,大写字母的个数为2个。

    注意:部分源程序已存在文件PROC5.CPP中。

    请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。

    文件PROC5.cpp的内容如下:

    //PROC5.cpp

    include<iostream>

    include<string>

    using namespace std;

    int fun(char *str);

    int main()

    {

    char str[ ]="Chinese Computer World";

    cout<<fun(str)<<end;

    return 0;

    }

    int fun(char *str)

    {

    //**********

    }


    正确答案:下面是函数fun()函数体的一种实现: int fun(char *str) { int num=0; //用于记录大写字母符的个数初始值为0。 while(*str!='\0') //若是大写字母则总数加1。 { if(*str>='A'&&*str='Z') num++; str++; } return num; }
    下面是函数fun()函数体的一种实现: int fun(char *str) { int num=0; //用于记录大写字母符的个数,初始值为0。 while(*str!='\0') //若是大写字母,则总数加1。 { if(*str>='A'&&*str='Z') num++; str++; } return num; } 解析:本题要求编写函数fun()的函数体,完成的功能是返回给定字符串中大写字母字符的个数。从给出的函数首部可知,函数体可用字符指针和循环体的方式来实现。

  • 第2题:

    有以下程序includevoid WriteStr(char*fn,char*str){FILE*fp; fp=fopen(fn,"w");fputs

    有以下程序 #include<stdio.h> void WriteStr(char*fn,char*str) { FILE*fp; fp=fopen(fn,"w");fputs(str,fp);fclose(fp); } main() { writeStr("t1.dat","start"); WriteStr("t1.dat","end"); } 程序运行后,文件t1.dat中的内容是

    A.start

    B.end

    C.startend

    D.endrt


    正确答案:B
    解析:使用fputs函数输出字符串到文件时,将覆盖原文件中的内容。

  • 第3题:

    编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asd as zx67 asdmklo”,子字符串为”as”,函数返回值是6。 函数ReadWrite实现从文件in.dat中读取两个字符串,并调用函数findStr,最后把结果输出到文件out.dat中。 注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数findStr的花括号中 填入你编写的若干语句。


    正确答案:
    【审题关键句】统计一个长度为2的子字符串在另一个字符串中出现的次数。
    【解题思路】
    ①定义字符指针p,q,并且q指向字符串str。定义计数整型变量cnt,设置其值等于0。
    ②在while循环中调用C语言的字符串库函数strstr,返回子字符串substr在字符串q第一次出现的位置,赋给变量P。用if语句判断,如果p的值为空,则说明在字符串str没有找到子字符串,退出循环。否则,变量cnt加1,再把P的值加2(因为子字符串substr的长度为2)赋给变量q,执行下一次循环。直到字符串中不存在子字符串时,退出循环结束。
    ③最后,返回子字符串substr在字符串str中出现的次数。
    【参考答案】

  • 第4题:

    请编写一个函数char MaxCharacmr(char *str),该函数返回参数str所指向的字符串中具有最大ASCII码的那个字符(如字符串“world”中字符‘w’具有最大的ASCII码)。当str所指向的字符串为空时,则返回空字符0x0或‘\0’。

    输出结果如下:

    Good Morning!

    Max char:r

    注意:部分源程序已存在文件test15_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数MaxCharacter的花括号中填写若干语句。

    文件test15_2.cpp的内容如下:

    include<iostream.h>

    include<string.h>

    char MaxCharacter(char *str);

    void main()

    {

    char str[100];

    strcpy(str,"Good Morning!");

    char maxc=MaxCharacter(str);

    cout<<str<<endl;

    cout<<"Max char:"<<maxc<<endl;

    }

    char MaxCharacter(char*str)

    {

    }


    正确答案:char MaxCharacter (char *str) { if(str==NULL) return 0x0; char maxChar=0x0; int len=strlen(str); for(int i=0;ilen;i++) { if(str[i]>maxChar) maxChar=str[i]; } return maxChar; }
    char MaxCharacter (char *str) { if(str==NULL) return 0x0; char maxChar=0x0; int len=strlen(str); for(int i=0;ilen;i++) { if(str[i]>maxChar) maxChar=str[i]; } return maxChar; } 解析:本题考查的是考生应用for和if等基本控制语句解决实际问题的能力。注意字符的大小可以直接比较,实际上比较的就是字符的ASCII码的值。

  • 第5题:

    有以下程序:include<stdio.1l>void WriteStr(char*fn.char*str){ FILE*fp;fp=fopen(fn,&q

    有以下程序:

    #include<stdio.1l>

    void WriteStr(char*fn.char*str)

    { FILE*fp;

    fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

    main

    { WriteStr("tl.dat","start");

    WriteStr("t1.dat","end");)

    程序运行后,文件t1.dat中的内容是( )。

    A. start

    B.end

    C.startend

    D.endrt


    正确答案:B
    用"w"方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一次的内容,B选项正确。