2007年遥感所考博《程序设计与算法语言》 g.Xk6"kO
一. 选择题(每小题2分,共40分) )cJ>&g4]
S\TXx79PhC
1. int a = 2,则执行完表达式a*=a+=a-=a*a;后,a的值是 ()。 GkJcd;
A) -4; B) 0; C) -8; D) 16; %rptI$^*X
2. 以下程序段中while 循环执行的次数是()。 )SmnLvL
int k=0; +%W8Juu
while(k=1)k++; kMQ
/9~
A)无限次; B)有语法错,不能执行 C.jWT1
C)一次也不执行 D)执行1次 1Nt
&+o
3. 用来表示一个变量的地址或者表示另一变量的地址的变量是()。 Z0Z6aZeb
A. 函数; B.指针; C.数组; D.结构体; W*C~Xba<
4. 若有说明:int a[][2]={1,2,3,4,5,6,7 }; 则a数组第一维的大小是() S!b18|o
"
A. 2 B. 3 C. 4 D. 无确定值 .h
at!Tt9
5. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( )。 jn2=)KBa_
A. 不确定 B. n-i+1 C. i D. n-i qE~_}4\Z9
6. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。 3xChik{
A. 808 B. 818 C. 1010 D. 1020 F[jE#M=k
7. 在任意-棵二叉树中,若终端结点的个数为M,度为2的结点数为8,则M=()。 5BhR4+1J
A.8 B. 9 C.10 D.11
;/K2h_=3z
8. 链表不具备的特点是( )。 )dT@0Ys%
A)可随机访问任何一个元素; _M^.4H2
B)无需事先估计存储空间大小; (&:gD4.
C)插入、删除操作不需要移动元素; <gp?}Lk
D)所需存储空间与线性表长度成正比; 11=$]K>
9. 连续存储设计时,存储单元的地址( )。 jo`ZuN{
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续 gfQ?k
10. 在右图的流程图中,如果标记为b的运算执行了m次(m>1),那么标记为a的运算的执行次数为( )。 n<ZPWlJ
A.1; B.m-1; C.m; D.m+l; 5f-b>=02
Zl9@E;|=
[qYr~:` -[
<g[z jV9p
11. 如下定义:int m =2; int n = m<<3, 则n = () g$nS6w|5H
A.2 B. 8 C. 0 D. 16 #4^d#Gj
12. 设栈的输入序列是1,2,3,4,则____不可能是其出栈序列。( )。 JVE\{ e)
A)1,2,4,3; B)2,1,3,4; C)1,4,3,2; D)4,3,1,2; A]z*#+Sl
Wc3z7xK1@
13. 在C语言中,若函数调用时实参是数组名,则传递给对应形参的是( )。
.Bm%
A)数组空间的首地址; B)数组的第一个元素值; V0nQmsP1U
C)数组中元素的个数; D)数组中所有的元素; 1+x"
5<(W
14. 如下代码输出结果为() b^1QyX^?:
#define ADD(x) (x)+(x) O*EV~{
K
main() 6%v9o?:~l
{ int a=4,b=6,c=7,d=ADD(a+b)*c; %Y^J''
printf(“d=%d”,d); u!_l
/'\
} COrk (
V
A d=70 B d=140 C d=280 D d=80 [,zq
15. 如下定义:int x = 15, int n = 2, 则x%=(n+=3)后,x的值为(): "/W[gP[y%
A. 0 B. 1 C. 2 D. 10 %q {q.(M#
16. 排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。 8t-GsjHb
A)希尔排序 B)冒泡排序 c)插入排序 D)选择排序 .|UQ)J?s
17. 能将高级语言程序转换成目标语言程序的是______。 ,^(]
zZh
A)调试程序 B)解释程序 C)编译程序 D)编辑程序 G95,J/w
r* *zjv>
18. 下面语句的输出结果是_______。 c`;\sW-_W
Printf("%d\n",strlen("\t\"\065\xff\n")); 3*b5V<}'|
A)14 B)8 C)5 D)输出项不合法,无正常输出 j)A#}4jd
\/A.j|by,>
19. 以下语句或语句组中,能正确进行字符串赋值的是________。 tK#R`AQ
A)char *sp; *sp="right!"; B)char s[lO];s="right! "; {z#2gc'Q
C)char s[10];*s="right! "; D)char *sp="right! "; C8N)!5(A
20. 对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 {$*N1$(%
A)log2n B)n/2 C)n D)n+l @-N` W9
-yYdj1y;
二. 问答题(共三题,20分) `8:
0x?X
"q@m6fs
1. 请指出以下程序中的错误:(6分) KyvZ?R
void main () QLA.;`HIE
{ { _rfhz
static int a[10]={0,1,2,3,4,5,6,7,8,9,10}; P]E-Wp'p
int x=3;y=6; q'2vE;z Kb
for(i=1; i<10; i++); _T=g?0
q
printf(〞%d %d〞,a+x, a[i+1]+y) $o^Z$VmL
} NW3c_]`=
G
dgL}"*F
2. 试述软件测试的主要方法及每种方法特点。(7分) bS.w<V
Ew
。 "
qI99
e
3. 试述面向对象程序开发语言的主要特点及其对于软件开发的作用。(7分) Bf_$BCyGW
。 I<SgKva;c
x-^6U
三. 算法与程序设计题(共40分) OMGggg
$Y$9]G":
1. 写出一个程序,它能读入一个正整数n,再逐行读入一个n*n的矩阵的元素(矩阵元素为整数,输入时相邻的整数用空格隔开),找出这个矩阵的最小的元素,再输出该元素的行号和列号(行号和列号均从1开始)(7分) azcPeAe
+Y\:Q<eMFg
2. 编写一程序,输入一个不大于5位的正整数,并实现下列操作:求出它是几位数?分别打印出每位数字?按逆序打印出各位数字,例如原数为516,应输出615。(8分) P T"}2sR)
dWqn7+:
sdu?#O+c1
3. 银行的存款利率如下。某人有钱n元,如果要存20年时间,编程求得怎样存20年后的本利合计最多。(假定银行对定期存款过期不付利息)。(10分) 1^iBS
月利息率(%) 存储期限 ~j0rORy]
0.63 一年
&)eg3P)7
0.66 二年 0lw>
mxN
0.69 三年 0mw1CUx9K
0.75 五年 gcLz}84
0.84 八年 yD
WIflP0;
FLZ9pb[T
4. 有一个水库蓄水量T为1000万立方米,含有某种特定污染物W总量50千克,一段时间内含有污染物质W的水流入水库,浓度2千克/万立方米的,流量为3万立米/小时。同时水库以2万立米/小时的流量向下游泻水,设计程序计算30个小时后水库中该污染物质W的总量。(假设流入库区的污染物质立即在水库内部均匀分布)(15分) qnm_#!&uHT