第四章单元测试
  1. 要求下面的程序运行后,显示如下结果:
    2 10 4 6
    1 5 2 3
    2 4 7 8
    5 1 3 2
    则程序中的划线处应填入
    #include <stdio.h>
    void main( )
    { int a[4][4]={ ________ };
    int i,j;
    for(i=0;i<4;i++)
    {for(j=0;j<4;j++) printf("%4d",a[i][j]);
    printf("\n"); }
    } ( )

  2. A:{5,1,3,2},{2,4,7,8},{1,5,2,3}
    B:{1,5,2,3},{2,4,7,8},{5,1,3,2}
    C:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
    D:{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}

    答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}

  3. 给出以下定义:
    char x[ ]="abcdefg";
    char y[ ]={'a','b','c','d','e','f','g'};
    则正确的叙述为 ( )

  4. A:数组x的长度小于数组y的长度
    B:数组x的长度大于数组y的长度
    C:数组x和数组y等价
    D:数组x和数组y的长度相同
  5. 定义如下变量和数组:
    int i;
    int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
    则下面语句的输出结果是
    for(i=0;i<4;i++) printf("%3d",x[i][3-i]);( )

  6. A:4 8 12 16
    B:1 5 9 13 C:4 7 10 13 D:1 6 11 16
  7. 下面程序输出的结果是
    #include <stdio.h>
    void main( )
    { int i,j,x=0;
    static int a[6]={1,2,3,4,5,6};
    for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
    printf("%d\n",x);
    }( )

  8. A:数组a中首尾的对应元素的乘积之和
    B:数组a中相邻各元素的乘积之和
    C:数组a中首尾的对应元素的乘积
    D:数组a中相邻各元素的乘积
  9. 若希望下面的程序运行后输出45,程序空白处的正确选择是
    #include <stdio.h>
    void main( )
    { int i,j=10,a[ ]={1,3,5,7,9,11,13,15};
    for( ____________ )
    j+=a[i];
    printf("%d\n",j);
    } ( )

  10. A:i=0;i<7;++i
    B:i=2;i<6;++i
    C:i=5;i>=1;--i D:i=5;i>1;i--
  11. 若有以下说明:
    char s1[ ]={"tree"},s2[]={"flower"}; ,
    则以下对数组元素或数组的输出语句中,正确的是( )

  12. A:printf("%s%s",s1[5],s2[7]);
    B:puts(s1);puts(s2);
    C:puts(s1,s2);
    D:printf("%c%c",s1,s2);
  13. 下列程序的输出结果是
    #include <stdio.h>
    void main()
    {char b[]="ABCDEFG";
    char p=0;
    while(p<7)
    putchar(b[p++]);
    putchar('\n');
    } ( )

  14. A:BCDEFG
    B:GFEDCBA C:ABCDEFG D:GFEDCB
  15. 下述对C语言字符数组的描述中错误的是( )

  16. A:字符数组中的字符串可以整体输入、输出
    B:字符数组可以存放字符串
    C:不可以用关系运算符对字符数组中的字符串进行比较
    D:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
  17. 以下程序的输出结果是
    #include<stdio.h>
    void main()
    { int i,x[3][3]={1,2,3,4,5,6,7,8,9};
    for(i=0;i<3;i++)
    printf("%d,",x[i][i]);
    printf("\n");
    }( )

  18. A:3,6,9,
    B:3,5,7, C:1,5,9, D:1,4,7,
  19. 如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是( )

  20. A:11 B:8 C:10 D:不定
  21. 设有如下定义:
    char aa[2][20]={ "abcd", "ABCD"};
    则以下说法中错误的是( )

  22. A:aa是个二维数组,可以存放2个19个字符以下的字符串
    B:aa[0]可以看作是一维数组名
    C:aa[0][0]可以看作是一维数组名
    D:aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD"
  23. 以下对C语言函数的有关描述中,正确的是( )

  24. A:函数必须有返回值,否则不能使用函数
    B:在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
    C:C程序中有调用关系的所有函数必须放在同一个源程序文件中
    D:C函数既可以嵌套定义又可以递归调用
  25. 有如下说明: int a[10]={0,1,2,3,4,5,6,7,8,9};
    则数值不为9的表达式是( )

  26. A:a[9]-a[0]
    B:a[9]-0 C:a[10-1] D:a[8]
  27. 设有数组定义:char array[]="China";则数组array所占的存储空间为( )

  28. A:6个字节 B:7个字节
    C:5个字节
    D:4个字节
  29. 下面程序的输出是
    #include <stdio.h>
    int m=13;
    int fun2(int x, int y)
    { int m=3;
    return(x*y-m);
    }
    void main()
    { int a=7, b=5;
    printf("%d\n",fun2(a,b)/m);
    }( )

  30. A:1 B:10
    C:2 D:7
  31. 请读程序:
    #include <stdio.h>
    f(int b[ ], int n)
    { int i, r=0;
    for(i=0; i<=n; i++) r=r+b[i];
    return r;
    }
    void main()
    {
    int x, a[]={ 2,3,4,5,6,7,8,9};
    x=f(a, 3);
    printf("%d\n",x); }
    上面程序的输出结果是( )

  32. A:9 B:5
    C:20 D:14
  33. 若函数调用时用数组名作为函数参数,以下叙述中,不正确的是( )

  34. A:实参与其对应的形参共占用同一段存储空间
    B:在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组
    C:实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递
    D:实参与其对应的形参分别占用不同的存储空间
  35. 以下叙述中,不正确的是( )

  36. A:使用float b定义的外部变量存放在内存中的动态存储区
    B:使用static float c定义的内部变量存放在内存中的静态存储区
    C:使用float d定义的内部变量存放在内存中的动态存储区
    D:使用static float a定义的外部变量存放在内存中的静态存储区
  37. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( )

  38. A:为局部变量,只在该函数内有效
    B:为全局变量,在本程序文件范围内有效
    C:定义无效,为非法变量
    D:为局部变量,只在该复合语句中有效
  39. 调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是( )

  40. A:实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
    B:实参将其地址传递给形参,并释放原先占用的存储单元
    C:实参将其值传递给形参,调用结束时形参并不将其值回传给实参
    D:实参将其值传递给形参,调用结束时形参再将其值回传给实参
  41. 以下叙述中,不正确的是( )

  42. A:在main函数体内定义的变量是全局变量
    B:形参是局部变量,函数调用完成即失去意义
    C:在同一C程序文件中,不同函数中可以使用同名变量
    D:若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用
  43. 若函数调用时参数为基本数据类型的变量(俗称简单变量),以下叙述正确的是( )

  44. A:实参将数据传递给形参后,立即释放原先占用的存储单元
    B:实参与其对应的形参分别占用不同的存储单元
    C:实参与其对应的形参共占存储单元
    D:只有当实参与对应的形参同名时才共占存储单元
  45. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )

  46. A:由实参传给形参,再由形参传回实参
    B:地址传递 C:传递方式由用户指定
    D:单向值传递
  47. 以下函数fun形参的类型是
    fun( float x)
    { float y;
    y=3*x-4;
    return y; }( )

  48. A:int B:void C:不确定 D:float
  49. C语言中规定函数的返回值的类型是由( )

  50. A:return语句中的表达式类型所决定
    B:调用该函数时的主调用函数类型所决定
    C:在定义该函数时所指定的类型所决定
    D:调用该函数时系统临时决定

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部