c语言作业 在线等 麻烦各位大虾(小小解释一下)

作者&投稿:聊绿 (若有异议请与网页底部的电邮联系)
/**********FOUND**********/
void scat (char s1[],char s2[]) //要用数组,与函数原型一样
{
int i=0,j=0;
/**********FOUND**********/
while(s1[i]!='\0') // 不等于 字符串结束符时 循环
i++;
/**********FOUND**********/
while(s2[j]!='\0') // 不等于 字符串结束符时 循环
{
/**********FOUND**********/
s1[i]=s2[j]; // s2 加到 s1 后边
i++;
j++;
}
/**********FOUND**********/
s1[i]='\0'; // 加一个字符串结束符号。
}
[输入用 gets(。。。); 所以输入时, 一个字符串 一行。]

#include <stdio.h>

void main()
{
char s1[80],s2[80];
void scat(char s1[],char s2[]);
gets(s1);
gets(s2);
scat(s1,s2);
puts(s1);
}

/**********FOUND**********/
void scat (char s1[],char s2[])
{
int i=0,j=0;
/**********FOUND**********/
while(s1[i]!='\0')
{
i++;
}
/**********FOUND**********/
while(s2[j]!='\0')
{
/**********FOUND**********/
s1[i]=s2[j];
i++;
j++;
}
/**********FOUND**********/
s1[i]='\0';
}

其实你可以用到strcat函数

就是把==改为!=

C语言。麻烦哪位解释一下~

1.先建立了一个3*3的数组,初始化a[0][0]、a[1][0]和a[2][0]为2,4,6。整数指针p指向a[0][0]。
2.执行循环2次
第一次i=0:if语句条件成立,于是a[0][1]被赋值为*p+1也就是a[0][0]+1,也就是2+1=3;接着打印*p,因为p没有变,所以p还是指向a[0][0],所以输出a[0][0]的值2;
第二次i=1:if的else被执行,于是p指向a[0][1],接着输出*p也就是a[0][1]的值,刚刚已被改成3,所以输出3。
3.综上所述输出为:23。

首先,因为s是字符指针,因此它的值是一个地址
下面的关键是要看s到底指向哪里:
因为开始s指向字符串abcde,也就是说s中存储的是这个字符串的起始地址,当s+=2后,s移动了两个存储单元,指向了字符c,因此s中存储的是字符c的地址,输出的结果为字符c的地址
故 选C