全国计算机三级数据库技术上机试题100道(5)
发布时间:2021-06-07
发布时间:2021-06-07
int half;
int a3,a2,a1; /*定义变量存储3位数每位的数字*/
for(i=101;i<1000;i++) /*在该范围内寻找符合条件的数*/
{
a3=i/100; /*求百位数字*/
a2=i%100/10; /*求十位数字*/
a1=i%10; /*求个位数字*/
if(a3==(a2+a1)%10) /*如果个位数字与十位数字之和被10除所得余数恰是百位数字*/
{
half=i/2;
for(j=2;j<=half;j++) /*进一步判断该数是否为素数*/
if(i%j==0) break; /*如果不是素数,则跳出循环,接着判断下一个数*/
if(j>half) /*如果是素数*/
{
cnt++; /*计算这些素数的个数cnt*/
sum+=i; /*计算这些素数值的和sum*/
}
}
}
}
【易错提示】 素数的判断算法使用错误,分解整数各个数位的方法错误,if判断语句中逻辑表达式错误。
6. 【考点分析】 本题考查结构体数组的排序。考查的知识点主要包括:结构体成员运算,字符串比较符,数组排序。
【解题思路】 此题属于销售记录排序类题型。此类题型主要考查对结构体数组的排序。解题时,应注意3个关键点:关键点1如何按产品名称从小到大排序;关键点2如果产品名称相同;关键点3如何按金额从小到大排列。
数组排序可以用起泡法实现,起泡法的思路是:将较小的值像空气泡一样逐渐"上浮"到数组的顶部,而较大的数值逐渐"下沉"到数组的底部。具体为第1趟用第1个记录和第2个记录进行比较,如果不符合要求,就进行交换,第2个记录和第3个记录比较,直到倒数第2个记录和最后1个记录比较完成;第2趟用第2个记录和第3个记录比较,然后第3个和第4个比较,依此类推。
本题在双循环中进行每次记录比较时,首先用字符串比较函数strcmp比较两个产品的名称,如果返回的值大于0,则这两个产品进行数据交换;如果返回值等于0,再比较两个产品的金额,如果前一个产品的金额大于后一个产品的金额,则这两个产品进行数据交换。
【参考答案】
void SortDat()
{
上一篇:爱读书读好书升旗仪式发言稿
下一篇:终端导购销售技巧