![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5COxIzM3MDMyQTYwUjMlBTNzYzXwIzM1MTMwIzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
練習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[];
回答錯誤 ✕