全国计算机等级考试二级笔

(考试时间120分钟,满分100分)
一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项真涂在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指 D
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构中计算机中的表示
(2)下列关于栈的描述中错误的是 B
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 D
A)冒泡排序为n/2
B)冒泡排序为n
C)快速排序为n
D)快速排序为n(n-1)/2
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 C
A)log2n
B) n/2
C) n
D) n+1
(5)下列对于线性链表的描述中正确的是 A
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
(6)下列对于软件的描述中正确的是 C
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则

(7)为了使模块尽可能独立,要求 B
A)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强
B)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱
C)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱
D)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强
(8)下列描述中正确的是 D
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
(9)数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 D
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
(10)用树形结构表示实体之间联系的模型是 C
A)关系模型
B)网状模型
C)层次模型
D)以上三个都是
(11)算法具有五个特性,以下选项中不属于算法特性的是 B
A)有穷性
B)简洁性
C)可行性
D)确定性
(12)以下选项中可作为C语言合法常量的是 A
A)-80.
B)-080
C)-8e1.0
D)-80.0e
(13)以下叙述中正确的是 C
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
14.以下不能定义为用户标识符的是 D
A)Main
B)_0
C)_int
D)sizeof
(15)以下选项中,不能作为合法常量的是 B
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
(16)数字字符0的ASCII值为48,若有以下程序
main()
{ char a='1',b='2';
printf("%c,",b++);
printf("%d ",b-a);
}
程序运行后的输出结果是 C
A)3,2
B)50,2
C)2,2
D)2,50
(17)有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d ",n++,++m);
}
程序运行后的输出结果是 &n bsp; A
A)12353514
B)12353513
C)12343514
D)12343513
(18)有定义语句:int b;char c[10]; ,则正确的输入语句是 B
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
(19)有以下程序
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d ",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A
A)m=123n=456p=789
B)m=123 n=456 p=789
C)m=123,n=456,p=789
D)123 456 789
(20)有以下程序
main()
{
int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d ",a,b);
}
程序运行后的输出结果是 B
A)6,1
B)2,1
C)6,0
D)2,0
(21)有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d ",i,j,k);
}
程序运行后的输出结果是 D
A)1 2 3
B)2 3 4
C)2 2 3
D)2 3 3
(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

  1<b?a:c<d?c:d的值 %d="" &n="" (23)有以下程序="" (25)以下能正确定义一维数组的选项是="" (26)有以下程序="" 2="" 6="" \",i,j);="" \",j);="" a="{\'A\',\'B\',\'C\'};" a)1="" a[5]='\"0123\";' a[7]='\"a0\0a0\0\";int' a[]="{0,1,2,3,4,5};" a)2="" a)42="" a)int="" b="" b)2="" bsp;x="" b)45="" b)7="" b)char="" c="" c)3="" char="" c)56="" c)7="" c)char="" d)4="" d)6="" d)60="" d)int="" f1(int="" i="sizeof(a);" i,j;="" if(p[i]%2)="" int="" j="strlen(a);" j+="p[i];" main()="" p[8]="{11,12,13,14,15,16,17,18},i=0,j=0;" printf(\"%d="" while(i++<7)="" x,int="" y){return="" {="" }="" 程序运行后的输出结果是="" (24)有以下程序="">y?x:y;}   
  2int f2(int x,int y){return x&gt;y?y:x;}   
  3main()   
  4{ int a=4,b=3,c=5,d=2,e,f,g;   
  5e=f2(f1(a,b),f1(c,d));   
  6f=f1(f2(a,b),f2(c,d));   
  7g=a+b+c+d-e-f;   
  8printf(\"%d,%d%d \",e,f,g);   
  9}   
 10程序运行后的输出结果是 A   
 11A)4,3,7   
 12B)3,4,7   
 13C)5,2,7   
 14D)2,5,7   
 15(27)已有定义:char a[]=\"xyz\",b[]={\'x\',\'y\',\'z\'};,以下叙述中正确的是 C   
 16A)数组a和b的长度相同   
 17B)a数组长度小于b数组长度   
 18C)a数组长度大于b数组长度   
 19D)上述说法都不对   
 20  
 21(28)有以下程序   
 22void f(int *x,int *y)   
 23{ int t;   
 24t=*x;*x=*y;*y=t;   
 25}   
 26main()   
 27{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;   
 28p=a;q=&amp;a[7];   
 29while(p<q) #define="" (30)以下叙述中错误的是="" 1="" 2="" 20="" 3="" 4="" 5="" \",a[1][i]);="" a[3][3],*p,i;="" a[],int="" a)0="" a)8,2,3,4,5,6,7,1,="" a)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出="" b)1="" b)5,6,7,8,1,2,3,4,="" b)数组名代表的是数组所占存储区的首地址,其值不可改变="" c="" c)1,2,3,4,5,6,7,8,="" c)2="" c)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息="" d="" d)3="" d)8,7,6,5,4,3,2,1,="" d)可以通过赋初值的方式确定数组元素的个数="" f(p,q);="" for(i="m;i" fun(int="" i,j;="" int="" m)="" main()="" n="" n,int="" p="&amp;a[0][0];" p++;="" p[i]="i;" printf(\"%d="" printf(\"%d,\",a[i]);="" q--;="" {="" }="" 程序运行后的输出结果是="" (29)有以下程序="" (31)有以下程序="">=n;i--)   
 30a[i+1]=a[i];   
 31}   
 32main()   
 33{   
 34int i,a[N]={1,2,3,4,5,6,7,8,9,10};   
 35fun(a,2,9);   
 36for(i=0;i&lt;5;i++)   
 37printf(\"%d\",a[i]);   
 38}   
 39程序运行后的输出结果是 C   
 40A)10234   
 41B)12344   
 42C)12334   
 43D)12234   
 44(32)有以下程序   
 45main()   
 46{ int a[3][2]={0},(*ptr)[2],i,j;   
 47for(i=0;i&lt;2;i++)   
 48{ ptr=a+i;   
 49scanf(\"%d\",ptr);   
 50ptr++;   
 51}   
 52for(i=0;i&lt;3;i++)   
 53{   
 54for(j=0;j&lt;2;j++)   
 55printf(\"%2d\",a[i][j]);   
 56printf(\" \");   
 57}   
 58}   
 59若运行时输入:1 2 3&lt;回车&gt;,则输出结果为 B   
 60A)产生错误信息   
 61B)1 0   
 622 0   
 630 0   
 64C)1 2   
 653 0   
 660 0   
 67D)1 0   
 682 0   
 693 0   
 70(33)有以下程序   
 71prt(int *m,int n)   
 72{   
 73int i;   
 74for(i=0;i<n;i++) #define="" (40)设有如下说明="" (p*x*x);}="" *s='\"right!\";' *sp='\"right!\";' *sp;="" 0="" 1="" 3="" 35="" 70="" \",c&c);="" \",data.c);输出结果为5.000000="" \",f(3+5));="" a="1,b;" a;="" a[]="{1,2,3,4,5,6,7,8,9,0},*p;" a)="" a)192="" a)1,2,3,4,5,="" a)1,2,3,4,5,6,7,8,9,0,="" a)char="" a)data的每个成员起始地址都相同="" a)以上的说明形式非法="" a)预处理命令行必须位于源文件的开头="" b="" b;="" b)="" b)29="" b)2,3,4,5,6,="" b)2,3,4,5,6,7,8,9,10,1,="" b)char="" b)st是一个结构体类型="" b)变量data所占内存字节数与成员c所占字节数相等="" b)在源文件的一行上可以有多条预处理命令="" c="" c;="" c[2];="" char="" c)="" c)0,1,2,3,4,5,6,7,8,9,="" c)25="" c)3,4,5,6,7,="" c)char="" c)new是一个结构体类型="" c)宏名必须用大写字母表示="" c)程序段:data.a='5;printf(\"%f' d="" double="" dt="" d)="" d)1,1,1,1,1,1,1,1,1,,1,="" d)2,3,4,5,1,="" d)char="" d)data可以作为函数的实参="" d)new是一个结构体变量="" d)宏替换不占用程序的运行时间="" d)编译出错="" f(int="" for(b="1;b&lt;=10;b++)" for(i="0;i&lt;5;i++)" for(p="a;p&lt;a+10;p++)" if(a="" int="" long="" m[i]++;="" main()="" new;="" p="" prin="" printf(\"%d="" printf(\"%d,\",*p);="" printf(\"%d,\",a[i]);="" prt(a,5);="" return="" s='\"right!\";' s[10];="" st="" struct="" tf(\"%d="" typedef="" union="" x)="" {="" }="" }data;="" 以下叙述中错误的是="" 则下面叙述中正确的是="" 程序运行后的输出结果是="" 程序运行后的输出结果是:="" (34)有以下程序="" (35)有以下程序="" (36)有以下程序="" (37)以下叙述中正确的是="" (38)若有以下说明和定义="" (39)以下语句或语句组中,能正确进行字符串赋值的是="" (41)有以下程序="">=8) break;   
 75if(a%2==1) { a+=5; continue;}   
 76a-=3;   
 77}   
 78printf(\"%d \",b);   
 79}   
 80程序运行后的输出结果是 B   
 81A)3   
 82B)4   
 83C)5   
 84D)6   
 85  
 86(42)有以下程序   
 87main()   
 88{   
 89char s[]=\"159\",*p;   
 90p=s;   
 91printf(\"%c\",*p++);   
 92printf(\"%c\",*p++);   
 93}   
 94程序运行后的输出结果是 A   
 95A)15   
 96B)16   
 97C)12   
 98D)59   
 99(43)有以下函数   
100fun(char *a,char *b)   
101{   
102while((*a!=\'\0\')&amp;&amp;(*b!=\'\0\')&amp; ;&amp;(*a==*b))   
103{ a++; b++;}   
104return (*a-*b);   
105}   
106该函数的功能是 D   
107A)计算a和b所指字符串的长度之差   
108B)将b所指字符串复制到a所指字符串中   
109C)将b所指字符串连接到a所指字符串后面   
110D)比较a和b所指字符串的大小   
111(44)有以下程序   
112main()   
113{   
114int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;   
115for(i=0;i&lt;4;i++)   
116{   
117for(j=1;j&lt;=i;j++) printf(\"%c\",\' \');   
118for(j= j&lt;4;j++) printf(\"%4d\",num[i][j]);   
119printf(\" \");   
120}   
121}   
122若要按以下形式输出数组右上半三角   
1231 2 3 4   
1246 7 8   
12511 12   
12616   
127则在程序下划线处应填入的是 B   
128A) i-1   
129B) i   
130C) i+1   
131D) 4-i   
132(45)有以下程序   
133point(char *p)   
134{   
135p+=3;   
136}   
137main()   
138{ char b[4]={\'a\',\'b\',\'c\',\'d\'},*p=b;   
139point(p); printf(\"%c \",*p);   
140}   
141程序运行后的输出结果是 A   
142A)a   
143B)b   
144C)c   
145D)d   
146  
147(46)程序中若有如下的说明和定义语句   
148char fun(char *);   
149main()   
150{   
151char *s=\"one\",a[5]={0},(*f1)()=fun,ch;   
152……   
153}   
154以下选项中对函数fun的正确调用语句是 A   
155A)(*f1)(a);   
156B)*f1(*s);   
157C)fun(&amp;a);   
158D)ch=*f1(s)   
159(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。   
160struct node   
161{   
162int data;   
163struct node *next;   
164} *p,*q,*r;   
165现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 D   
166A)p-&gt;next=q-&gt;next;   
167B)p-&gt;next=p-&gt;next-&gt;next;   
168C)p-&gt;next=r;   
169D)p=q-&gt;next;   
170  
171(48)以下对结构体类型变量td的定义中,错误的是 C   
172A)typedef struct aa   
173{   
174int n;   
175float m;   
176}AA;   
177AA td;   
178B)struct aa   
179{   
180int n;   
181float m;   
182} td;   
183struct aa td;   
184C)struct   
185{   
186int n;   
187float m;   
188}aa;   
189struct aa td;   
190D)struct   
191{   
192int n;   
193float m;   
194}td;   
195  
196(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 D   
197A)feof(fp)   
198B)ftell(fp)   
199C)fgetc(fp)   
200D)rewind(fp)   
201(50)有以下程序   
202#include \"stdio.h\"   
203void WriteStr(char *fn,char *str)   
204{   
205FILE *fp;   
206fp=fopen(fn,\"W\");   
207fputs(str,fp);   
208fclose(fp);   
209}   
210main()   
211{   
212WriteStr(\"t1.dat\",\"start\");   
213WriteStr(\"t1.dat\",\"end\");   
214}   
215程序运行后,文件t1.dat中的内容是 B   
216A)start   
217B)end   
218C)startend   
219D)endrt   
220待续……   
2212005年4月2日C笔试试卷及答案,快来对答案(三)!!!!!!!   
222填空题(每空2分,共40分)   
223(1)某二*树中,度为2的结点有18个,则该二*树中有 19 个叶子结点。   
224(2)在面向对象的方法中,类的实例称为 对象 。   
225(3)诊断和改正程序中错误的工作通常称为 程序调试 。   
226(4)在关系数据库中,把数据表示成二维表,每一个二维表称为 关系 。   
227(5)问题处理方案的正确而完整的描述称为 算法 .   
228(6)以下程序运行时若从键盘输入:10 20 30&lt;回车&gt;。输出结果是 10 30 0 .   
229#include <stdio.h>   
230main()   
231{ int i=0,j=0,k=0;   
232scanf(\"%d%*d%d\",&amp;i,&amp;j,&amp;k);   
233printf(\"%d%d%d \",i,j,k);   
234}   
235(7)以下程序运行后的输出结果是 &amp;n  bsp; 81 .   
236#define S(x) 4*x*x+1   
237main()   
238{   
239int i=6,j=8;   
240printf(\"%d \",S(i+j));   
241}   
242(8)以下程序运行后的输出结果是 4599   
243main()   
244{   
245int a=3,b=4,c=5,t=99;   
246if(b<a&&a<c) (9)以下程序运行后的输出结果是="" 0="" 10="" 20="" \",a,b,c);="" a="10;b=20;c=(a%b&lt;1)||(a/b" a,b,c="" if(a<c&&b<c)="" int="" main()="" printf(\"%d%d%d="" t="b;b=a;a=t;" {="" }="">1);   
247printf(\"%d %d %d \",a,b,c);   
248}   
249(10)以下程序运行后的输出结果是0918273645   
250main()   
251{   
252char c1,c2;   
253for(c1=\'0\',c2=\'9\';c1<c2;c1++,c2--) (11)已知字符a的ascii代码值为65,以下程序运行时若从键盘输入:b33<回车="" \");="" printf(\"="" printf(\"%c%c\",c1,c2);="" }="">.输出结果是 1B   
254#include \"stdio.h\"   
255main()   
256{   
257char a,b;   
258a=getchar(); scanf(\"%d\",&amp;b);   
259a=a-\'A\'+\'0\';   
260b=b*2;   
261printf(\"%c %c \",a,b);   
262}   
263(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值.请填空. br[i]   
264void fun(int, int, int (*)[4],int *)   
265main()   
266{   
267int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;   
268fun(3,4,a,b);   
269for(i=0;i&lt;3;i++)   
270printf(\"%4d\",b[i]);   
271printf(\" \");   
272}   
273void fun(int m,int n,int ar[][4],int *br)   
274{   
275int i,j,x;   
276for(i=0;i<m;i++) #include="" %d="" (13)以下程序运行后的输出结果是="" (14)以下程序运行后的输出结果是="" (15)以下程序运行后的输出结果是="" (16)以下程序运行后的输出结果是="" (17)以下程序运行后的输出结果是="" (a+b+c);="" *link;="" *s,int="" 0="" 1="" 10="" 11="" 12="" 13431="" 2="" 3="" 4="" ;="" \");="" \",a,b);="" \",i,fun(a));="" \",x,y);="" \"string.h\"="" a="3,b=4;" a)="" abcbcc="" abcfg="" b="0;static" b++;="" c="3;" c++;="" ch[]='\"abc\",x[3][4];' char="" for(i="0;i&lt;3;i++)" for(j="0;j&lt;n;j++)" fun(char="" fun(int="" fun(s,3,strlen(s));="" i="0;" i,a="5;" i;="" if(x<ar[i][j])="" int="" k)="" k;="" m[5],*p="m,*q=m+4;" main()="" node="" p,int="" p-="" printf(\"="" printf(\"%d="" printf(\"%s\",&x[i][i]);="" puts(s);="" return="" s[]='\"abcdefg\";' s[i]="s[i+2];" strcpy(x[i],ch);="" struct="" swap(a,b)="" swap(int="" t="x;x=y;y=t;" t;="" void="" while(p!="q)" x="ar[i][j];" x,int="" y)="" {="" }="" };="" 【12】="x;">k=++i; p++;   
277q-&gt;k=i++; q--;   
278}   
279q-&gt;k=i;   
280for(i=0;i&lt;5;i++)   
281printf(\"%d\",m[i].k);   
282printf(\" \");   
283}   
284(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes   
285yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.   
286#include \"string.h\"   
287char *huiwen(char *str)   
288{   
289char *p1,*p2; int i,t=0;   
290p1=str; p2= ①   
291for(i=0;i&lt;=strlen(str)/2;i++)   
292if(*p1++!=*p2--)   
293{ t=1; break; }   
294if( ②) return (\"yes!\");   
295else return (\"no!\");   
296}   
297main()   
298{   
299char str[50];   
300printf(\"Input:\"); scanf(\"%s\",str);   
301printf(\"%s \", ③ );   
302}   
303①str+strlen(str)-1   
304②t==0或!t   
305③huiwen(str)   
306[完]</m;i++)></c2;c1++,c2--)></a&&a<c)></stdio.h></n;i++)></q)></b?a:c<d?c:d的值>
Published At
Categories with 认证考试
Tagged with
comments powered by Disqus