您好,欢迎访问三七文档
1、下面程序的运行结果是DIMENSIONad(10)i=1s=0DOWHILEi=10ad(i)=i-1s=s+ad(i)i=i+1ENDDO?SA)40B)45C)50D)55参考答案:B【解析】本题首先使用DIMENSION命令创建了数组ad(10),然后运行DOWHILE-ENDDO语句时,先判断条件是否为真,如果是真则运行DOWHILE与ENDDO间的循环体,当运行到ENDDO时,再返回DOWHILE重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行ENDDO后的语句。本题的运算结果为45,即B)为正确选项。2、VisualFoxPro中,下列程序段执行以后,内存变量X和Y的值是CLEARSTORE3TOXSTORE5TOYSETUDFPARMSTOREFERENCEDOPLUSWITH(X),Y?X,YPROCEDUREPLUSPARAMETERSA1,A2A1=A1+A2A2=A1+A2ENDPROCA)313B)821C)813D)1321参考答案:A【解析】STORE表达式TO内存变量名表为内存变量的赋值命令,用于计算表达式并将表达式值赋给一个或多个内存变量。PARAMETERS形参变量1[,形参变量2,…]是接收参数的命令,本题A1=A1+A2,最后的运行结果为3;A2=A1+A2,最后的运行结果为13。3、执行命令A=2005/4/2之后,内存变量A的数据类型是A)数值B)字符C)逻辑D)日期参考答案:A【解析】在VF中,一个变量在使用之前并不需要特别申明或定义。通过对内存变量的赋值来确定其内容和类型。表达式A=2005/4/2是对变量A进行赋值,赋值后的结果A=250.63。故选择A选项。4、假设当前表有字段id、name和age,同时有内存变量id和name,命令?name显示的是A)不确定,和前面的命令有关B)当前记录字段name的值C)变量不唯一的出错信息D)内存变量name的值参考答案:B【解析】?表达式或??表达式用于输出表达式的值,同名情况下,字段变量name优先于内存变量name,?name显示当前记录name的值,故选择B选项。5、假设变量a的值是字符串Computer,可以正确显示该值的命令是A)?{a}B)?&aC)?[a]D)?(a)参考答案:D【解析】?表达式或??表达式用于显示表达式的值,字符表达式可以是一个简单的字符型常量、变量、函数,也可以是若干个字符常量或变量的组合。四个选项中只有(a)构成表达式,故D选项正确。6、假设当前表有字段id、name和age,同时有内存变量id和name,命令?M-name显示的是A)不确定,和前面的命令有关B)当前记录字段name的值C)变量不唯一的出错信息D)内存变量name的值参考答案:D【解析】?表达式或??表达式用于显示表达式的值。由于内存变量存放在独立于数据库文件的临时存储单元中,所以内存变量可以和字段变量重名。但是这种情况下,字段变量具有更高的优先级。如果用户想访问内存变量,需要在内存变量的名前加m.或者m-作为前缀。M-name是内存变量,命令?M-name显示的是内存变量,而不是字段变量。故选项D正确。7、语句LISTMEMORYLIKEa*能够显示的变量不包括()。A)aB)a1C)ab2D)ba3参考答案:D【解析】显示内存变量的语句中,LIKE短语只显示与通配符相匹配的内存变量。通配符包括*和?,*表示任意多个字符,?表示任意一个字符。LISTMEMORYLIKEa*表示只显示变量名以a开头的所有内存变量。8、从内存中清除内存变量的命令是()。A)ReleaseB)DeleteC)EraseD)Destroy参考答案:A【解析】内存变量的清除有四种格式:①CLEARMEMORY,②RELEASE内存变量名,③RELEASEALL[EXTENDED],④RELEASEALL[LIKE通配符|EXCEPT通配符]。9、将数组的数据复制到当前表中当前记录的命令是A)SCATTERFROM数组名B)COPYFROM数组名C)GATHERFROM数组名D)DATEFROM数组名参考答案:C【解析】SCATTERTO命令是将表的当前记录复制到数组中,GATHERFROM命令是将数组中的数据复制到当前记录中,COPY和DATE不是数据和数组数据之间的交换命令,故选择C选项。10、将表的当前记录复制到数组的命令是A)SCATTERTO数组名B)COPYTO数组名C)GATHERTO数组名D)ARRAYTO数组名参考答案:A【解析】SCATTER命令是将表的当前记录复制到数组中,GATHER命令是将数组中的数据复制到当前记录中,COPY和ARRAY不是数据和数组数据之间的交换命令,故选择A选项。11、下列程序段执行以后,内存变量y的值是()。x=76543y=0DOWHILEx0y=x%10+y*10x=int(x/10)ENDDOA)3456B)34567C)7654D)76543参考答案:B12、下面程序计算一个整数的各位数字之和。在下划线处应填写的语句是()。SETTALKOFFINPUTx=TOxs=0DOWHILEx!=0s=s+MOD(x,10)ENDDO?sSETTALKONA)x=int(x/10)B)x=int(x%10)C)x=x-int(x/10)D)x=x-int(x%10)参考答案:A【解析】MOD是取余函数,MOD(x,10)就是取x的个位数,因为本题是计算一个整数的各位数字之和,如果依次把x的各位移到个位数上,进行相加就可以实现了。Do循环中的第一条语句,即是计算个位数之和,所以第2条语句应该是将x的各位数字进行移动,而A)选项的语句是将x的值除以10后取整,即可以实现将每位向右移动一位。13、下列程序段执行以后,内存变量y的值是()。CLEARx=12345y=0DOWHILEx0y=y+x%10x=int(x/10)ENDDO?yA)54321B)12345C)51D)15参考答案:D14、执行如下命令的输出结果是()。?15%4,15%-4A)3-1B)33C)11D)1-1参考答案:A【解析】%可理解为返回两个数值表达式相除的余数。15除以4等于3余3,所以15%4=3;15除以-4,商-4,余-1,所以15%-4=-1。正确答案为3-1,即A)选项正确。15、下列程序段执行以后,内存变量y的值是CLEARx=56789y=0DOWHILEx0y=y+x%10x=int(x/10)ENDDO?yA)56789B)98765C)35D)15参考答案:C解析】DOWHILE-ENDDO是一个功能全面使用频率较高的循环语句,运行该语句时,先判断条件是否为真,如果是真则运行DOWHILE与ENDDO间的循环体,当运行到ENDDO时,再返回DOWHILE重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行ENDDO后的语句。本题x=56789,y=y+x%10的最后运算结果为35。16、假设变量s1的值为数据库,变量s2的值为VisualFoxPro数据库,表达式的值为真(T)的是A)s1$s2B)s2$s1C)s2=s1D)s2s1参考答案:A【解析】运算符$是子串包含测试,A选项测试s1是否为s2的子串,为真;B选项s2不是s1的子串,为假;C选项s2=s1,s1和s2不相同,为假,故选择A选项。16、连续执行以下命令后,最后一条命令的输出结果是SETEXACTOFFx=A+SPACE(2)?IIF(x=A,x-BCD+E,x+BCD-E)A)ABCDEB)ABCDEC)ABCDED)出错参考答案:A【解析】SPACE(2)是指产生两个空格组成的字符串,则x为A,SETEXACTOFF是只要右边的字符串与左边的字符串相匹配,运算结果为真。故此时x=A的判断为真,则执行x-BCD+E,其中-是空格移位连接,连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部,运算符+是连接运算符,前后两个字符串首尾连接形成一个新的字符串,则x为ABCDE,选择A选项。17、连续执行以下命令后,最后一条命令的输出结果是A=10x=A+SPACE(2)?IIF(A=20,x-BCD+E,x+BCD-E)A)ABCDEB)ABCDEC)ABCDED)出错参考答案:B【解析】SPACE(2)是指产生两个空格组成的字符串,则x为10,此时x=20的判断为假,则执行x+BCD-E,其中-是空格移位连接,连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部,运算符+是连接运算符,前后两个字符串首尾连接形成一个新的字符串,x+BCD-E运算结果为ABCDE,选择B选项。18、假设变量a的内容是计算机软件工程师,变量b的内容是数据库管理员,表达式的结果为数据库工程师的是A)left(b,6)-right(a,6)B)substr(b,1,3)-substr(a,6,3)C)left(b,6)-substr(a,6,3)D)substr(b,1,3)-right(a,6)参考答案:A【解析】本题考查取子串函数,其中LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值,RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值,SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。-是常用的字符预算符,用于连接前后两个字符串,并将前字符串尾部的空格移到合并后的字符串尾部。本题仅A选项的运算结果是数据库工程师。19、在VisualFoxPro中,下面4个关于日期或日期时间的表达式中,错误的是A){^2012.02.01}+{^2011.02.01}B){^2012/02/01}+2C){^2012.09.0111:10:10AM}-{^2011.09.0111:10:10AM}D){^2012/02/01}-{^2011/02/01}参考答案:A【解析】{^2012/02/01}+2返回指定日期若干天后的日期,故B选项正确。在+和-运算中,格式上有严格的限制,两个日期型数据只可减不可加,相减返回两个指定日期的差值,故A选项错误,D选项正确。同样,两个日期时间型数据只可减不可加,相减返回两个指定日期时间的相差的秒数,故C选项正确。
本文标题:VF数据与数据运算
链接地址:https://www.777doc.com/doc-2866307 .html