网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】如果n位数(n≧2)是回文数(从左到右读与从右到左读所得结果一致),且前半部分的数字递增(非减)、后半部分的数字将递减(非增),则称该数为拱形回文数。例如,12235753221 就是一个拱形回文数。显然,拱形回文数中不含数字0。下面的流程图用于判断给定的n位数(各位数字依次存放在数组的各个元素A[ i ]中,i =1,2,…,n)是不是拱形回文数。流程图中,变量T 动态地存放当前位之前一位的数字。当n 是奇数时,还需要特别注意中间一位数字的处理。【流程图】

注1:“循环开始”框内给出的循环控制变量的初值、终值和增值(默认为1),格式为:循环款控制变量=初值,终值[ , 增值 ]注2:函数int(x)为取x的整数部分,即不超过x 的最大整数。


参考答案

参考解析
解析:(1)n-i+1(2)T&&A[i]!=O或 T&&A[i]>0(3)T(4)n(5)T或A[n/2]或A[(n-1)/2]
【解析】

1)跟A[i]对称的后半部分元素下标是n-i+1 ;2)T动态地存放当前位之前一位的数字,所以这甲A[i] 大于前一项T值,且在拱形回文数中,不含数字0,所以再加上一个条件 A[i]!=03)比较完后,将A[i]值赋给T,T 进行动态地存放当前位之前一位的数字。4.5)判断元素个数是偶数还是奇数,如果是奇数,则还需要进行判断最中间的元素,所以4 空这里填空n,5空填的是为奇数个时最中间元素的前一项元素的表示。
更多 “阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】如果n位数(n≧2)是回文数(从左到右读与从右到左读所得结果一致),且前半部分的数字递增(非减)、后半部分的数字将递减(非增),则称该数为拱形回文数。例如,12235753221 就是一个拱形回文数。显然,拱形回文数中不含数字0。下面的流程图用于判断给定的n位数(各位数字依次存放在数组的各个元素A[ i ]中,i =1,2,…,n)是不是拱形回文数。流程图中,变量T 动态地存放当前位之前一位的数字。当n 是奇数时,还需要特别注意中间一位数字的处理。【流程图】 注1:“循环开始”框内给出的循环控制变量的初值、终值和增值(默认为1),格式为:循环款控制变量=初值,终值[ , 增值 ]注2:函数int(x)为取x的整数部分,即不超过x 的最大整数。” 相关考题
考题 阅读以下说明和C程序代码,将程序补充完整。[说明]下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。[C程序代码]include<stdio.h>include<stdlib.h>int isPalm(long m){int i=0, k=0;char str[32];while(m>0) {str[k++]= _______ +'0';m=m/10;}for(i=0; i<k/2; i++)if(str[i]!=str _______ )return 0;return 1;}int main( ){long n, a, t;printf("input a positive integer: "); scanf("%ld", n);if(n<100||n>=1000)return -1;while( _______ ) {printf("%id->", n);for(a=0, t=n; t>0; ){a= _______ *10+t%10; t=t/10;n= _______ ;printf("%id\n", n);system("pause"); return 0;

考题 已知数据文件IN45.DAT中存有200个4位数;并已调用读函数readDat()把这些数存入数组a中,请编制一函jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数waiteDat( )把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量;cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal ( ){void readDat ( ){int i;FILE *fp;fp=fopen("IN45.DAT","r" );for (i=0; i<MAX; i++ )fscanf (fp, "%d" ,a [i] );fclose (fp) $main ( ){int i;readDat ( );jsVal ();print f ("满足条件的数=%d\n", cnt);for (i=0; i<cnt; i++)printf("%d\n",b[i]);print f ( "In" );writeDat ( );}writeDat ( ){FILE *fp;int i;fp=fopen ("OUT45 .DAT", "w" );fprintf (fp, "%d\n" , cnt);for (i=0; i<cnt; i++)fprintf(fp, "%d\n",b[i]);fclose (fp);}

考题 已知数据文件IN.dat中存有200个四位数,并己调用读函数rData()把这些数存入数组a中,请编写函数spellNum(),其功能是:把个位数字和千位数字重新组成一个新的二位数(新二位数的十位数字是原四位数的个位数字,新二位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的二位数(新二位数的十位数字是原四位数的百位数字,新二位数的个位数字是原四位数的十位数字),如果新组成的两个二位数一个是奇数,另一个为偶数,并且两个二位数中至少有一个数能被17整除,同时两个新数的十位数字均不为 0,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数count。最后main()函数调用写函数wData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。注意:部分源程序已经给出。程序中已定义数组a[200]、b[200],己定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数rData()和写函数wData()的内容。include <stdio. h>define MAX 200int a[MAX], b[MAX], count = 0;void spellNum ( ){}void rData(){ int i;FILE *fp;fp = fopen("IN.dat", "r") ;for (i=0; i<MAX; i++)fscanf(fp, "%d,", a[i]);fclose (fp);}void wData (){ FILE *fp;int i;fp = fopen("OUT.dat", "w");fprintf(fp, "%d\n", count);for (i=0; i<count; i++)fprintf(fp, "%d\n", b[i]);fclose (fp);}void main (){ int i;rData ();spellNum ();printf ("满足条件的数=%d\n", count);for (i=0; i<count; i++)printf("%d ", b[i]);printf ("\n");wData ();}

考题 己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从人到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main0、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal( ){}void readDat( ){int i;FILE *fp;fp=fopen("IN45.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",a[i]);fclose(fp);}main ( ){int i;readDat();jsVal();printf ( "满足条件的数=%d\n" , cnt);for(i=0;i<cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp=fopen("OUT45.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp, "%d\n",b[i]);fclose(fp);}

考题 已知数据文件m14.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位数输出到OUTl4.DAT文件中。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include〈stdio.hdefine MAX 200int 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[i]);fclose (fp);}main ( ){int i;readDat ();jsVal ();printf("满足条件的数=%d\n", cnt);for(i = 0; i 〈cnt; i++)printf("%d", b[i]);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[i]);fclose (fp);}

考题 阅读以下说明和流程图,回答问题1~2,将解答填入对应的解答栏内。[说明]下面的流程图描述了计算自然数1到N(N≥1)之和的过程。[流程图][问题1] 将流程图中的(1)~(3)处补充完整。[问题2] 为使流程图能计算并输出1*3+2*4+…+N*(N+2)的值,A框内应填写(4);为使流程图能计算并输出不大于N的全体奇数之和,B框内应填写(5)。

考题 己知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab<cd,ab必须足奇数且不能被5整除,cd必须是偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT60.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal(){}void readDat(){int i;FILE *fp;fp=fopen("IN60.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",a[i]);fclose(fp);}main ( ){int i;readDat();jsval();printf ("满足条件的数=%d\n", cnt);for(i=0;i<cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp=fopen("OUT60.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp, "%d\n",b[i]);fclose(fp);}

考题 已知数据文件IN56.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数 (新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数均为素数且新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT56.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:includedefine MAX 200int a[MAX],b[MAX],cnt=0;int isprime(int m){int i;for(i=2;i<=m/2;i++)if(m%i==0) return 0;return 1;}void isval(){}void readDat( ){int i;FILE *fp;fp=fopen("IN56.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",a[i]);fclose(fp);}main(){int i;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp=fopen("OUT56.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp, "%d\n",b[i]);fclose(fp);}

考题 已知数据文件IN45.DAT中存有200个4位数,并已调用读函数IeadDat()把这些数存入数组a中,请编制一函数isVa1(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-ed≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数ent,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序;include<stdio. h>define MAX 200int a[MAX] ,b[MAX] ,cnt=0;void jsVal( ){}void readDat( ){int i;FILE *fp;fp=fopen ( "IN45. DAT", "r" );for (i=0; i<MAX; i++)fscanf (fp, "%d", a Iii );fclose (fp);}main ( ){int i;readDat();jsVal();printf ("满足条件的数=%d\n", cnt );for(i=0;i<cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp=fopen("OUT45.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp, "%d\n",b[i]);fclose(fp);}

考题 阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。【说明】下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。【C程序代码】include <stdio.h>include <stdlib.h>int isPalm(long m){ /*判断m是否为回文数*/int i = 0, k = 0;char str[32];while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/str[k++] =(1)+ '0';m = m / 10;}for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/if ( str[i] != str[(2)] ) return 0;return 1;}int main ( ){long n, a, t;printf("input a positive integer:"); scanf("%ld",n);if (n < 100 || n > =1000) return -1 ;while((3)) { /*n不是回文数时执行循环*/printf("%ld-> ", n);for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/a =(4)*10 + t % 10; t = t / 10;} /*end of for*/n =(5); /*与反序数求和*/} /*end of while*/printf ("%id\n",n);system("pause"); return 0;}

考题 已知数据文件IN86.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数abcd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新十位数字均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT86.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal(){}void readDat ( )int i;FILE *fp;fp=fopen ("IN86. DAT", "r");for (i=0; i<MAX;i++)fscanf (fp, "%d", a [i] );fclose (fp);main{int i;readDat ();jsVal ();printf ("满足条件的数=%d\n", cnt);for (i=0; i<cnt; i++)printf("%d",b[i]);printf ("\n");writeDat ();}writeDat (){FILE *fp;int i;fp=fopen ("OUT85. DAT", "w");fprintf (fp, "%d\n", cnt)for (i=0;i<cnt; i++)fprintf(fp, "%d\n",b[i]);fclose (fp);}

考题 阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。【说明】假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。【流程图】

考题 已知数据文件1N56.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数(新十位数的十位数字是原4位数的个位数字,新个位数的个位数字是原4位数的百位数字),如果新组成的两个十位数均为素数且新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足亡述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT56.DAT文件中。注意:部分源程序己给出。程序中已定义数组:a[200],b[200],己定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio . h>define MAX 200int a[MAX] ,b[MAX] ,cnt=0;int isprime(int m){int i;for (i=2; i<=m/2 ;i++)if(re%i==0) return 0;return 1;}void jsVal(){}void readDat ( ){int i;FILE rfp;fp= fopen (" IN56. DAT", "r" );for (i=0; i<MAX; i++)fscanf (fp, "%d", a [i] );fclose (fp);}main ( ){int i;readDat ();jsVal ();printf ("满足条件的数=%d\n", cnt);for (i=0; i<cnt; i++)printf ("%d\n", b [i] ;printf ("kn'');writeDat ();}writeDat (){FILE *fp;int i;fp=fopen ("OUT56. DAT", "w");fprintf (fp, "%d\n", cnt);for (i=0; i<cnt; i++)fprintf(fp, "%dkn",b[i]);fclose (fp);}

考题 已知数据文件IN72.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个数均为偶数且两个十位数中至少有一个数能被9整除,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并计算满足上述条件的4位数的个数cnt,最后调用.写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT72.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200], b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX], b[MAX], cnt=0;void jsval(){{Void readDat( ){int i;FILE *fp;fp=fopen("IN72. DAT", "r");for(i=0; i<NAX; i++)fscanf(fp, "%d", a[i]];fclose(fp);}main(){int i;readDat();jsVal()for(i=0; i<cnt; i++)printf("%d\n", b[i]);prIntf("\n");wrlteDat();}wrlteDat(){FILE *fp;int i;fp=fopen("OUT72.DAT", "w");fprlrltf(fp, "%d\n", cnt);for(i=0;i<Cht; i++fprIntf(fp, "%d\n",h[i]);fclose(fp);}

考题 已知数据文件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.hdefine MAX 200int 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[i]fclose(fp);}main(){int i;readDat();jsVal();printf ("满足条件的数=%d\n", cnt);for(i = 0; i〈 cnt; i++)printf("%d ", b[i])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[i])fclose(fp);}

考题 程序PROGl.G的功能是:寻找并输出ll至999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如l21,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请考生编制函数int JsValue(long m)实现此功能,如果是回文数,则函数返回l,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main。

考题 阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出false;只要找到一个(可能有多个)就输出True以及该元素的下标i和j(注意数组元素的下标从1开始)。 例如,在如下矩阵中查找整数8,则输出伟:True,4,1 2 4 6 9 4 5 9 10 6 7 10 12 8 9 11 13 流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是() 供选择答案:A.O(1) B.O(m+n) C.O(m*n) D,O(m+n)

考题 阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的代码运行时,从键盘输入一个四位数(各位数字互不相同,可以有0). 取出组成该四位数的每一位数,重组成由这四个数字构成的最大四位数 max4和最小四位数 min4(有0时为三位数).计算 max4与 min4的差值,得到一个新的四位数。若该数不等于 6174, 则重复以上过程,直到得到 6174 为止。 例如,输入 1234,则首先由 4321-1234, 得到 3087;然后由 8730-378,得到 8352;最后由 8532-2358,得到6174。【C 代码】 include stdio.h int difference( int a[] ) { int t ,i ,j ,max4 ,min4; for( i=0; i3; i++ ) { /*用简单选择排序法将 a[0] ~a[3] 按照从大到小的顺序排列* / t = i; for( j= i+1;(1); j++ ) if (a[j] a[t]) (2); if ( t !=i ) { int temp = a[t];a[t]= a[i];a[i]= temp; } } max4=(3); min4=(4); return max4-min4; } int main () { int n,a[4]; printf(input a positive four-digi t number: ) ; scanf(%d ,n); while (n!=6174) { a [0] =(5); /*取n的千位数字*/ a[1] = n/100%10; /*取n的百位数字*/ a[2] = n/10%10; /*取n的十位数字*/ a[3] =(6); /*取n的个位数字*/ n = difference(a); return 0; } return 0; }

考题 试题一(共 15 分)阅读以下说明和流程图,填补流程图中的空缺(1)~(9) ,将解答填入答题纸的对应栏内。[说明]假设数组 A 中的各元素 A(1),A(2) ,…,A(M)已经按从小到大排序(M≥1) ;数组 B 中的各元素 B(1),B(2),…,B(N)也已经按从小到大排序(N≥1) 。执行下面的流程图后, 可以将数组 A 与数组 B 中所有的元素全都存入数组 C 中, 且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序) 。例如,设数组 A 中有元素:2,5,6,7,9;数组B 中有元素:2,3,4,7;则数组 C 中将有元素:2,2,3,4,5,6,7,7,9。[流程图]

考题 试题二(共 15 分)阅读以下说明和 C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]下面 C 程序代码的功能是:对于输入的一个正整数 n(100≤n1000) ,先判断其是否是回文数(正读反读都一样的数) 。若不是,则将 n 与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278 不是回文数,其反序数为 872,相加后得到的 1150还不是回文数,再将 1150 与其反序数 511 相加,得到的 1661 是回文数。 函数 int isPalm(long m)的功能是:将正整数 m的各位数字取出存入数组中,然后判断其是否为回文数。若 m是回文数则返回 1,否则返回 0。[C 程序代码]#include stdio.h#include stdlib.hint isPalm(long m){ /*判断 m是否为回文数*/int i = 0, k = 0;char str[32];while (m 0) { /*从个位数开始逐个取出 m的各位数字并存入字符数组 str*/str[k++] = (1) + '0';m = m / 10;}for(i = 0; i k/2; i++) /*判断 str中的 k 个数字字符序列是否是回文*/if ( str[i] != str[ (2) ] ) return 0;return 1;}int main( ){long n, a, t;printf("input a positive integer:"); scanf("%ld",n);if (n 100 || n =1000) return -1 ;while( (3) ) { /*n 不是回文数时执行循环*/printf("%ld - ", n);for(a = 0, t = n; t 0; ) { /*计算 n 的反序数并存入 a*/a = (4) *10 + t % 10; t = t / 10;} /*end of for*/n = (5) ; /*与反序数求和*/} /*end of while*/printf("%ld\n",n);system("pause"); return 0;}

考题 阅读下列说明和流程图,填补流程图中的空缺(1)~(9),将解答填入答题纸的对应栏内。【说明】假设数组A中的各元素A⑴,A (2),…,A (M)已经按从小到大排序(M>1):数组B中的各元素B(1) , B (2) . B (N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素: 2,5,6,7,9;数组B中有元素: 2,3,4,7;则数组C中将有元素: 2,2,3,4,5,6,7,7,9.

考题 阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。【说明】如果一个自然数N恰好等于它所有不同的真因子(即N的约数以及1,但不包括N)之和S,则称该数为“完美数”。例如6=1+2+3,28=1+2+4+7+14,所以6和28都是完美数。显然,6是第1个(即最小的)完美数。下面流程图的功能是求500以内所有的完美数。【流程图】 循环开始框中要注明:循环变量=初始值,终值[,步长],步长为1时可以缺省。如果某自然数小于其所有真因子之和(例如24<1+2+3+4+6+8+12),则称该自然数为亏数;如果某自然数大于其所有真因子之和(例如8>1+2+4),则称该自然数为贏数;如果某自然数等于从1开始的若干个连续自然数之和(例如10=1+2+3+4)则称该自然数为三角形数。据此定义,自然数496是( )。供选择答案:A.亏数 B.赢数 C.完美数,非三角形数 D.完美数和三角形数

考题 阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 [说明] 下面的代码运行时,从键盘输入一个四位数(各位数字互不相同,可以有0),取出组成该四位数的每一位数,重组成由这四个数字构成的最大四位数max4和最小四位数min4(有0时为三位数),计算max4与min4的差值,得到一个新的四位数。若该数不等于6174,则重复以上过程,直到得到6174为止。 例如,输入1234,则首先由4321-1234,得到3087;然后由8730-378,得到8352;最后由8532-2358,得到6174。 [C代码] #include<stdio.h> int difference(inta[]) ( intt,i,j,max4,min4; for(i=0; i<3; i++){/*用简单选择排序法将a[0]~a[3]按照从大到小的顺序排列*/ t=i; for(j=i+1; ______;j++) if(a[j]>a[t]) ______; if(t!=i){ int temp=a[t]; a[t]=a[i]; a[i]=temp; } } max4=______; min4=______; return max4-min4; } int main() { intn,a[4]; printf("inputa positive four-digit number:"); scanf("%d", while(n!=6174){ a[0]= ______; /*取n的千位数字*/ a[1]=n/100%10; /*取n的百位数字*/ a[2]=n/10%10; /*取n的十位数字*/ a[3]= ______; //取n的个位数字*/ n=difference(a); } return 0; }

考题 阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。【说明】设[a1b1],[a2b2],...[anbn]是数轴上从左到右排列的n个互不重叠的区间(a1

考题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有整数数组A[1:N](N>1),其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。 例如,若数组元素依次为3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了A[1:N]中所有从下标i到下标j(j≥i)的各元素之和S,并动态地记录其最大值M。 【流程图】 注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值

考题 所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。

考题 问答题所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。