A.auto
B.void
C.extern
D.static
【解析】C語言規(guī)定,函數(shù)的存儲類型只能選取static或extern。前者表示本函數(shù)只能在本編。譯單位中被調用;后者表示本函數(shù)可以被其他編譯單位調用。如果省略了存儲類型符,則系統(tǒng)默認為是“extern”型,所以本題答案應選C。
【參考答案】C
62.能正確定義一個用來指向打開文件的文件型指針變量fp的語句是( )
A.file fp;
B.file *fp;
C.FILE fp;
D.FILE *fp;
【解析】"file”是在頭函數(shù)“stdio.h"沖定義的文件結構型的用戶自定義數(shù)據(jù)類型符,這個用戶自定義的數(shù)據(jù)類型符是大寫字母組成的,所以備選答案A山是錯誤的。文件型指針變量在定義時,變量名的前面必須有“*”,所以備選答案C也是錯誤的,本題應選答案D。
【參考答案】D
63.存儲整型數(shù)據(jù)-7856時,在二進制文件和文本文件中占用的字節(jié)數(shù)分別是( )
A.2和2
B.2和5
C.5和5
D.5和2
【解析】二進制文件中存放的數(shù)據(jù)是二進制形式的,對于“-7856”來說,是一個帶符號的短整型數(shù)據(jù),C語言規(guī)定短整型數(shù)據(jù)占用的字節(jié)數(shù)是2,所以在二進制文件中該數(shù)據(jù)占用2個字節(jié);對文本文件來說,存放的數(shù)據(jù)是按照每位數(shù)字對應的ASCII代碼值存放的,對于“-7 856”來說,其中的“-”號要占 1個字節(jié);4位整數(shù)要占4個字節(jié),共計占用5個字節(jié)。所以本題的答案應選B。
【參考答案】B
61.如果某個函數(shù)在定義時,省略了存儲類型,則默認的存儲類型是( )
A.auto
B.void
C.extern
D.static
【解析】C語言規(guī)定,函數(shù)的存儲類型只能選取static或extern。前者表示本函數(shù)只能在本編。譯單位中被調用;后者表示本函數(shù)可以被其他編譯單位調用。如果省略了存儲類型符,則系統(tǒng)默認為是“extern”型,所以本題答案應選C。
【參考答案】C
62.能正確定義一個用來指向打開文件的文件型指針變量fp的語句是( )
A.file fp;
B.file *fp;
C.FILE fp;
D.FILE *fp;
【解析】"file”是在頭函數(shù)“stdio.h"沖定義的文件結構型的用戶自定義數(shù)據(jù)類型符,這個用戶自定義的數(shù)據(jù)類型符是大寫字母組成的,所以備選答案A山是錯誤的。文件型指針變量在定義時,變量名的前面必須有“*”,所以備選答案C也是錯誤的,本題應選答案D。
【參考答案】D
63.存儲整型數(shù)據(jù)-7856時,在二進制文件和文本文件中占用的字節(jié)數(shù)分別是( )
A.2和2
B.2和5
C.5和5
D.5和2
【解析】二進制文件中存放的數(shù)據(jù)是二進制形式的,對于“-7856”來說,是一個帶符號的短整型數(shù)據(jù),C語言規(guī)定短整型數(shù)據(jù)占用的字節(jié)數(shù)是2,所以在二進制文件中該數(shù)據(jù)占用2個字節(jié);對文本文件來說,存放的數(shù)據(jù)是按照每位數(shù)字對應的ASCII代碼值存放的,對于“-7 856”來說,其中的“-”號要占 1個字節(jié);4位整數(shù)要占4個字節(jié),共計占用5個字節(jié)。所以本題的答案應選B。
【參考答案】B
67.對于輸入語句scanf("%f,%f",&a,&b);要使變量a、b上的值分別為 1.78和2.48,則正確的輸入是( )
A. 1.78,2.48后跟回車
B. 1.78 2.48后跟回車
C. 1.782.48后跟回車
D. 1.78;2.48后跟回車
【解析】按照scanf()函數(shù)的語法要求,第1個形參是一個字符串常量,是由格式控制符和非格式控制符組成的,其中的非格式控制符必須原樣輸入。顯然本題中的非格式控制符是在兩個實數(shù)之間的“逗號”。從4個備選答案中可以看出,只有備選答案A中是用逗號分隔兩個實數(shù)的,所以本題答案應選A
【參考答案】 A
68.執(zhí)行下列程序段后的輸出結果是( )
x=9;
while( x>7)
{ printf("*");x--;}
A.****
B.***
C.**
D.*
【解析】注意執(zhí)行while循環(huán)前,變量x的初值為9.第1次執(zhí)行while循環(huán),控制循環(huán)的條件為“x>7”,這時x為9,條件成立,執(zhí)行循環(huán)體:輸出單個“*”,x再減1,x為8。繼續(xù)循環(huán),控制循環(huán)的條件是“x>7',現(xiàn)在x為8,條件成立,輸出“*”后x減1,現(xiàn)在x為7。繼續(xù)循環(huán)時,控制循環(huán)的條件不滿足,退出循環(huán)。所以本段程序執(zhí)行后,輸出結果為兩個“*”,本題答案應選C。
【參考答案】C
69.關于帶參數(shù)的主函數(shù),下列說法中錯誤的是( )
A.帶參數(shù)的主函數(shù)中,形式參數(shù)名稱是系統(tǒng)規(guī)定的,用戶不能自己選擇
B.帶參數(shù)的主函數(shù)中,第1個形式參數(shù)是int型的
C.帶參數(shù)的主函數(shù)中,第2個形式參數(shù)是字符型數(shù)組
D.帶參數(shù)的主函數(shù)中,實際參數(shù)值只能在執(zhí)行程序的命令行中獲得
【解析】帶參數(shù)的主函數(shù)定義格式是系統(tǒng)規(guī)定的,具體如下:
main(argc,argv);
int argc;
char *argv[];
{...
}
由此看出,第2個形式參數(shù)argv是指向字符型數(shù)據(jù)的指針型數(shù)組,不是字符型數(shù)組所以備選答案 C是錯誤的,本題應選答案C。
【參考答案】C
70.執(zhí)行下列程序后的輸出結果是( )
#define M(a,b)(a)>(b)?(a):(b)
main()
{ int i=10,i=15; printf("%d\n",10*M(i,j)); }
A.10
B.15
C.100
D .150
【解析】本題要輸出的表達式是“10*M(i,j)”,其中的“M(i,j)”是帶參數(shù)的宏調用,宏替換后,表達式的結果是“10*(i)>(j)?(i):(j)”,而變量i值為10、變量j值為15,帶入整個要輸出的表達式后結果是“10*(10)>(15)?(10):(15)”,,其中的條件“10*10>15”是成立的,結果等于10。所以本題答案應選A
【參考答案】A
71.執(zhí)行下列程序后的輸出結果是( )
int fun(int x1,int x2)
{ int x;x1>x2?(x=3):(x=4);return(x+x1); }
main()
{ printf("%d\n",fun( 7,8));}
A.9
B.10
C.11
D.12
【解析】本程序的輸出是函數(shù)調用“fun(7,8)”的返回值。分析函數(shù)調用“fun(7,8)”的過程如下:將實參7傳給形參x1,實參8傳給形參x2,然后執(zhí)行函數(shù)體。由于x1>x2的條件不成立,所以執(zhí)行“:”號后的賦值表達式:x=4。返回語句中的表達式是“x+x1”,返回值是:4+7=11。所以本題答案應選C.
【參考答案】C
72.下列程序段的輸出是( )
typedef union{ long x[2];
short y[4][5];
char z[10];
。齌YPE1;
TYPE1 u1;
printf("%d\n", sizeof(u1));
A.8
B.10
C.40
D.58
【解析】程序的開始用“typedef"定義了用戶自定義數(shù)據(jù)類型符“TYPE1”,這個用戶自定義的數(shù)據(jù)類型符對應的是一個共用型。然后使用"TYPE1",定義了共用型變量u1,本段程序的輸出就是這個共用型變量所占用的字書數(shù)。共用型變量占用的字節(jié)數(shù)就是其成員中占用字節(jié)數(shù)最多的成員占用的字節(jié)數(shù)。分析這個共用型的成員有3個:第1個成員是長整型數(shù)組,占用字節(jié)數(shù)為4*2=8;第2個成員是短整型數(shù)組,占用字節(jié)數(shù)為2*4*5=40;第3個成員是字符型數(shù)組,占用的字節(jié)數(shù)為1*10=10。其中占用字節(jié)數(shù)最多的成員是第2個成員,其占用的字節(jié)數(shù)等于40。所以本題答案應選C。
【參考答案】C
73.不屬于C語言保留字的是( )
A.for
B.goto
C.if
D.loop
【解析】關于保留字教材中有明確規(guī)定。顯然for、goto、if都是組成語句的專用語句成份,都
是保留字。本題答案應選D。
【參考答案】 D
74.正確的C語言標識符是( )
A.num(10)
B.file bak
C.continue
D.class+2
【解析】標識符是字母、下劃線開頭的字母、數(shù)字、下劃線組成的一串字符,而且不能是保留字。本題的4個備選答案中,只有答案B符合這個規(guī)定。本題答案應選B。
【參考答案】 B
75.設有定義語句“double d1,d2;”,則表達式“d1=1,d2=d1+5/2”的值是( )
A.1
B.3
C.3.0
D.3.5
【解析】C語言規(guī)定,逗號表達式的計算是自左向右進行的,表達式的值等于右邊表達式的值,因此,本題的答案應為表達式"d2=d1+5/2"的值。該表達式是賦值表達式,所以其值是賦予變量d2的值,也就是表達式"d1+5/2"的結果。計算時,需要先算"5/2",結果為整數(shù)2,再和double型的d1相加,結果是實數(shù)3.0。所以本題答案應選C
【參考答案】 C