鱼C论坛

 找回密码
 立即注册
查看: 2326|回复: 3

c语言计算机二级

[复制链接]
发表于 2018-8-6 15:40:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有两个问题哟


第一个:
阅读以下函数:

fun(char*s1, char*s2)
{
int i=0; while(s1[i]==s2[i]&& s2[i]!='\0') i++;
return(s1[i]==&& s2{i)!=='\0');
}

此函数的功能是()。
A.将s2所指字符串赋给s1
B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0

有几点不明白。 return后面跟着的是什么意思??while(s1[i]==s2[i])是判断这两个字符串是否相等的 意思吗??并且s2[i]!='\0',就表示它们相等但是都不为0对吗??能不能把每一行给出详细的注释呢??


第二个:
void main()
int k[8]=8,7,6,5,0,0, *s;
s=k+1;
printf("%d\n",s[2]+1);
能不能给出每一行的注释呢??那个s=k+1时什么意思啊??有点不明白指针。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-6 15:57:20 | 显示全部楼层
亲爱的,要帮你不是不可以,能不能把代码弄得可阅读一点?

第一个代码有错误

第二个代码
指针跟数组名一样,指向数组的第一个元素。
s = k+1; 就是指向数组的第二个元素
s[2]+1 就是先指向数组的第二个元素,然后+1,指向第三个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-6 16:13:49 | 显示全部楼层
claws0n 发表于 2018-8-6 15:57
亲爱的,要帮你不是不可以,能不能把代码弄得可阅读一点?

第一个代码有错误

不好意思哈,我刚刚又翻了一遍书。第一题的代码不全,但是的确有问题。
fun(char*s1, char*s2)
{
int i=0;
while(s1[i]==s2[i]&& s2[i]!='\0') i++;
return(s1[i]=='\0'&& s2[i]!=='\0');
}
参考书上答案给的是D,不是很明白。。能说说嘛??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-6 16:34:42 | 显示全部楼层
哈哈哈的 发表于 2018-8-6 16:13
不好意思哈,我刚刚又翻了一遍书。第一题的代码不全,但是的确有问题。
fun(char*s1, char*s2)
{

s1, s2 是指针,前面循环没问题吧?主要在看 s2 是不是指向结束,然后递增。
return( s1 == '\0' && s2 != '\0') 这个看真相表:真真真、真假假……(自己手写展开一下)
若为真,return 1;若为假,return 0

你这一段 return 的代码还是有错误,不过自己思考一下~记得前面是看 s2 是否提前结束,不过如果 s1 != s2 也会跳出循环体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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