c语言有道题不懂!!!帮帮忙!!

若变量a,b,c已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是
A a=a+b,b=a-b,a=a-b; B t=a,a=b,b=t; C a=t,t=b,b=a; Dt=b;b=a;a=t;
符号有问题吗?

这道题你可以带入数字去验证:设a=1,b=2.
A选项:a=a+b=1+2=3,此时a=3(a得到新值),b=a-b=3-2=1此时b=1,a=3-1=2此时a=2,很明显A成立
B选项:t=a就是t得到a的值就是t=1,a=b就是把b赋值给a 就是a=2,b=t=a=1(第一条语句中t=a);B选项是常规的交换方法,楼主应该懂的
C选项:a=t 把t赋值给a,t=b 把b赋值给t此时t=2,b=a=t=2,C选项很显然是不能进行交换的一组
D选项:t=b=2,b=a=1,a=t=2,数据进行了交换;
所以此题选C!
这种选择题目的是加强楼主的逻辑思维能力,加深对赋值的理解,对真正的程序设计没什么大的意义,楼主可以先借助具体的数字带入进行判断,以后熟练了,自然而然就能看得出来。希望对你有帮助!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-24
C错
第2个回答  2011-07-24
就是实现a跟b交换啊!
A答案肯定是可以的!
b=a-b=a+b-b=a
a=a-b=a+b-a=b//这时候b已经变了
BD答案就是正常的通过第三个参数值做中间过渡
C答案是错误的!
第3个回答  2011-07-24
C。
A。理解答案A:a=a+b,b=a+b-b(b=a),a=a+b-a(a=b);

c语言有道题不懂!!!帮帮忙!!
B选项:t=a就是t得到a的值就是t=1,a=b就是把b赋值给a 就是a=2,b=t=a=1(第一条语句中t=a);B选项是常规的交换方法,楼主应该懂的 C选项:a=t 把t赋值给a,t=b 把b赋值给t此时t=2,b=a=t=2,C选项很显然是不能进行交换的一组 D选项:t=b=2,b=a=1,a=t=2,数据进行了...

c语言有道题不明白,为什么结果得5.5,麻烦讲解一下
a,c都是float型,a+c=7.2;(int)(a+c)为7,所以为2*7\/2,故为7。所以原式等于a+7%4=2.5+3=5.5。

今天早上看c语言的书有道题是这样的本人有点不明白,拿出了来希望大家帮...
2、int c1 = 289时 printf("%c,%c\\n",c1,c2); %c为单字符输出,与以上同理将int c1截位了。

各位c语言高手 帮帮忙 有道题小弟我不会,谢谢!给发到我的QQ邮箱790085117...
include "stdio.h"include <stdlib.h> include void main(){ int a[11];int i,sum=0,j,temp;srand(time(NULL));for(i=0;i<10;i++){ while(1){ a[i]=rand()%50;temp=0;for( j=0;j<i;j++){ if(a[i]==a[j])temp=1;} if(temp!=1) break;} printf("%d\\n",a[...

有道C语言-指针的计算题麻烦达人帮解下!!
1.strlen函数是用来测试字符串的实际长度的,所以不包括结束标记符的 2.p还是p+1决定了测试的字符串的起始字符,就是从哪个字符开始测试,所以strlen(p)的值为6,strlen(p+1)的值为5

有道C语言-指针的计算题麻烦达人帮解下!!
strlen计算从当前字符到第一个'\\n'的字符数,不包括\\n,所以,strlen(p)==6。而strlen(p+i)就要等于6-i了

C语言“三天打鱼两天晒网”问题
根据题意可以将解题过程分为三步:1、计算从1990年1月1日开始至指定日期共有多少天;2、由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3、根据余数判断他是在“打鱼”还是在“晒网”;若 余数为1,2,3,则他是在“打鱼”;否则 是在“晒网”。include <stdio.h>\/*...

有道C语言的计算题关于switch语句的麻烦达人帮解下!!
2: 输出66 \/\/执行case1 case2 4:输出8 \/\/执行case2 7:输出9 \/\/执行default 3:输出77 \/\/执行case1 case2 所以结果是668977

有道c语言的题目,关于全局变量的,请详解。
b=6+11=17,i=1,没有输出。第一次调用func(6),a的值保留上次的值,在main()函数内部的b是局部变量,其值为6,在func函数内部的b是形参,c,i因为是全局变量,也全是上次结束时的值:a=10+6=16,c=11+16=27, b=6+27=33,i=2,输出:a=16,b=33,c=27 楼主说的运行答案不对:

c语言有道题目:设x,y,z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0...
C:运算顺序是 x || ((y+z) && (y-z)),显然结果不一定是真还是假,所以依然有可能为非0;D: ! ((x<y) && !z || 1 ) = ! (((x<y) && !z ) || 1 ) = ! 1 = 0。其中((x<y) && !z ) || 1 的值是和1求或,值永远为1。

相似回答
大家正在搜