1991年程序员下午试题[2]

程序员 责任编辑:yujingyun 2008-08-30

添加老师微信

备考咨询

加我微信

摘要:试题3阅读下列程序说明和C程序,将应填入程序中__(n)__处的字句写在答卷纸的对应栏内。[程序说明]已知某数的前二项为2和3,其后继项根据当前最后二项的乘积按下列规则生成(1)若乘积为一位数,则该乘积即为数列的后继项;(2)若乘积为二位数,则该乘积的十位数和个位数依次作为数列的两个后继项。本程序输出该数列的前n项以及


试题 3
阅读下列程序说明和 C 程序,将应填入程序中__(n)__处的字句写在答卷纸的对应栏内。

[程序说明]
已知某数的前二项为2和3,其后继项根据当前最后二项的乘积按下列规则生成
(1)若乘积为一位数,则该乘积即为数列的后继项;
(2)若乘积为二位数,则该乘积的十位数和个位数依次作为数列的两个后继项。
本程序输出该数列的前n项以及它们的和。其中,函数sum(n,pa)返回数列的前n项之和,并将生成的前n项存放于首指针为pa的数组中。程序中规定输入的n值必须大于2并且不超过给定的常数值MAXNUM。
例如:若输入n值为10,则程序输出如下内容:
sum(10)=44
2 3 6 1 8 8 6 4 2 4

[程序]
#include <stdio.h>
#define MAXNUM 100
int n, *pa;
int sum( n,pa )
{
 int count,total,temp;
 *pa=2;
 __(1)__ = 3;
 total = 5; count = 2;
 while (count++<n)
 {
temp=.(pa-1)..pa;
if (temp<10)
{
 total+=temp;
 *(++pa)=temp;
}
else
{
 __(2)__ = temp/10;
 total += *pa;
 if ( count<n)
 {
count++;pa++;
__(3)__ = temp%10;
total += *pa;
 }
}
 }
 __(4)__;
}
main ()
{
 int n,.p,.q,num[MAXNUM];
 do {
printf( "Input N=? (2<N<%d):",MAXNUM+1 );
scanf( "%d",&n );
 } while ( __(5)__ );
 printf( "\nsum(%d)=%d\n",n,sum(n,num) );
 for ( p=num, q = __(6)__ ;p<q;p++) printf("%4d",*p );
 printf("\n");
}

[1]  [2]  [3]  [4]  [5]  [6]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取