二级C语言笔试-465
(总分91,考试时间90分钟)
一、选择题
1. 与十进制数200等值的十六进制数为______。
    A) A8    B) A4    C) C8  D) C4
2. 下列叙述中正确的是______。
    A) 一个逻辑数据结构只能有一种存储结构
    B) 数据的逻辑结构属于线性结构,存储结构属于非线性结构
    C) 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理效率
    D) 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理效率
3. 对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是______。
    A) 冒泡排序为n/2    B) 冒泡排序为n
    C) 快速排序为n        D) 快速排序为n(n-1)/2
4. 冒泡排序在最坏情况下的比较次数是______。
    A) n(n+1)/2    B) nlog2n    C) n(n-1)/2    D) n/2
5. 关于结构化程序设计原则和方法描述错误的是(    )。
    A) 选用的结构只准许有一个入口和一个出口
    B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
    C) 不允许使用GOTO语句
    D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟
6. 下列描述中正确的是______。
    A) 程序就是软件
    B) 软件开发不受计算机系统的限制
    C) 软件既是逻辑实体,又是物理实体
    D) 软件是程序、数据与相关文档的集合
7. 简单的交换排序方法是(    )。
    A) 快速排序    B) 选择排序    C) 堆排序    D) 冒泡排序
8. SQL语言又称为(    )。
    A) 结构化定义语言  B) 结构化控制语言  C) 结构化查询语言  D) 结构化操纵语言
9. 下列说法正确的是(    )。
    A) 一个C程序可以有多个主函数
    B) 一个C语言的函数中只允许有一对花括号
    C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
    D) 在对C程序进行编译时,可以发现注释行中的拼写错误
10. 设变量已正确定义并赋值,以下正确的表达式是______。
(A) x=y*5=x+z
(B) int(15.8%5)
(C) x=y+z+5,++y
(D) x=25%5.0
11. 以下选项中不属于字符常量的是______。
(A) 'C'
(B) "C"
(C) '\xCC'
(D) '\072'
12. 阅读以下程序
    #include  <stdio.h>
    main()
        int case;float printF;
    printf("请输入2个数:");
    scanf("%d  %f",&case,&printF):
    printf("%d  %f\n",case,printF);
   
    该程序在编译时产生错误,其出错原因是
    A) 定义语句出错,case是关键字,不能用作用户自定义标识符
    B) 定义语句出错,PrintF不能用作用户自定义标识符
    C) 定义语句无错,scanf不能作为输入函数使用
    D) 定义语句无错,printf不能输出case的值
13. 有以下程序
    int add(int a,int b)return(a+b);
    main()
    int  k,(*f)(),a=5,b=10;
    f=add;
   
    则以下函数调用语句错误的是
    A) k=(*f)(a,b);    B) k=add(a,b);
    C) k=*f(a,b);    D) k=f(a,b);
14. 若变量a,b已正确定义,且b已正确赋值,则合法的语句是(    )。
    A) b=double(B) ;    B) ++b;    C) a=a++=5;    D) a=double(B);
15. 若有定义int x, y;,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是______。
    A) (x-y>0)
    B) (x-y<0)
    C) (x-y<0||x-y>0)
    D) (x-y==0)
16. 设有定义:float a=2,B=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是 ____
__。
    A) (a十B) *h/2      B) (1/2)*(a+B) *h
    C) (a+B) *h*1/2      D) h/2*(a+B)
17. 两次运行下列的程序,如果从键盘上分别输入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
18. 有以下程序:
    main()
      int n=0,m=l,x=2;
    if(!n) x-=l:
    if(!m) x-=2;
    if(!x) x-=3;
    printf (" %d\n",x);
   
  执行后的输出结果是 ______。 
A)  2              B)  1              C)  3              D)  6
19. 有下列程序:
    main()
      int t,a=1,b=5,c=-2;
    while(a>b>c)
      t=a;a=b;b=t;c++;
    printf("%d,%d,%d",a,b,c);
   
    程序的输出结果是(    )。
    A) 1,5,0    B) 1,5,-2
    C) 5,1,-1    D) 5,1,-2
20. 有以下程序
    #include<stdio.h>
    main()
        int a=1,b=2;
    for(    ;a<8;a++)    b+=a;    a+=2;
    printf("%d,%d\n",a,b);
   
    程序运行后的输出结果是
    A) 9,18    B) 8,11    C) 7,11    D) 10,14
21. 已定义下列函数:
    int fun(int *p)
    return *p;)
    fun函数返回值是(  )。
    A) 不确定的值    B) 一个整数
    C) 形参p中存放的值    D) 形参p的地址值
22. 有如下程序:
    #include  <stdio.h>
    main()
      int x=23;
      do
         Printf("%d",x--);
      while(! x);
   
    该程序的执行结果是(    )。
    A) 321    B) 23    C) 不输出任何内容  D) 陷入死循环
23. 下列程序的输出结果是(    )。
    int f1(int x,int y)return x>y?x:y;
    int f2(int x,int y)return x>y?y:x;
    main()
    int a=4,b=3,e=5,d=2,e,f,g;
        e=f2(f1(a,b),f1(e,d));
        f=f1(f2(a,b),f2(e,d));
        g=a+b+c+d-e-f;
        printf("%d,%d,%d\n",e,f,g);
   
    A) 4,3,7    B) 3,4,7    C) 5,2,7    D) 2,5,7
24. 下列语句组中,正确的是
关于printf函数正确的是
    A) char*s;s=”Olympic";    B) chars[7];s="Olympic";
    C) char*s;s="Olympic";    D) chars[7];s="Olympic";
25. 下列程序的输出结果是(    )。
        #include<stdio.h>
        int fun(int x)
           int a;
            if(x==0‖x==1)
                return 3;
            else
                a=x-fun(x-2);
          return a;
       
        void main()
           printf("%d",fun(7));
         
    A) 2              B) 8              C) 9            D) 5
26. 下列循环体的执行次数是(    )。
    #include<stdio.h>
    main()
      int i,j;
      for(i=0,j=1;i<j+1;i+=1,j--)
      printf("%d\n",j);
   
    A) 3    B) 2    C) 1    D) 0
27. 有下列程序:
    main()
    int k=5;
          while(--k)  printf("%d",k-=3);
          printf("\n");
   
    执行后的输出结果是(    )。
    A) 1    B) 2