一起答

2017年国家计算机二级题库3(C语言)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 请补充函数fun(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。例如;输入“cixbr2.3”,如果为bcirx,字符串长度为5。

     注意:部分源程序给出如下.

     请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

      #include <stdio.h>

     #define N 20

     int fun (char *str)

     {

       int i=0,j=0,k=-0,m=0;

       char t;

       char *p=str;

       while(*p)

       {

        if((*p>='A'&&*p<='Z')||(*p>='a'

        &&*p<='z'))

        【 】

        p++;

       }

       *(str+i)='\0';

        【 】;

       while(*(p+j))

       {

        k=j;

         【 】;

        while (*(p+k))

        {

          if(*(p+k)<*(str+m)

          {

            t=*(str+m);

            *(str+m)=*(p+k);

            *(p+k)=t;

          }

          k++;

        }

        j++;

     }

     return i; }

    main()

    {

     char str[81];

     iht n;

     clrscr();

     printf("Input the original string ");

     gets(str);

     printf("*** The Original string ***In");

     puts(str);

     printf("*** The nwe string ***\n");

     n=fun(str);

     puts(str);

     printf("***The length of new string is:

        %d***\n",n);

    }

  2. 设有定义:float a=2,b=4,h=3;以下c语言表达式中与代数式(a+B) h计算结果不相符的是( )。

    • A.(a+B) *h/2
    • B.(1/2)*(a+B) *h
    • C.(a+B) *h*1/2
    • D. h/2*(a+B)
  3. 请补充main函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。

    例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填人所编写的若干表达式或语句。

    试题程序:

    #include

    #include

    void main

    {

    int a,b,numl,num2,t;

    system("CLS"):

    printf("\nInput two numbers:\n");

    scanf("%d,%d",&numl,&num2);

    if(numl

    {

    a=num2;

    b=num1:

    }

    else

    {

    a=num1;

    b=num2;

    }

    while(【1】)

    {

    t= 【2】

    a=b;

    b=t:

    }

    printf(“greatest common divisor:

    %d\n",a);

    printf("least common multiple:

    %d\n", 【3】;

    }

  4. 设有以下程序段

    int x=0,s=0;

    while(!x!=0)s+=++x;

    printf("%d",s);

    • A.运行程序段后输出0
    • B.运行程序段后输出1
    • C.程序段中的控制表达式是非法的
    • D.程序段执行无限次
  5. 以下叙述中正确的是______。

    • A.C语言比其他语言高级
    • B.C语言可以刁;用编译就能被计算机识别执行
    • C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
    • D.C语言出现的最晚,具有其他语言的一切优点
  6. 下面程序输出的结果是  main()  { int x;   x=-3+4*5-6;printf("%d",x);   x=3+4%5-6;printf("%d",x);   x=-3+4%6/5;printf("%d",x);   x=(7+6)%5/2;printf("%d",x);}

    • A.11 1 -3 1
    • B.11 -3 2 1
    • C.12 -3 2 1
    • D.11 1 2 1
  7. C 源程序中不能表示的数制是

    • A.二进制
    • B.八进制
    • C.十进制
    • D.十六进制
  8. 程序中若有如下说明和定义语句

    char fun(char*);

    main()

    {

    char*s="one",a[5]={0},(*f1)()=fun,ch;

    .....

    }

    以下选项中对函数Fun的正确调用语句是 ______。

    • A.(*f1)(a);
    • B.*f1(*s);
    • C.fun(&a);
    • D.ch=*f1(s);
  9. 二进制数1110111.11转换成十进制数是 ( )

    • A.119.375
    • B.119.75
    • C.119.125
    • D.119.3
  10. 检查软件产品是否符合需求定义的过程称为() 

    • A. 确认测试
    • B. 集成测试
    • C. 验证测试
    • D. 验收测试
  11. 以下程序的输出结果是  ( )  main( )  { static char a[10] ={"Chinese"};   printf("%d",strlen(a));  }

    • A.7
    • B.2
    • C.9
    • D.10
  12. 下列程序的输出结果是( )

    main( )

    {

    int x=0,y=5,z=3;

    while(z-->0&&++x<5)

    y=y-1;

    printf(“%d,%d,%d\n”,x,y,z);

    }

    • A.3,2,0
    • B.3,2,-1
    • C.4,3,-1
    • D.5,-2,-5
  13. 下列程序的输出结果是( )。

    #include

    main

    { int a=0,i;

    for(i=1;i<5;i++)

    { switch(i)

    { case 0:

    case 3:a+=1;

    case 1;

    case 2:a+=2;

    default:a+=3;

    }

    }

    printf("%d",a);

    }

    • A.19 
    • B.1
    • C.6 
    • D.8
  14. 拥有PC机并以拨号方式接入网络的用户需要配置 ( )

    • A.CD-ROM
    • B.Modem
    • C.电话机
    • D.鼠标
  15. 有以下程序: #include <stdio.h>void funl (char * p){ char * q;  q=p;  while( *q! ='\0') } (*q) ++;q++;}mains( ){ char a[ ] = { "Program" } , * p;  p = &a[3]; fun1 (p); printf("% s \n" ,a);}程序执行后的输出结果是(  )。

    • A.Prohsbn
    • B.Prphsbn
    • C.Progsbn
    • D.Program
  16. 有以下程序:

    #include

    void func(int n)

    { static int num=1);

    num=num+n;printf("%d",num);

    }

    main(  )   

    { funo(3);func(4);printf("n"); }

    程序运行后的输出结果是(  )。   

    • A.4 8   
    • B.3 4   
    • C.3 5
    • D.4 5
  17. 以下叙述中正确的是

    • A.程序设计的任务就是编写程序代码并上机调试
    • B.程序设计的任务就是确定所用数据结构
    • C.程序设计的任务就是确定所用算法
    • D.以上三种说法都不完整
  18. 下列程序的运行结果是(  )。  #include<stdio.h>  #define ADD(x) x+x  main()  { int m=1,n=2,k=3;   int s=ADD(m+n)*k;   printf("s=%d",s);  }

    • A.sum=18
    • B.sum=10
    • C.sum=9
    • D.sum=25
  19. 下列叙述中正确的是( )。

    • A.C语言中既有逻辑类型也有集合类型
    • B.C语言中没有逻辑类型但有集合类型
    • C.C语言中有逻辑类型但没有集合类型
    • D.C语言中既没有逻辑类型也没有集合类型
  20. 有以下程序段:  int n=0,p;  do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);  此处do-while循环的结束条件是

    • A.p的值不等于12345并且n的值小于3
    • B.p的值等于12345并且n的值大于等于3
    • C.p的值不等于12345或者n的值小于3
    • D.p的值等于12345或者n的值大于等于3
  21. 程序中对fun函数有如下说明

    void *fun( );

    此说明的含义是:

    • A.fun了数无返回值
    • B.fun函数的返回值可以是任意的数据类型
    • C.fun函数的返回值是无值型的指针类型
    • D.指针fun指向一个函数,该函数无返回值
  22. C语言中逻辑表达式的值为  ( )

    • A.0或1
    • B.非零值或者零值
    • C.ture或false
    • D.'ture'或者'false'
  23. 以下叙述中正确的是

    • A.C 程序中的注释只能出现在程序的开始位置和语句的后面
    • B.C 程序书写格式严格,要求一行内只能写一个语句
    • C.C 程序书写格式自由,一个语句可以写在多行上
    • D.用C语言编写的程序只能放在一个程序文件中
  24. sizeof(float)是(  )。

    • A.一种函数调用
    • B.一种函数定义
    • C.一个浮点表达式
    • D.一个整型表达式
  25. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为

    • A.课号,成绩
    • B.学号,成绩
    • C.学号,课号
    • D.学号,姓名,成绩
  26. 在计算机中,算法是指(  )。

    • A.加工方法
    • B.解题方案的准确而完整的描述
    • C.排序方法
    • D.查询方法
  27. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(  )。

    • A.P=1
    • B.*q=2;
    • C.q=p;
    • D.*p=5;
  28. 有定义语句:“int x,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

    • A.11 12<回车>
    • B.11, 12<回车>
    • C.11,12<回车>
    • D.11,<回车> 12<回车>
  29. 下列关于栈的描述中错误的是(  )。

    • A.栈是先进先出的线性表
    • B.栈只能顺序存储
    • C.栈具有记忆作用
    • D.对栈的插入与删除操作中,不需要改变栈底指针
  30. 软件调试的目的是

    • A.发现错误
    • B.改正错误
    • C.改善软件的性能
    • D.验证软件的正确性