【精品】第二十四次等级考试
下面是小编为大家整理的【精品】第二十四次等级考试,供大家参考。
第二十四次等级考试 第一部分 软件技术基础 (共 15 分)
一、 是非判断题(每小题 1 分, 共 10 分)
( 判断下列各题是否正确,如正确, 在客观答题纸上对应编号选 A, 否则选 B
) 1. 顺序表和线性链表的物理存贮形式都是顺序存贮。
(
1
)
2. 数据类型是某种程序设计语言中已实现的数据结构。
(
2
)
3. 如果通过软件测试没有发现错误, 则说明软件是完全正确的。
(
3
)
4. 快速原型模型可以有效地适应用户需求的动态变化。
(
4
)
5. 不同进程之间的动作在时间上不能重叠。
(
5
)
6. 分区式存储管理能够进行存储空间共享。
(
6
)
7. 链接文件和索引文件都可以非连续存放。
(
7
)
8. 中断处理一般分为中断响应和中断处理两个步骤。
前者由软件实施, 后者主要由硬件实施。
(
8
)
9. 在 C++语言中,“重载” 表达了 最简单的多态性。
(
9
)
10.进程调度根据一定的调度算法, 从等待队列中挑选出合适的进程。
(
10
)
二、 选择题(每小题 1 分, 共 5 分) 1. 在数据结构中, 一个存储结点存放一个 (
11
)。
11
(A) 数据项
(B) 数据元素
(C) 数据结构
2. 把逻辑地址转变为存储的物理地址的过程称作 (
12
)。
12
(A) 编译
(B) 连接
3. SPOOLing 技术可以实现设备的 (
13
)
分配。
13
(A) 虚拟
(B) 共享
4. 允许用户把若干作业提交计算机系统集中处理的操作系统称为 (
14
)。
14
(A) 分时操作系统
(B) 实时操作系统
(C) 网络操作系统
(D) 批处理操作系统 5. 进程从运行状态进入就绪状态的原因可能是 (
15
)。
15
(A) 被选中占有处理机
(B) 时间片用完
(C) 等待的事件已发生
(D) 等待某一事件
(D) 数据类型 (C) 运行
(D) 重定位 (C) 独占
(D) 物理 第二部分 C 与 C++语言程序设计
(共 85 分) 一、 单项选择题 ( 每小题 1 分, 共 10 分 )
1. 以下能正确进行字符串赋值的是 (
16
)。
16
(A) char s[5]={"a","e","i","o","u"};
(B) char s[5]; s="good"; (C) char s[5]="abcd";
(D) char s[5]; s[ ]="good";
2. 有下面的说明和语句, 则输出的结果是(
17
)。
char a=9,b=020; printf("%o\n",~a&b<<1); 17
(A) 0377
(B) 040
(C) 32
(D)以上答案均不对
3. 若有 float x; 则 sizeof ( x ) 和 sizeof ( float ) 两种描述 (
18
)。
18
(A) 都正确
(C) 前者正确, 后者不正确
(B) 都不正确
(D) 后者正确, 前者不正确
4. 若有代数式 bcae3, 则不正确的 C 语言表达式是(
19
)。
19
(A)
3*a*e/b*c
(B) 3*a*e/b/c
(C)
a/b/c*e*3
(D) a*e/c/b*3
5.下列程序运行的结果是 (
20
)。
main() { struct cmplx{ int x;
int y;
} cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); } 20
(A) 0
(B) 1
(C) 3
(D) 6
6. 若有以下说明和语句, 且 0<=i<10,则(
21
)
是对数组元素的错误引用。
int a[]={1,2,3,4,5,6,7,8,9,0} ,*p,i; p=a; 21
(A) *(a+i)
(B) a[p-a]
(C) p+i
(D) *(&a[i])
7. 设有以下宏定义:
#define
M
2 #define
X(m)
((M+2)*m) 则执行语句:
z=2*(M+X(3+2)); 后, z 的值为(
22
)。
22
(A) 44
(B) 45
(C) 32
(D) 33
8. 下列函数定义中, 会出现编译错误的是 (
23
)。
23
(A) fun(int x,int y)
(B) fun(int x,int y,int *z) { int z;
{ z=(x>y)?x:y;
z=(x>y)?x:y;
return z;
return z;}
}
(C) int fun(int x,int y)
(D) fun(int x,int y,int *z)
{ return ( (x>y) ? x : y ); }
{ *z = (x>y) ? x : y ; }
9. 下面 C++的语句 (
24
)能实现 printf("%d,%d\n",a,b); 的功能。
24
(A) cin>>a>>,>>b
(B) cin>>a>>b
(C) cout<<a<<","<<b
(D) cout<<a<<","<<b<<endl
10. 在如下程序段中的 while 循环 (
25
) 。
int k=0;
while(k=1) k++; 25
(A) 有语法错, 不能执行
(B) 无限循环
(C) 一次都不执行
(D) 执行一次 二、 读程序回答问题 ( 每个选择 3 分, 共 45 分 )
1. 下列程序运行的结果为(
26
)。
# include <stdio.h> main() { int k=0;
char c="A";
do
{ switch(c++)
{ case "A": k++;break;
case "B": k--;
case "C": k+=2;break;
case "D": k=k%2;continue;
case "E": k=k*10; break;
default : k=k/3;
}
k++;
} while(c<"G");
printf("k=%d",k); } 26
(A) k=1
(B) k=2
(C) k=3
(D) k=4
2. 读程序并回答问题。
# include <stdio.h> void fun(char *p,int n) { int i;
if( (i=n/10) != 0 ) fun(p+1,i);
*p=n%10+"0"; } void main() { int num;
char str[10]=" ";
scanf("%d",&num);
fun(str,num);
puts(str); } 若输入整数 3567, 请回答下列两个问题。
(1) 程序中的 fun 函数被调用的次数为(
27
)。
27
(A) 3
(B) 4
(C) 5
(D) 6 (2) 程序的运行结果为(
28
)。
28
(A) 3567
(B)5673
(C) 6753
(D) 7653
3. 阅读如下程序:
# include <stdio.h>
abc(s,t,k) int *s,t,*k; { int p;
for(p=0,*k=p;p<t;p++)
if(s[p]>s[*k])
*k=p; } main() { int a[10],i,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
abc(a,10,&k);
printf("%d,%d\n",k,a[k]); } 以上程序的功能是(
29
):
29
(A) 查询并输出数组中最大值的位置及最大值
(B) 查询并输出数组中最小值的位置及最小值
(C) 计算数组中各元素之和
计算数组中各元素之乘积
4. 读下列程序并回答问题。
# include <stdio.h>
(D) void main(int argc,char *argv[]) { char ch;
FILE *in,*out;
if(argc!=3)
exit(1);
if((out=fopen(argv[1],"r"))==NULL)
{ printf("Cannot open the file.\n");
exit(0);
}
if((in=fopen(argv[2],"w"))==NULL)
{ printf("Cannot open the file.\n");
fclose(out);
exit(0);
}
while((ch=fgetc(out))!=EOF)
if(ch>="a"&&ch<="z")
{ ch="A"+ch-"a";
fputc(ch,in);
}
else fputc(ch,in);
fclose(in);
fclose(out); } 上述 C 程序经编译、 连接后生成一个可执行文件, 文件名为 myfile.exe。
假设磁盘上有一个文件 file1.dat, 其内容为 This is an example, 若在 DOS 提示符下键入:
myfile file1.dat file2.dat<回车>, 请回答下面两个问题。
(1) 按上述要求运行后, 文件 file1.dat 的内容为(
30
)。
30
(A) This is an example
(B) THIS IS AN EXAMPLE (C) this is an example
(D) This Is An Example (2) 按上述要求运行后, 文件 file2.dat 的内容为:
(
31
)。
31
(A) This is an example
(B) THIS IS AN EXAMPLE (C) this is an example
(D) This Is An Example
5. 阅读如下程序:
main() { char ch[2][5]={"6934","8254"} ,*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0; p[i][j]>"0"&&p[i][j]<="9"; j+=2)
s=10*s+p[i][j]-"0";
printf("%d\n",s); } 程序运行的结果是(
32
):
32
(A) 6385
(B) 69825
(C) 63825
(D) 693825
6. 下列程序运行的结果为(
33
)。
# include <stdio.h> fun(int x,int y,int *cp,int *dp) { *cp=x+y;
*dp=x-y; } main() { int a,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d); }
33
(A) 50,30
(B) 30,50
(C) 80,-20
(D) 80,20
7. 读下列程序, 回答问题。
# include <stdio.h> void f(int s[][4]) { int i,j,k;
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
{k=s[i][j]; s[i][j]=s[j][i]; s[j][i]=k; }
} main() { int s[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
s[i][j]=i-j;
f(s);
for(i=0;i<4;i++)
{ printf("\n");
for(j=0;j<4;j++)
printf("%4d",s[j][i]);
}
}
(1) 程序的运行结果是(
34
)。
34
(A) 0123101221013210
(B) −−−−−−−−−−−−0123101221013210 (C) −−−−−−0123101221013210
(D) −−−−−−0123101221013210 (2) 若将函数 f中的 for(j=i+1;j<4;j++) 改为 for(j=0;j<3-i;j++) 运行结果是 (
35
)。
35
(A) 0123101221013210
(B) −−−−−−−−−−−−0123101221013210 (C) −−−−−−0123101221013210
(D) −−−−−−0123101221013210
8. 阅读程序回答问题:
main() { int i,j,k,m=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
for(k=1;k<4;k++)
m++;
printf("M=%d",m); }
(1) 以上程序输出 M=(
36
)。
36
(A) 3
(B) 6
(C) 9
(D) 27 (2) 如果在以上程序中语句 m++; 之前增加一条语句:
if(!(i==j||i==k||j==k)), 则输出M=(
37
)。
37
(A) 3
(B) 6
(C) 9
(D) 27
9. 下列程序运行的结果为(
38
)。
# include <stdio.h> main() { void pic(int len,char c);
int i=4,j;
pic(27," ");
j=i;
pic(i+2*j-2,"*");
putchar("\n");
for(j=2;j>=0;j--)
{ pic(30-j," ");
pic(i+2*j,"*");
putchar("\n");
}
} void pic(int len,char c) { int k;
for(k=1;k<=len;k++)
putchar(c); } 38
(A)
(B)
(C)
(D)
*
**********
**********
****
***
**********
********
******
*****
**********
******
********
*******
**********
****
**********
10. 读程序, 回答问题。
# include <stdio.h> char *cat(char *str1,char *str2) { char *pt;
for(pt=str1;*pt!="\0";pt++);
while(*str2!="\0")
*pt++=*str2++;
*pt="\0";
return(pt); } main() { char *p,s1[30]="210",s2[30]="45";
p=cat(s1,s2);
printf("%d\n",p-s1);
p=cat(s1,s2);
printf("%d\n",*(p-1)-*s1); } (1) 本程序中第一次调用 cat 函数后, 输出为(
39
)。
39
(A) 2
(B) 3
(C) 5
(D) 7 (2) 本程序中第二次调用 cat 函数后, 输出为(
40
)。
40
(A) 2
(B) 3
(C) 5
(D) 7 注意:
①
请把下面“程序填空” 中各小题答案写在主观题答题纸上
②
每一个空只填一个语句或一个语句所缺的部分内容 三、 程序填空 ( 每空 2 分, 共 30 分 )
1. 下面程序的功能是:
将给定的整数 x 按指定的位置插入已有的 10 个整数序列并输出,插入操作在被调函数 insert 中完成。(指定的位置应大于等于 0 且小于等于 10)
# include <stdio.h> void insert(①
,int i,int x) { int j;
for(j=9;j>=i;j--)
②
;
p[i]=x; } void main() { int i,a[11]={1,2,3,4,56,7,8,9,10} ,wz,x;
printf("Input the inserting position,>=0&<=10\n");
scanf("%d",&wz);
printf("Input a inserting data\n");
scanf("%d",&x);
③
;
for(i=0;i<=10;i++)
printf("%d ",a[i]); }
2. 函数 fun 的功能是求 x 的 y 次方(y>=1), 请填空。
double fun(double x,int y) { ①
;
double z;
for(i=1,z=1;②
; i++)
z=z*x;
③
; }
3. 下面程序的功能是:
从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩, 当输入负数时结束输入。
请填空。
main() {
float x,max,min;
scanf("%f",&x);
max=x;
min=x;
while(①
)
{ if(x>max) max=x;
if(②
) min=x;
scanf("%f",③
);
}
printf("\n
Max=%f\n
Min=%f\n",max,min); }
4. 下面程序是利用插入排序法对数组 a 进行降序排列。
插入排序的思路是:
先对数组的头两个元素进行排序, 然后把第三个元素插入已排好序的前两个元素, 再插入第四个, 依次完成全部元素的插入排序。
请填空。
# include <stdio.h> void main() {
int a[10];
int i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
{
t=a[i];
j=①
;
while(j>=0 && t>a[j])
{
②
...
推荐访问:【精品】第二十四次等级考试 四次 等级考试 精品
热门文章:
- 酒店总经理年度工作总结8篇2024-12-07
- 2023年度大一上学期期末个人总结800字10篇(完整)2024-12-07
- 2023年高三综评期末总结8篇2024-12-07
- 四年级科学的教学总结6篇【精选推荐】2024-12-06
- 期末颁奖总结3篇(范文推荐)2024-12-06
- 医院客服年终个人总结7篇2024-12-06
- 2023年度高校寒假安全教育主题班会总结12篇(2023年)2024-12-06
- 2023年有关学生期末个人总结7篇(范文推荐)2024-12-06
- 2023年度公司业务部年终总结10篇2024-12-06
- 园林绿化有限公司年度工作总结5篇【完整版】2024-12-06
相关文章:
- 驻X办事处主任在X市X商会一届四次会员代表大会上讲话【优秀范文】2022-09-28
- 2023在市十六届人大四次会议上讲话2024-01-26
- 精品软件服务合同范文2022-12-09
- 2023年工作一周总结100字(精品10篇)2023-10-21
- 精品党员先进事迹精品3篇(范文推荐)2023-10-26
- 2023年度精品党员先进事迹精品10篇(全文完整)2023-10-27
- 精品的实践报告精品15篇2023-11-14