更多“substr(“123456789”,len(“fox”),le”相关问题
  • 第1题:

    编写一个函数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;/*返回出现的次数*/
    }

  • 第2题:

    执行下列命令后,输出的结果是 ______。 X=“ABCD” Y=“EFG” ?SUBSTR(X,IIF(X<>Y,LES(Y),LEN(X)),LEN(X)-LEN(Y))

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    解析:函数SUBSTR()中的两个函数表达式的运算如下;
      IIF(X>Y,LEN(Y),LENn(X))→IIF(X>Y,3,4)→3
      LEN(X)-LEN(Y)→4-3→1
      于是,函数“SUBSTR(X,IIF(X>Y,LEN(Y),LEN(X)),LEN(X)-LEN(Y))”的运算变为SUBSTR (X,3,1)。其运算目的是:在变量X的字符串中的第3个字符位置上取出1个字符。命令?的输出结果是字符“C”。

  • 第3题:

    下列程序的运行结果是【 】。

    x="计算机等级考试"

    Y=""

    L=LEN(X)

    DO WHILE L>=1

    Y=Y+SUBSTR(X,L-1,2)

    L=L-2

    ENDDO

    ?Y


    正确答案:试考级等机算计
    试考级等机算计 解析:该程序中关键的语句是Y=Y+SUB- STR(X,L-1,2),其中函数SUBSTR的作用是每次循环时,从字符串X中提取一个汉字,每次取出的结果连到字符串Y之后,由于取㈩的顺序是从右到左,因此该语句的功能是将原字符串反序显示。

  • 第4题:

    函数SUBSTR("ABCDEFGHIJ",LEN("1234"),4)返回的值是______。

    A.DEFG

    B.ABCD

    C.EFGH

    D.GHU


    正确答案:A

  • 第5题:

    执行以下程序,显示的结果是。

    a=”foxpro”

    b=””

    i=LEN(a)

    DO WHILE i>=l

    b=b+SUBSTR(a,i,1)

    i=i-1

    ENDD0

    7b


    正确答案:
    orpxof
    【解析】先将a和b分别赋值,变量i使用LEN函数取得字符串变量a的长度,该变量包含6个字母,所以它的长度为6,即i=6;接着使用一个DO WHILE循环语句来操作,判断条件是变量i是否大于等于1,如果小于1,则退出循环,否则执行循环体,此时SUBSTR(”foxpro”,6,1)的值为“o”(从“foxpro”字符串的第6位开始取一位字符);执行i=i-1后,i=5,第一次循环结束;重复此循环体的操作,变量b的值依次为o、or、orp、orpx、orpxo、orpxof,
    最后i<1,退出循环体。SUBSTR(<字符表达式>,<起始位置>【,(长度>】)从指定表达式值
    的指定起始位置取指定长度的子串作为函数值,若缺省第3个参数<长度>,则函数从指定位置一直取到最后一个字符。

  • 第6题:

    表达式?VAL(SUBSTR("古老的故事",2))*LEN("VisualFoxPro")的结果是().

    • A、21
    • B、20
    • C、0
    • D、19

    正确答案:C

  • 第7题:

    命令LEFT("123456789",LEN("计算机"))的结果是()。


    正确答案:”123456”

  • 第8题:

    执行命令:?SUBSTR(""数据库管理系统"",7,LEN(""管理""-""系统""))结果是()

    • A、统
    • B、系统
    • C、管理系统
    • D、管理

    正确答案:C

  • 第9题:

    下列函数中,返回值为字符型的有()

    • A、LEFT()
    • B、LEN()
    • C、SUBSTR()
    • D、AT()
    • E、RIGHT()

    正确答案:A,C,E

  • 第10题:

    填空题
    命令LEFT("123456789",LEN("计算机"))的结果是()。

    正确答案: ”123456”
    解析: 暂无解析

  • 第11题:

    单选题
    表达式VAL(SUBSTR("本年第2期",7,1))*LEN("他!我")的结果是().
    A

    2

    B

    10

    C

    0

    D

    8


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

  • 第12题:

    单选题
    substr(“123456789”,len(“fox”),len(“pro”))的计算结果是()。
    A

    123

    B

    345

    C

    567

    D

    789


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

  • 第13题:

    执行下列命令HZ=“中华人民共和国”?SUBSTR(HZ,LEN(HZ)/2-2,4)输出的结果是______。

    A.中华

    B.人民

    C.共和

    D.和国


    正确答案:B

  • 第14题:

    下列各字符函数中,函数返回值不是数值型的是

    A.LEN("2003/04/15")

    B.OCCURS("电脑","计算机俗称电脑")

    C.AT("Fox","Visual FoxPro")

    D.LIKE("a *”,"abcd")


    正确答案:D
    解析:字符函数中,LEN()函数测试字符串长度;OCCURS()函数计算子串出现次数;AT()函数求子串位置,其返回值均为数值型数据;LIKE()函数比较两个字符串是否匹配,返回的是逻辑型数据。

  • 第15题:

    表达式VAL(SUBSTR(”i5处理器”,2,1))^Len(”MS Visual FoxPro”)的结果是( )。

    A. 5.00

    B. 16.00

    C. 21.00

    D. 80.00


    正确答案:D
    SUBSTR:在一个字符串中从指定位置起返回给定长度的子串。
    VAL:将字符型的数字转换成数值。LEN:返回一个字符串的长度。
    注意:在Visual FoxPro中一个汉字占两个字符的宽度。所以SUBSTR(”i5处理器”,2,1)的返回值是“5”,VAL(”5”)=5,Len(”MS Visual FoxPro”)=16,5×16=80。

  • 第16题:

    执行下列程序后,变量s的值是( )。

    SET TALK OFF

    CLEAR

    x=〝l2345〞

    s=〝〞

    1=LEN(x)

    DO WHILE l>;1

    x1=SUBSTR(x,1-1,2)

    s=s+x1

    1=l-2

    ENDD0

    ?s

    A.2345

    B.4523

    C.54321

    D.45231


    正确答案:B
    本题涉及的考点有求字符串长度函数、取子串函数以及DOwHILE-ENDD0循环语句。其中LEN(<字符表达式>)返回指定字符表达式的长度,即所包含的字符个数,函数值为数值型。SUBSTR()从给定字符串的指定起始位置取指定长度的子串作为函数值。运行DOWHILE-ENDD0语句时,先判断<条件>是否为真,如果是真则运行DOWHILE与ENDD0间的循环体,当运行到ENDD0时,再返回DOWHILE’重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行ENDD0后的语句。程序执行过程如下:程序开始时l=len(x)=5,进入循环条件判断,5>1,条件成立,执行第一次循环,xl-SUB-STR(x,I一1,2)=〝45〞,s=S+x1=”45“,i=5-2=3。第一次循环结束。程序回到循环条件判断,3>1,条件成立,执行第二次循环,xl=SUBSTR(X,j-1,2)=”23”,s=s+x1=”4523”,i=3-2=1。第二次循环结束,程序回到循环条件判断,i>1,条件不成立,结束循环。最终s中的值为字符串”4523”。故答案选B。

  • 第17题:

    表达式VAL(SUBSTR("本年第2期",7,1))*LEN("他!我")的结果是().

    • A、2
    • B、10
    • C、0
    • D、8

    正确答案:B

  • 第18题:

    ()函数返回字符表达式中字符的数目。

    • A、TXTWIDTH( )
    • B、SUBSTR( )
    • C、STR( )
    • D、LEN( )

    正确答案:D

  • 第19题:

    下列表达式中,运算结果为字符型的有()

    • A、AT(’FoxPro’,’Visual FoxPro’)
    • B、LEN(’Visual FoxPro’)
    • C、SUBSTR(’Visual FoxPro’,8,6)=’FoxPro’
    • D、LEFT(’Visual FoxPro’,6)=’Visual’
    • E、RIGHT(’Visual FoxPro’,6)=’FoxPro’

    正确答案:C,D,E

  • 第20题:

    下列表达式中,运算结果为数值型的有()

    • A、AT(’FoxPro’,’Visual FoxPro’)
    • B、LEN(’Visual FoxPro’)
    • C、SUBSTR(’Visual FoxPro’,8,6)
    • D、’FoxPro’ $ ’Visual FoxPro’
    • E、DATE()-{^2005/01/01}

    正确答案:A,B,E

  • 第21题:

    填空题
    LEFT("123456789",LEN("数据库"))的计算结果是()。

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

  • 第22题:

    单选题
    表达式val(substr("长城586"),5,1)+len("VisualFoxpro")的结果是()。
    A

    13.00

    B

    16.00

    C

    18.00

    D

    19.00


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

  • 第23题:

    单选题
    表达式?VAL(SUBSTR("古老的故事",2))*LEN("VisualFoxPro")的结果是().
    A

    21

    B

    20

    C

    0

    D

    19


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