|
发表于 2009-10-31 02:11:51
|
显示全部楼层
IP:江苏扬州
第一题:Floating-point types are displayed with a total of six digits, except that trailing zeros aren't displayed.
you can use precision(..) to display more. For example:
#include <iostream>
using namespace std;
int main()
{
double a=12.3456789;
cout.precision(9);
cout<<a<<endl;
return 0;
}
///////////////////////////////////////////
第二个问题
你运行一下下面的程序,分别在Dev 和 VC 下面, 看看得出的结果是什么.
我想告诉你的是, 这个题目其实没什么意思, 如果要回答出题者, 那么答案是,
出题者不懂编程, 他该认真学习学习.
不过这道题也告诉我们, 我们应该注意程序的书写风格, 不要在一句赋值表达式中使用 ++, 或--,
因为不同的编译器会做出不同的解释.
当然如果你清楚在当前编译器的预计结果, 那么也没有什么问题,
如果不清楚, 那么会产生与你预计不同的结果出来, 那么这样的差错会进一步
影响后面的程序, 这样的所谓的出错是很难查出来的. 所以要小心处理++ 和 --
一般如果不是赋值语句,可以使用 ++ 或 --, 如 count++; 这里任何编译器都得出相同的结果
而 count = count++; 这样的语句要避免.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a[]={5,8,7,6,2,7,3};
int y;
int *p=&a[1];
y = (*--p);
y = y++;
cout<<y<<"\n";
system("pause");
return 0;
}
////////////////////////
问题3:
if(!p) 等价于 if(p == 0) 你想如果 p 等于 0 那么 !0 就等于 1, 也就说 if 判断为 真,那么就执行 if 块内的语句.
所以你看出来了, 作者的意思是想判断 p 这个指针是否为零, 如果为零, 那么 将 退出程序, 那个 exit(1); 就是用来退出程序的. 那个 exit(1) 中的 1, 是用来告诉系统, 程序非正常退出, 也就是说程序出了问题, 并退出.
相比较, 如果是 exit(0); 那么就是程序正常退出, 那个 0 表示一切正常.
你看到程序的结尾都会有一个 return 0; 就是用来表示程序正常, 将0返回给系统, 从而告诉系统, 程序正常运行完毕. |
|