最后一次了,C语言的问题,在线等,急!

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:57:51
1.下面函数要求计算两个整数x,y之和,并通过形参返回该值。请填空
add(int x,int y,﹏﹏z)
{﹏﹏=x+y;}
答案给的是:int* *z 是用指针做参数
我写成: int return z 可以吗?

2.若有定义:char*st="how are you";下列程序段中正确的是
A. char a[11],*p;strcpy(p=a+1,&st[4]);
B. char a[],*p;strcpy(p=&a[1],st+2);
为什么选A不选B?

3.以下程序的输出结果是
main()
{int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
答案是1,我得出的是0. 因为!a已经是0了,&&左边是0,已经不用再判断了,d就是0了呀?

4.以下程序的输出结果是
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
答案是x=8. 我怎么算都是6?能详细的讲一下循环过程吗?
答案中说,第二层循环,也就是内循环是3次,每次执行完内循环后,x的增量为1。
但是明明前两次j=0和j=1的时候,就执行continue了,根本也执行不到下面的x++那句呀?

5.设函数fun 的定义形式为
void fun(char ch,float x){…}
则以下对函数fun的调用语句中,正确的是
A. fun('65',2.8);
B. fun(32,32);

1.下面函数要求计算两个整数x,y之和,并通过形参返回该值。请填空
add(int x,int y,﹏﹏z)
{﹏﹏=x+y;}
答案给的是:int* *z 是用指针做参数
我写成: int return z 可以吗?//不可以

2.若有定义:char*st="how are you";下列程序段中正确的是
A. char a[11],*p;strcpy(p=a+1,&st[4]);
B. char a[],*p;strcpy(p=&a[1],st+2);
为什么选A不选B?//a数组还没开辟内存空间

3.以下程序的输出结果是
main()
{int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
答案是1,我得出的是0. 因为!a已经是0了,&&左边是0,已经不用再判断了,d就是0了呀?//应为还要||,而且!c=1
//也就是0||1=1

4.以下程序的输出结果是
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
答案是x=8. 我怎么算都是6?能详细的讲一下循环过程吗?
答案中说,第二层循环,也就是内循环是3次,每次执行完内循环后,x的增量为1。
但是明明前两次j=0和j=1的时候,就执行continue了,根本也执行不到下面的x++那句呀?
//for(i=0;i<2;i++)
{x++; //i=0,x=1
for(j=0;j<3;j++)
{if(j%2)continue;//j=0,j%2