题解分析
第一章Visual FoxPro基础知识
一、选择题
1、分析:实现数据共享,减少数据冗余是数据库系统的主要特点之一。在设计数据库时应以面向全
局的观点组织数据库中的数据,应尽量减少数据冗余,而不是取消所有的数据冗余,这样既能避免不必要的数据重复,又可以有意识的保留适当的冗余,用于提高查询效率。答案B中的数据一致性是数据库系统的特点之一,其含义是:由于数据库系统减少数据冗余,可以实现数据的一致性。答案D是错误的。
2、分析:选择、投影和联接是专门的关系运算,在VFP6.0命令中FOR <条件>和WHILE <条件>
子句,SET FILTER TO <条件>语句实现关系的选择运算。FIELDS <字段名表>子句和SET FIELDS TO <字段名表>语句实现关系的投影运算。关联相当于逻辑联接,JOIN命令实现关系的物理联接。而排序、索引、统计、更新属于数据库管理系统提供的数据库管理操纵功能。并、差、交是关系的传统集合运算,VFP6.0没有专门的命令来实现,但这些功能可以通过编制程序来实现。
3、分析:VFP6.0是一个关系数据库管理系统,支持关系数据模型。但VFP6.0以文件操作为基础,
所用的术语更接近于文件系统的通俗词汇。从用户观点来看,一个关系的逻辑结构是一个二维表,在磁盘上以文件形式存储,在VFP6.0中称为数据库表文件。因此表结构对应关系模式,一个表文件对应一个具体关系。二维表中的行称为元组,对应数据库表文件中的记录值。二维表中的列称为属性,每一列有一个属性名,在VFP6.0中称为字段名,属性值相当于各个记录的字段值。关系模型是用二维表的形式来表示事物和事物之间联系的数据模型,一个关系模型通常是由多个关系模式组成的。
4、分析:在表文件中,记录的次序无关紧要,各个字段之间的联系是由语义决定的。虽然记录的物
理顺序由输入的次序决定,但在数据处理过程中可以通过排序或索引等手段来重新组织,因此记录前后顺序的改变并不影响表文件中数据的实际意义,可以任意颠倒。
9、分析:答案B的字母未加定界符,系统一般认为是变量名,答案C是表示连除的数值表达式,
答案D是命令中的范围参数选项。逻辑型常量可以表示为:.Y.、.y、.T.、.t.、.N.、.n.、.F.、.f.,只有答案A是正确的。
10、分析:变量名是用来标识变量的符号,最多10个字符,可以由字母,数字和嵌在中间的下划线
组成,但必须以字母或汉字开头,中间不能有空格。 13、分析:向内存变量赋值时,逻辑值必须带有圆点定界符,否则会误认为变量。该题也可以用DY=.F.
来赋值,两者的区别在于STORE命令可以一次给多个变量赋值,而“=”命令一次只能给一个变量赋值。而对表文件中的字段修改数据,应使用REPLACE命令,由于字段类型和宽度已经事先定义,就不必再输入定界符了。答案A一般表示将变量FALSE的值赋给DY,若FALSE没赋值,该语句是错误的。答案C将字符串”.F.”赋给DY。答案D将字符串”F”赋给DY。
17、分析:当字段变量和内存变量同时存在时,字段变量的优先级高于同名的简单内存变量。为强
调是简单内存变量,可以在内存变量名的前面冠以前缀“M.”或“M->”,以示区别。因此只有答案B是正确的。
20、分析:命令?X=Y=66的命令动词是?,其中X=Y=66不是赋值命令而是关系表达式,比较结果
为.F.。
21、分析:两个日期数据相减,结果为相差的天数。
49
22、在字符串操作中,加号“+”将前后字符串首尾紧凑连接;减号“?”连接前后字符串,并将前
面字符串尾部空格移到合并后的字符串尾部。执行第二条命令之后,Y是字符串”375213”;第三条命令执行”375213”?”111”操作,结果应为”375213111”。 23、分析:宏代换函数的作用仅仅是字符串“搬家”,相当于直接写在函数所在位置上。至于代换后
产生什么作用,完全由其他命令或语句的功能决定,并不是&函数的功能。经过宏代换,题目中表达式1+&K的值应当是表达式1+M+N的值。在对表达式求值时,系统又分别把M、N的值代入,结果值是1+3+8=12。
25、分析:答案A是两个字符串相减,运算结果为字符串;答案C是日期型数据和数值型数据相减,
运算结果为日期型数据;答案D是关系表达式;答案B中LEN函数的结果为数值型数据,再减1得到数值型数据。
27、分析:当SUBSTR()函数的第1个参数大于字符串的长度时,其结果将输出空串。
30、分析:AT函数的格式是AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]),该函数功能是返
回<字符表达式1>在<字符表达式2>中第<数值表达式>次出现的位置。若<字符表达式1>不在<字符表达式2>中则返回0,若不给出<数值表达式>则隐含为1。输出值为数值型数据。
31、分析:当ROUND()函数的第2个参数为?2时,四舍五入小数点之前两位,并保持原小数位数
不变。
36、分析:函数TYPE(<字符型表达式>)测试表达式的数据类型,返回一个大写字母,分别代表:字
符型C、数值型N、货币型Y、逻辑型L、日期型D、日期时间型T、备注型M、通用型G、未定义U。注意测试的是字符型表达式所表示的数据类型,不包括字符型表达式的定界符,题目测试的是KK的数据类型,是字符型C。
37、分析:用TYPE函数测试一个空字符串,属于未定义的数据类型U。
41、分析:字符串长度函数LEN(<字符表达式>)的功能是返回字符串所占的字节数。用减号连接的
字符串将前串的空格甩到后串的后面,并没有删除。
42、分析:条件函数IIF(<逻辑表达式>,<表达式1>,<表达式2>)的功能是,如果逻辑表达式为真,返
回<表达式1>的值;否则返回<表达式2>的值。函数SPACE(1)产生1个空格。LEN(SPACE(1))?1=0,条件为逻辑假。故条件函数返回<表达式2>的值?1。
43、分析:测试函数VARTYPE的使用格式为VARTYPE(<测试对象>),其<测试对象>的外面不需要
加定界符;而函数TYPE(<测试对象>)外面必须加定界符。所以B、C、D是正确的,A是错误的。
44、分析:在VFP6.0中,SET STRICTDATE设置为0,意味着不进行严格日期格式的检查,这与
VFP5.0兼容;SET STRICTDATE设置为1,意味着要求所有日期型和日期时间型常数都符合严格日期格式;SET STRICTDATE设置为2,与将SET STRICTDATE设置为1功能相同,但如果CTOD()和CTOT()函数出现在代码中,将出现编译错误。SET STRICTDATE没有3的设置,故应选择B。
45、分析:SET DATE AMERICAN后,DATE()获得的日期型数据的格式为mm/dd/yy,即月/日/年的
格式。而用DTOC(DATE(),1)可把日期型日期转换成字符型日期,加参数1使输出格式为年、月、日,年份为4位,截取左边4位后刚好获得4位年份。因此只有答案B不能获得4位年份。 51、分析:宏代换函数的代换功能很强,它在任何位置都能起作用。无论在括号里还是在定界符里
均可代换。代换后表达式STR(&A,2)+”45&A”为STR(23.45,2)+”4523.45”,即”23”+”4523.45”,两个字符串”23”和”4523.45”首尾相接,结果为”234523.45”。在显示时不出现定界符。
57、分析:VAL函数的格式为VAL(<字符表达式>),其功能是将字符型数据转换为数值型数据。字
符串中可转换部分从第一个数字字符开始到非数字字符为止的数字串,可以包含负号。由于该题中字符串中第一个字符为非数字字符,因此转换结果为0。
60、分析:ASC(<字符表达式>)的功能是返回<字符表达式>首字符的ASCII码十进制数。该题中首
字符为A,其ASCII码十进制数为65。
50