天天看點

練習26

練習26

練習26

考試規則:點選你認為正确的選項

1.有以下程式

#include <stdio.h>
int m1(int x,int y)
{ 
  return x<=y?x:y;
 }
int m2(int x,int y)
{
  returnx<=y?y:x;
}
int fun(int a,int b)
{
   return a+b;
}
main()
{
  int x=2,y=3,z=1;
  printf("%d\n", fun(m1(x,y),m2(y,z)));
}      

程式的運作結果是( )。

A.6

回答錯誤 ✕

B.5

回答正确 √

試題解析

條件運算符"?"是C語言中唯- -的一個三目運算符,文法形式為: exp1?exp2:exp3。執行規則為:計算表達式exp1的值,測試其是否為0;如果exp1的值非0,則對exp2求值,并把這個值作為條件表達式的結果輸出,不計算exp3;如果exp1的值為0,則對exp3求值,并把這個值作為條件表達式的結果輸出,不計算exp2。函數m1實作傳回傳入兩個參數中的最小值。函數m2實作傳回傳入兩個參數中的最大值。函數fun實作傳回傳入兩個參數之和。程式執行過程為:調用m1(2,3)傳回2,調用m2(3,1)傳回3,調用fun(2,3)傳回5,輸出結果5, B選項正确。

C.4

回答錯誤 ✕

D.3

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

2. 以下叙述中正确的是( )。.

A.在複合語句中不能定義變量

回答錯誤 ✕

B.對于變量而言,"定義"和"說明"這兩個詞實際上是同一個意思

回答錯誤 ✕

C.全局變量的存儲類别可以是靜态類

回答正确 √

試題解析

全局變量可以用static修飾,限制該變量隻能在目前檔案有效而不能被其他檔案通路,選項C正确;變量的說明隻是向編譯程式描述變量類型,但不為該變量配置設定存儲空間,變量的定義才為該變量配置設定存儲空間,選項B錯誤;在語句塊内可以定義變量,定義的變量為局部變量,選項A錯誤;函數的形參相當于在函數内部定義的-一個變量,屬于局部變量,選項D錯誤;答案選C。

D.函數的形式參數不屬于局部變量

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

3.有以下程式(注:字元a的ASCII碼值為97)

#include <stdio.h>
main()
{      
  char *s ={ "abc" };
  do
  { 
    printf ("%d", *s%10);++s;
  }while(*s);
}      

程式運作後的輸出結果是( )。

A.20 4

回答正确 √

試題解析

字元常量與其ASCII碼值- --對應,在計算的時候,可以用字元資料對應的ASCII碼代表該字元參與運算,是以輸出語句"printf ("%d", *s%10);"輸出的結果分别為97%10、98%10、99%10,即答案選A。.

B.abc

回答錯誤 ✕

C.7890

回答錯誤 ✕

D.979899

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

.4.下列定義數組的語句中,正确的是( )。

A.#define N 10int x[N];

回答正确 √

試題解析

數組說明的一般形式為:類型說明符數組名[常量表達式]。B選項中N是變量,不能用變量定義數組長度。C選項中數組長度是非法的- -串數字。定義數組時必須為其指明長度,D選項中數組長度為空,是以非法。答案選A。

B.int N=10; int x[N];

回答錯誤 ✕

C.int x[0..10];

回答錯誤 ✕

D.intx[];

回答錯誤 ✕