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

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

题目

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

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

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

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

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

试题程序:

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;

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

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

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

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

fclose (out);

}

参考答案
正确答案:int isValue(int bb[]) { int ijk=0; int huntendata; for(i=100;i=999;i++) { j=10; while(i*j=i) { if(i==i*j) /*如果该数是完全平方数*/ } hun=i/100; /*求该数的百位数字*/ data=i-hun*100; /*得到后两位数*/ ten=data110; /*求该数的十位数字*/ data=data-ten*10; /*求该数的个位数字*/ if(hun==ten || hun==data || ten==data)/*有两位数字相同*/ {bb[k]=i; /*则把该数存入数组bb中*/ k++;} /*统计满足条件的数的个数*/ } j++; } } return k; /*返回满足该条件的整数的个数*/ }
int isValue(int bb[]) { int i,j,k=0; int hun,ten,data; for(i=100;i=999;i++) { j=10; while(i*j=i) { if(i==i*j) /*如果该数是完全平方数*/ } hun=i/100; /*求该数的百位数字*/ data=i-hun*100; /*得到后两位数*/ ten=data110; /*求该数的十位数字*/ 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位整数(...的网友还看了以下:

java题(考试了)五.编写程序(1、2题各13分,共26分)1.摄氏温度与华氏温度的转换公式为: 其他 2020-05-13 …

数值方法重要求用Matlab的最小二乘法"直线"拟合此题(要写出完整的程序过程,急用,)炼钢是氧化 其他 2020-05-16 …

初一数学,用十字乘法公式计算(“^”为二次方) 6y^-11xy-10x^(请把过程完完整整 数学 2020-05-16 …

一个完整的程序必须完成三个层次过程,它们分别是编码、测试和【】。 计算机类考试 2020-05-23 …

( )不是进度计划调整的程序。 A.发现工程进度严重偏离计划时,总监理工程师应及时签发《监理通知 计算机类考试 2020-05-26 …

谁能帮我用函数写个C程序啊感激不尽题目如下实验一:顺序表的基本操作。编写一个完整的程序,实现顺序表 其他 2020-06-18 …

大家帮忙看一下了,用c#编写(2)定义一个复数类,通过重载运算符:+、-、*、/,直接实现两个复数 其他 2020-06-26 …

内存中有X、Y两个数:X=32,Y=-78利用汇编语言编写完整的程序,计算这两个数之和,并将结果存入 其他 2020-12-28 …

编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”提示用户输入Y或者N.若输入为Y,显示“ 其他 2021-01-09 …

编写程序计算|X-Y|的值,其中:X和Y为存放于X单元和Y单元的16位操作数,要求将结果存入resu 其他 2021-01-13 …