四川省普通高等学校计算机应用知识和能力
第二十八次等级考试
二级(C与C++语言) 笔 试 试 卷
时间:  2008年4月 19 日
    上午 9:00—11:00
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B  )
1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。                    (  1  )
2. 数据在计算机内存中的表示是指数据的存储结构。                                (  2  )
3. Windows是多用户多任务操作系统。                                            (  3  )
4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。                            (  4  )
5. 链表可以随机访问任意一个结点,而顺序表则不能。                            (  5  )
6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。            (  6  )
7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。                                                                                (  7  )
8. 中断控制方式适用于外存同CPU之间进行大量数据交换。                        (  8  )
9. 提供没有错误的程序是提高软件的可维护性的基本措施。                        (  9  )
10.软件结构是以指令为基础而组成的一种控制层次结构。                            (  10  )
二、选择题(每小题1分,共5分)
1. 数据流图是用于描述结构化方法中(  11  ) 工作阶段的工具。
  11  (A) 可行性分析                        (B) 程序编码
      (C) 详细设计                            (D) 需要分析
2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(  12  )。
  12  (A) 1,4,3,2                        (B) 3,1,4,2
(C) 2,3,4,1                        (D) 3,4,2,1
3. 任何两个并发进程之间(  13  )。
c语言二维数组表示方法
  13  (A) 可能存在同步或互斥关系            (B) 一定存在同步关系
(C) 一定彼此独立无关                    (D) 一定存在互斥关系
4. 以下的哪个特征不是分时操作系统的主要特征(  14  )。
  14  (A) 分时性                            (B) 独占性
(C) 交互性                            (D) 多路性
5. 需求分析中开发人员主要从用户那里了解 (  15  )。
  15  (A) 软件的维护                          (B) 软件的结构
      (C) 软件做什么                        (D) 软件的测试

第二部分
C与C++语言程序设计
(共85分)
一、单项选择题 ( 每小题1分,共10分 ) 
  1. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是(  16  ) 。
16  (A) 增加了一些新的运算符            (B) 允许函数设置缺省参数
(C) 规定函数说明符必须用原型      (D) 引进了类和对象的概念
  2. 决定C++语言中函数的返回值类型的是(  17  )。
17  (A) return语句中的表达式类型
(B) 在定义该函数时所指定的数据类型
(C) 调用该函数时的主调函数类型
(D) 调用该函数时系统随机产生的类型
  3. C语言中运算对象必须是整型的运算符是 (  18  )。
18  (A) %                (B) /                (C) =            (D) 《=
  4. 若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(  19  )。
19  (A) EOF            (B) -1            (C) 1            (D) NULL
  5. 已知:int a=15,b=16; 则表达式(a&b)&&br的结果是(  20  )。
20  (A) 1                (B) 0            (C) 16            (D) 31
  6. 已知:int arr[10]; 则对arr数组元素的正确引用是(  21  )。
21  (A) arr[10]            (B) arr[]        (C) arr(5)            (D) arr[10-10]
  7. 下列程序中,循环结束后b的值是(  22  )。
vpod main()
{
  int a=1,b=10;
  do
  {
    b-=a;
    a++;
  }while(b-->10);
 
}
22  (A) -1            (B) -2            (C) 8            (D) 9
  8. 以下程序的输出结果是 (  23  )。
# define M(x,y,z) x*y+z
main()
{
  int a=1,b=2,c=3;
  printf("%d\n",M(a+b,b+c,c+a));
}
23  (A) 12            (B) 15            (C) 17            (D) 19
  9. 下面程序把数组元素中的最大值放入a[0]中,则在if语句下划线的条件表达式应填入的是 (  24  )。 
main()
{
  int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
  for(i=0;i<10;i++,p++)
  if (     ) *a=*p;
  printf("%d",*a);
}
24  (A) p>a            (B) *p>a[0]        (C) *p>*a[0]        (D) *p[0]>a[0]
  10. 若在下面程序段中使指针变量p指向一个存储整型数据的动态存储单元,则在下划线处应填入 (  25  ) 。
int *p;
p=        malloc(sizeof(int));
25  (A) int            (B) int *            (C) (* int)        (D) (int *)
二、读程序回答问题 ( 每个选择3分,共45分 )
  1. 读程序写出程序运行结果。
# include <>
void fun(char *s,char t)
{
  while(*s)
  { if(*s==t) *s=t-'a'+'A';
    s++;
  }
}
void main()
{
  char s[100]="abcddfefdbd",c='d';
  fun(s,c);
  printf("%s\n",s);
}
程序运行后的输出结果是(  26  )。
26  (A) ABCDDFEFDBD    (B) abcDDfefDbD        (C) abcAAfefAbA        (D) Abcddfefdbd
  2. 读程序并回答问题。
# include <>
void fun(int a[],int n)
{
  int i,t;
  for(i=0;i<n/2;i++)
  {
    t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
  }
}
void main()
{
  int b[10]={1,2,3,4,5,6,7,8,9,10};
  int i,s=0;
  fun(b,8);
  for(i=6;i<10;i++)  s+=b[i];
  printf("%d\n",s);
}
  (1)函数fun的功能是(    27    )。
27  (A) 将数组a的前n个元素逆置                (B) 对数组元素进行升序排列
(C) 交换数组第一个元素和最后一个元素        (D) 对数组元素进行降序排列
  (2)程序的运行结果是(    28    )
28  (A) 34            (B) 30            (C) 22            (D) 10
  3. 读程序,回答问题
# include <>
void main()
{
  int a=0,x=0;
  for(;!x&&a<10;a++)
  { a++;
    x++;
  }
  cout<<a<<endl;
}
程序的运行结果为:(  29  )。
29  (A) 10            (B) 4            (C) 3            (D) 2
  4. 读程序回答问题。
# include <>
void fun(char *str)
{
  int i,j=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]!=' ') str[j++]=str[i];
  s[j]='\0';
}
void main()
{
  char str[80];
  int n;
  printf("Input a string:");

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