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

1.下面函数要求计算两个整数x,y之和,并通过形参返回该值。请填空add(intx,inty,﹏﹏z){﹏﹏=x+y;}答案给的是:int**z是用指针做参数我写成:in... 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);
想知道为什么A不对?'65'是字符串还字符?
为什么B对?32难道是指ch的ASCⅡ码值?
第3题别看了,我刚明白为什么了,这个问题太白痴了!
展开
 我来答
kanerry
推荐于2016-10-21 · TA获得超过869个赞
知道大有可为答主
回答量:3998
采纳率:0%
帮助的人:2510万
展开全部
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=0 不做这步
x++; //x=2
}
{if(j%2)continue;//j=1,j%2=1 做这步

{if(j%2)continue;//j=2,j%2=0 不做这步
x++; //x=3
}
x++;//x=4;
}

//第二次i循环与第一次一样,所以x增加4
//x=4+4=8

5.设函数fun 的定义形式为
void fun(char ch,float x){…}
则以下对函数fun的调用语句中,正确的是
A. fun('65',2.8);
B. fun(32,32);
想知道为什么A不对?'65'是字符串还字符?
为什么B对?32难道是指ch的ASCⅡ码值?
//'65'是错误表示法,你表示成'\0x41'就对了
//32是指ASCII码32,也就是'\0x20'
百度网友a8d2d29bd
2006-09-23 · TA获得超过1196个赞
知道小有建树答主
回答量:772
采纳率:0%
帮助的人:418万
展开全部
1.不可以 除非你使用Z=add()这样,否则你的x+y只是缚值给局部变量z而不传递给你在主函数中定义的Z
2.跟上面讲的一样
3.=判断(!a&&!b)||!c 因为括号中判断出!a为0就不判断!b了 直接为0,但因为还有个|| 所以还要与!c来次或运算
4.你错了 j=0时因为0%2=0 if为错误的,不执行continue而是执行x++,就跟j=2时一样
5.A编译时就会出错 因为没有\'65\'的格式 \"65\"倒是表示字符串 但这函数要的是字符,就算写成\"65\"也是错的~
而对于b 他会自动识别成ASCII码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友131d0348dd
2006-09-23 · TA获得超过172个赞
知道小有建树答主
回答量:839
采纳率:0%
帮助的人:485万
展开全部
呵呵还是好好看书把 这些都是简单的哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式