2008年9月全国计算机等级考试二级C笔试试卷
一、 选择题
1、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后在依次出栈,则元素出栈的顺序是 B
A)12345ABCDE B)EDCBA54321
C)ABCDE12345 D)54321EDCBA
2、下列叙述正确的是 D
A)循环队列有队头和队尾两个指针,因此,循环队列是非线形结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
3、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 C
A)O(n) B)O(n2) C)O(log2n) D)O(log2n)
4、下列叙述中正确的是 A
A)顺序结构存储的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
5、数据流图中带有箭头的线段表示的是 D
A) 控制流 B)事件驱动 C)模块调用 D)数据流
6、在软件开发中,需求分析阶段可以使用的工具是
A)N―S图 B)DFD图 C)PAD图 D)程序流程图
7、在面向对象的方法中,不属于�对象�基本特点的是
A) 一致性 B)分类性 C)多态性 D)标识唯一性
8、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 B
A)一对一 B)一对多 C)多对一D)多对多
9、在数据管理技术发展的三个阶段中,数据共享最好的是
A)人工管理阶段 B)文件系统阶段
C)数据库系统阶段 D)三个阶段相同
10、有三个关系R、S和T如下:
R S T
A B
m 1
n 2
B C
1 3
3 5
A B C
m 1 3
由关系R和S通过运算得到关系T,则所使用的运算为
A)笛卡尔积 B)交 C)并D)自然连接
11、以下叙述中正确的是 C
A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句
C)简单C语句必须以分号结束 D)C语句必须在一行内写完
12、计算机能直接执行的程序是 D
A)源程序 B)目标程序 C)汇编程序 D)可执行程序
13、以下选项中不能作为C语言合法常量的是 A
A)′cd′ B) 0.1c+6 C)�\a� D)′\011′
14、以下选项中正确的定义语句是C
A)double a;b; B) double a=b=7
C)doublea=7,b=7; D)double,a,b;
15、以下不能正确表示代数式2ab/cd 的C语言表达式是 D
A)2*a*b/c/d B)a*b/c/d*2
C)a/c/d*b*2 D)2*a*b/c*d
16、C源程序中不能表示的数制是 A
A)二进制 B)八进制 C)十进制 D)十六进制
17、若有表达式(w)?(-x):(++y),则其中与w等价的表达式是 D
A)w==1 B)w==0 C)w!=1 D)w!=0
18、执行以下程序段后,w的值为C
int w=′A′,x=14,y=15;
W=((x||y)&&(w<′a′));
A) -1 B) NULL C)1 D) 0
19、若变量已正确定义为int 型,要通过语句scanf(�%d,%d,%d�,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格符) B
A)uuu1,2,3<回车> B)1u2u3<回车>
C)1,uuu2,uuu3<回车> D)1,2,3<回车>
20、有以下程序段 B
int a,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c,c=a;
printf(�a=%d b=%d c=%d\n�,a,b,c);
程序的输出结果是
A) a=10 b=50 c=10 B) a=10 b=50 c=30
C)a=10 b=30 c=10 D)a=50 b=30 c=50
21、若有以下定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是 C
A)m[-i] B)m[2*2] C)m[m[0]] D)m[m[i]]
22、下面的函数调用语句中func函数的实参个数是
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A) 3 B) 4 C)5 D) 8
23、若有定义语句:doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是
A) *p B) x[5] C)*(p+1) D) *x
24、若有定义语句:char s[10]=�1234567\0\0�;,则strlen(s)的值是
A) 7 B) 8 C)9 D) 10
25、以下叙述中错误的是
A)用户自定义的函数中可以没有return语句
B)用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C)用户自定义的函数中若没有return语句,则应当定义函数为void类型
D)函数的return语句中可以没有表达式
26、以下关于宏的叙述中正确的是
A)宏名必须用大写字母表示
B)宏定义必须位于源程序中所有语句之前
C)宏替换没有数据类型限制
D)宏调用比函数调用耗费时间
27、有以下程序
#include <stdio.h>
main()
{ int i,j;
for (i=3;i>=1;i--)
{for(j=1;j<=2;j++) printf(�%d�,i+j);
pintf(�\n�);
}
}
程序运行的结果是
A) 2 3 4 B) 4 3 2 C)23 D) 4 5
3 4 5 5 4 3 3 4 3 4
4 5 2 3
28、有以下程序
#include <stdio.h>
main()
{ int x=1,y=2,z=3;
if(x>y)
if(y>z) printf(�%d�,++z);
else printf(�%d�,++y);
printf(�%d\n�,x++);
}
程序运行的结果是
A) 331 B)41 C)2 D)1
29、有以下程序
#include<stdio.h>
main()
{ int i=5;
do
{ if(i%3==1)
if(i%5==2)
{ printf(�%d�,i); break;}
i++;
} while(i!=0);
printf(�\n�);
}程序运行的结果是
A) *7 B)*3*5 C)*5 D)*2*6
30、有以下程序
#include <stdio.h>
int fun(int a,int b)
{ if(b==0) return a;
else return(fun(-a,-b));
}
main()
{printf(�%d\n�,fun(4,2));}
程序运行的结果是
A) 1 B) 2 C) 3 D)4
31、有以下程序
#include <stdio.h>
#include <stdio.h>
{ int *p;
p=(int*)malloc(sizeof(int));
*p=n; return *p;
}
main()
{ int a;
a=fun(10); printf(�%d\n�,a+fun(10));
}
程序运行的结果是
A)0 B) 10 C)20 D)出错
32、有以下程序
#include (stdio.h)
void fun(int a, int b)
{ int t;
t=a; a=b; b=t;
}
main()
{ int c[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2) fun(c[i],c[i+1]);
for(i=0;i<10;i++) printf(�%d,�,c[i]);
printf(�\n�);
}程序运行的结果是
A)1,2,3,4,5,6,7,8,9,0 B)2,1,4,3,6,5,8,7,0,9
C)0,9,8,7,6,5,4,3,2,1 D)0,1,2,3,4,5,6,7,8,9
33、有以下程序
#include <stdio.h>
struct st
{int x,y;} data[2]={1,10,2,20};
main()
{struct st *p=data;
printf(�%d,�,p->y); printf(�%d\n�,(++p)->x);
}程序运行的结果是
A) 10,1 B)20,1 C)10,2 D)20,2
34、有以下程序
#include <stdio.h>
void fun(int a[],int n)
{ int i,t;
for(i=1;i<n/2;i++) {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{ int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf(�%d�,k[i]);
printf(�\n�);
}
程序运行的结果是
A) 345678 B)876543 C)1098765 D)321678
35、有以下程序
#include <stdio.h>
#define N 4
void fun(int a[][N],int b[])
{ int i;
for(i=0;i<N;i++) b[i]=a[i][i];
}
main()
{int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++) printf(�%d,�,y[i]);
printf(�\n�);
}程序运行的结果是
A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10,
36、有以下程序
#include <stdio.h>
int fun(int (*s)[4],int n,int k)
{ int m,i;
m=s[0][k];
for(i=1;i<n;i++) if(s[i][k]>m)m=s[i][k];
return m;
}
main()
{inta[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};
printf(�%d\n�,fun(a,4,0));
}程序运行的结果是
A) 4 B) 34 C) 31 D)32
37、有以下程序
#include <stdio.h>
main()
{ struct STU{ char name[9]; char sex; doublescore[2];};
struct STU a={�Zhao�,′m′,85.0,90.0},b={�Qian�,′f′,95.0,92.0};
b=a;
printf(�%s,%c,%2.0f,%2.0f\n�,b.name,b.sex,b.score[0],b.score[1]);
}
程序运行的结果是
A)Qian,f,95,92 B)Qian,m,85,90
C)Zhao,f,95,92 D)Zhao,m,85,90
38、假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是
A)(*p).next=(*q).next; free(p);
B)p=q->next; free(q);
C) p=q;free(q);
D)p->next=q->next; free(q);
39、有以下程序
#include <stdio.h>
main()
{char a=4;
printf(�%d\n,a=a<<1�);
}
程序的运行结果是
A) 40 B) 16 C) 8 D) 4
40、有以下程序
#include <stdio.h>
main()
{ FILE *pf;
char *s1=�China�,*s2=�Beijing�;
pf=fopen(�abc.dat�,�wb+�);
fwrite(s2,7,1,pf);
rewind(pf);
fwrite(s1,5,1,pf);
fclose(pf);
}以下程序执行后abc.dat文件的内容是
A) China B) Chinang
C) ChinaBeijing D)BeijingChina
二、填空题
1、对下列二叉树进行中序遍历的结果是( ).
2、按照软件测试的一般步骤,集成测试应在()测试之后进行。
3、软件工程三要素包括方法、工具和过程,其中,()支持软件开发的各个环节的控制和管理。
4、数据库设计、()和物理设计。
5、在二维表中,元组的()不能再分成更小的数据项。
6、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式()。
7、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7
b=9
请完成输出语句�printf(�___________________�,a,b);
8、以下程序的输出结果是()
#include <stdio.h>
main()
{ int i,j,sum;
for(i=3;i>=1;i--)
{ sum=0;
for(j=1;j<=i;j++) sum+=i*j;
}
printf(�%d\n�,sum);
}
9、以下程序的输出结果是()
#include <stdio.h>
main()
{ int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3;j;j--)
{ switch(j)
{ case 1:
case 2: printf(�%d�,*p++); break;
case 3: printf(�%d�,*(--p));
}
}
}
10、以下程序的输出结果是()
#include <stdio.h>
#define N 5
int fun(int *s,int a,int n)
{ int j;
*s=a;j=n;
while(a!=s[j])j--;
return j;
}
main()
{ int s[N+1]; int k;
for(k=1;k<=N;k++) s[k]=k+1;
printf(�%d\n�,fun(s,4,N));
}
(11)以下程序的输出结果是 _________。
#include<stdio.h>
int fun(int x)
{ static int t=0;
return(t+=x);
}
main()
{ int s,i;
for(i=1;i<=5;i++) s=fun(i);
printf(〃%d\n〃,s);
}
(12)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include<stdio.h>
main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4,j++)
for(i=3;i>=j; ___________)
{n++;x[i][j]= ____________;}
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++) printf(〃%3d〃,x[i][j]);
print(〃\n〃);
}
}
(13)以下程序的功能是:通过函数func输入字符并统计字符的个数。输入时用字符@作为输入结束标志。请填空。
#include<stdio.h>
long _______________; /* 函数说明语句 */
main()
{ long n;
n=func(); printf(〃n=%ld\n〃,n);
}
long func()
{ long m;
for(m=0;getchar()!=′@′;___________________);
return m;
}
参考答案
一、选择题
1-5 :B D C A D
6-10: B A B C D
11-15: C D A C D
16-20: A D C B A
21-25: C A B A B
26-30: C D D A B
31-35: C A C D B
36-40: C D D C B
二、填空题(按空填)
1、DBXEAYFZC
2、单元
3、过程
4、逻辑设计
5、分量
6、a=-b
7、a=%d\nb=%d\n
8、1
9、9
9
11
10、3
11、15
12、i--
13、n
14、func()
15、m++
本文来自阿里考题网--,原文地址:http://www.alikaoti.cn