文档详情

计算机等级考试三级数据库技术100道上机题答案..doc

发布:2017-01-17约9.34万字共68页下载文档
文本预览下载声明
第一题:(同31题) 【考点分析】 本题考查对4位整数的排序。考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。 【解题思路】 此题属于4位数排序问题。本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。 本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。对于问题1可以通过算术运算的取余运算实现(aa[i]%1000);问题2通过包含if判断语句的起泡排序法就可以实现。 【参考答案】 void jsSort() {  int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换时的暂存变量*/ for(i=0;i199;i++) /*用选择法对数组进行排序*/ {for(j=i+1;j200;j++) { if(aa[i]%1000aa[j]%1000) /*按照每个数的后3位大小进行降序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } else if(aa[i]%1000==aa[j]%1000) /*如果后3位数相等*/ if(aa[i]aa[j]) /*则要按原4位数的值进行升序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } }} for(i=0;i10;i++) /*将排序后的前10个数存入数组b中*/ bb[i]=aa[i]; } 【易错提示】 取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。 第二题: 【考点分析】 本题主要考查的知识点包括:C语言循环结构,if判断语句和逻辑表达式,以及分解多位整数的算术运算。 【解题思路】 分析题干,本题除给出条件SIX+SIX+SIX = NINE+NINE之外,还可得出2个隐含的条件:条件1:SIX和NINE分别是3位和4位的正整数;条件2:SIX的十位数字等于NINE的百位数字,NINE的千位数字和十位数字相等。 本题解题思路:通过嵌套的循环结构可以遍历到所有的3位和4位数,对于每一个3位数及4位数的组合进行题设条件(SIX+SIX+SIX = NINE+NINE)的判断,满足条件的对其分解得到各数位的数字,再进一步判断各位数字是否满足本题隐含的条件(条件1及条件2),如果满足则个数加1,并将该3位数及4位数添加到和值中。 【参考答案】 void countValue() { int i,j; /*定义循环变量,即要求的数*/ int s2; /*定义SIX的I值*/ int n2,n3,n4; /*定义NINE中的千位,百位,十位的值*/ for(i=100;i1000;i++) { for(j=1000;j10000;j++) { if(i*3==j*2) { s2=i%100/10; /*求的SIX中的I的值的大小*/ n4=j/1000; /*求的NINE中的千位上的N的大小*/ n3=j%1000/100; /*求的NINE中的百位上的I的大小*/ n2=j%100/10; /*求的NINE中的十位上的N的大小*/ if(s2==n3n2==n4) { cnt++; /*满足条件的个数增加*/ sum+=i+j; /*满足条件数求和*/ } } } } } 【易错提示】 隐含条件未被分析出或分析错误,整数数位分解的算术方法使用错误。 第三题:(类似46、71题) 【考点分析】 本题考查的知识点包括:C语言中文件读函数,if条件判断结构,对多个整数求平均值和方差的算法等。 【解题思路】 此题属于数学类问题。分析题干要求,得出解本题主要需解决3个问题:问题1如何实现从已打开的文件中依
显示全部
相似文档