四川省⼆级(C与C++语⾔)笔试试卷(20次)四川省普通⾼等学校计算机应⽤知识和能⼒
第⼆⼗次等级考试
⼆级(C与C++语⾔) 笔试试卷
时间: 2004年4⽉10⽇
( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )
1. 数据元素是数据的基本单位,数据项是数据的最⼩单位。
( 1 )
2. 栈是特殊的线性表,须⽤⼀组地址连续的存储单元来存储其元素。
( 2 )
3. 引⼊虚拟存储技术后,逻辑内存总容量是由地址总线的倍数确定的。
( 3 )
4. 编译程序是⼀种常⽤应⽤软件。
( 4 )
5. 顺序⽂件和链接⽂件的长度都可以动态变化。
( 5 )
6. 在⽂件系统中采⽤⽬录管理⽂件。
( 6 )
7. 允许多⽤户在其终端上同时交互地使⽤计算机的操作系统称为实时系统。
( 7 )
8. 程序、数据和进程控制块是构成⼀个进程的三要素。
( 8 )
9. ⿊盒测试时,既要考虑程序的内部逻辑结构⼜要考虑其外部特性。
( 9 )
10.软件的总体设计和详细设计都要⽤PAD图形⼯具。
( 10 )
⼆、选择题(每⼩题1分,共5分)
1. 允许⽤户把若⼲作业提交计算机系统集中处理的操作系统称为(11 )。
11 (A) 分时操作系统(B) 实时操作系统
(C) ⽹络操作系统(D) 批处理操作系统
2. 分配到必要资源并获得了处理机时的进程的状态称为(12 )。
12 (A) 就绪状态(B) 执⾏状态(C) 等待状态(D) 阻塞状态
3. 利⽤通道技术可以在(13 )之间直接交换数据。
13 (A) 内存与CPU (B) CPU与外设(C) 内存与外设(D) 内存、CPU和外设三者
4. 以下的准则中哪个不是软件设计的准则(14 )。
14 (A) 编程语⾔选择准则(B) 信息屏蔽准则
(C) 结构化和模块化准则(D) 抽象准则
5. 有⼀数列:97 65 76 13 29 49 58 经过⼀趟排序后得到:
65 97 13 76 29 49 58 ,请问使⽤的是何种排序⽅法(15 )。
15 (A) 简单插⼊排序(B) 冒泡排序
(C) 2路归并排序(D) 快速排序
1. 定义如下枚举类型:
enum Day {Monday,Tuesday,Wendesday,Thursday,Friday=2};
则下列语句正确的是(16 )。
16 (A) 表达式Wednesday==Friday的值是true
(B) enum Day day ; day=3;
(C) enum Day day ; day=Tuesday-3;
(D) enum Day day ; day=Nonday+10;
2. 下列程序⽚段的输出结果是(17 )。
int m=4;
do
{
printf("%d,",m-=3);
}while(!(--m));
17 (A) 1 (B) 1,-3, (C) 3,0 (D) 死循环3. 执⾏下列程序⽚段时的输出结果是(18 )。int x,y;
x=3; y=5;
printf("%d",x%=(y/=2));
18 (A) 3 (B) 2 (C) 1 (D)0
4. 对于下述程序,判断正确的是(19 )。
# include
void f(int *p)
{ *p=10; }
int *p;
void main()
{ f(p);
printf("%d",(*p)++ );
}
19 (A) 输出的值是随机值(B) 运⾏时出错
(C) 输出值为10 (D) 输出值为11
5.下列程序运⾏的结果是(20 )。
# 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. 下列程序运⾏的结果是(21 )。
enum c++
# include
void main()
{ int a[10]={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. 关于对类概念的描述中,错误的是( 22 )。
22 (A) 类就是C语⾔中的结构类型
(B) 类是创建对象的样板
(C) 类是具有共同⾏为的若⼲对象的统⼀描述体
(D) 类是抽象数据类型的实现
8. 已知int a=9,b=4; 将a-b的值输出显⽰到屏幕上,下列各种实现⽅法中,正确的是( 23 )。
23 (A) cout<
(C) cout<
9. 下列循环语句会进⼊死循环的是( 24 )。
24 (A) i=0; do { i++; } while (i==100); (B) for(i=0;i<100;i+=3.14);
(C) for(i=0; ;i+=2); (D) k=1;do { k--; } while (k);
10. 下⾯程序运⾏的结果是( 25 ) 。
int fun(char *str)
{
int n=0;
while(*str>='0' && *str<='9')
{ n=n*10+*str-'1'; str++; }
return n;
}
void main()
{ printf("%d\n",fun("567.89")); }
25 (A) 89 (B) 567.89 (C) 567 (D) 456
⼆、读程序回答问题 ( 每个选择3分,共45分 ) 1. 有下列程序:
# include
void main()
{
int a,b,c,x;
a=b=c=0;
for(int i=0;i<10;i++)
{ cin>>x;
switch(x%3)
{ case 0: a+=x;break;
case 1: b+=x;break;
case 2: c+=x;break;
}
}
cout<
}
程序运⾏时依次输⼊x的值为:1 2 3 4 5 6 7 8 9 10 (1) 程序的运⾏结果是(26 )。
26 (A) 3,12,21 (B) 18,22,15 (C) 3,4,3 (D) 9,10,8 (2) switch ( x%3 )与(27 )相同。
27 (A) switch(!(x%3)!=0) (B) switch(x%3==0)
(C) switch(x%3!=0) (D) 他们都不相同
2. 有下列程序:
void main()
{
char *str[]={"One","Two","Three","Four"};
char =str;
int i;
for(i=0;i<3;i++)
printf("%s",(ptr+1)[i]);
}
(1) 为程序中空⽩处选择填空(28 )。
28 (A) **ptr (B) *ptr (C) ptr[] (D) &ptr
(2) 运⾏结果是(29 )。
29 (A) newohree (B)Two (C) TwoThreeFour (D) 指针运⾏⾮法,⽆输出
3. 读下列程序,回答问题。
# include
void main(void)
{
int m,n;
double x,y;
int divide(int m,int n);
double divide(int m,double y);
double divide(double x,double y);
cout<<"Enter two integer and two real number:";
cin>>m>>n>>x>>y;
L1:cout<
L2:cout<
L3:cout<
}
int divide(int m,int n)
{ return m/n; }
double divide(int m,double y)
{ return m/(int)y; }
double divide(double x,double y)
{ return x/y; }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。