二级C语言笔试-458
(总分103,考试时间90分钟)
一、选择题
1. 下列叙述中正确的是(    )。
    A) 一个算法的空间复杂度大,则其时间复杂度必定大
    B) 一个算法的空间复杂度大,则其时间复杂度必定小
    C) 一个算法的时间复杂度大,则其空间复杂度必定小
    D) 上述三种说法都不对
2. 程序流程图中带有箭头的线段表示的是
    A) 图元关系    B) 数据流    C) 控制流    D) 调用关系
3. 已知、棵二叉树的后序遍历序列是dabec,中序遍历序列是debac,则它的前序遍历序列是(    )。
    A) acbed    B) decab    C) deabc    D) cedba
4. 最简单的交换排序方法是(    )。
    A) 快速排序    B) 选择排序    C) 堆排序    D) 冒泡排序
5. 在面向对象方法中,实现信息隐蔽是依靠______。
    A) 对象的继承    B) 对象的多态    C) 对象的封装    D) 对象的分类
6. 数据库管理系统中负责数据模式定义的语句是
    A) 数据定义语言    B) 数据管理语言    C) 数据操纵语言    D) 数据控制语言
7. 数据库系统的核心是(    )。
    A) 数据模型    B) 数据库管理系统
    C) 数据库    D) 数据库管理员
8. 关系代数运算是以 ______为基础的运算。
    A) 关系运算    B) 谓词运算    C) 集合运算    D) 代数运算
9. 算法具有五个特性,以下选项中不属于算法特性的是______。
    A) 有穷性    B) 简洁性    C) 可行性    D) 确定性
10. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(    )。
    A.c=b=a;    B.(a=c)||(b=c);
    C.(a=c)&&(b=c);    D.a=c=b;
11. 下列关于单目运算符++、――的叙述中正确的是 ______。
    A) 它们的运算对象可以是任何变量和常量
    B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
    C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
    D) 它们的运算对象可以是char型变量、int型变量和float型变量
12. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是
    A) x=y==5;    B) x=n%2.5;    C) x+n=i;    D) x=5=4+1;
13. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是(    )。
    A.x=y==5;    B.x=n%2.5;
    C.x+n=i:    D.x=5=4+1;
14. 若有下列定义(设int类型变量占2个字节):
    int i=8;
    则下列语句:.
    printf("i=%08d",i);
    输出的结果是(    )。
    A) i=8,    B) i=00000008,    C) i=08,    D) 8
15. 两次运行下列的程序,如果从键盘上分别输入3和1,则输出结果是(    )。
    main()
        int x;
        scanf("%d",&x);
        if(x++>2)printf("%d",x);
        else printf("%d\n",x--);
   
    A) 4和2    B) 4和1    C) 4和0    D) 3和1
16. 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 ______。
        main()
    char s[100];int c,i;
    scanf("%c",&c);
              scanf("%d",&i);
      scanf("%s",s);
    printf("%c,%d,%s\n",c,i,s);
   
    A) 123,456,789      B) 1,456,789
    C) 1,23,456,789    D) 1,23,456
17. 若执行下列程序时从键盘上输入2,则输出结果是(    )。
    #include<stdio.h>
    main()
      int a;
    scanf("%d",&a);
    if(a++<3)
    printf("%d\n",a);
    else printf("%d\n",a--);
   
    A) 1    B) 3    C) 2    D) 4
18. 有下列程序:
    main()
        int x=5;
    do
    (printf("%d",x-=4) ;
    while(!(--X));
   
    程序的输出结果是(    )。
c语言二维数组转置
    A) 1    B) 2 0    C) 1 -4    D) 死循环
19. 下列程序的输出结果是(    )。
   
main()
   
int a=4,b=5,c;
 
  ifa<B)
    c=a*b;printf("%d,%d,%d\n",b,a,c);
  else
    c=b/a;printf("%d,%d,%d\n",b,a,c);
 
 
    A) 4,5,12    B) 20    C) 5,4,20    D) 12
20. 有下列程序:
    #include<stdio.h>
    main()
    char*s="ABC";
      do
      printf("%d",*s%10);s++;
      while(*s);
   
    注意:字母A的ASCII码值为65。程序运行后的输出结果是(    )。
    A.5670    B.656667    C.567    D.ABC
21. 若变量已正确定义,下列正确的程序段是(    )。
    A) while(ch=getchar()=='\N')putchar(ch);
    B) while((ch=getchar())=='\n')putchar(ch);
    C) while((ch=getehar())!='\N')putchar(ch);
    D) while((ch=getchar())!='\n',)putchar(ch);
22. 以下选项中非法的字符常量是(    )。
    A) '\\'    B) '\0201'    C) '\xAA'    D) '0'
23. 设有定义:int A,*pA=&A;,以下 scanf语句中能正确为变量A读入的数据是 ______。
    A) scanf ("%d",pA) ;                                    B) scanf ("%d",A) ;
    C) scanf ("%d",&pA) ;                                  D) scanf ("%d",*pA) ;
24. 有以下程序
    #include  <stdio.h>
    void fun(int *p)
    printf("%d\n",p[5]);
    main()
      int a[10]=1,2,3,4,5,6,7,8,9,10;
    fun(&a[3]);
   
    程序运行后的输出结果是(    )。
    A)5    B)6    C)8  D)9
25. 以下程序段给数组所有的元素输入数据,请选择正确答案填入。