- 论坛徽章:
- 1
|
1、这段代码的输出是什么?用gcc编译,cc可能会出错。
- #include /* for printf definition */
- main () {
- printf ("audible alert (bell) BEL \\a %d\n" , '\a');
- printf ("backspace BS \\b %d\n" , '\b');
- printf ("horizontal tab HT \\t %d\n" , '\t');
- printf ("newline LF \\n %d\n" , '\n');
- printf ("vertical tab VT \\v %d\n" , '\v');
- printf ("formfeed FF \\f %d\n" , '\f');
- printf ("carriage return CR \\r %d\n" , '\r');
- printf ("double quote \" \\\" %d\n", '\"');
- printf ("single quote \' \\\' %d\n", '\'');
- printf ("question mark ? \\? %d\n" , '\?');
- printf ("backslash \\ \\\\ %d\n", '\\');
- }
复制代码
2、看看你的系统数据类型的大小和精度是多少?
- #include /* for printf definition */
- #include /* for CHAR_MIN, CHAR_MAX, etc */
- #include /* for FLT_DIG, DBL_DIG, etc */
- main () {
- printf ("char %d bytes %d to %d \n", sizeof(char ), CHAR_MIN, CHAR_MAX );
- printf ("unsigned char %d bytes %d to %d \n", sizeof(unsigned char ), 0 , UCHAR_MAX );
- printf ("short %d bytes %hi to %hi \n", sizeof(short ), SHRT_MIN, SHRT_MAX );
- printf ("unsigned short %d bytes %hu to %hu \n", sizeof(unsigned short), 0 , USHRT_MAX );
- printf ("int %d bytes %i to %i \n", sizeof(int ), INT_MIN , INT_MAX );
- printf ("unsigned int %d bytes %u to %u \n", sizeof(unsigned int ), 0 , UINT_MAX );
- printf ("long %d bytes %li to %li \n", sizeof(long ), LONG_MIN, LONG_MAX );
- printf ("unsigned long %d bytes %lu to %lu \n", sizeof(unsigned long ), 0 , ULONG_MAX );
- printf ("float %d bytes %e to %e \n", sizeof(float ), FLT_MIN , FLT_MAX );
- printf ("double %d bytes %e to %e \n", sizeof(double ), DBL_MIN , DBL_MAX );
- printf ("precision of float %d digits\n", FLT_DIG);
- printf ("precision of double %d digits\n", DBL_DIG);
- }
复制代码
3、下面这两个代码的输出结果不同,为什么?
- #include
- main () {
- double r;
- r = 1.0 + 0.2;
- r = r - 1.2;
- printf ("%22.16e\n", r);
- }
- #include
- main () {
- double r;
- r = 1.0F + 0.2F;
- r = r - 1.2F;
- printf ("%22.16e\n", r);
- }
复制代码
4、下面的代码说明了整型和float之间转化的的关系,用cc和gcc分别编译,结果不同,为什么?
- #include
- main () {
- int i, j;
- i = 1.99;
- j = -1.99;
- printf ("i = %d; j = %d\n", i, j);
- }
- #include
- main () {
- unsigned int i;
- float f;
- i = 4294967295; /* the largest unsigned int */
- f = i; /* convert it to a float */
- printf ("%u %20.13e %20.13e\n", i, f, f - i);
- }
- #include
- main () {
- unsigned int i;
- float f;
- i = 4294967295; /* the largest unsigned int */
- f = i; /* convert it to a float */
- printf ("%u %20.13e %20.13e\n", i, f, f - (float)i);
- }
复制代码 |
|