请打开考生文件夹下的解决方案文件proj2,此工程中含有一个源程序文件proj2.cpp。函数char*GetNum(char * src,char * buf)从src开始扫描下一个数字字符序列,并将其作为一个字符串取出放入字符串空间bur中。函数返回扫

admin2020-04-07  62

问题 请打开考生文件夹下的解决方案文件proj2,此工程中含有一个源程序文件proj2.cpp。函数char*GetNum(char * src,char * buf)从src开始扫描下一个数字字符序列,并将其作为一个字符串取出放入字符串空间bur中。函数返回扫描的终止位置,如果返回NULL表示没有扫描到数字字符序列。
  运行程序时,如果输入的一行字符序列是
    ABC012XYZ378MN274WS
则输出为:
    Digit string 1 is 012
    Digit string 2 is 378
    Digit string 3 is 274
    注意:只在横线处编写适当代码,不要删除或移动“//****found****”。
    //proj2.cpp
    #include<iostream>
    using namespace std;
    char,* GetNum(char * src,char *buf)
    {
      while(* src!=’\0’)
      {
        if(isdigit(* src))break;
        src++;
      }
      if(* src==’\0’)
    //********found********
      __________;
      while(* src!=’\0’&& isdigit(*src))
      {
    //********found********
         ________;
         buf++;
         src++;
      }
      *buf=’\0’;
      return src;
    }
    int main()
    {
      char str[100],digits[20];
      cin.getline(str,100);
      char * p=str;
      int i=1;
      while((p=GetNum(p,digits))!=NULL)
      {
        cout<<"Digit string"<<i<<"is"  <<digits<<endl;
    //******** found ********
      ______;
      }
      return 0;
    }

选项

答案(1)return NULL (2)*buf=*src (3)i++

解析 (1)主要考查考生对if语句的掌握,由判断条件if(*src==’\0’),说明字符串src为空,则返回NuLL即可。
    (2)主要考查考生对while循环语句的掌握,while语句的循环条件为木src!:=’\0’&&。isdigit(*src),该条件是指,若字符串src不为空并且*src指向的字符为数字字符,则进行循环。题目要求把数字字符放入字符串buf中,因此为*buf=*src。
    (3)主要考查考生对while循环语句的掌握,从上一行语句cout<<"Digit string"<<i<<"is"<<digits<<endl;中可以得出,题目要求输出的i是递增的,因此这里需添加语句i++。
转载请注明原文地址:https://jikaoti.com/ti/sPA0FFFM
0

最新回复(0)