二级C语言笔试9

(总分89.5,考试时间90分钟)
一、选择题
1. 下列对队列的叙述正确的是      。
    A) 队列属于非线性表    B) 队列按“先进后出”原则组织数据
    C) 队列在队尾删除数据    D)  队列按“先进先出”原则组织数据
2. 下列关于栈的描述中错误的是(    )。
    A) 栈是先进后出的线性表    B) 栈只能顺序存储
    C) 栈具有记忆作用    D) 对栈的插入与删除操作中,不需要改变栈底指针
3. 下列关于栈的叙述正确的是      。
    A) 栈按“先进先出”组织数据    B) 栈按“先进后出”组织数据
    C) 只能在栈底插入数据    D) 不能删除数据
4. 软件没计中划分模块的一个准则是(    )。
    A.低内聚、低耦合    B.高内聚、低耦合
    C.低内聚、高耦合    D.高内聚、高耦合
5. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
    A) 模块间的关系    B) 系统结构部件转换成软件的过程描述
    C) 软件层次结构    D) 软件开发过程
6. 下列不属于软件工程的3个要素的是(    )
    A) 工具    B) 过程    C) 方法    D) 环境
7. 下面选项中不属于面向对象程序设计特征的是      。
(A) 继承性
(B) 多态性
(C) 类比性
(D) 封闭性
8. 下列所述中,是软件调试技术的是(    )。
    A) 错误推断    B) 集成测试    C) 回溯法    D) 边界值分析
9. 语句:printf("%d\n",12&012);的输出结果是(    )。
    A) 12    B) 8    C) 6    D) 012
10. 以下叙述中错误的是      。
(A) 算法正确的程序最终一定会结束
(B) 算法正确的程序可以有零个输出
(C) 算法正确的程序可以有零个输入
(D) 算法正确的程序对于相同的输入一定有相同的结果
11. 下列关于C语言的叙述中,正确的是
    A) C语言中的注释不可以夹在变量名或关键字的中间
    B) C语言中的变量可以在使用之前的任何位置进行定义
    C) 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
    D) C语言的数值常量中夹带空格不影响常量值的正确表示
12. 以下合法的赋值语句是      。
A) X=Y=100
B) D-;
C) X+Y;
D) C=int(A+B)
13. 有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面4组输入形式中错误的是       。
    A) 11 12<回车>     B) 11,12<回车>
    C) 11,12<回车>     D) 11,<回车>12<回车>
14. 设有以下程序段
    int x=0,s=0;
    while(!x!=0)s+=++x;
    printf("%d",s);
    则
    A) 运行程序段后输出0    B) 运行程序段后输出1
    C) 程序段中的控制表达式是非法的    D) 程序段执行无限次
15. 有以下程序
    main()
      Cham  a='a' , b ;
    printf("%c,",++a) ;
    printf("%c\n",b=a++) ;
    
    程序运行后的输出结果是      。
    A) b,b    B) a,b    C) b,c   D) a,c
16. 有以下程序
    main()
      int  i,s=1;
       for(i=1;i<50;i++)
       if(!(i%5)&&!  (i%3))  s+=i;
       printf("%d/n",s);
    程序的输出结果是
    A) 409    B) 277    C) 1    D) 91
17. 有以下程序:
    main()
     int a, b, d=25;
      a=d/10%9; b=a&&(-1);
      printf("% d, % d\n", a, b) ;
    
    程序运行后的输出结果是      。
    A) 6, 1    B) 2, 1    C) 6, 0    (D) 2, 0
18. 下列程序的运行结果是(  )。
main()
  int x=1,y=3,a=0;
    while(x++!=(y=1))
      a+1;
       if(y<x)break;
    
    printf("%d,%d,%d\n”,x,y,a) ;
    A) 2,3,2    B) 2,3,1    C) 1,3,3    D) 3,1,2
19. 以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是
    A) if((a>b)&&(b>c))k=1;
       else  k=0;
    B) if((a>b)‖(b>c))k=1;
       else  k=0; 
    C) if(a<=b)k=0;
      else if(b<=c)k=1; 
    D) if(a>b)k=1;
      else  if(b>c)  k=1;
      else  k=0;
20. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量C中的大写字母转换为对应小写字母的语句是      。
    A) c=(c-'A')%26+'a'    B) c=c+32
    C) c=c-'A'+'a'    D) c=('A'+c)%26-'a'
21. 下列程序段的运行结果是(    )。
    #include<stdio.h>
    void main()
      char str[]="ABC",*p=str;
    printf("%d\n",*(p+3) );
    
    A) 67    B) 0    C) 字符'C'的地址    D) 字符'C'
22. 设有定义double a[10],*s=a;,以下能够代表数组元索a[3]的是
    A) (*s)[3]    B) *(s+3)
    C) *s[3]    D) *s+3
23. 下面能正确进行字符串赋值操作的是(    )。
    A) chars[5]="ABCDE";    B) chars[5]='A','B','C','D','E';
    C) char*s;s="ABCDE";    D) char *s;scanf("%s",&s);
24. 若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是(    )。
Struct stu
   int i;
    int name;
st,*p;
p=&st;
    A) st.i    B) *p.i    C) (*p).i    D) p->i
25. 在16位IBM-PC机上使用C语言,若有如下定义
    struct data
    int i;
     char ch;
     double f;
      b;
    则结构变量b占用内存的字节数是
    A) 1    B) 2    C) 7    D) 11
26. 以下能正确定义二维数组的是      。
    A) int a[][3];    B) int a[][3]=2*3;
    C) int a[][3]=;    D) int a[2][3]=1), 2, 3,4;
27. 下列二维数组初始化语句中,不正确的是(    )。
    A) intb[][2]=1,2,3,4,5,6,7;    B) intb[3][5]=0,0,0;
    C) intb[][4]=1,2,3,4,5,6;    D) intb[3][2]=(1,2),(3,4),(5,6);
28. 以下叙述中错误的是(    )。
    A) 用户所定义的标识符允许使用关键字
    B) 用户所定义的标识符应尽量做到“见名知意”
    C) 用户所定义的标识符必须以字母或下划线开头
    D) 用户定义的标识符中,大、小写字母代表不同标识
29. 若有定义:“int a [2][3];”则对a数组的第i行第j列元素的正确引用为(    )。
    A)*(*(a+i)+j)    B)(a+i)[j]    C)*(a+i+j)    D)*(a+i)+j
30. 设有定义语句int(*f)(int);,则以下叙述正确的是      。
(A) f是基类型为int的指针变量
(B) f是指向函数的指针变量,该函数具有一个int类型的形参
(C) f是指向int类型一维数组的指针变量
(D) f是函数名,该函数的返回值是基类型为int类型的地址
31. 有以下程序
    #include  <stdio.h>
    void fun(int  *a,int  n)/*fun函数的功能是将a所指数组元素从大到小排序*/
    int  t,i,j;
    for(i=0;i<n-1;j++)
    for(j=i+1;j<n;j++)
    if(a[i]<a[j])    t=a[i];a[i]:a[j];a[j]=t;
    
    main()
    int  c[10]=1,2,3,4,5,6,7,8,9,0,i
    fun(c+4,6);
    for(i=0;i<10;++)  printf("%d,",c[i]);
    printf("\n");
    
    程序的运行结果是
    A) 1,2,3,4,5,6,7,8,9,0,    B) 0,9,8,7,6,5,1,2,3,4,
    C) 0,9,8,7,6,5,4,3,2,1,    D) 1,2,3,4,9,8,7,6,5,0,
32. 若有定义:float x=1.5;int a=1,b=3,c=2; 则正确的switch语句是(    )。
A) switch(x)
    case 1.0: printf("*\n");
     case 2.0: printf(" * * \n" );
B) switch((iht)x);
    case 1: printf(" * \n" );
     case 2: printf(" * * \n" );
   
C) switch(a +b)
      case 1: printf(" * \n" );
       case 2 + 1: printf(" * * \n" );
      D) switch(a + b)
      case 1: pfintf(" * \n" );
       case c: pfintf(" * * \n");
      
33. 设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为(    )。
    A) EOF    B) 非0值    C) 0    D) NULL
34. 有以下程序:
       #include <stdio.h>
       main( )
         intc = 35; printf( "% d \n" , e&c); 
    程序运行后输出结果是(   )。
    A) 0          B) 70         C) 35         D) 1
35. 以下程序运行后的输出结果是
    #include<stdio.h>
    #define PT 3.5;
    #define S(x) PT*x*x;
    main()
     int a=1, b=2; printf("%4.1f\n", S(a+b)); 
    A) 14.0    B) 31.5
    C) 7.5    D) 程序有错,无输出结果
36. 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,下列选项中不能表示 a[1]地址的表达式是(    )。
    A) p+1    B) a+1    C) a++    D) ++p
37. 以下选项中不能正确把cl定义成结构体变量的是(    )。
    A) typedef struct
      int red;
       int green;
       int blue;
     COLOR;
    COLOR cl;
    B) struct color cl
       int red;
        int green;
        int blue;
    
     C) struct color
      int red;
       int green;
       int blue;
    cl;
    D) struct
       int red;
        int green;
        int blue;
    cl;
38. union dt
    
    int a;char b;double c;
    data;
    以下叙述中错误的是
    A) data的每个成员起始地址都相同
    B) 变量data所占内存字节数与成员c所占字节数相等
    C) 程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
    D) data可以作为函数的实参
39. 设intx=7,则~x的值是(    )。
    A) -8    B) -7    C) -1    D) 1
40. 在C语言中,下列关于文件操作的叙述正确的是(    )。
    A) 对文件操作必须先关闭文件    B) 对文件操作必须先打开文件
    C) 对文件操作顺序没有统一规定    D) 以上全错
二、填空题
41. 在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个      实际上对应一个处理模块。
42. 算法的基本特征是可行性、确定性、           和拥有足够的情报。
43. 软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和         的设计来实现。
44. 对下列二叉树进行中序遍历的结果为      。
    

45. 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是              。
46. 数据流图的类型有      和事务型。
47. 表示“整数x的绝对值大于5”时值为“假”的C语言表达式是      。
48. 以下程序运行后的输出结果是      。
main()
  int x,a=1,b=2,c=3,d=4;
x=(a<B)?A:B; X=(A<C)?X:C; X=(D>x)?x:d;
printf("%d\n",x);
49. 已知字母A的ASCⅡ码为65。以下程序运行后的输出结果是      。
    main()
      char a,b;
    a='A'+'5'-'3';b=a+'6'-'2';
    printf("%d%c\n",a,b);
    
50. strcat函数的作用是            。
51. 以下程序的输出结果是      。
    main()
     int a=1,b=2;
      a=a+b;b=a-b;a=a-b;
      printf("%d,%d\n",a,b);
    
52. 下列程序的运行结果是      。
    #define POWER(x) ((x)*(x))
    main ()
     int i=1;
      printf("%d,%d",POWER(i++),i);
    
53. 下面程序的运行结果是      。
    #include<stdio.h>
    #define SlZE 12
    main()
    char s[SIZE];int i;
    for(i=0;i<SIZE;i++) s[i]='A'+i+32;
    sub(s,5,SIZE-1);
    for(i=0;i<SIZE;i++)printf("%c",s[i]);
    printf("\n");
    sub(char *a,int t1,int t2)
     char ch;
    while(t1<t2)
      ch=*(a+t1);
    *(a+t1)=*(a+t2);
    *(a+t2)=ch;
    t1++;t2--;
    
    
54. 以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
    majn()
     FILE  *fp;  char  ch;
    fp=fopen(      );
    ch=fgetc(fp);
    whle(!feof(fp))    putchar(ch);  ch=f8etc(fp);  
    putchar('\n');  fclose(fp);
    
55. 问题处理方案的正确而完整的描述称为      。
 

你可能感兴趣的:(c语言,开发语言)