| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖
标题:CC求教一道关于交换两个数数值的问题。
只看楼主 加入收藏
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
结帖率:100%
收藏
 问题点数:0 回复次数:10 
CC求教一道关于交换两个数数值的问题。
33.下面程序应能对两个整型变量的值进行交换。以下正确的说法是(   
main()
{
 int a=10,b=20;
 printf(″(1)a=%d,b=%d\n″,a,b);
 swap(&a,&b);
 printf(″(2)a=%d,b=%d\n″,a,b);
}
swap(int p,int q)
{
 int t;
 t=p;p=q;q=t;
}
 A.该程序完全正确
 B.该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
 C.该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
 D.以上说法都不对

本人感觉选项B没有错呀。平时本人都是这么编的, 这一题真是当头棒喝呀。 求帮助  正确答案是D
搜索更多相关主题的帖子: 交换 
2011-09-05 09:10
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 


\n

swap(int p,int q)
没函数声名

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-05 10:28
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
程序代码:
#include<stdio.h>
int swap(int p,int q)
{
int t;
t=p;p=q;q=t;
}
int main()
{
int a=10,b=20;
    printf("(1)a=%d,b=%d\n",a,b);
    swap(&a,&b);
    printf("(2)a=%d,b=%d\n",a,b);
}

这样就对了  

Discuz!  
好好学习  天天向上
2011-09-05 10:30
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:0 
int swap(int *p,int *q)
{
    int t;
    t=*p;*p=*q;*q=t;
}
通过地址来交换值

惟我独行...
2011-09-05 10:55
编程达人
Rank: 2
等 级:论坛游民
帖 子:62
专家分:66
注 册:2011-8-11
收藏
得分:0 
程序代码:
#include<stdio.h>
int swap(int *p,int *q)
{
int *t;
*t=*p;*p=*q;*q=*t;
}
int main()
{
int a=10,b=20;
    printf("(1)a=%d,b=%d\n",a,b);
    swap(&a,&b);
    printf("(2)a=%d,b=%d\n",a,b);
}
三楼的程序有问题,swap函数调用里面的实参是地址,形参p,q接收不了。而且就算吧实参的取地址符去掉也得不到楼主想要的结果,因为参数之间是单向的值传递,形参的改变不会影响实参
2011-09-05 10:59
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
我个人比较同意5楼的程序,但感觉其中有一些错误;

#include<stdio.h>
int swap(int *p,int *q)
{
int *t;
t=p;p=q;q=t;  //其中的t,p,q都为指针变量不用加*
}
int main()
{
    int a=10,b=20;
    printf("(1)a=%d,b=%d\n",a,b);
    swap(&a,&b);
    printf("(2)a=%d,b=%d\n",a,b);
    return 0;
}
2011-09-05 12:17
ljw970243
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:105
注 册:2011-8-20
收藏
得分:0 
如果LZ的题目是完整的话那答案就是D ,因为使用的 swap()函数没有声明.
应该是这样才对.
swap(int *p,int *q);
main()
{
    int a=10,b=20;
    printf(″(1)a=%d,b=%d\n″,a,b);
    swap(&a,&b);
    printf(″(2)a=%d,b=%d\n″,a,b);
}
swap(int *p,int *q)
{
    int t=*p;   
    *p=*q;
    *q=t;
}
2011-09-05 12:58
NeXT__00
Rank: 2
等 级:论坛游民
帖 子:51
专家分:98
注 册:2011-9-5
收藏
得分:0 
来学习的。

[ 本帖最后由 NeXT__00 于 2011-9-5 13:21 编辑 ]
2011-09-05 13:12
edwardflee
Rank: 4
等 级:业余侠客
帖 子:145
专家分:234
注 册:2011-7-27
收藏
得分:0 
7楼正解
呵呵,发现总有坛友跟我学习进度一样,
上午才写完这个问题的笔记
https://hi.bccn.net/space.php?uid=565180&do=blog&id=34000
楼主有兴趣过来看看,大家讨论一下

学C的秘诀=每天都来泡论坛
2011-09-05 13:58
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 3楼 qq8801103
这样不对

                                         
===========深入<----------------->浅出============
2011-09-05 15:00
快速回复:CC求教一道关于交换两个数数值的问题。
数据加载中...
 
   



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

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