首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件INl4.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
已知数据文件INl4.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
admin
2009-02-19
59
问题
已知数据文件INl4.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成两个十位数ab-cd>=0且ab-cd〈=10且两个数均是奇数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数 cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT14.DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include〈stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0;
void jsVal()
{
}
void readDat()
{
int i;
FILE *fp;
fp = fopen("IN14.DAT", "r"
for(i = 0; i〈 MAX; i++)
fscanf(fp, "%d", &a
fclose(fp);
}
main()
{
int i;
readDat();
jsVal();
printf ("满足条件的数=%d\n", cnt);
for(i = 0; i〈 cnt; i++)
printf("%d ", b
)
printf("\n");
writeDat();
}
writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT14.DAT", "w")
fprintf(fp, "%d\n", cnt);
for(i = 0; i〈 cnt; i++)
fprintf(fp, "%d\n", b
)
fclose(fp);
}
选项
答案
void jsVal() { int i, thou,hun, ten, data, j; int ab, cd; for (i=0; i〈200; i++) { thou=a [i] /1000; /*求四位数的千位数字*/ hun=a [i] %1000/100; /*求四位数的百位数字*/ ten=a [i] %100/10; /*求四位数的十位数字*/ data=a [i] %10; /*求四位数的个位数字*/ ab= 10 *thou+ ten; /*把千位数字和十位数字重新组成一个新的十位数ab*/ cd=10*data+hun; /*把个位数字和百位数字组成另一个新的十位数cd*/ if ((ab-cd) >=0 && (ab-cd)〈=10 && ab%2==1 && cd%2==1 && ab!=0 && cd!=0) / 如果ab-cd> = 0 且ab-cd〈 = 10 且两个数均是奇数同时两个新十位数字均不为零*/ { b [cnt] =a[i]; /*则把满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=0; i〈cnt-1; i++ ) /*将数组b中的数按从大到小的顺序排列*/ for (j=i+1; j〈cnt; j++) if(b[i]〈b[j] ) { data=b[i]; b[i]=b[j]; b[j] =data; } }
解析
本题看起来似乎比较烦琐,但只要仔细分析,把思路理清,还是不难解决的。由题意可以列出解题步骤如下:
(1)求得当前所取得的整数的千位、百位、十位、个位上的数字值,可以借助使用“/”(除法)与“%”(取余)两个运算符。
(2)按照要求(第一个十位数:新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数;第二个十位数:新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字)把求得的各个位上的数字值组成两个新的十位数。
(3)对新组成的两个十位数进行条件判断(判断条件的语句是“if((ab-cd)>=0&&(ab-cd)〈=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)”),如果满足条件,则把原来的4位数放到数组b中,同时用一个计数器变量cnt求出满足条件的4位数的个数。
(4)对数组b中的4位数用选择法进行从大到小排序。
转载请注明原文地址:https://kaotiyun.com/show/moSZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
传输数字音频、视频数据需要网络提供较大的通信带宽。对于分辨率为640×480的真彩色图像,如果每个像素用24bit表示,并以每一秒钟25帧动态显示,则需要网络提供的通信带宽应达到( )。
以下描述中,是8086 工作于最大模式的特点的是( )。 Ⅰ 适用于多处理机系统 Ⅱ 通过编程来设定的工作模式 Ⅲ 需要总线控制器8288 Ⅳ M/IO引脚可以直接引用
下列选项中用于完成创建任务的自用栈空间的μC/OS—Ⅱ程序源代码的是()。
CAN总线的数据帧由7个不同的域组成,按照传输顺序,它们是:帧起始、仲裁域、控制域、【65】域、【66】域、应答域、帧结尾。
字符在嵌入式系统内部是使用二进制编码表示的,存储一个ASCⅡ字符需要使用【43】个二进位,存储一个常用汉字需要使用【44】个二进位(采用GB2312编码标准)。
RTOS响应中断请求并且完成相应【75】(ISR)的时间非常快,且这个时间必须具有某种程度的一致性。精细衡量这个时间一致性变化的术语是【76】。
ARM公司把ARM11之后的ARM处理器以ARMCortex为特征命名,主要用于高端应用的命名为ARMCortex一【47】,主要用于实时应用的命名为ARMCortex一【48】。
下面关于嵌入式系统的互连通信接口的叙述中,错误的是()。
μC/OS—Ⅱ是目前常用的嵌入式操作系统之一,其内核只提供【69】调度、任务间通信与同步、任务管理、时间管理和【70】管理等基本功能,资源消耗非常小。
下图是嵌入式系统硬件部分的逻辑组成及其与外部世界关系的示意图,其中的组成部分A是【41】;组成部分B是【42】。
随机试题
反映冠脉再灌注的早期标志物是
女,42岁,诊断为子宫肌瘤,住院评估发现患者及其丈夫对子宫切除顾虑重重,担心会影响夫妻生活。针对此患者,护士除进行常规住院教育外,还应重点做好的教育指导是
埋地排水用硬聚氯乙烯双壁波纹管管道敷设时应按()等要求进行。
以下各项中,贷款担保方式其他三项完全不同的是()。
助理人员B编制了R公司制造费用各项目分析表助理人员通过查阅相关记录和现场查看发现本年度业务增长并新增了一条流水线,助理人员认为本年度Y公司的制造费用合理。()注册会计师对受留置权限制的固定资产所有权的审查,通常审核被审计单位的有关负债项目即
()是导游处理与游客关系的一条基本行为准则。
2008年9月,天泉市政府为周某办理了地处水湾村某地块的《集体土地建设用地使用证》(以下简称《土地使用证》,水湾村委会不服,向天泉市法院提起行政诉讼,要求撤销天泉市政府为周某所颁发的《土地使用证》。原告诉称,周某系城镇非农业户口。周某没有向水湾村提出宅基地
在等量条件下,下列食物含碘最多的是()。
招标是指招标人在买卖大宗商品、发包建设项目或合作经营某项业务前,不经过一般交易磋商,而是公开征求应征人递盘竞争,最后由招标人选定交易对象订约的交易方式。根据上述定义,下列选项中属于招标的是()。
这种恢弘的春天的仪式,是古老先民为子孙创造的狂欢节,它依然________着祖先们的记忆、嘱托和想象,让春天变得如此华丽,盎然________着他们的激情,那么浓郁、雄健、炽热,洪波涌起,渐至澎湃。填入横线处最恰当的一组词是:
最新回复
(
0
)