用户名 密码  免费注册   加入VIP   如何升级   如何付款   会员好评
  中国软考考试门户网站
  考试报名-试题答案-成绩查询
软考考试| 软考资讯 | 历年真题 | 模拟试题 | 报考指南 | 官方网站 | 热点专题
 北京 天津 上海 重庆 江苏 浙江 山东 江西      广东 福建 广西 海南 河南 河北 湖南 湖北
 安徽 山西 四川 云南 贵州 陕西 吉林 辽宁      甘肃 宁夏 青海 新疆 西藏 黑龙江 内蒙古
首页 | 站内导航 | 新闻中心 | 试题中心 | 下载中心 | 出国留学 | 求职招聘 | 校园娱乐 | 网络课程 | 学习论坛 | 会员中心
软考频道首页 | 软考报名资讯 | 软考历年真题 | 软考模拟试题 | 软考报考指南 | 网址大全 | 加入收藏
软考课程推荐 | 精品学习网万门课程报名优惠!
 首页 >> 计算机技术与软件水平考试 >> 软考全真试题 >>一九九九年度初级程序员级下午试题

一九九九年度初级程序员级下午试题

http://www.51Test.net  2001年10月22日  来源:51Test.net

请按下述要求正确填写答卷,若不按下述要求解答,将不分数
1.在答卷的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答卷的指定位置填写准考证编号、出生年月日和姓名。
3.答卷上除填写上述内容外只能写解答。
4.本试卷的4道试题都是必答题,请全部解答。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答卷的对应栏内。
例题
一九九九年度举行的计算机软件专业技术资格和水平考试的日期是2000年(1)月(2)日。
因为正确的答案是4月16日,故在答卷的对应栏内写上‘4’和‘16’(参看下表)。
例 题 解 答 栏
(1) 4
(2)  16

试题 一
阅读以下C代码,将应填入(n)处的字句写在答卷的对应栏内。
【程序1.1】
#include
main()
{ struct num{ int x; int y;
} sa[] = {{2, 32}, {8, 16}, {4, 48};
struct num *p = sa+1;
int x;
x = p->y / sa[0].x * ++p->x;
printf(″x = %d p->x = %d\n″, x, p->x);
}
程序1.1的输出结果是(1) 。
【程序1.2】
#include
int p(int k, int a[])
{ int m, i, c = 0;
for(m = 2; i <= m; i++) for(i=2; i <=m; i++) if (!(m % i)) break; if (i== m) a[c++]=m; } return c; } #define maxn 20 main() { int i, m, s[maxn]; m=p(13, s); for(i=0; i < m; i++) printf(″%4d\t″, s[i]); printf(″\n″); } 程序1.2的输出结果是(2) ;函数int p(int k, int a[])的功能是(3) 。 【程序1.3】 #include
void s(int a[], int n)
{ int i, j, t;
for(i = 0; i = 0 && t 6; i++) printf(″%4d\t″, c[i]); printf(″\n″); } 程序1.3的输出结果是(4) ;函数s(int a[], int n)的功能是(5) 。
试题 二
阅读下列程序说明和C代码,将应填入(n)处的字句写在答卷的对应栏内。
【程序2.1说明】
程序2.1求以下级数和的近似值,约定求和的精度为0.000001。
x3 x5 x7
s(x) = x – + - + ……
3*1! 5*2! 7*3!
【程序2.1】
#include
#include
#define Epsilon 0.000001
main()
{ int i; double s, x, t;
printf(″Enter x.\n″); scanf(″%1f″, &x);
s = 0.0; t = x; i = 0;
while (fabs(t) >= Epsilon) {
s =(1); i++;
t = -t * x * x * (2) /((2 * i + 1) * i);
}
printf(″s(%f) = %f\n″, x, s);
}
【程序2.2说明】
本程序中有函数rep(char *s, char *sl, char *s2),其形参字符串sl和s2有相同的字符个数,且sl中各字
符互不相同。该函数实现将已知字符串s中所有在字符串sl中也出现的字符都用字符串s2中的对应位置的字符代
替。例如:设字符串s、sl和s2分别为:
s[ ] = ″ABCABC″, sl[ ] = ″AC″, s2[ ] = ″ZX″
则s2中的字符Z和X分别对应sl中的字符A和C,函数调用rep(s, sl, s2)将字符串s的内容变为″ZBXZBX″。
【程序2.2】
#include
void rep(char *s, char *sl, char *s2)
{ char *p;
for( ; s; s++) { /* 顺序考察s中的各个字符 */
for( ; s; s++; p &&(3); p++); /* 找 *s是否在sl中出现 */
if ( (4) ) s = *(s2+ (5) ); /* 找到,用s2中的对应字符替代 */
}
}
main()
{ char s[] = ″ABCABC″;
rep(s, ″AC″, ″ZX″); printf(″%s\n″, s);
}

试题 三
阅读下列程序说明和C,将应填入(n)处的字句写在答卷的对应栏内。
【程序3说明】
本程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数。
程序一边读入整数,一边构造一个从大到小顺序链接的链表,直至不能从键盘读入整数,然后顺序输出链表上
各表元的整数值。主函数每读入一个整数,就调用函数insert( ),函数insert( )将还未出现在链表上的整
数按从大到小的顺序插入到链表中。
为了插入方便,链表在表首有一个辅助表元。
【程序3】
#include
#include
typedef struct node { int val;
struct node *next;
} NODE;
void insert(NODE *list, int x)
{ NODE *u, *v, *p;
u = list; v = u->next;
while ((1)&& x val) /* 寻找插入位置 */
{ u = v; v = v->next; }
if (v == NULL || (2)) { /* 判是否要插入新表元 */
p = (NODE *)malloc(sizeof(NODE)); P->val = x; /* 生成新表元 */
(3) = v; (4) = p; /* 插入新表元 */
}
}
main( )
{ int x;
NODE *head, *p;
/* 首先建立只有辅助表元的空链表 */
head = (NODE *)malloc(sizeof(NODE));
(5) = NULL;
printf(″Enter integers: \n″);
while (scanf(″%d″, &x) == 1) /* 反复读入整数插入链表 */
insert(head, x);
for(p =head->next; p !=NULL; p=p->next)
printf(″%d\t″, p->val);
printf(″\n\n″);
}

试题 四

阅读下列程序说明和C代码,将应填入 (n) 处的字句写在答卷的对应栏内。
【程序4说明】
本程序对给定的n(n≤100),计算并输出k!(k = 1, 2, …, n)的全部有效数字,因k!的值可能很大,故采用
一维数组存储计算结果。设数组的每个元素存储k!的一位数字,并约定从低位到高位依次存于数组的第一个位
置、第二个位置、……。例如,5!= 120,在数组a中的存储形式为:
a[2] a[1] a[0]


 


...


 


1


2


0

程序中,计算k!采用对已求得的(k-1)!的结果连续累加k-1次后求出。例如,4! = 24, 则计算5!对原来的24
再累加4次24后得到120。为了控制累加的位数,另引入整型变量c用于记录当前(k-1)!的位数。
【程序4】
#include
#define MAXN 1000
int a[MAXN], b[MAXN];
void pnext( int k, int *cp)/* 已知a[ ]中的(k-1)!,求出k!存于a[ ].*/
{ int c = *cp, i, m, r;
for(i = 0; i k; m++) /* 通过累加求k! */ for(i=0; i < c; i++) { r=(1) ; a[i]=r % 10; (2) +=r/10; } /* 处理最高位进位 */ r=a[c]; while (r>0) { a[ (3) ] = r%10; r = r/10; }
(4) = c;
}
void write(int *a, int k, int c)
{ int i;
printf(″%4d!=″, k);
for(i = (5) ; i >= 0; i--) printf(″%d″, a[i]);
printf(″\n\n″);
}
main()
{ int n, c, k ;
printf(″Enter the number n(<=100):″); scanf(″%d″, &n); a[0]=1; c=1; write(a, l, c); for(k=2; k <=n; k++) { pnext(k, &c); write(a, k, c); getchar(); } }                         



来源:无忧考网-软考 http://www.51test.net/rjsp




更多信息请访问: 无忧考网软考频道  交流讨论: 精品学习论坛
   试题计算机技术与软件水平考试相关文章
   2008年5月计算机软件水平考试试题答案汇总   2008-6-2
   计算机技术与软件水平考试系统分析员试题(3)   2006-6-7
   计算机技术与软件水平考试系统分析员试题(2)   2006-6-7
   计算机技术与软件水平考试系统分析员试题(1)   2006-6-7
   计算机技术与软件水平考试网络设计师级试题(1)   2006-6-7
   计算机技术与软件水平考试网络工程师模拟试题含答案(1)   2006-6-7
   计算机技术与软件水平考试软件工程试题集粹   2006-6-7
   计算机技术与软件水平考试面向对象程序设计试题(7)   2006-6-7
   计算机技术与软件水平考试面向对象程序设计试题(6)   2006-6-7
   计算机技术与软件水平考试面向对象程序设计试题(5)   2006-6-7
声明:由于各方面情况的不断调整与变化,无忧考网所提供的所有信息仅供参考,敬请考生以权威部门公布的正式信息为准。如果本网站内容不慎侵犯了您的权益请与我们联系,无忧考网将及时处理。

     
 软考频道热点专题
2008年5月软件水平考试成绩查询专题
2008年5月计算机软件水平考试试题答案汇总
2008年软件水平考试专题
软件水平考试试题专题

 软考频道特别推荐
2008上半年软件考试成绩查询通知
新疆计算机技术与软件资格考试28日起报名
 >> 全部软考热点专题推荐

 软考频道最新更新
2008上半年软件考试成绩查询通知
新疆计算机技术与软件资格考试28日起报名
2008新疆计算机软件水平和资格考试成绩查询
河北:08年下半年计算机软考6月11日至7月2日报名
2008年5月软件水平考试成绩查询专题
2008年5月计算机软件水平考试试题答案汇总
赛迪教育软考培训:www.ccidedu.com
08上半年全国软件考试报名截止 5月24日考试
浙江软考网:www.zjrjks.org
2008年上半年全国软件考试报名3月31日截止
回到顶部