标题:指针选题
只看楼主
Fjcyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:175
专家分:25
注 册:2006-2-6
 问题点数:0 回复次数:25 
指针选题
以下四个程序中不能对两个整型值进行交换的是:
A)
main()
{
int a=10,b=20;
swap(&a,&b);
printf("%d%d\n",a,b);
}
swap(int *p,int *q)
{
int *t,a;
t=&a;
*t=*p; *p=*q; *q=*t;
}
B)
main()
{
int a=10,b=20;
swap(&a,&b);
printf("%d%d\n",a,b);
}
swap(int *p,int *q);
{
int t;
t=*p; *p=*q; *q=t;
}
C)
main()
{
int *a=0,*b=0;
*a=10,*b=20;
swap(a,b);
printf("%d%d\n",*a,*b);
}
swap(int *p,int *q)
{
int t;
t=*p; *p=*q; *q=t;
}
D)
main()
{
int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);
printf("%d%d\n",a,b);
}
swap(int *p,int *q)
{
int t;
t=*p; *p=*q; *q=t;
}
搜索更多相关主题的帖子: 指针 选题 
2006-02-13 15:05
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
得分:0 

敲到机器上去试。。。。。

[此贴子已经被作者于2006-2-13 17:51:40编辑过]

2006-02-13 17:50
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
得分:0 
我觉得是D。。。
int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);

这样是不对的。。。。
应该是
swap(*x, *y);

吧。。

[此贴子已经被作者于2006-2-13 17:53:25编辑过]

2006-02-13 17:51
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
得分:0 
when i want to ask anyone,i will ask myself first.
what about you?
it is mean that yon can think it first before you ask.

when i want to ask anyone,i will ask myself first.
2006-02-13 18:02
Fjcyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:175
专家分:25
注 册:2006-2-6
得分:0 
以下是引用aiyuheng在2006-2-13 18:02:00的发言:
when i want to ask anyone,i will ask myself first.
what about you?
it is mean that yon can think it first before you ask.

不好意思,这个问题是太简单了...

因为我是自学.所以并非很肯定...我在自已电脑试其实就有答案了.

主要是为什么!. 我要的不是答案,而是过程.


最好的域名、虚拟主机、VPS  www.
2006-02-13 18:08
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
得分:0 
呵呵,在学计算机的路上,真正的老师就是自己.
我想真正在学校或是哪听来的东西不过是太表面太基础的了.
你根本没法领悟到其真正的内涵,只有自己去领悟,去思考,自己去验证.
对C的理解,可能每个人都不一样,只有你真正的自己去做出来,那它才是你的C.
对C的学习,是无止境的,任何一个人(我想)不敢说真正的领悟它,除那些狂妄自大的....
学习的过程中有朋友的帮助是好的,每个爱学习的人也都愿意去帮助别人,也同时得到过别人的帮助(包括我)
我还是想说when i want to ask anyone,i will ask myself first.
最重要的是思考的过程.
我不是高手,只是分享一下我的学习体会.

[此贴子已经被作者于2006-2-13 20:01:12编辑过]


when i want to ask anyone,i will ask myself first.
2006-02-13 19:54
乡下人
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-2-13
得分:0 

我有一个好的将两个数字数值交换的方式,前些日子老师刚给布置的,“不使用中间变量交换两个变量的值”
/*switch two numbers' value*/
#include <stdio.h>
#define MUBER_ZERO 0

/*the function to switch the two numbers value*/
void switch_number(int *a,int*b)
{
*a=*a-*b;
*b=*a+*b;
*a=*b-*a;

}

void main(void)
{
int a =MUBER_ZERO;
int b =MUBER_ZERO;
printf("Please input two numbers .\n");

printf("The NO1:a=");
scanf("%d",&a);

printf("The NO2:a=");
scanf("%d",&b);

printf("a=%d b=%d",a,b);

printf("\n");
switch_number(&a,&b);

printf("a=%d b=%d",a,b);
getch();


}


2006-02-13 20:42
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
得分:0 

楼上的
这样做是不是容易溢出呀

2006-02-13 21:50
stdio
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-1-22
得分:0 
我有一个利用异或运算交换两个变量的值
也不用中间变量

swap(int *x, int *y)
{
*a=*a^*b;
*b=*b^*a;
*a=*a^*b;
}
2006-02-13 21:57
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
A是正确的,但A还可以精简一下

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-13 22:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-45376-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045629 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved