VFP数据库

设name=”我是中国大学生志愿者。”函数substr(right(name,14),7,6)的运行结果是()A、大学生B、中国大学C、志愿者D、志愿者

题目

设name=”我是中国大学生志愿者。”函数substr(right(name,14),7,6)的运行结果是()

  • A、大学生
  • B、中国大学
  • C、志愿者
  • D、志愿者
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

要从字符串“中国海南省”中取出子串“海南省”,应使用的函数是( )。

A.SUBSTR("中国海南省",3,3)

B.SUBSTR("中国海南省",5,2)

C.SUBSTR("中国海南省",5,3)

D.SUBSTR("中国海南省",5,6)


正确答案:D
解析:SUBSTR为取子串函数。格式是SUBSTR(字符表达式>,起始位置>[,长度>]),功能是SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。在SUBSTR()函数中,若缺省第3个自变量长度>,则函数从指定位置一直取到最后一个字符。
由于一个汉字占用两个字符,再根据该函数的功能,选项A)和C)的结果都是乱码,选项B)的结果是“海”,选项D)的结果是“海南省”。

第2题:

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

第3题:

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,则应当输出6。

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

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

试题程序:

include <conio.h>

include <stdio.h>

include <string.h>

int fun(char *str, char *substr)

{

}

main ( )

{

char str[81],substr[3];

int n;

clrscr ();

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

gets (str);

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

gets (substr);

puts (str);

puts (substr);

n=fun (shr, substr);

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

}


正确答案:int fun(char *str char *substr) { int i j=0; for(i=0;str[i+1]!='\0';i++) /*如果一个长度为2的子字符串在主字符串中出现一次则j+1 如此 循环*/ if (str [i]==substr [0] &&str [i+1]==substr [1] ) j++; return j; /*返回子字符串在主字符串中出现的次数*/ }
int fun(char *str, char *substr) { int i, j=0; for(i=0;str[i+1]!='\0';i++) /*如果一个长度为2的子字符串在主字符串中出现一次,则j+1, 如此 循环*/ if (str [i]==substr [0] &&str [i+1]==substr [1] ) j++; return j; /*返回子字符串在主字符串中出现的次数*/ } 解析:该题中subsu只有两个字符,所以可以用if语句来直接进行判断。要注意if())中str组的下标为i和i+1,即比较当前字符及其以后的一个字符是否分别与substr中的字符对应相同,若都相同则表示出现了一次。

第4题:

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

A.DEFG

B.ABCD

C.EFGH

D.GHU


正确答案:A

第5题:

要从字符串“中国海南省”中取出子串“海南省”,应该使用函数( )。

A.SUBSTR("中国海南省",3,3)

B.SUBSTR("中国海南省",5,2)

C.SUBSTR("中国海南省",5,3)

D.SUBSTR("中国海南省",5,6)


正确答案:D
解析:SUBSTR为取子串函数。格式是SUBSTR(字符表达式>,起始位置>[,长度>]),功能是SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。在SUBSTR()函数中,若缺省第3个自变量长度>,则函数从指定位置一直取到最后一个字符。

第6题:

SubStr函数为求子串,执行SubStr(t,"abcdefghi",3,4)的结果是()。

A、adcd

B、def

C、cdef

D、fghi


参考答案:C

第7题:

编写一个函数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语句强行退出一层循环。当字符串中的某个字符与子字符串的第一个字符不同时,则将字符串中的下一个字符与子字符串中的第一个字符比较,而不是与子字符串中的第二个字符比较。

第8题:

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

A.“DEFG”

B.“ABCD”

C.“EFGH”

D.“GHIJ”


正确答案:A
解析:在本函数中,从字符串“ABCDEFGHIJ”中截取子串的起始位置由函数LEN()的值确定。函数LEN(“1234”)的作用是测试字符串“1234”中包含字符的个数,其返回值是4。由此可知,所给函数SUBSTR()是要在字符串“ABCDEFGHIJ”中从第4个字符位置开始截取出4个字符。最后截取出的子串是“DEFG”。

第9题:

下列函数中,函数值为数值型的是

A.AT(“中国”,“中国计算机”)

B.CTOD(“04/30/2004”)

C.BOF()

D.SUBSTR(DTOC(DATE()),7)


正确答案:A
解析:掌握Visual FoxPro中函数的使用。选项D)为转换函数,将字符型数据转换为日期型;选项C为测试函数,函数值为逻辑型;选项D)用来截取字符串,函数为字符型。掌握Visual FoxPro中常量的类型,包括数值型、货币型、字符型、日期型、日期时间型和逻辑型。

第10题:

能从“全国计算机等级考试”中取出“等级”2字的函数是______。

A.SUBSTR("全国计算机等级考试",6,2)

B.SUBSTR("全国计算机等级考试",11,4)

C.SUBSTR("全国计算机等级考试",11)

D.SUBSTR("全国计算机等级考试",6,4)


正确答案:B

更多相关问题