鱼C论坛

 找回密码
 立即注册
查看: 1423|回复: 7

<零基础学习C语言>第六章考核 第七题和第

[复制链接]
发表于 2015-2-2 21:08:11 | 显示全部楼层 |阅读模式
1鱼币
7. 以下程序段的输出结果是 [单选、必答题   满分:5分  我的得分:0分]
  • 2. 若有以下定义,则对数组a的元素的正确引用是 [单选、必答题   满分:5分  我的得分:0分]
    • int a[5], *p = a;

    复制代码

    A. *&a[5]
    B. *a+1
    C. *(p+5)
    D. *(a+2)
  • int i, j;
  • char array[] = {'I', 'l', 'f', 'i', 's', 'h', 'C', '\0'};
  • i = sizeof(array);
  • j = strlen(array);
  • printf("%d %d", i, j);

复制代码

A. 9 9
B. 8 9
C. 1 8
D. 9 8


第二题的B为什么错呢?  还有就是第七题貌似是8,7.


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-2 21:08:46 | 显示全部楼层
那个东西貌似格式弄错了....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-2 21:09:26 | 显示全部楼层
2. 若有以下定义,则对数组a的元素的正确引用是 [单选、必答题   满分:5分  我的得分:0分]
int a[5], *p = a;
复制代码
A. *&a[5]
B. *a+1
C. *(p+5)
D. *(a+2)


7. 以下程序段的输出结果是 [单选、必答题   满分:5分  我的得分:0分]
int i, j;
char array[] = {'I', 'l', 'f', 'i', 's', 'h', 'C', '\0'};
i = sizeof(array);
j = strlen(array);
printf("%d %d", i, j);
复制代码
A. 9 9
B. 8 9
C. 1 8
D. 9 8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-7 14:27:01 | 显示全部楼层
第一个 D是对的B *a 是的 但 + 1 是对a数组的第一个元素+1赋值

第二个 可能是答案错了 我也觉得是 8 7 而且我输入代码运行的结果也是 8 7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-7 16:59:27 | 显示全部楼层
1题4楼正解,
2题是8,7.
sizeof是实际大小:8,strlen是字符串大小
strlen是遇到\0则终结,故为7.^^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-9 20:50:32 | 显示全部楼层
答案应该有误,

第一题,答案是最后一个,A和C都超过数组范围了。。。
B是对数组第一个元素加1操作,然后得到这个数丢弃

第二题  应该是8,7
sizeof是计算整个字符串占用空间,最后一个\0也是要计算的。
strlen计算不算最后一个\0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-12 13:02:07 | 显示全部楼层
B答案如果改为*(a+1)就是正确的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-23 13:57:04 | 显示全部楼层
第一题,答案是最后一个,A和C都超过数组范围了,
B是对数组第一个元素加1操作,只有D是第3个元素。

第二题  应该是D
sizeof是计算整个字符串占用空间,'\0'也是一个字符,是用单引号括起来的,所以长度为9.
strlen自然就是8了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表