练习题错题分析39道

判断题


1数组名就是一个指针常量,指向数组的首元素(或者说代表了数组的首地址)。 T         F

 分析:见https://www.cnblogs.com/zhangzihan/p/6358365.html,关于此问题的讨论

https://blog.csdn.net/jiftlixu/article/details/4861058关于数组名是一个指针常量的讨论,即可知数组名不是指针常量(首先,在C/C++中,数组类型跟指针类型是两种不同的派生类型,数组名跟指针是两种不同类型的实体,把数组类型的实体说成“是”另一个类型的实体,本身就是荒谬的;其次,a + 1在效果上之所以等同于p + 1,是因为a进行了数组到指针的隐式转换,这是一个转换的过程,是converted to而不是is a的过程。如果是两个相同的事物,又怎会有转换的过程呢?当把a放在a + 1表达式中时,a已经从一个数组名转换为一个指针,a是作为指针而不是数组名参与运算的;第三,a + 1与p + 1是等效关系,不是等价关系。等价是相同事物的不同表现形式,而等效是不同事物的相同效果。把数组名说成是指针实际上把等效关系误解为等价关系。因此,数组名不是指针,永远也不是,但在一定条件下,数组名可以转换为指针。

 


5一维数组定义的一般形式如下,其中的类型名指定数组变量的类型。

类型名 数组名[数组长度];

      T         F

分析:类型名指明了数组中元素属于那种数据类型

 


凡是函数中未指定存储类别的局部变量,其隐含的存储类型是( )。

A.auto
B.static
C.regiser
D.extern
[解析] 变量说明时使用auto修饰的局部变量是自动变量,auto经常省略,在未指定存储类别时,默认为auto。

 


假定int类型变量占用两个字节,有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是( )。 

3
6
10
20
——————
20个,int x[10],已经确定了x的大小是10个,所以存储单元(byte, 1 int = 2 byte, 16位系统上)就是确定的了。 {0, 2, 4},只是把前3个存储单元进行了初始化而已。


 



下面程序的功能是:依次输出[0,100]范围内是3的倍数的整数,请填空。

#include <stdio.h>
int main() {
    int i;
    for(i=0;  i<=100; i++) {
        if(i%3==0)   //判断i是否为3的倍数
            printf("%d\n", i);
    }
    return 0;
}

“在因数和倍数的研究过程中,不包括0。因为倍数是一种专用名词,它是在自然数的范围内。即被除数、除数、和商必须都是自然数。如果0是3的倍数,同理0也是其他自然数的倍数,它便是任何自然数的公倍数,且是最小的。这给求几个数的最小公倍数设置了障碍,因此,不能说0是3的倍数。”但是可以用0%一个数还是等于0,要保证0这种情况,但是不能用0/一个数要注意0不能作为除数。

 


单选题

62-11以下哪个定义中的p不是指针,请选择恰当的选项: (2分)

  1. char **p;
  2. char (*p)[10];
  3. char *p[6];

  4. 给出的三项中,p都是指针

分析:详情见https://zhidao.baidu.com/question/428801336.html分析

char *p[] 是数组,元素类型为字符指针。作变量定义时需要有元素数量,或者有初始化表达式以确定元素数量。
char **p 是指针,其指向的一个字符指针。通常用于遍历像上面这样的数组。
char (*p)[] 是指针,其指向的是名义上的数组(因为没有具体数组元素数目)。

 


7分析:A(列不能空)BC数组初始化格式错误,D数组越界无a[3][4]这个元素,所以选择E

 

多选题(少选算部分对,基于自己的答案对少选和部分对做出分析)


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值