资源描述
软件水平考试初级程序员精选模拟试题及答案
试题1 从供选择的答案中,选出应填入_n_内的正确答案,把编号写在答卷的对应栏内。
软件可移植性是用来衡量软件的_A_的重要尺度之一。为了提高软件的可移植性,应注意提高软件的_B_ o采用_C_有助
于提高_B_ o为厂提高可移植性,还应_D
o使用E语言开
发的系统软件具有较好的可移植性。
供选择的答案A:①通用性
A:①通用性
②效率
③质量
④人一机界面B:①使用的方便性
B:①使用的方便性
②简洁性
③可靠性
④设备独立性C:①优化算法
C:①优化算法
②专用设备
③表格驱
动方式
④树型文件目录
D:①有完备的文档资料②选择好的宿主计算机③减少输入/输出次数④选择好的操作系统
E:① Cobol
②APL
④ PL/1
试题2 从供选择的答案中.选出应填入_n_内的正确答案.把编号写在答卷的对应栏内。
case l:printf("**l**");break;
)case 2:printf(n**2**H);break;
)printf("\n");
(1) **0** (2) **0****2** (3) **0****l****2** (4)有语法错误以下合法的数组说明是()。
(1) char a[6]=,,string";int a[5] = {0,l,2,3,4,5);
(2) char a=nstring'*;INT a[] = (0,12,3,4,5);
3. 下述程序代码中有语法错误的行是()。
int i, ia[10], ib[10] ; /*第一行*/for (i=0; i<=9; i++) /*第 2 行*/
ia=0; /* 第 3 行*/ib=ia; /第 4 行*/
⑴第1行⑵第2行⑶第3行(4)第4行若已定义
int a[9],*p=a;并在以后的语句中未改变p的值,则不能表示地址的表达式
是()。
(1)p+1 (2)a+1 (3)a++ (4)++p
答案:
1. (4) 2. (2) 3. (4) 4. (4) 5. (3)
所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于 该正整数。例如编写程序,求得并输出全部水仙花数的个数。请填空 完善程序。
ftincludemain()
(int hun, ten,one; /*百位数、十位数、个位数*/
int num,count=0;for (num= 100;(1); num++)
hum=
—⑵
ten=
—⑶
one=
—⑷
if (
<
printf (,f],num); count++;
printf (,r \n,r);
printf (,fNo. =%d\nM, count);)
(1) num< 1000(或 num<=999)num/100
(2) (num-hun*100)/10num_x0010_
(3) num=hun*hun*hun+ten*ten*ten+one*one*one( 或hun*100+t en*10+on
hun*hun*hun+ten*ten*ten+one*one*one)请写出执行下述程序的输出结果。
ttincludemain()
(int i=100,j=34,k=-63,m=4;
int u=-15,v=71,w=27;i+=j;
j-=k;k*=-m;
m/=3*j-l;u%=v-2*w;
printf(wi=%d,j=%d,k=%d,m=%d,u=%dn,i,j,k,m,u);
答案:i=134, j=97,k=252,m=0,u=-15阅读下述程序,写出运行结果。
ftincludemain()
(int a,y;
a=10;y=O;
do(
a+=2 ;.
y+=a;.
printf("a=%d,y=%d\nM,a,y);if (y>20)
break;} while (a=14);
printf(Ha=%d\nn,a);}
答案:
a=12 y=12a=16 y=28 a=16
提示:首先第一次的结果不用说了?需要的话,请先把C的书再读 一遍先!
a=12 y=12
接着大家要看仔细,if(y>20) break;难点在此,意思是当上面 的Y>20时结束这一段,再去判断While的条件,所以这里会接着加, a=12+2=14 y= 14+12=26 ok!26>20,我们去判断 while 的条件吧,a=14, 此时a就正好=14,再次循环・a= 14+2=16 y=12+16=28,然后28>20 跳出,a不等于14再次跳出,执行最后一句输出,定16.
^include
main()
(
static int a[5][5]=(
{1,2,3,4,0},
{2,3,4,0,6},
{3,0,1,7,5},
(0,0,2,4,1),
(8,4,3,2,7) );
int i,j;
for (i=0;i<5;i++)
for (j=0;j<5;j++)
if (a[j]==O)break;
printf("M”,a[j]); printf (*' \nw);}
答案:
12 3 43 4
38 4 3 2 7
个人解析下:
首先我们从for (j=0; j<5;j++)看起,往下是(
if (a[j]==0)break;
printf ("M”,a[j]);}
提示:把a[5][5]二维数组中的每列中从左至右第一个为零的数之前的数输出!
for (i=0;i<5;i++)就是 5 行ttinclude
ttinclude fun (char *w,int n)
(char t,*sl,*s2;
sl=w;s2=w+n-l;
while (si (t=*sl++
*sl=*s2一一*s2=t;
))
mainO(
char *p;p=”1234567";
fun (p,strlen(p));puts(p);
)答案:1711717
提示:主要是认清楚S1=? S2二?首先S1=W,这S1存的是字符串W的首地址,而S2=w+N-l=P+7-1 OK,也就是W中最后一个字符的地址・
阅读下列函数说明和C函数,将应填入_(n)_处的字句写在答题 纸的对应栏内。
[函数1.1说明]
函数palindrome (chars [])的功能是:判断字符串s是否为回文 字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都 一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串, 而“LEVAL"不是。
[函数1. 1]int palindrome(char S[])
( char *pi, *pj;pi=S;pj=s+strlen(S) -1:
while ( pi pi++; pj―;)
if(_ (2)_)return-1;else return 0;
)[函数1.2说明]
函数f (char *str, char del)的功能是;将非空字符串str分割 成若干个子字符串并输出,del表示分割时的标志字符。
例如若str的值为“33123333 435" , del的值为<3,,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5" o
[函数L2]
void f (char*str, char del)( int i, j, len;
len = strlen(str);/*忽略连续
/*忽略连续
while (i while(—(3)_)i++;的标志字符*/
/*寻找从str开始直到标志字符出现的一个子字符串*/j = i + 1;
while (str[j] !=del && str[j] !=' \0, ) j++;_ (4)_=M\0n;/*给找到的字符序列置字符
串结束标志*/printf(H %s\tn, &str):'
-⑸_;)
)答案:
(1) *pi == *pjpi (3)str== del
(4) str[j]i = j+1
提示:首先看第一题 条件:pi=S;pj=s+strlen(S)-1: pi就是首地址啦,pj就是末地址啦,我们需要把第一个和最后一个比较,
第二和倒二比• •. 0K,那while ( pi 第二题,有注释哦•不懂就提出来-不过偶想大家都会滴-
试题11阅读以下程序说明和C程序,将应填入_(n)_处的字句,写在答卷 的对应栏内。
[程序说明]
本程序中的函数factor ( m,fac,cp )用来计算正整m ( m > 2 ) 的除自身以外的所有不同因子的和。该函数返回因子和,并把各因子 从小到大依次存放在数组fac中,其因子个数存入在cp所指的变 量中。.
例如m=16,求得的因子为(1, 2, 4, 8)
提示:因子和为15,因子个数为4。
程序假定正整数m的不同因子个数不会超过100个。
[程序]include
# define N 100long factor (int m,int fac[],int *cp)
(int cl, c2 , i, k; long s;
虚拟存贮管理系统的基础是程序的局部性理论。此理论的基本含 义是—A_ o局部性有两种表现形式:时间局部性和_B_。它们 的意义分别为_C_和_D_ o根据局部性理论。Denning提出了供选择的答案
A, B:①程序执行时对主存的访问是不均匀的②代码的顺序 执行变量的连续访问④ 指令局部性 ⑤ 数据局部性⑥
空间局部性C, D:①最新被访问的单元,很可能在不久的将来还要被访问。
② 最近被访问的单元,很可能它附近的单元也即将被访问。
③ 结构化程序设计,很少出现转移语句程序中循环语句的执行时间一般很长
④ 程序中使用的数据局部于各子程序E: ①Cache结构的思想②工作集
理论③最近最少使用(LRU)页面置换算法④先进先出
(FIFO)页面置换算法试题3
从下列关于数据库系统的特点的叙述中,选出五条正确的叙述,把编号依次写在答卷的对应栏内。
①数据库避免了一切数据重复。
fac[O] = 1;
for (cl = s = l,c2 = N-l,⑴;;)(
k = m/i;if (—⑵—)
if (⑶)( fac[cl++] = i;
fac[c2—] = k;s + = i+k;
)else (
fac[cl++] = i;s + = i;
)i++;
if(i>=k) brdak;}
for (c2++;c2 <= N-l;c2++)—(4)—;
*cp=cl;return (5);
答案:
3 分 i = 2,或 c 1 + 1
1) 3 分 m % i == 0 (或! (m % i)或 m = i * k )3 分 i !=k(或 i <k)
2) 3 分 fac [ cl ++ ] = fac [ c2 ]答cl ++给1分,'='左右只对一半给1分。
3) 3 分 s以下不是c语言规定保留字的是()。
(1) floatinteger
(2) signedunsigned
1. 设int型变量x有初始值3,则表达式x++*5/l0的值是()0
(1) 12
(2) 3下述程序执行后的输出结果是()
^includemain () int x='f';
printf(M% %c\nw,f a' +(x-' a' +1));
⑴G⑵H
⑶I⑷J
2. 设有程序,整理!
^includemain()
(int i,j;
for (i=0, j=l; i<=j+l; i+=2, j—)printf (n%d\nn, i);
)在运行上述程序时,for语句中循环体的执行次数是()
⑴3⑵2
⑶1⑷0
3. 在下述选项时,没有构成死循环的程序是()int i=100
while (1)
i=i_x0010_0+l;if (i>100) break;
)for ;
(2) int k=1000;do
(++k;
)while (k>=10000);int s=36;
while (s);--s;答案:
1. (2) 2. (2) 3. (1) 4. (3) 5. (3)
1. 假定a和b为int型变量,则执行下述语句组后,b的值为()。 a=l;
b=10;
do(
b-=a; a++;} while (b--<0);
(1)9 (2)-2 (3)-1 (4)8
2. 设有变量说明语句int a=l,b=O;
则执行以下程序段的输出结果为()。
switch (a)(
case 1:
switch (b)(
case 0:printf(n**0**n);break;case 1:printf(n**l**H);break;
)case 2:printf(n**2**H);break;
)printf (11 \nM);
(1)**0** (2) **0****2** (3) **0****l****2** (4)有语法错误以下合法的数组说明是()。
(1) char a[6]=',stringH;int a[5] = {0,l,2,3,4,5);
(2) char a="string”;INT a[] = (0,12,3,4,5);
3. 下述程序代码中有语法错误的行是()。
int i, ia[10], ib[10] ; /*第一行*/for (i=0;i<
=9; i++) /*第 2 行*/ia=0; /* 第 3 行*/
ib=ia; /第 4 行*/⑴第1行⑵第2行⑶第3行⑷第4行
4. 若已定义int a[9],*p=a;
提示:在以后的语句中未改变p的值,则不能表示a[l]地址的表 达式是()。
(1)p+1 (2)a+1 (3)a++ (4)++p答案:
1. (4) 2. (2) 3. (4) 4. (4) 5. (3)
数据库减少了数据冗余。
② 各类用户程序均可随意地使用数据库中的各种数据。
③ 用户程序按所对应的子模式使用数据库中的数据。
④ 数据库数据可以为经DBA认可的各用户所共享。
⑤ 数据库系统中如概念模式有改变,则需将与其有关的子模式做 相应改变,否则用户程序需改写。
⑥ 数据库系统中的概念模式如有改变,子模式不必变,因而用户 程序亦不必改写。
⑦ 数据库系统的存贮模式如有改变,则概念模式应予调整,否则 用户程序会在执行中出错。
⑧ 数据库系统的存贮模式如有改变,概念模式无需改动。
⑨ 数据一致性系指数据库中的数据类型一致。
试题4
从供选择的答案中选出应填入下列叙述中的_n_内的正确答 案,把编号写在答卷的对应栏内。
在查找算法中,可用平均查找长度(记为ASL)来衡量一个查找算 法的优劣,其定义为
此处Pi为表中第i个记录被查找的概率,Ci为查找第i个记 录时已进行的和关键字比较的次数,n为表中现有记录数。
以下叙述中均假定每一个记录被查找的概率相等,即Pi=l/n( i=l, 2,…,n ) o
当表中的记录连续存放在一个一维数组中时,可采用顺序查找与
折半查找方法(折半查找要求表是按关键字有序的)。顺序查找时的ASL为_A_,折半查找时的ASL为_B_。记录的关键字有序时,
用二叉排序树查找记录,在最坏的情况下,ASL为_C_。当二叉 排序树是一棵平衡树时,ASL为_D_ o在平衡树上删除一个结点后可以通过旋转使其平衡,最坏的情形下需_E_次旋转。-
供选择的答案A〜E:
0
00
① 0(1)
②(log2n)③((log2n)2)
④
(nlog2n)
⑤ 0(n)
⑥ 0(n2)
试题5
从供选择的答案中,选出应填入_n_内的正确答案,把编号写 在答卷的对应栏内。
模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度。
1、一组语句在程序的多处出现,为了节省内存空间把这些语句 放在一个模块中,该模块的内聚度是_A_的。
2、将几个逻辑上相似的成分放在一个模块中,该模块的内聚度 是_B_的。
3、模块中所有成分引用共同的数据,该模块的内聚度是_C_ 的。
4、模块内的某成分的输出是另一些成分的输入,该模块的内聚度是_D_的。
5、模块中所有成分结合起来完成一项任务,该模块的内聚度是 _E_的。它具有简明的外部界面,由它构成的软件易于理解、测试 和维护。
供选择的答案
A〜E:①功能性 ②顺序性 ③通信性 ④过程 性⑤偶然性 ⑥瞬时性 ⑦逻辑性
试题6
从供选择的答案中选出应填入下列叙述中的_n_内的正确答 案,把编号写在答卷的对应栏内。
1.查找时间是_A_ o微型计算机常配的滚筒式绘图机中_C_ o
3. 与激光打印机有关的概念是_D_ o阅读条形码的硬件没备是_E_ o
供选择的答案A: ① 使磁头移动到要找的柱面上所需的时间
② 在柱面上找到要找的磁道所需的时间在磁道上找到要找的扇区所需的时间
③ 在扇区中找到要找的数据所需的时间B:①可移动性
B:①可移动性
②传送速率
奇偶校验能力
奇偶校验能力
④存贮容量
C :① 只能配一支绘图笔绘图笔沿两条坐标轴运动
② 绘图笔沿一条坐标轴运动;图纸沿另一条坐标轴运动④图纸沿两条坐标轴运动
D:① 光纤、聚焦、折射 ② 曝光、显影、定影 ③光 笔、点阵、扫描 ④光栅、映像、合成E:①读卡机②光扫描器③
光符阅读器④磁条阅读器试题7
从供选择的答案中,选出应填入_n_内的正确答案,把编号 写在答卷的对应栏内。
用二进制加法器对二一十进制编码的十进制数求和,当和的四位 二一十进制编码(相当于一位十进制数)小于等于1001 (相当于 十进制数9)且向高位无进位时,_A_;当和小于等于1001且向 高位有进位时,_B_;当和大于1001时,_C_ o按照国标《信息交换用汉字编码字符集一一基本集》(即
GB2312 )规定,一个汉字由_D_个字节组成。为了达到中西文兼容 的目的,区分汉字与ASCII码,汉字编码的最高位为_E_ o供选择的答案
A〜C:①不需修正 ②必须进行减6修正 ③必须进 行加6修正 ④ 修正方法不确定D、E:①0②1③2
2. 5
试题8从供选择的答案中选出应填入下面关于N模冗余系统的叙述中
的_n_内的正确答案,把编号写在答卷的对应栏内。
N模冗余系统是如下图所示,由N(N=2n+l)个相同部件的副本和一个(n+l)/N表决器组成,表决器把N个副本中占多数的输出 作为系统的输出。
设表决器完全可靠,且每个副本的可靠性为R0,则该N模冗余 系统的可靠性R=_A_ o若RO=e- X t,当入t= _B_ 时,R0= _C_ , R为不依赖于N的恒定值_D_ ;当RO小于_C_ , R 是N的_E_ o供选择的答案
•A: ① £ C1NR1O(1-RO)N-1i=0
n+1E C1NR1O(1-RO)N-1
i=0N
② £ C1NR1O(1-RO)N-1i=0
N指数函数
④ L ClNR10(l-R0)N-l
i=n+l
B〜D
:① 0.1
② 0. 347
③0.5
④ 0. 693
⑤ 0. 869
⑥0.9
E:
①单调递增函数
②单调递减函数
③对数函数
试题9
从供选择的答案中,选出应填入_n_内的正确答案,把编号 写在答卷的对应栏内。
RS-232-C是目前常见的一种接口标准,它是由_A_提出制定 的。该标准在OSI模型中属于_B_层协议标准。通过RS-232-C 来连接两个设备最少要连接_C_条线。这个标准的设计数据速率 是 _D_bps o在 _D_bps条件下,采用RS-422标准来代替 RS-232-C,连接设备间的距离可扩展到约原有的_E_倍。
⑤10
供选择的答案
A:
① CCITT
②EIA
③ IFIP
④ IEEE
B:
①物理
②数据链路
③网络
④运输
⑤会话
C, E:
①2
②3
③4
④7
⑥25⑦80
⑧
100
D:
① 4800
② 9600
③ 19200
④ 20000⑤ 64000试题10
1.假定a和b为int型变量,则执行下述语句组后,b的值为()oa=l;
b=10;do
(b-=a;
a++;} while (b—<0);
(1)9 (2)-2 (3)-1 (4)82设有变量说明语句
int a=l,b=0;则执行以下程序段的输出结果为()。
switch (a)(
case 1:
switch (b) case 0:printf (n**0**,f) ; break;
展开阅读全文