1、四川省计算机等级考试二级 C 语言笔试题(第二十次) 一 2009-03-29 15:10:14 四川省普通高等学校计算机应用知识和能力 第二十次等级考试 二级 (C与 C+语言 )笔试试卷 时间 :2004 年 4月 10 日 上午 9:00 11:00 第一部分 软件技术基础 (共 15 分) 一、是非判断题(每小题 1 分,共 10 分) 1数据元素是数据的基本单位,数据项是数据的最小单位。 ( A ) 2栈是特殊的线性表,须用一组地址连续的存储单元来存储 其元素。 ( B ) 3引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。 ( A ) 4编译程序是一种常用的应用软件。
2、( B ) 5顺序文件和链接文件的长度都可以动态变化。 链接文件 可以动态变化 ( B ) 6在文件系统中彩目录管理文件。 ( A ) 7允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。 ( B ) 8程序、数据、和程序控制块是构成一个进程的三要素。 ( A ) 9黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。 ( B ) 10软件的总体设计 和详细设计都要用 PAD 图形工具。 ( B ) 二、单项选择题(每小题 1 分,共 5 分) 1允许用户把若干作业提交计算机系统集中处理的操作系统称为( D )。 11( A)分时操作系统 ( B)实时操作系统 ( C)网络
3、操作系统 ( D)批处理操作系统 2分配到必要资源并获得了处理机时的进程的状态称为( A )。 12( A)就绪状态 ( B)执行状态 ( C)等待状态 ( D)阻塞状态 3利用通道技术可以在( C )之间直接交换数据。 13( A)内存与 CPU ( B) CPU 与外设 ( C)内存与外设 ( D)内存、 CPU 和外设三者 4以下的准则中哪个不是软件设计的准则( D )。 14( A)编程语言选择准则 ( B)信息屏蔽准则 ( C)结构 化和模块化准则 ( D)抽象准则 5有一数列: 97 65 76 13 29 49 58 经过一趟排序后得到: 65 97 13 76 29 49 58
4、 请问使用的是何种排序方法( C )。 15( A)简单插入排序 ( B)冒泡排序 ( C) 2 路归并排序 ( D)快速排序 第二部分 C 与 C+语言程序设计 (共 85 分) 一、单项选择题(每小题 1 分,共 10 分) 1定义如下枚举类型: enum DayMonday,Tuesday,Wednesday,Thursday,Friday=2; 则下列语句正确的是 ( A )。 16 (A) 表达式 Wednesday=Friday 的值是 true (B) enum Day day; day=3; (C) enum Day day; day=Tuesday-3; (D) enum D
5、ay day; day=Monday+10; 2下列程序片段的输出结果是( B )。 int m=4; do printf(“%d,“,m-=3); while(!(-m); 17( A) 1 ( B) 1,-3, ( C) 3,0 ( D)死循环 3执行下列程序片段时的输出结果是( C )。 int x,y; x=3;y=5; printf(“%d“,x%=(y/=2) ); /y=2 18( A) 3 ( B) 2 ( C) 1 ( D) 0 4对于下述程序,判断正确的是( C )。 # include void f(int *p) *p=10; int *p; void main() f
6、(p); printf(“%d“,(*p)+ ); 19 (A) 输出的值是随机值 (B) 运行时出错 (C) 输出值为 10 (D) 输出值为 11 5下列程序运行的结果是( A )。 2.8+5*2=12 # define FU(y) 2.8+y # define PR(a) printf(“%d“,(int)(a) # define PRINT(a) PR(a); # include void main() int x=2; PRINT( FU(5) * x ); 20( A) 12 ( B) 14 ( C) 13 ( D) 15 6下列程序运行的结果是( D )。 # include
7、void main() int a10=9,8,7,6,5,4,3,2,1,0,*p=a+4; printf(“%d“,*+p); printf(“%d“,+*p); 21 ( A) 4,3 ( B) 4,6 ( C) 5,5 ( D) 4,5 7关于对类要领的描述中,错误的是( A )。 22 (A) 类就是 C 语言中的结构类型 (B) 类是创建对象的样板 (C) 类是具有共同行为的若干对象的统一描述体 (D) 类是抽象数据类型的实现 8已知 int a=9,b=4; 将 a-b 的值输出显示到屏幕上,下列各种实现方法中,正确的是( C )。 23 (A) cout int fun(cha
8、r *str) int n=0; while(*str=0 a=b=c=0; for(int i=0;ix; switch(x%3) case 0: a+=x; break; case 1: b+=x; break; case 2: c+=x; break; cout void main() char *str=“One“,“Two“,“Three“,“Four“; char =str; int i; for(i=0;i void main(void) int m,n; double x,y; int divide(int m,int n); double divide(int m,doubl
9、e y); double divide(double x,double y); coutmnxy; L1:cout void main() unsigned int a=0112,x,y,z; x=a3; y=(0 void swap1(int a,int b) int temp; temp=a; a=b; b=temp; void swap2(int temp=a; a=b; b=temp; void main() int i=3, j=5; swap1(i,j); printf(“%d %dn“,i,j); /5,3 swap2(i,j); printf(“%d %dn“,i,j); 35 (A) 3 5 (B) 5 3 (C) 5 3 (D) 3 5 3 5 5 3 3 5 5 3 6读下列递归程序,回答问题。 # include void fun(char *strp) char *t; if(*strp) t=strp; t+; fun(t); putchar(*strp); void main() int i,a10=0,1,2,3,4,5,6,7,8,9; char str11; for(i=0;i10;i+) stri=ai+0; stri=0;