爱问知识人 爱问教育 医院库

c语言的基础题求解

首页

c语言的基础题求解

1、main()
{
  int a;char c=10;
  float f=100.0;double x;
  a=f/=c*=(x=6.5);
  printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}

char c=10,是将字符10赋值给c吗???字符10是什么???表只有0-9有字符对应的ASCII码,10是什么?

2、设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两为,并且将第三位四舍五入的是
A)x=x*100+0.5/100.0 B)x=(x*100+0.5)/100.0 
C)x=(int)(x*100+0.5)/100.0 D)x=(x/100+0.5)*100.0

此类题目如何思考呢?

3、
main()
{
  int i=1,j=2,k=3;
  if(i++==1&&(++j==3||k++==3))
  printf("%d %d %d\n",i,j,k);
}
++j使j=3 k++使k=4 i++使i=2
但是答案为什么是2 3 3呢?

4、
void f(int y,int *x)
{
  y=y+*x;*x=*x+y;
}
main()
{
  int x=2,y=4;
  f(y,&x);
  printf("%d %d\n",x,y);
}
求这题f()函数里的计算过程

5、
void swap(int *a,int *b)
{
  int *t;
  t=a;a=b;b=t;
}
main()
{
  int x=3,y=5,*p=&x,*q=&y;
  swap(p,q);
  printf("%d %d\n",*p,*q);
}
解题过程 我做出来是5 3,答案是3 5,不解???

提交回答
好评回答
  • 2008-03-10 18:33:59
      简单回答一下学姐的问题:
    1、由于字符在内存中是以int类型存储,所以int型和char型在一定程度是可以通用的。所以整数10是可以赋值给char变量c的。只不过,在输出的时候,可以通过%c或%d来控制就是了。ASCII码当然是单个字符的字符集了,而10就是一个整数。
       2、答案应该是C。对于此类问题,要考虑float类型在内存中存储的是一个近似值,是有实际误差的。所以放大缩小时必须要用相同的倍数,而且四舍五入要通过强制类型转换来实现。C答案实际上最接近,理论上加上0。5就可以,但实际上未必,你可以测试一下。
      至于其它的表达式,差的就远了。 3、标准答案当然是对的,至于为什么变量k的值不是4,这是由于在判断表达式(++j==3||k++==3)时,逻辑或||后面的k++并没有计算。这是因为逻辑或表达式,只要前面的表达式为真,后面的就不再计算。而表达式++j==3,非零,为真,满足条件,所以后面的不计算,所以k值仍然是3。
       4、f(y,&x)函数计算过程。调用时,实参y值是4,实参&x是变量x的地址,地址所指向的变量值2。 所以表达式y=y+*x中,y值是4,*x值是2,最终y值6,计算*x=*x+y时,y值是6,*x是2,所以*x最终值是8,也就是x变量值为8。
      同时要注意,参数y是传值方式,传给函数内部的是y变量的复本,并不会影响函数外部的y值,所以在函数外输出时,仍然是y变量的初始值4,所以输出结果是:8 4 5、答案为什么是3 5?这是因为swap函数,仅仅是通过指针变量t,把两个参数指针的地址进行了交换,并没有把指针所指向的变量值进行交换,所以输出结果是:3 5。
       如果把函数内部修改成下面的代码,则真的是把变量值进行交换了。int t; t=*a;*a=*b;*b=t; 。

    心***

    2008-03-10 18:33:59

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 171-190
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):