早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

下列程序的功能是:在3位整数(100至999)小寻找符合下面条件的整数,并依次从小到大存入数组 b中:它

题目

下列程序的功能是:在3位整数(100至999)小寻找符合下面条件的整数,并依次从小到大存入数组 b中:它既是完全平方数,又有两位数字相同,例如144,676等。

请编制函数int js Value(int bb[]实现此功能,满足该条件的整数的个数通过所编制的函数返回。

最后调用函数writeDat()把结果输出到文件OUT12.DAT中。

注意:部分源程序已给出。

请勿改动主函数main()和写函数writeDat()的内容。

试题程序:

include <stdio.h>

int jsValue(int bb[] )

{

}

main ( )

{

int b[20], num;

num = jsValue (b);

writeDat (num, b);

}

writeDat {int num, int b[] )

{

FILE *out;

int i;

out = fopen("OUT12.DAT", "w");

fprintf(out, "%d\n", num);

for(i = 0; i < num; i++)

fprintf(out, "%d\n", b[i] );

fclese(out);

}

参考答案
正确答案:int jsValue(int bb[]) { int ijk=0; int huntendata; for(i-100;i=999;i++) { j=10; while(j*j=i) { if(i==j*j) /*如果该数是完全平方数*/ { hun=i/100; /*求该数的百位数字*/ data=i-hun*100;/*得到后两位数*/ ten=data/10; /*求该数的十位数字*/ data=data-ten*10;/*求该数的个位数字*/ if(hun==ten || hun==data || ten==data) /*有两位数字相同*/ {bb[k]=i; /*则把该数存入数组bb中*/ k++;} /*统计满足条件的数的个数*/ } j++; } } return k; /*返回满足该条件的整数的个数*/ }
int jsValue(int bb[]) { int i,j,k=0; int hun,ten,data; for(i-100;i=999;i++) { j=10; while(j*j=i) { if(i==j*j) /*如果该数是完全平方数*/ { hun=i/100; /*求该数的百位数字*/ data=i-hun*100;/*得到后两位数*/ ten=data/10; /*求该数的十位数字*/ data=data-ten*10;/*求该数的个位数字*/ if(hun==ten || hun==data || ten==data) /*有两位数字相同*/ {bb[k]=i; /*则把该数存入数组bb中*/ k++;} /*统计满足条件的数的个数*/ } j++; } } return k; /*返回满足该条件的整数的个数*/ } 解析:解答本题,首先应该考虑用一个for循环宋依次取得100到999之间的各个数,并对当前所取得的数进行两个条件判断:一是判断该数是否是完全平方数:二是判断该数是否有两位数字相同。如果以上两个条件同时满足,则把该数存放到b数组中,尽管题目要求所存的数必须从小到大,但我们取数的过程本身就是从小到大取得,因此,排序工作是没有必要做的,按照取数的顺序,把满足条件的数值存放到数组b中就可以了。判断某个数是否是完全平方数的方法是看该数是否可以拆成完全相同的两个数的积(当然要拆成的两个数一定是两位数),因此,我们再利用一个循环用10以上的两位数逐个去拆被判断的数,如果被判断的数恰好可以被完全拆分,则第一个条件成立,接着就开始依次取得被判断的数的百位、十位、个位上的数字值,看是否有两位数字相同。取得每一位上的数字值可以用“hun=i/100:data=i-hun*100:ten=data/10:data=data-ten*10:”几条语句来实现,hun变量得到的是百位上的数字,ten变量得到的是十位上的数字,data变量得到的是个位上的数字。
看了下列程序的功能是:在3位整数(...的网友还看了以下:

已知平行四边形的一条边的长为14,下列各组数能分别作它的两条对角线长的是A10和16B12和16C2 数学 2020-03-31 …

在一个梯形中,有下列条件:1两个内角相等2它的对角互补3两条边相等4两条对角线相等.在上述条件中能 数学 2020-05-20 …

1、四边形ABCD的对角线相交于点O,在下列条件中,不能判断它是矩形的是()很急啊1、四边形ABC 数学 2020-05-23 …

一元二次方程及数列混合题求解已知α,β满足下列条件:(1)它们的和是等差数列1,3,5……的第20 数学 2020-06-14 …

1.把下列定理改写成“如果...,那么...”的形式,指出它们的条件和结论,并用演绎推理证明题(1 数学 2020-07-29 …

写一个不等式,使它的解集满足下列条件(1)它的负整数解为-1,-2,-3,表示为:(2)它的整数解 数学 2020-08-03 …

1.有几个四位数满足下列条件:它的各位数字都是奇数;它的各位数字互不相同;它的每个数字都能整除它本身 数学 2020-11-08 …

根据下列条件列出方程:(1)X的4倍与5的差的相反数是13.(2)y比它的三分之二大19(3)x的相 数学 2020-12-02 …

[在Access中创建VBA模块]1、求符合下列条件的四位数.[在Access中创建VBA模块]1、 数学 2020-12-14 …

抗体的结构如图1所示,它有两条H链和两条L链组成.同一物种C区氨基酸序列恒定,不同抗体结合抗原的V区 语文 2020-12-24 …