全))考试考试
2002007777年上半年程序员下午试卷
(考试时间 14:00~16:30 共 150 分钟)
请按下述要求正确填写答题纸
1. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2. 在答题纸的指定位置填写准考证号、出生年月日和姓名。
3. 答题纸上除填写上述内容外只能写解答。
4. 本试卷共 8 道题,试题一至试题三是必答题,试题四至试题五选答 1 道,
试题六至试题八选答 1 道。每题 15 分,满分 75 分。
试题号一~三四~五六~八
选择方法必答题选答 1 题选答 1 题
5. 解答时字迹务必清楚,字迹不清时,将不评分。
6. 仿照下面例题,将解答写在答题纸的对应栏内。
例题
2007 年上半年全)考试日期是(1)
月(2)日。
因为正确的解答是“5 月 26 日”,故在答题纸的对应栏内写上“5”和
“26”(参看下表)。
例题解答栏
(1) 5
(2) 26
2007 年上半年程序员下午试卷第1页(共11页)
试题一试题一(( (共( 共共共 15 分分分)分)) )
阅读以下说明和流程图,回答问题 1 和问题 2,将解答填入答题纸的对应栏内。
[[ [说明[ 说明说明]] ] ]
为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ ISBN ”和
10 个数字组成,其格式为: ISBN 组号-出版者号-书名号-校验码。其中,校验码是根据
前面 9 个数字计算得到的,用于计算机自动校验。假设标准书号的 10 个数字依次是
a(1),a(2),…,a(10) ,则校验码 a(10) 的设置应使 S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10) 能被
11 整除。如果校验码 a(10) 应设置成 10 ,则规定以“ X”表示之。例如,信息处理技术
员考试大纲的标准书号为: ISBN 7-302-11191-X。第 1 段上的数字“ 7”是国际 ISBN
中心分配给中国 ISBN 中心管理的组号。第 2 段上的“ 302 ”表示清华大学出版社。标准
书号的校验过程如图 1-1 所示,计算校验码的过程如图 1-2 所示,其中, Mod(S,11) 表示
S 除以 11 得到的余数。
[[ [流程图[ 流程图流程图]] ]]
Y →
a(10)= ’X’? 0 S
→
N 10 a(10) 循环开始
I = 1, ( 2 ) -
0 → S
( 3 ) -
循环开始
I = 1,10 循环结束
S + ( 1 ) → S
Mod(S,11) → R
循环结束( 4 ) → a(10)
Y N Y
Mod(S,11)=0? a(10) = 10 ?
N
校验正确书号有错’X’→ a(10)
图 1-1 校验过程图 1-2 计算校验码的过程
[[ [问题[ 问题问题 1]1] 1] 1] 请填补流程图中的空缺( 1)~( 4)。
[[ [问题[ 问题问题 2]2] 2] 2] 设“程序员考试大纲”标准书号前 9 个数字为 7-302-08493,请写出其校验码。
2007 年上半年程序员下午试卷第2页(共11页)
试题二试题二(( (共( 共共共 15 1515 15 分分分分) )) )
阅读以下说明和 C 语言函数,将解答填入答题纸的对应栏内。
[[ [说明[ 说明说明]] ] ]
下面待修改的 C 程序完成的功能是:对于给定的一个长正整数,从其个位数开始,
每隔一位取一个数字(即取其个位、百位、万位等数字), 形成一个新的整数并输出。
例如,将该程序修改正确后,运行时若输入“ 14251382 ”,则输出的整数为“ 4532 ”。
下面给出的 C 程序代码中有五个错误,请指出所有的错误。
[C[C [C[C 程序代码程序代码程序代码]] ] ]
行号行号代码代码代码
01 01 <> #include
02 02
03 03 main() int
04 04 {
05 05 num; n, long
06 06 i; int
07 07
08 08 { do
09 09 printf("请输入一个正整数"); :
10 10 scanf("%ld",n);
11 11 0); <= }while(n
12 12 1; = k
13
2007年上半年程序员下午试题 [文档在线提供] 来自淘豆网m.daumloan.com转载请标明出处.