83.函數fopen()的返回值不能是( )
A.NULL
B.0
C.1
D.某個內存地址
【解析】函數fope()的返回值有兩種可能:一是正確打開了文件,將返回某個地址,程序中一般是用文件型指針變量來接受的;二是打開文件時出現錯誤,此時返回值是符號常量“NULL”,其值為0。所以本題答案應選C。
【參考答案】C
84.以只寫方式打開一個二進制文件,應選擇的文件操作方式是( )
A."a+"
B."w+"
C."rb"
D."Wb"
【解析】打開文件時,如果是“只寫方式”,則只能選用字符“ w”;如果要打開的文件是二進制文件,則需要選用字符“b”,所以本題答案應選 D。
【參考答案】 D
85.設有定義語句“char ch='\77';”,則下列說法中正確的是( )
A.ch中含有1個字符
B.ch中含有2個字符
C.ch中含有3個字符
D.語法出錯
【解析】從定義語句中可以看出,變量ch是字符型變量,顯然只能存放單個字符,所以備選答案B和C是錯誤的說法。再分析賦予的初值,'\77'是在“\”符號的后面跟有2位的人進制數,所以'\77'是轉義字符,轉義字符是單個字符,所以本題答案應選A。
【參考答案】 A
86.設有函數調用語句“f(x1,x1+x2,(x1,x2));”,正確的說法是( )
A.調用的實際參數是2個
B.調用的實際參數是3個
C.調用的實際參數是4個
D.調用時會出現語法錯誤。
【解析】對函數調用來說,實際參數一般都是表達式,而表達式之間必須用逗號來分隔,所以只要區(qū)分調用時的表達式數目,即是實妹參數的數目。對本題來說,第1個表達式是“x1”、第2個表達式是“x1+x2”、第3個表達式是一個逗號表達式“x1,x2”,所以本題的函數調用時,表達式的數目為3,當然實際參數的數目就是3,所以本題答案應選B。
【參考答案】B
87.計算平方數時不可能引起二義性的宏定義是( )
A.#define SOR(x)x*x
B.#define SQR(x)(x)*(x)
C.# define SQR(x)(x*x)
D.# define SQR(x)((x)*(x))
【解析】分析備選答案A:如果宏引用是“SQR(2+3)”,則宏替換后的結果是“2+3*2+3”,結果是錯誤的,因此這個答案可能引起二義性。分析備選答案B:如果宏引用是“ 3/SQR(2+3)”,則宏替換后的結果是“3/(2+3)*(2+3)”,結果也是錯誤的,因此這個答案可能引起二義性。分析備選答案C:如果宏引用是“SQR(2+3)”,則宏替換后的結果是“(2+3*2+3)”,結果也是錯誤的,因此這個答案可能引起二義性。只有備選答案D不會引起二義性。所以本題答案應選D。
【參考答案】D
88.執(zhí)行下列程序段后,x的位是( )
int a=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;else x=3;
A.0
B.1
C.2
D.3
【解析】按照"else"只和前面最近的"if"配對的原則,上述程序段可以寫成下列更為清晰的程序清單:
int a=8,b=7,c=6,x=1;
if(a>6)
if(b>7)
if(c>8)
x= 2:
else
x=3:
依據a、b、c的值,很容易看出第1個“if語句”的條件“a>6”是成立的,接著執(zhí)行第2個“if語句”,該語句的條件“b>7”,是不成立的,所以下面的“if-esle”語句不執(zhí)行,因此x的值不變,仍為1。所以本題答案應選B。
【參考答案】B
89.執(zhí)行下列程序段后,變量y的值為( )
int x[]={1,2,3,4},y,*p=&x[1];
y=(*--P)++;
A.1
B.2
C.3
D.4
【解析】從數據定義語句中可以得出下列結論:指針變量P指向的數組元素是x[1]。再來分析賦值句的右邊表達式“(*--p)++”,其中的“--”優(yōu)先于“*”先計算“--p”,使得p指向數組元素x[0];所以“(*--p)”就是數組元素a[0],再計算其后的“++”,由于“++”是后綴,所以表達式的值就是數組元素x[0]的值,為1,然后再對數組元素x[0]加1。因此變量y的值是1。本題答案應選A。
【參考答案】A
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |