二级C语言笔试-248
(总分100,考试时间90分钟)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 设有如下程序段:
    int x=2002, y=2003;
    printf(" % d\n", (x, y));
    则以下叙述中正确的是______。
A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出        B. 运行时产生出错信息
C. 输出值为2002        D. 输出值为2003
2. 若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。
A. 函数调用可以作为独立的语句存在        B. 函数调用可以作为一个函数的实参
C. 函数调用可以出现在表达式中        D. 函数调用可以作为一个函数的形参
3. 以下叙述正确的是______。
A. 构成C程序的基本单位是函数
B. 可以在函数中定义另一个函数
C. main()函数必须放在其他函数之前
D. 所有被调用的函数一定要在调用之前进行定义
4. 设有定义:
    int a=2, b=3, c=4;
    则以下选项中值为0的表达式是______。
A. (! a==1)&&(! b==0)        B. (a>b)&&! c||1
C. a&&b        D. a||(b+b)&&(c-
5. 以下叙述中正确的是______。
A. 调用printf函数时,必须要有输出项
B. 调用putchar函数时,必须在之前包含头文件stdio. h
C. 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D. 调用getchar函数读人字符时,可以从键盘上输入字符所对应的ASCII码
6. 下列叙述中正确的是______。
A. 一个逻辑数据结构只能有一种存储结构
B. 数据的逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理效率
7. 有以下程序:
    main()
        char a[7]="a0\0a0\0"; int i, j;
        i=sizeof(
A. ; j=strlen(a);
&nb        8. 有以下程序:
    int f(int n)
      if(n==1)retuxn 1;
      else return f(n-1)+1;
   
    main()
      int i, j=0;
      for(i=1; i<3; i++)j+=f(i);
      printf("% d\n", j);
   
    程序运行后的输出结果是______。
A. 4        B. 3
C. 2        D. 1
程序中对fun函数有如下说明:
    void * fun();
    此说明的含义是______。
9. C语言中用于结构化程序设计的3种基本结构是______。
A. 顺序结构、选择结构、循环结构
B. if、switch、break
C. for、while、do-while
D. if、for、continue
10. 以下程序的输出结果是______。
printf函数输出整数时不能使用
        int a, b;
    void fun()
      a=100;
          b=200;
     
    main()
      int a=5, b=7;
      fun();
      printf("% d % d \n", a, b);
   
A. 100200        B. 57
C. 200100        D. 75
11. 以下能正确定义二维数组的是______。
A. int a[][3];
B. int a[][3]=2*3;
C. int a[][3]=;
D. int a[2][3]=1), 2, 3,4;
12. 以下程序的输出结果是______。
      long fun(int n)
      long s;
      if(n==1 || n==2)s=2;
      else s=n-fun(n-1);
      return s;
   
    main()
    printf("% 1d\n", fun(3));
A. 1        B. 2
C. 3        D. 4
13. 若有以下程序段(n所赋值的是八进制数):
    int m=32767, n=032767;
    printf("% d, % o\n", m, n);
    执行后输出结果是______。
A. 32767, 32767        B. 32767, 032767
C. 32767, 77777        D. 32767, 077777
14. 有以下程序:
    main()
      int m=3, n=4, x;
    x=-m++;
    x=x+8/++n;
    printf("% d\n", x);
   
    程序运行后的输出结果是______。
A. 3        B. 5
C. -1        D. -216
15. 以下定义语句中正确的是______。
A. char a='A' b='B';
B. float a=b=19.0;
C. int a=10, *b=&a;
D. float *a, b=&a;
16. 以下叙述中错误的是______。
A. 用户所定义的标识符允许使用关键字
B. 用户所定义的标识符应尽量做到“见名知意”
C. 用户所定义的标识符必须以字母或下划线开头
D. 用户所定义的标识符中,大、小写字母代表不同标识
17. 有以下程序:
    main()
        int a[3][3], *p, i;
        p=&a[0][0];
        for(i=0; i<9; 1++)p[i]=i;
        for(i=0; i<3; i++)printf("% d", a[1][i]);
    程序运行后的输出结果是______。
A. 0 1 2        B. 1 2 3
C. 2 3 4        D. 3 4 5
18. 以下叙述正确的是______。
A. 可以把define和if定义为用户标识符
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
C. 可以把if定义为用户标识符,但不能把define定义为用户标识符
D. define和if都不能定义为用户标识符
19. 数据库设计的根本目标是要解决______。
A. 数据共享问题        B. 数据安全问题
C. 大量数据存储问题        D. 简化数据维护
20. 以下程序的输出结果是______。
      int f()
      static int i=0;
      int s=1;
      s+=i; i++;
      return s;
   
    main()
      int i, a=0;
      for(i=0; i<5; i++)
          a+=f();
      printf("% d\n" ,
A. ;
           21. s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S。则以下选项中正确的是______。
A. if(s1>s2)S;
B. if(strcmp(s1, s2))S;
C. if(strcmp(s2, s1)>0)S;
D. if(strcmp(s1, s2)>0)S;
22. 有以下程序:
    # define P 3
    yoid F(int x)    return(p*x*x);   
    main()
      printf("% d\n", F(3+5)); 
    程序运行后的输出结果是______。
A. 192        B. 29
C. 25        D. 编译出错
23. 有以下程序:
    int f(int b[][4])

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