2016年計算機軟考程序員訓(xùn)練練習(xí)題及答案

字號:

61.如果某個函數(shù)在定義時,省略了存儲類型,則默認(rèn)的存儲類型是( )
    A.auto
    B.void
    C.extern
    D.static
    【解析】C語言規(guī)定,函數(shù)的存儲類型只能選取static或extern。前者表示本函數(shù)只能在本編。譯單位中被調(diào)用;后者表示本函數(shù)可以被其他編譯單位調(diào)用。如果省略了存儲類型符,則系統(tǒng)默認(rèn)為是“extern”型,所以本題答案應(yīng)選C。
    【參考答案】C
    62.能正確定義一個用來指向打開文件的文件型指針變量fp的語句是( )
    A.file fp;
    B.file *fp;
    C.FILE fp;
    D.FILE *fp;
    【解析】"file”是在頭函數(shù)“stdio.h"沖定義的文件結(jié)構(gòu)型的用戶自定義數(shù)據(jù)類型符,這個用戶自定義的數(shù)據(jù)類型符是大寫字母組成的,所以備選答案A山是錯誤的。文件型指針變量在定義時,變量名的前面必須有“*”,所以備選答案C也是錯誤的,本題應(yīng)選答案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ù)字對應(yīng)的ASCII代碼值存放的,對于“-7 856”來說,其中的“-”號要占 1個字節(jié);4位整數(shù)要占4個字節(jié),共計占用5個字節(jié)。所以本題的答案應(yīng)選B。
    【參考答案】B
    61.如果某個函數(shù)在定義時,省略了存儲類型,則默認(rèn)的存儲類型是( )
    A.auto
    B.void
    C.extern
    D.static
    【解析】C語言規(guī)定,函數(shù)的存儲類型只能選取static或extern。前者表示本函數(shù)只能在本編。譯單位中被調(diào)用;后者表示本函數(shù)可以被其他編譯單位調(diào)用。如果省略了存儲類型符,則系統(tǒng)默認(rèn)為是“extern”型,所以本題答案應(yīng)選C。
    【參考答案】C
    62.能正確定義一個用來指向打開文件的文件型指針變量fp的語句是( )
    A.file fp;
    B.file *fp;
    C.FILE fp;
    D.FILE *fp;
    【解析】"file”是在頭函數(shù)“stdio.h"沖定義的文件結(jié)構(gòu)型的用戶自定義數(shù)據(jù)類型符,這個用戶自定義的數(shù)據(jù)類型符是大寫字母組成的,所以備選答案A山是錯誤的。文件型指針變量在定義時,變量名的前面必須有“*”,所以備選答案C也是錯誤的,本題應(yīng)選答案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ù)字對應(yīng)的ASCII代碼值存放的,對于“-7 856”來說,其中的“-”號要占 1個字節(jié);4位整數(shù)要占4個字節(jié),共計占用5個字節(jié)。所以本題的答案應(yīng)選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ù)的,所以本題答案應(yīng)選A
    【參考答案】 A
    68.執(zhí)行下列程序段后的輸出結(jié)果是( )
    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í)行后,輸出結(jié)果為兩個“*”,本題答案應(yīng)選C。
    【參考答案】C
    69.關(guān)于帶參數(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是錯誤的,本題應(yīng)選答案C。
    【參考答案】C
    70.執(zhí)行下列程序后的輸出結(jié)果是( )
    #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
    【解析】本題要輸出的表達(dá)式是“10*M(i,j)”,其中的“M(i,j)”是帶參數(shù)的宏調(diào)用,宏替換后,表達(dá)式的結(jié)果是“10*(i)>(j)?(i):(j)”,而變量i值為10、變量j值為15,帶入整個要輸出的表達(dá)式后結(jié)果是“10*(10)>(15)?(10):(15)”,,其中的條件“10*10>15”是成立的,結(jié)果等于10。所以本題答案應(yīng)選A
    【參考答案】A
    71.執(zhí)行下列程序后的輸出結(jié)果是( )
    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ù)調(diào)用“fun(7,8)”的返回值。分析函數(shù)調(diào)用“fun(7,8)”的過程如下:將實參7傳給形參x1,實參8傳給形參x2,然后執(zhí)行函數(shù)體。由于x1>x2的條件不成立,所以執(zhí)行“:”號后的賦值表達(dá)式:x=4。返回語句中的表達(dá)式是“x+x1”,返回值是:4+7=11。所以本題答案應(yīng)選C.
    【參考答案】C
    72.下列程序段的輸出是( )
    typedef union{ long x[2];
    short y[4][5];
    char z[10];
    }TYPE1;
    TYPE1 u1;
    printf("%d\n", sizeof(u1));
    A.8
    B.10
    C.40
    D.58
    【解析】程序的開始用“typedef"定義了用戶自定義數(shù)據(jù)類型符“TYPE1”,這個用戶自定義的數(shù)據(jù)類型符對應(yīng)的是一個共用型。然后使用"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。所以本題答案應(yīng)選C。
    【參考答案】C
    73.不屬于C語言保留字的是( )
    A.for
    B.goto
    C.if
    D.loop
    【解析】關(guān)于保留字教材中有明確規(guī)定。顯然for、goto、if都是組成語句的專用語句成份,都
    是保留字。本題答案應(yīng)選D。
    【參考答案】 D
    74.正確的C語言標(biāo)識符是( )
    A.num(10)
    B.file bak
    C.continue
    D.class+2
    【解析】標(biāo)識符是字母、下劃線開頭的字母、數(shù)字、下劃線組成的一串字符,而且不能是保留字。本題的4個備選答案中,只有答案B符合這個規(guī)定。本題答案應(yīng)選B。
    【參考答案】 B
    75.設(shè)有定義語句“double d1,d2;”,則表達(dá)式“d1=1,d2=d1+5/2”的值是( )
    A.1
    B.3
    C.3.0
    D.3.5
    【解析】C語言規(guī)定,逗號表達(dá)式的計算是自左向右進行的,表達(dá)式的值等于右邊表達(dá)式的值,因此,本題的答案應(yīng)為表達(dá)式"d2=d1+5/2"的值。該表達(dá)式是賦值表達(dá)式,所以其值是賦予變量d2的值,也就是表達(dá)式"d1+5/2"的結(jié)果。計算時,需要先算"5/2",結(jié)果為整數(shù)2,再和double型的d1相加,結(jié)果是實數(shù)3.0。所以本題答案應(yīng)選C
    【參考答案】 C