07年4月等级考试二级C语言考前密卷(5)

出处:ExamLink.com收集整理 作者:马化鸦 日期:2007年03月29日 09时49分

(1)根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成
  A)动态结构和静态结构      B)紧凑结构和非紧凑结构
  C)线性结构和非线性结构  D)内部结构和外部结构
(2)设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为
  A)12                                 B)13
  C)14                                D)15
(3)在下列几种排序方法中,要求内存量最大的是
  A)插入排序    
       B)选择排序
  C)快速排序    
       D)归并排序
(4)下列叙述中,不属于结构化程序设计方法的主要原则的是
  A)自顶向下    
       B)由底向上
  C)模块化    
       D)限制使用goto语句
(5)下列不属于软件调试技术的是 
  A)强行排错法   
       B)集成测试法
  C)回溯法    
       D)原因排除法
(6)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为
  A)PAD图    B)N-S图
  C)结构图    D)数据流图
(7)软件复杂性度量的参数包括
  A)效率    
       B)规模
  C)完整性    
       D)容错性
(8)下列叙述中,不属于数据库系统的是
  A)数据库    
       B)数据库管理系统
  C)数据库管理员   
       D)数据库应用系统
(9)数据库系统的核心是
  A)数据库    
       B)数据库管理系统
  C)数据模型    
        D)软件工具
(10)视图设计一般有3种设计次序,下列不属于视图设计的是
  A)自顶向下    B)由外向内
  C)由内向外    D)自底向上
(11)下列常数中不能作为C语言常量的是
  A)0xabc
  B)2.5e-0.2
  C)32
  D)0747
(12)设int型的数据长度为2个字节,则unsigned int 类型数据的取值范围是
  A)-127~128
  B)0~255
  C)0~65535
  D)0~32768
(13)已知int t=6,s;则执行语句s=(++t)+(t++);后,s的值是
  A)12
  B)13
  C)14
  D)15
(14)已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为
  A)0
  B)1
  C)4
  D)5
(15)已知int i,a;执行语句i=(a=3,a++,--a,a+4,a+5,++a);后,变量i的值为
  A)2
  B)3
  C)4
  D)5
(16)下列说法中正确的是
  A)一个C程序是从命令行开始执行的
  B)C程序中有些执行语句不用分号(;)结束
  C)分号不是C语句的一部分,是C语句之间的分隔符
  D)命令行必须用“#”开头,最后不能加“;”号,命令行不是C程序中的语句
(17)已知int x=2;执行语句x*=x+=++x;后,x的值是
  A)16
  B)26
  C)36
  D)46
(18)已知int a=20,b=5;则执行以下语句后的输出结果是
  printf("%d\n",a%=(b%=2));
  A)0
  B)1
  C)2
  D)3
(19)现有以下程序段
   #include <stdio.h>
   main()
  { int a,b,c;
  scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c);
  printf("a=%d,b=%d,c=%d\n",a,b,c); }
  若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是
  A)a=10]20,b=20]30,c=40<CR>
  B)20,30,40<CR>
  C)a=20,b=30,c=40<CR>
  D)a=10]20,b=30]20,c=40<CR>
  [注]: “]”表示空格,<CR>表示回车
(20)已知int x=5,y=3;则表达式(x||y)&&78的结果为
  A)1
  B)0
  C)5
  D)78
(21)有如下程序段
   #include "stdio.h"
   main()
  {int a=10,b=50,c=30;
  a=a>30?1:2;
  b=b>30?1:2;
  c=c>30?1:2;
  printf("%d,%d,%d\n",a,b,c);}
  则执行结果为
  A)2,1,2
  B)1,2,1
  C)1,1,2
  D)2,1,1
(22)阅读如下程序段
  #include "stdio.h"
  main()
  { int a=45,b=40,c=50,d;
  d=a>30?b:c;
  switch(d)
  { case 30 : printf("%d,",a);
  case 40 : printf("%d,",b);
  case 50 : printf("%d,",c);
  default : printf("#");}}
  则输出的结果是
  A)40,50,
  B)50,#
  C)40,#
  D)40,50,#
(23)若有定义int k=10;则下列程序的输出结果为
  do{
  printf("%d",k--); } while(!k);
  A)9
  B)10
  C)10987654321
  D)没有输出
(24)阅读下列程序段,则程序的输出结果是
  #include "stdio.h"
  main()
  { int a=10,b=10,k;
  for(k=0;a>8;b=++k)
  printf("%d,%d,",a--,--b);
  printf("\n");}
  A)10,10,10,0,
  B)10,9,9,0,
  C)10,10,9,1,
  D)9,9,9,1,
(25)下列程序的运行结果是
  #include "stdio.h"
  main()
  {int a,b,m;
  for(a=5;a>=1;a--)
  { m=0;
  for(b=a;b<=5;b++)
  m=m+a*b;}
  printf("%d\n",m);}
  A)30
  B)15
  C)20
  D)10
(26)有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为
  A)6
  B)7
  C)8
  D)9
(27)阅读下面程序段
  #include "stdio.h"
  main()
  { char c;
  c=(′z′-′a′)/2+′A′;
  putchar(c);}
  输出结果为
  A)M
  B)N
  C)O
  D)Q
(28)下列说法中不正确的是
  A)C语言规定,不能在一个函数的内部再定义函数
  B)在没有声明函数返回值类型的情况下,C默认的函数返回值类型为int型
  C)函数的类型可以是整型、实型、字符型,但不能是指针型
  D)函数可以没有形参,但函数名后的一对圆括号不能省略
(29)现有如下程序,则程序的输出结果为
  #include "stdio.h"
  int f(int a,int b)
  {int c;
  if(a>0&&a<10)c=(a+b)/2;
  else c=a*b/2;
  return c;}
  main()
  { int a=8,b=20,c;
  c=f(a,b);
  printf("%d\n",c);}
  A)随机数
  B)80
  C)28
  D)14
(30)阅读如下程序段,则程序段的执行后的输出结果为
  #include "stdio.h"
  main()
  { char c;
  int i;
  char count();
  int p(char);
  for(i=0;i<30;i++)c=count();
  p(c);}
  char count()
  { char str=′A′;
  str+=1;
  return(str);}
  p(char c)
  {putchar(c);
  putchar(′\n′);}
  A)A
  B)B
  C)a
  D)b
(31)阅读如下程序段,则执行后的结果为
  #include "stdio.h"
  main()
  {int a,*p,*q,**w;
  p=&a;
  q=&a;
  w=&p;
  *p=5%6;
  *q=5;
  **w=3;
  printf("%d\n",a);}
  A)无确定值
  B)1
  C)5
  D)3
(32)现有定义int a=10,*p=&a;则不能使a的内容增1的语句是
  A)*p++;
  B)*p=*p+1;
  C)++*p;
  D)*p+=1;
(33)现有下列程序段
  #include "stdio.h"
  void JFT(int *a,int *b,int *c,int *d,int *e)
  {int i,j,k,m;
  for(i=0;i<*a;i++)
  for(j=0;j<*b;j++)
   for(k=0;k<*c;k++)
   for(m=0;m<*d;m++)*e++;}
  main()
  {int a=10,b=10,c=10,d=10,e=0;
  JFT(&a,&b,&c,&d,&e);
  printf("%d\n",e);}
  则程序段的输出结果是
  A)10000
  B)1000
  C)10001
  D)0
(34)已知:int c[5][6];则对数组元素引用不正确的是
  A)c[0+2][2*1]
  B)c[1][3]
  C)c[4-2][0]
  D)c[5][2]
(35)以下能对二维数组c进行正确的初始化的语句是
  A)int c[3][]={{3},{3},{4}};
  B)int c[][3]={{3},{3},{4}};
  C)int c[3][2]={{3},{3},{4},{5}};
  D)int c[][3]={{3},{},{3}};
(36)阅读下列程序段,则程序段实现的功能是
  #include "stdio.h"
  main()
  { int k[10];
  int j;
  for(j=0;j<10;j++)
  scanf("%d",&k[j]);
  for(j=9;j>=0;j--)
  printf("%d,",k[j]);}
  A)输入10个数据的顺序输入并输出
  B)输入10个数据的逆序存放
  C)输入10个数据的逆序输出
  D)以上叙述均错误
(37)阅读程序,则执行后的结果为
   #include "stdio.h"
  main()
  {int i,m,n;
  for(i=0;i<3;i++)
  {m=test1();
  n=test2();}
  printf("%d,%d\n",m,n);}
  test1()
  { int x=0;
  x++;
  return x;}
  test2()
  {static int x=0;
  x++;
  return x;}
  A)1,1
  B)1,3
  C)3,1
  D)3,3
(38)以下关于宏替换叙述中,错误的是
  A)宏替换占用编译时间
  B)替换文本中可以包含已定义过的宏名
  C)宏名可以由+号组成
  D)宏替换只能是字符替换

最后更新时间:2008-05-28 11:43:58
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程