卓迈文档网 2025年04月10日 07:47 星期四
当前位置 首页 >专题范文 > 公文范文 >

【精品】第二十四次等级考试

发布时间:2022-10-12 10:30:13 来源:网友投稿

下面是小编为大家整理的【精品】第二十四次等级考试,供大家参考。

【精品】第二十四次等级考试

 

 第二十四次等级考试 第一部分 软件技术基础 (共 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])

  {

 ②

  ...

推荐访问:【精品】第二十四次等级考试 四次 等级考试 精品

原创文章写作
原创文章写作
Top