3.學習筆記_3

習題 3.1

1.

(a) num為變數,134為常數
(b) sum為變數,76844為常數
(c) value為變數,27.394756為常數

2.

/* prog3_1,變數的使用 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num1=12400;
   double num2=5.234;

   printf("num1的平方為%d\n",num1*num1);
   printf("num2的平方為%f\n",num2*num2);

   system("pause");
   return 0;
}

習題 3.2

3.

(a)134.45L  13.45是浮點數型態,L不是用
(b)1024  常數不能文字或與數字相混和
(c)a2048  數字前不能有文字或特殊符號

4.

(a)124.23 倍精度浮點數型態
(b)3.23E12F 指數浮點數型態
(c)2.436F  浮點數型態
(d)311980L  長整數型態
(e)1024  整數型態

5.

(a)-96.43 → -9.643000e+001
(b)1974.56 → 1.974560e+003
(c)0.01234 → 1.234000e-002
(d)0.000432 → 4.320000e-004

6.

(a)-9.5e-4 → -0.00095
(b)3.78e+5 → 378000
(c)5.12e-2 → 0.0512
(d)6.1732e+12 → 6173200000000

7.

(a) \b 倒退一格
(b) \n 換行
(c) \t 跳格
(d) \a 警告音

8.

int 4位元組 -2147483648~2147483648
char 1位元組 0~256
float 4位元組 1.2-38~3.4e38
double 8位元組 2.2e308~1.8e308

9.

unsigned型態用在無負數情況下,此時能用的正數範圍變成2倍

10.

(a) bool flag=true;  沒見過這種寫法
(b) int num=40;  可接受
(c) double float sum=5.04;   多打float
(d) long value=47828L;   可接受

11.

(a) int
(b) short?
(c) double
(d) short or float
(e) float
(f) short?
(g) double
(h) short?
(i) long

12.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char ch='\7';
    printf("%c",ch);

    system("pause");
    return 0;
 }

13.

char ch=312; /*將字元變數ch設為312*/
printf("%c\n",ch); /*結果印出8*/

因為char只有一個位元組的大小(8bit,0~255),312大於255,換成二進位為100111000,發生溢位
所以只被取到後面8位元00111000,為10進位的56,ASCII碼56為字元8

14.

(a) unsigned short範圍為0~65535,共65536位元,80000溢位所以只擷取到後面,故80000-65536=14464
(b) 將unsigned short 改為unsigned int 就可以顯示80000了

15.

(a)

(b) float 只有8個數字的精度30000.1004有9個數字,故無法得到此結果
(c)

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   double num1=30000.1;  /*將float改為double*/
   double num2=0.0004;   /*同上來獲得更多空間最多16的數字*/
   printf("%.4f\n",num1+num2);  /*%.4f2的.4指能控制小數點後顯示4位*/ 

   system("pause");
   return 0;
}

習題 3.3

16.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{  
    unsigned int num1;
    unsigned short int num2;

    printf("sizeof(num1)=%d\n",sizeof(num1));
    printf("sizeof(double)=%d\n",sizeof(double));
    printf("sizeof(num2)=%d\n",sizeof(num2));

    system("pause"); 
    return 0;
}
(a) unsigned int 佔4位元組
(b) double 佔8位元組
(c) unsigned short int 佔2位元組

17.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   printf("sizeof(578)=%d\n",sizeof(578));
   printf("sizeof(784000000)=%d\n",sizeof(784000000));
   printf("sizeof(6.78f)=%d\n",sizeof(6.78f));
   printf("sizeof(718.26)=%d\n",sizeof(718.26));
   printf("sizeof(6.42e127)=%d\n",sizeof(6.42e127));

   system("pause");
   return 0;
}
(a) 578 佔4位元組
(b) 784000000 佔4位元組
(c) 6.78f 佔4位元組
(d) 718.26 佔8位元組
(e) 6.42e127 佔8位元組

習題 3.4

18.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   float num1=123.39f;
   float num2=3.8e5f;

   printf("(int)num1=%d\n",(int)num1);
   printf("(int)num2=%d\n",(int)num2);

   system("pause");
   return 0;
}

19.

(a) 因為5/8=0...5,商數是0
(b) 

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num1=5,num2=8;
   printf("%f\n",(float)num1/(float)num2);   

   system("pause");
   return 0;
}

results matching ""

    No results matching ""