第五章单元测试
  1. 以下不能对二维数组a进行正确初始化的语句是( )。

  2. A:int a[2][3] = {{1,2,3}, {2,3,4}, {5,6}}; B:int a[2][3] = {0}; C:int a[][3] = {1,2,3,4,5,6,7,8,9}; D:int a[][3] = {{1,2,3}, {0}};
    答案:int a[2][3] = {{1,2,3}, {2,3,4}, {5,6}};
  3. 若有定义语句:int a[3][6]; 按在内存中的存放顺序,a数组的第10个元素是( )。

  4. A:a[1][3] B:a[0][3] C:a[0][4] D:a[1][4]
    答案:a[1][3]
  5. 下述对C语言字符数组的描述中错误的是( )。

  6. A:字符数组中的字符串可以整体输入、输出 B:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 C:不可以用关系运算符对字符组中的字符串进行比较 D:字符数组可以存放字符串
    答案:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
  7. 不正确的赋值或赋初值的方式是( )。

  8. A:char c[10]; c="hello"; B:char c[6]={'h', 'e', 'l', 'l', 'o'}; C:char c[6]={'h', 'e', 'l', 'l', 'o', '\0'}; D:char c[]="string";
    答案:char c[10]; c="hello";
  9. 若有说明:int a[10]; 则以下对数组a的使用,不正确的是( )。

  10. A:a+1 B:a++ C:a[10-10] D:a[9]
    答案:a++
  11. 若有说明:int a[3][4];则对a数组元素的正确引用是( )。

  12. A:a(1)(0) B:a[1][0] C:a[3][4] D:a[0,2]
    答案:a[1][0]
  13. 定义如下变量和数组:
    int j;
    int x[3][3]={1,2,3,4,5,6,7,8,9};
    则下面语句的输出结果是( )。
    for(i=0;i<3;i++﹚
    printf(''%d'', x[i][2-i]);

  14. A:159 B:147 C:357 D:369
    答案:357
  15. 关于数组和指针,以下说法错误的是( )。

  16. A:可以让一个指针指向一个同类型的数组 B:指针可以指向同类型的数组中的任意一个元素 C:既可以读入数据到数组中,也可以读入数据到初始值为 NULL的指针所指的存储单元中 D:数组名本身就是一个指针,指向数组内存的起始位置
    答案:既可以读入数据到数组中,也可以读入数据到初始值为 NULL的指针所指的存储单元中
  17. 若有定义语句:int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a; ,以下选项中错误的是( )。

  18. A:p++ B:a++ C:p + 1 D:a + 1
    答案:a++
  19. 若定义:int a = 256, *b = &a; ,则printf(”%d\n”, *b);的输出结果为( )。

  20. A:无确定值 B:256 C:变量a的地址 D:255
    答案:256
  21. 若在定义语句:int a, b, c, *p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。

  22. A:scanf("%d",&p); B:scanf("%d",p); C:scanf("%d%d%d",a,b,c); D:scanf("%d",a,b,c);
    答案:scanf("%d",p);
  23. 对于C语言语句int *p, a[4]; p=a; 以下描述不正确的是( )。

  24. A:a[3]表示数组的第4个元素的值 B:p是一个指向int型的指针变量 C:a++是合法的语句 D:p的存储空间中保存的是数组a存储空间的首地址
    答案:a++是合法的语句
  25. 已知:int *p, a; 则语句p = &a中的运算符&的含义是( )。

  26. A:取变量存储单元的地址 B:位与运算 C:逻辑与运算 D:取指针变量的内容
    答案:取变量存储单元的地址
  27. 若有说明语句: int *ptr[10]; 以下叙述正确的是( )。

  28. A:ptr 是一个具有 10 个指针元素的一维数组 B:ptr 是一个指向 10 个整型变量的函数指针 C:ptr 是一个指向具有 10 个整型元素的一维数组的指针 D:ptr 是指向整型变量的指针
    答案:ptr 是一个具有 10 个指针元素的一维数组
  29. 以下关于指针的说法错误的是( )。

  30. A:可以向指针中写入任意数据 B:指针可以指向与其基类型相同的普通变量 C:通过加一个正整数,可以使指针指向其他内存单元 D:可以向指针所指内存单元中写入类型与指针基类型相同的数据
    答案:可以向指针中写入任意数据
  31. 以下判断正确的是( )。

  32. A:char *s="string"; 等价于char *s; *s="string"; B:char str[10]={"string"}; 等价于:char str[10]; str={"string"}; C:char *s="string"; 等价于char *s; s="string"; D:char str[10]={"string"}; 等价:char str[10]; *str={"string"};
    答案:char *s="string"; 等价于char *s; s="string";
  33. 关于地址和指针,以下说法正确的是( )。

  34. A:可以取一个常数的地址赋值给同类型的指针变量 B:可以取一个表达式的地址赋值给同类型的指针变量 C:通过强制类型转换可以将一种类型指针变量的值赋给另一种类型的指针变量 D:可以取一个指针变量的地址赋值给基类型相同的指针变量
    答案:通过强制类型转换可以将一种类型指针变量的值赋给另一种类型的指针变量
  35. 以下关于指针的叙述,错误的是( )。

  36. A:在关系表达式中可以对两个基类型相同的指针变量进行比较 B:两个基类型相同的指针变量不能指向同一个对象 C:一个指针变量可以通过正确的赋值获得一个确定的地址值 D:可以通过对指针变量加上或减去一个整数来移动指针
    答案:两个基类型相同的指针变量不能指向同一个对象

点赞(2) dxwkbang
返回
顶部