二级C语言笔试-466
(总分101,考试时间90分钟)
一、选择题
isalpha 函数1. 在结构化程序设计中,模块划分的原则是
    A) 各模块应包括尽量多的功能    B) 各模块的规模应尽量大
    C) 各模块之间的联系应尽量紧密    D) 模块内具有高内聚度、模块间具有低耦合度
2. 下列叙述中正确的是______。
    A) 软件交付使用后还需要维护    B) 软件一旦交付使用就不需要维护
    C) 软件交付使用后其生命周期就结束    D) 软件维护是指修复程序中被破坏的指令
3. 下列叙述中错误的是(    )。
    A) 线性表是由n个元素组成的一个有限序列
    B) 线性表是一种线性结构
    C) 线性表的所有结点有且仅有一个前件和后件
    D) 线性表可以是空表
4. 软件工程的理论和技术性研究的内容主要包括软件开发技术和(    )。
    A) 消除软件危机    B) 软件工程管    C) 程序设计自动化  D) 实现软件可重用
5. 关于结构化程序设计原则和方法的描述错误的是(    )。
    A.选用的结构只准许有一个入口和一个出口
    B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
    C.不允许使用GOTO语句
    D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
6. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
      A) 概要设计    B) 详细设计    C) 可行性分析    D) 需求分析
7. 有三个关系R、S和T如下:
   
    则由关系R和S得到关系T的操作是(    )。
    A) 自然连接    B) 交
    C) 投影    D) 并
8. 以下程序运行后的输出结果是 ______。
    main()
      int a,b,c;
      a=10;b=20;c=(a%b<1)||(a/b>1);
      printf(“%d %d %d\n",a,b,c);
   
    A) 10  20  0        B) 20  10  0    C) 10  10  0    D) 20  20  0
9. 下列定义变量的语句中错误的是______。
    A) int_int;    B) double int_;
    C) char for;    D) float US$
10. 对于一个正常运行的C语言程序,以下叙述中正确的是______。
    A) 程序的执行总是从main函数开始,在main函数结束
    B) 程序的执行总是从程序的第一个函数开始,在main函数结束
    C) 程序的执行总是从main函数开始,在程序的最后一个函数中结束
    D)  程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
11. 以下叙述中正确的是
    A) 构成C程序的基本单位是函数    B) 可以在一个函数中定义另一个函数
    C) main( )函数必须放在其他函数之前    D) C函数定义的格式是K&R格式
12. 现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为
    A) int    B) double    C) float    D) char
13. 以下程序的运行结果是(    )。
    #include  <stdio.h>
    main()
      int a[]=1,2,3,4,5,6,7,8,9,10,11,12;
      int *p=a+5,*q=NULL;
      *q=8(p+5);
      printf("%d  %d\n", *p,*q);
   
    A) 运行后报错    B) 6  6    C) 6  11    D) 5  5
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) -2
15. 已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
    A) kk>='A'&&kk<='Z'    B) !(kk>='A'‖kk<='Z')
    C) (kk+32)>='a'&&(kk+32)<='z'    D) isalpha(kk)&&(kk<91)
16. 若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为(    )。
    ch='b';
    k=10;
    printf("%x,%o,",ch,ch,k);
    printf("k:%%d\n",k);
    A)因变量类型与格式描述符的类型不匹配,输出无定值
    B)输出项与格式描述符个数不符,输出为0值或不定值
    C)62,142,k=%d
    D)62,142,k=%10
17. 若变量已正确说明为int类型,要通过语句scanf("%d %d %d",&a,&b,&c);给a赋值3,b赋值5,c赋值8,下面不正确的输入形式是(    )。
    A) 3<回车>
    5<回车>
    8<回车>
    B) 3,5,8<回车>
    C) 3<回车>
    58<回车>
    D) 35<回车>
    8<回车>
18. 以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是
    A) switch(a)
    case 1:a=b;break;
    default:a++;
   
    B) switch(a==1)
    case 0:a=b;break;
    case 1:a++;
   
    C) switch(a)
    case 1:a=b;break;
    default:a++;
   
    D) switch(a==1)
    case 1:a=b;break;
    case 0:a++;
   
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. 若有定义语句:double x[5]=1.0,2.0,3.0,4.0,5.0,*P=x;,则错误引用x数组元素的是
    A) *p    B) x[5]    C) *(p+1)    D) *x
21. 有以下程序
    #include  <stdio.h)
    main()
      char c1,c2;
    c1='A'+'8'-'4';
    c2='A'+'8'-'5';
    printf("%c,%d\n",c1,c2);
   
    已知字母A的ASCII码为65,程序运行后的输出结果是
    A) E,68    B) D,69
    C) E,D    D) 输出无定值
22. 有以下程序
    void ss(char *s,char t)
      while(*s)
      if(*s==t),s=t-'a'+'A';
    s++;
    main()
      char str1[100]="abcddfefdbd",c='d';
    ss(str1,c);printf("%s\n",str1);
    程序运行后的输出结果是
    A) ABCDDEFEDBD    B) abcDDfefDbD
    C) abcAAfefAbA    D) Abcddfefdbd
23. 设有下列定义:
    struct sk
        int m;
    float x;
    )dara,*q;
    若要使q指向data中的m域,正确的赋值语句是(    )。
    A) q=&data.m;
    B) *q=data.m;
    C) q=(struct sk*)&data.m;
    D) q=(struct sk*)data.m;
24. 定义下列结构体(联合)数组:
    struct st
      charn ame[15];
    int age;
    a[10]="ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17;
    执行语句printf("%d,%c",a[2].age,*(a[3].name+2) )的输出结果为(    )。
    A) 15,A    B) 16,H    C) 16,A    D) 17,H
25. 下列程序的输出结果是(    )。
    #include <stdio.h>
    void p(int *x)
      printf("%d",++*x);
   
    void main()
      int y=3;
        p(&y);
   
    A) 3    B) 4    C) 2    D) 5
26. 以下叙述中错误的是(    )。
    A.在程序中凡是以“#”开始的语句行都是预处理命令行

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