火球术咒语:c语言void func1(int i);是什么意思

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 12:43:09
43
设已有定义: char *st="how are you"; 下列程序段中正确的是b为什么,其他3项哪里错了?
a
char a[11], *p; strcpy(p=a+1,&st[4]);
b
char a[11]; strcpy(++a, st);
c
char a[11]; strcpy(a, st);
d
char a[], *p; strcpy(p=&a[1], st+2);

44
下列程序执行后的输出结果是:you&ne为什么
main() {char arr[2][4]; strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';printf("%s \n",arr);}

char arr[2][4]; 是什么意思
strcpy(arr,"you");是什么意思
strcpy(arr[1],"me");是什么意思
arr[0][3]='&';是什么意思
45
下列程序的输出结果是:hlo
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i){ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i){ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main(){ int i=0; func1(i); printf("\n");}

void func1(int i);是什么意思
char st[]="hello,friend!";是什么意思
void func1(int i){ printf("%c",st[i]);是什么意思
if(i<3){i+=2;func2(i);}}是什么意思

强烈BS楼下的照抄+整合行为,这样只能阻碍知道的发展
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
问题真多啊,还好今天有空,一个一个来,首先抱歉,我不知道你的水平,所以尽量详细点,并不是看不起你哦.

43: 经过VC++6.0的编译,证明答案应该是C,而B是错的(
LZ故意的?) error C2105: '++' needs l-value
首先说明strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
char a[11]长度11,="how are you"长的也是11,所以C是正好够,A中p指向指针a的下一个,a本来指向数组开头,就是a[0],现在p就是a[1]了,直到null,长度就是10,根据说明长度不够,所以错误.B,D同理.

44.char arr[2][4];表示2维数组,一共2行,每行4个,其实它是顺序排列的,就是说内存里是01230123(为什么是0不是4总知道吧),strcpy(arr,"you"); 把you复制到arr里,这里没有指明是arr的第几行,所以从头始,01230123都可以用,所以变成了you30123.strcpy(arr[1],"me");指明了第1行(从第0行开始哦),所以变成了you3me23.
arr[0][3]='&',赋值第0行第3个为&,这是一个字符,所以是单引号,如果是字符串就是双引号.所以变成了you&me23,当然了,23是空的,只是我写的代号,所以答案是you&me(你写的是ne?笔误?)

45.看来你什么都不会啊,一句一句来.刚学C吧,建议有个好的书写格式.
void func1(int i); //1 表达方便 第1行
void func2(int i); //2
char st[]="hello,friend!"; //3
void func1(int i)//4
{
printf("%c",st[i]); //5
if(i<3)//6
{
i+=2;//7
func2(i);//8
}
}
void func2(int i)//9
{
printf("%c",st[i]); //10
if(i<3)//11
{
i+=2;//12
func1(i);//13
}
}
main()//14
{
int i=0; func1(i); //15
printf("\n");//16
}
第14行,main()表示程序从这里开始,里面用到了func1函数,所以要在main前面声明并写上func1的实现(写前面还是后面,要不要声明有几种,自己看书吧,这里就不说了)
所以第1行声明这个程序里用到了func1函数(声明只要写函数头就可以了)
void func1(int i);它的结构A B (C),
B是函数名(喜欢什么用什么),A是函数执行完了之后需要返回给调用它的地方一个值的类型,比如int Add(int a,int b){return a+b}这个函数,int x;x=Add(1,2)就是说Add这个函数执行1+2,然后返回给调用它的地方一个整数类型的值,所以x=3.C参数表示从原来地方传递一个或几个数过去给函数处理,写的时候要写类型 变量名,多个参数之间用,格开,如int a,int b
回到void func1(int i);void表示这个函数不用返回值.
第4行,写完声明之后就是写实现,先把函数头再写一遍(其实不叫函数头,这是俗称,理解起来方便),然后写实现内容.
同样里面用到了func2,一样声明实现.
第3行 char st[]="hello,friend!";这是一个变量的定义,为什么写在main外面呢,这表示全局变量,就是说整个程序里都可以用到这个变量,不是只有main函数,如何函数对它的改动都是会被保存下来的(不太通,自己理解了啦).
if(i<3){i+=2;func2(i);}
i+=2,就是i=i+2的意思.
执行完这句然后是func2(i),就是调用函数func2,同时把前一句计算出来的i传递给它,这里i=3,也就是说这里调用func2之后,func2里的i就是i+=2;func2(i);里的i,也就是3.
自己再连起来看看,建议你还是多看看书吧.
累啊,就到此为止吧,有什么问题再问,不用客气.
[广告]我为人人,人人为我.大家行动起来,让我们每个人都无所不知.

void func1(int i)是函数声明语句。
void:函数返回值为空。
func1:函数名。
int i:函数的形参个数为1个,类型为int。

这句void func1(int i),其中void指的是返回值类型是空,默认情况下指的是int型,func1是你定义的函数名,int i是你定义一个形式参数,类型是整型的。。~~~

www.cncfan.com