作業一

GaPb發表於2024-10-12

作者:tangjiaqian

題目1:

#include<stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}

image

題目2:

#include<stdio.h>
int main()
{
   int a = 10 ; 
   float b = 4.5 ;
   char c = 'A';
   printf("a = %d\n", a);
   printf("a = %f\n", b);
   printf("a = %c\n", b);
   printf("End of the program\n");
    return 0;
}

image

題目3:

#include<stdio.h>
int main()
{
   printf("Data type         Number of bytes \n");
   printf("------------     --------------------\n");
   printf("char                  %d\n", sizeof(char));
   printf("int                   %d\n", sizeof(int));
   printf("short int             %d\n", sizeof(short));
   printf("long int              %d\n", sizeof(long));
   printf("float                 %d\n", sizeof(float));
   printf("double                %d\n", sizeof(double));
   return 0;
}

image

題目4:

#include<stdio.h>
int main()
{
  double temC, temF;
  temF = 100;
  temC = 5 * (temF - 32) / 9;
  printf("華氏溫度%5.2f對應的攝氏溫度是%5.2f\n", temF, temC);
   return 0;
}

image

題目5:

#include<stdio.h>
int main()
{
  int a = 6, b = 5, c = 5;
  int triC;
  triC = a + b + c;
  printf("三角形的周長是:%d\n", triC);
   return 0;
}

image

題目6:

將 short 型別變數 short_value 設定為它的最大值 32767 ,並且再加一的時候,會發生溢位,因為 short 型別不能表示大於 32767 的值,所以它會從最大值迴繞到最小值。
在二進位制表示中,32767 是 0111 1111 1111 1111,當在這個基礎上加一,就變成了 1000 0000 0000 0000,這在有符號的二進位制表示中等價於 -32768

題目7:

(a)-87
(b)-20
(c)0
(d)-2

題目8:

如果 i != j 成立,那麼 i != j 的結果為1,然後 1 < k 就會根據 k 的值來決定真假。
如果 i == j,那麼 i != j 的結果為0,接著 0 < k 就會根據 k 的值來決定真假。

題目9:

(a)i = 3,d = 3.0
(b)i = 3,d = 3.5。

題目10:

條件運算子(Conditional Operator),也被稱為三元運算子(Ternary Operator),在C語言及其衍生的語言(如C++、Java等)中提供了一種簡潔的方式來根據條件選擇不同的值。條件運算子的語法如下:

條件表示式 ? 值1 : 值2;

這裡的解釋如下:

  • 條件表示式:一個返回布林值的表示式(非零為真,零為假)。
  • ?:如果條件表示式的值為真(非零),則計算並返回 值1
  • ::如果條件表示式的值為假(零),則計算並返回 值2

例子

下面是一些使用條件運算子的例子:

示例1: 最簡單的使用

int max_value = (a > b) ? a : b;

這段程式碼將 ab 中較大的值賦給了 max_value 變數。

示例2: 複雜一點的情況

int result = (score >= passing_score) ? "Passed" : "Failed";

這個例子中,score 是一個分數,passing_score 是及格分數。如果 score 大於或等於 passing_score,則 result 會被賦值為字串 "Passed";否則,賦值為 "Failed"。注意,這裡的例子使用了字串,實際上在C語言中,你需要確保字串是以空字元終止的,並且 result 需要是一個指向足夠長度字串的指標。

示例3: 使用在函式返回值中

int min(int x, int y) {
    return (x < y) ? x : y;
}

這個函式接受兩個引數 xy,並返回較小的一個。

注意事項

雖然條件運算子可以簡化一些程式碼,使其更加緊湊,但在複雜的情況下使用它可能會降低程式碼的可讀性。此外,巢狀使用條件運算子可能會使程式碼變得難以理解和維護。因此,在適當的情況下,建議使用傳統的 if-else 語句來代替條件運算子,尤其是在邏輯較為複雜的時候。

示例對比

使用傳統的 if-else 語句來實現上面的 min 函式:

int min(int x, int y) {
    if (x < y) {
        return x;
    } else {
        return y;
    }
}

兩種方式都能達到同樣的效果,但 if-else 語句可能更容易理解。選擇哪一種取決於具體情況和個人偏好。

相關文章