4个菜鸟级别C语言选择题

2025-03-03 18:15:59
推荐回答(4个)
回答1:

你好!!!
1.为什么选择D呢??因为数组名字就第一个元素的地址,但是数组名字是个是常量,是不可以改变的 !!而*aa++,就是改变数组。但你可能会问,选项A,怎么对啊??首先我要知道指针变量可以自加或自减。原因是 fun(char aa[10])
{ while(*aa) printf(“%c”,*aa++);},调用函数fun()实参是数组名,那么形参可以是数组名或是指针变量,要是指针变的话,相信你可以理解,要是数组名的哈,你可能会想aa++也是错的,但是调用函数的时候,形参要是数组明的话,系统会自动的把数组名转化指针变量,所以选项A,对的!!

2.首先],(*q)[4]=a;表示定义一个指向一维数组的指针变量q,此时q指向数组a的第一个元素。那么选项B:a[2][3]与p[2][3]等价;其中p[2][3]是错误的,指针p只是一维数组指针变量,不是二维,不可以用p[2][3]的形式

后面的前两位都讲了。
要是还不理解我们再联系!!!

回答2:

第一题: D:a[10]="hello" 这里的hello就等于是一个常量的,就像数字100一样,你不能一个个的读他们的地址
第二题:p=p+11 是一个地址而不是值

回答3:

1.D 2.B 3.A 4.B
第四题:一般是用‘r’,但由于只能开一次,所以用‘r+’

回答4:

DBAB