一起答

2013年9月全国计算机等级《二级C语言程序设计》考前冲刺试卷二

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 请编写fun函数,其功能是:计算并输出3~m所有素数的平方根之和。

    例如,若主函数从键盘给m输入50后,则输出为s= 68.665791。

    请勿改动main函数与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    注意:m的值要大于2但不大于100。部分源程序给出如下。

    试题程序:

    #include

    #include

    double fun(int m)

    {

    }

    void main

    {

    int m;

    double s;

    FILE*out:

    printf("\n\nInput m:");

    scanf("%d",&m);

    s=fun(m);

    printf("\n\ns=%f\n\n",s);

    ut=fopen("outfile.dat","w");

    for(m=0;m<10;m++)

    fprintf(out,"%f\n",fun(m+80));

    felose(out);

    }

  2. 下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。

    请修改程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    #include

    #include

    #include

    #include

    void proc(char*strl,char*str2,char*str) {

    int i,j;char ch;

    i=0;j=strleu(str2)-1;

    //****found****

    while(i>j)

    {

    ch=str2[i];str2[i]=str2[j];str2[j]=ch;

    i++;j--;

    }

    while(*str1||*str2)

    {

    if(*str1){*str=*str1;str++;str1++;)

    if(*str2){*str=*str2;str++;str2++;)

    }

    //****found****

    *str=0:

    }

    void main

    {

    char s1[100],s2[100],t[200];

    system("CLS");

    printf("\nEnter s1 string:");

    scanf("%s",sl);

    printf("\nEnter s2 string:");

    scanf("%s",s2);

    proc(s1,s2,t);

    printf("\nThe result is:%s\n",t);

    }

  3. 请补充main函数,该函数的功能是:计算3名学生各科的平均成绩。

    例如,当score[N][M]={{85,62,89.5,60,69),{90,96,84.5,100,85},{92,97,86,73,85))时,五门学科的平均分为:89 85 86.7 77.7 79.7。

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

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

    试题程序:

    #include

    #include

    #define N 3

    #define M 5

    int main

    {

    int i,j;

    static float score[N][M]一{{85,62,89.5,60,69),

    {90,96,84.5,100,85},{92,97,86,73,85}};

    static float arr[-N];

    system("CLS");

    for(i=0;i

    arr[i]=0.0:

    for(i=0;i<【1】;i++)

    {

    for(j=0;j<【2】;j++)

    arr[j]+=score[i][j]:

    }

    for(i=0;i

    printf("\nsubject%d\taverage=%5.1f",i+1,

    【3】);

    return 0;

    }

  4. 对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。

    • A.125
    • B.n/2
    • C.n
    • D.n+1
  5. 下述程序的输出结果是(   )。

    #include

    main

    { char ch[2][5]-{”1234”,”5678”},*p[2];

    int i,j,s=0;

    for(i=0;i<2;i++)

    p[i]=ch[i];

    for(j=0;j<2;j++)

    { s=p[i][j]一'0';

    printf("%d",s);}

    }

    • A.6357
    • B.6135
    • C.1357
    • D.691357
  6. 下面描述中,不属于软件危机表现的是( )。

    • A.软件过程不规范
    • B.软件开发生产率低
    • C.软件质量难以控制
    • D.软件成本不断提高
  7. 以下程序的输出结果是( )。

    main

    { char*s="12134211";

    int v[4]=(0,0,0,0),k,i;

    for(k=0;s[k];k++)

    { switch(s[k])

    { case'1':i=0;

    case'2':i=1;

    case'3':i=2;

    case'4':i=3;}

    }

    v[i]++:

    }

    for(k=0;k<4;k++)printf("%d",v[k]);

    • A.4 2 1 1
    • B.0 0 0 8
    • C.4 6 7 8
    • D.8 8 8 8
  8. 以下程序的输出结果是(   )。

    main

    { int a=7,b=8,*P,*q,*r;

    p=&a;q=&b;

    r=P;P=q;q=r;

    printf("%d,%d,%d,%a\n",*P,*q,a,b);

    }

    • A.8,7,8,7
    • B.7,8,7,8
    • C.8,7,7,8
    • D.7,8,8,7
  9. 有以下程序:

    main

    { int a=1,b=3,C=5,*P;

    int*p1=&a,*p2=&b,*p3=&c;

    *p=*p1*(*p2);

    }

    执行后的输出结果是(   )。

    • A.1
    • B.2
    • C.3
    • D.4
  10. 下列程序的输出结果是(   )。

    #include

    main

    { int a=3,b=2,c=1;

    if(aif(b<0)c=0;

    else c++:

    printf("%d\n",c);

    }

    • A.2
    • B.0
    • C.1
    • D.不确定的值
  11. 已知i、j、k为int型变量,若要从键盘输入2、3、4< CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是( )。

    • A.scanf("%3d,‰3d,%3d",&i,&j,%k);
    • B.scanf("%d,%d,%d",&i,8Lj,&k);
    • C.scanf("%d%d%d",&i,&j,&k);
    • D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
  12. 有以下程序:

    main

    { int i,j,x=0;

    for(i=0;i<2;i++)

    { x++;

    for(j=0;j<=3;j++)

    {if(j=0;j<=3;j++)

    x++;

    }

    x++;

    }

    printf("x=%d\n",x);

    }

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

    • A. x=4
    • B.x=8
    • C.x=6
    • D.x=12
  13. 有如下程序:

    main( )

    { int x=23;

    do

    {printf(”%d”,x--);}

    while(!x);

    }

    该程序的执行结果是( )。

    • A.321
    • B.23
    • C.不输出任何内容
    • D.陷入死循环
  14. 下列程序的输出结果是(   )。

    #include

    main

    { int a[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

    p=a ;

    for(i=0;i<3;i++)

    { if(i<2)

    p[1][i]=p[1][i]-1;

    else

    p[1][i]=1;

    }

    printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

    }

    • A.8
    • B.7
    • C.12
    • D.9
  15. 在16位编译系统上,若有定义“int a[]={10,20,30},*p=&a;”,当执行“P++;”后,下列说法错误的是( )。

    • A.P向高地址移了一个字节
    • B.P向高地址移了一个存储单元
    • C.P向高地址移了两个字节
    • D.P与a+1等价
  16. 下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是(   )。

    #include

    main

    { char s1[]="chinese",s2[]="japanese";

    int i;

    for(i=0;s1[i]='\0'&&s2[i]!='\0';i++)

    if(s1[i]==s2[i]&&i<7)

    _____________;

    }

    • A.putchar(s2[i]);putchar(i)
    • B.puts(s1[i],i)
    • C.printf("%c%d\n",s2[i],i)
    • D.printf("%C",s1[]);printf("%d\n",i)
  17. 以下函数返回a所指数组中最小的值所在的下标值:

    fun(int*a,int n)

    { int i,j=0,P;

    p=j;

    for(i=j;i

    if(a[i]}

    在下划线处应填入的是( )。

    • A.i=P
    • B.a[p]=a[i]
    • C.p=j
    • D.p=i
  18. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。

    • A.函数的实参和其对应的形参共占同一存储单元
    • B.形参只是形式上的存在,不占用具体存储单元
    • C.同名的实参和形参占同一存储单元
    • D.函数的形参和实参分别占用不同的存储单元
  19. 设有定义语句:

    int x[-6]={2,4,6,8,5,7),*p=X,i;

    要求依次输出X数组6个元素中的值,不能完成此操作的语句是(   )。

    • A.for(i=0;i<6;i++)printf("%2d",*(p++));
    • B.for(i=0;i<6;i++)printf("%2d",*(pq-i));
    • C.for(i=0;i<6;i++)printf("%2d",*p++);
    • D.for(i=0;i<6;i++)printf("%2d",*(p)++);
  20. 以下叙述中不正确的是(  )。

    • A.在不同的函数中可以使用相同名字的变量
    • B.函数中的形式参数是局部变量
    • C.在一个函数内定义的变量只在本函数范围内有效
    • D.在一个函数内的复合语句中定义的变量在本函数范围内有效
  21. 表示关系X<=Y<=Z的C语言表达式为(  )。

    • A.(X<=Y)&&(Y<=Z)
    • B.(X<=Y)AND(Y<=Z)
    • C.(X<=Y<=Z)
    • D.(X<一Y)&(Y<一Z)
  22. 有下列函数定义:

    int fun(double a,double b)

    {return a*b;}

    若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。

    • A.if(fun(x,y)){……}
    • B.z=fun(fun(x,y),fun(x,y));
    • C.z=fun(fun(X,y)x,y);
    • D.fun(x,y);
  23. 表达式'5'-'1'的值是(  )。

    • A.整数4
    • B.字符4
    • C.表达式不合法
    • D.字符6
  24. 结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法

    • A.对象
    • B.数据结构
    • C.数据流
    • D.目标
  25. 若程序中有宏定义行:#define N 100则以下叙述中正确的是( )。

    • A.宏定义行中定义了标识符N的值为整数100
    • B.在编译程序对C源程序进行预处理时用100替换标识符N
    • C.对C源程序进行编译时用100替换标识符N
    • D.在运行时用100替换标识符N
  26. 下列程序中c的二进制值是(   )。

    char a=2,b=4,c;

    c=a^b>>2;

    • A.00000011
    • B.00010100
    • C.00011100
    • D.00011000
  27. 有以下程序:

    void funl(char*p)

    { char*q;

    q=P;

    while(*q!='\O')

    {(*q)++;q++;}

    }

    main

    { char a[]={"Program"),*P;

    p=&a[3];funl(p);

    printf("%s\n",a);

    }

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

    • A.Prohsbn
    • B.Prphsbn
    • C.Progsbn
    • D.Program
  28. 对下列二叉树

    进行中序遍历的结果是( )。

    • A.ACBDFEG
    • B.ACBDFGE
    • C.ABDCGEF
    • D.FcADBEG
  29. 下面的函数调用语句中func函数的实参个数是(   )。

    func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

    • A.3
    • B.4
    • C.5
    • D.8
  30. 下列可作为C语言赋值的语句的是(  )。

    • A.x一3,y=5
    • B.a=b=6
    • C.i--;
    • D.a,c
  31. 设x=015,则x=x^017的值是(  )。

    • A.00001111
    • B.11111101
    • C.00000010
    • D.1 1000000
  32. 栈和队列的共同特点是(  )。

    • A.都是先进先出
    • B.都是先进后出
    • C.只允许在端点处插入和删除元素
    • D.没有共同点
  33. 概要设计中要完成的事情是(  )。

    • A.系统结构和数据结构的设计
    • B.系统结构和过程的设计
    • C.过程和接口的设计
    • D.数据结构和过程的设计
  34. 下列程序的输出结果是( )。

    #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.18
    • C.6
    • D.8
  35. 下列程序的输出结果是(   )。

    #include

    int b=2:

    int func(int*a)

    { b+=*a;return b;}

    main

    { int a=1,t=2;

    t+=func(&a):

    printf("%d\n",t);

    }

    • A.4
    • B.5
    • C.6
    • D.8
  36. 有以下程序:

    void fun2(char a,char b) {printf(”%c%c”,a,b); }

    char a='A',b='B';

    void funl( ){a='C';b='D';}

    main( )

    { funl( );

    printf("%c%c",a,b);

    fun2('E','F');

    }

    程序的运行结果是( )。

    • A.CDEF
    • B.ABEF
    • C.ABCD
    • D.CDAB
  37. 若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是( )。

    • A.a+=a-=(b=4)*(a=3)
    • B.x%(-3);
    • C.a=a*3=2
    • D.y=float(i)
  38. 简单的交换排序方法是( )。

    • A.快速排序
    • B.选择排序
    • C.堆排序
    • D.冒泡排序
  39. 若有“double a;”,则正确的输入语句是( )。

    • A.scanf("%1f",a);
    • B.scanf("%f",&a);
    • C.scanf("%1f",&a);
    • D.scanf("1e",&a);
  40. 下列能正确进行字符串赋值的是( )。

    • A.char s[5]={”ABCI)E”);
    • B.char s[5]={'A','B','C','D','E'};
    • C.char*s;s="ABCDE";
    • D.char*s;printf("%S",s);
  41. 与“y=(x>0?1:x<0?-1:0)”;的功能相同的if 语句是(   )。

    • A.if(x>0)y=1; else if(x<0)y=1; else="" y="0;
    • B." x="">0)y=1; else if(x<0)y=-l; else="" y="0;"
    • C.y="-l" x="">O)y=1; else if(x=-0)y=0; else y=-l;
    • D.y=0; if(x>=0) if(x>=0)y=1; else y=-l;
  42. 若变量a、i已正确定义,且i已正确赋值,合法的语句是( )。

    • A.a==l;
    • B.++i;
    • C.a=a++=5 ;
    • D.a=int(i);
  43. 有如下程序:

    main( )

    { int n[5]={0,0,0},i,k=2;

    for(i=0;i&printf("%d\n",n[k]););

    }

    该程序的输出结果是( )。

    • A.不确定的值
    • B.2
    • C.1
    • D.0