點擊查看:2018年3月計算機二級C語言章節(jié)練習(xí)題及答案匯總
第2章 C程序設(shè)計的初步知識
2.1 簡單C語言程序的構(gòu)成和格式
1[單選題] 下面程序的輸出結(jié)果是( )。
#include
main()
{
int a[] = {1,2,3,4,5,6,7,10},*p;
p =a;
printf("%d\n",*p+8);
}
A.0
B.1
C.10
D.9
參考答案:D
參考解析:“*”號的優(yōu)先級比“+”的優(yōu)先級高,所以先執(zhí)行“*p”;指針P指向的是數(shù)組的首地址,因此*p=1;再加8得9。
2[單選題] 下述程序的輸出結(jié)果是( )。
A.1
B.7
C.3
D.2
參考答案:B
參考解析:本題考查的是位運算符的應(yīng)用。a和b 寫成二進制表示分別為a=00000011,b=00000001,由于左移位運算符“<<”的優(yōu)先級高于按位異或運算符“^”,左移兩位后b<<2=00000100,此結(jié)果和x按位異或后a^b<<2=00000111。
3[單選題] 下面說法正確的是( )。
A.一個C程序可以有多個主函數(shù)
B.一個C語言的函數(shù)中只允許有一對花括號
C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)
D.在對C程序進行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤
參考答案:C
參考解析:本題涉及C語言基本的3個知識點:①C 語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內(nèi)可以允許有多個花括號;②C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋中的錯誤。
4[單選題] 以下4個選項,不能看作一條語句的是( )。
A.{;}
B.int x=0,y=1,z=0;
C.if(!a);
D.if(b==0)m=1:n=2:
參考答案:D
參考解析:語句是用來判定所給的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。 在if和else后面可以只含一個內(nèi)嵌的操作語句,也可以有多個操作語句,此時用花括號“{}”將幾個語句括起來成為一個復(fù)合語句。選項D)中沒有將兩個操作語句括起來,不能看作一條語句。
5[單選題] 以下程序的輸出結(jié)果是( )。
A.1
B.3
C.2
D.4
參考答案:D
參考解析:本題首先判斷a>b,當a>b時結(jié)果等于a,否則等于“d>c?d:b”,因為a>b,所以直接輸出a的值,注:這里“a:d>c?d:b”是用來干擾考生的。
6[單選題] 閱讀以下程序
A.定義語句出錯,Case是關(guān)鍵字,不能用作用戶自定義標識符,printF不能用作用戶自定義標識符
B.定義語句出錯,Int無法被識別
C.定義語句無錯,scanf不能作為輸入函數(shù)使用
D.定義語句無錯,printf不能輸出Case的值
參考答案:B
參考解析:c語言是一種大小寫敏感的語育,因此Int應(yīng)為int,而CaseprintF則可以使用。
7[單選題] 計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是( )。
A.C語言程序僅可以編譯執(zhí)行
B.C語言程序僅可以解釋執(zhí)行
C.c)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行
D.以上說法都不對
參考答案:A
參考解析:C語言作為計算機高級語言,用它編寫的程序必須經(jīng)過C語言的編譯器編譯后,轉(zhuǎn)換為二進制的機器來運行。
8[單選題] 以下敘述中錯誤的是( )。
A.C語言編寫的函數(shù)源程序,其文件名后綴可以是.C
B.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件
C.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行
D.一個C語言程序只能有一個主函數(shù)
參考答案:C
參考解析:C語言程序是從main函數(shù)開始執(zhí)行的,每一個函數(shù)可以進行獨立的編譯。
9[單選題] 以下敘述正確的是( )。
A.在C程序中,main函數(shù)必須位于程序的最前面
B.每個后綴為.c的C語言源程序都可以單獨進行編譯
C.在C語言程序中,只有main函數(shù)才可單獨進行編譯
D.每個后綴為.c的C語言源程序都應(yīng)該包含一個main函數(shù)
參考答案:B
參考解析:每一個C 語言的文件或函數(shù)都可以單獨編譯,但只有main 函數(shù)的才可以執(zhí)行。
10[單選題] C語言中的標識符分為關(guān)鍵字、預(yù)定義標識符和用戶標識符,以下敘述正確的是
A.預(yù)定義標識符(如庫函數(shù)中的函數(shù)名)可用作用戶標識符,但失去原有含義
B.用戶標識符可以由字母和數(shù)字任意順序組成
C.在標識符中大寫字母和小寫字母被認為是相同的字符
D.關(guān)鍵字可用作用戶標識符,但失去原有含義
參考答案:A
參考解析:預(yù)定義標識符是C語言中的標識符,在C語言中也有特定的含義,如函數(shù)printf、scanf、sin 等和編譯預(yù)處理命令名(如define 和include)。預(yù)定義標識符可以作為用戶標識符使用,只是這樣會失去系統(tǒng)規(guī)定的原義。
11[單選題] c語言規(guī)定,在一個源程序中,main函數(shù)的位置( )。
A.必須在最開始
B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面
C.可以任意
D.必須在最后
參考答案:C
參考解析:不論main函數(shù)在整個過程中的位置如何,一個c程序總是從main函數(shù)開始執(zhí)行的
12[單選題] 以下敘述不正確的是( )。
A.在C程序中,逗號運算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計算賦值表達式a=b后,b的值將放入a中,而b的值不變
D.當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值
參考答案:D
參考解析:在c語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值賦予a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當從鍵盤輸人數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。
13[單選題] 有以下程序:
main()
{
unsigned char a=2,b=4,c=5,d;
d =a|b;d&=c;printf("%d\n",d);
}
程序運行后的輸出結(jié)果是( )。
A.3
B.4
C.5
D.6
參考答案:B
參考解析:本題考查的是邏輯運算。本題中主要是進行位的邏輯運算。將a的值轉(zhuǎn)換成二進制為:0000 0010,b的值轉(zhuǎn)換成二進制為:0000 0100,將a、b進行按位或運算(參加計算的兩個位只要有一個為1,那么運算結(jié)果為l),因此此時d的二進制為:0000 0110,C的值轉(zhuǎn)換成二進制為:00000101,接下來將d和C進行按位與運算(參加計算的兩個位都為1,則結(jié)果為1,否則為0),結(jié)果為:0000 0100,轉(zhuǎn)換成十進制數(shù)結(jié)果為4。
14[單選題] 下列程序的輸出結(jié)果是( )。
main()
{
double d = 3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3
B.3.2
C.0
D.3.07
參考答案:C
參考解析:本題考查復(fù)合的賦值表達式。本題中,程序先執(zhí)行語句x=1.2;,根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,即取整為1,然后將l賦值給變量x。接下來執(zhí)行語句y=(x+3.8)/5.0;根據(jù)運算符的優(yōu)先級,先計算小括號內(nèi),再計算除法,最后執(zhí)行賦值運算。小括號內(nèi)的運算過程:先將整型變量x的值l轉(zhuǎn)換為double型1.0,然后與3.8進行加法運算,得到中間結(jié)果4.8。接著進行除法運算4.8/5.0,其結(jié)果小于l.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊變量Y的類型為整型,于是對這個小于1.0的中間結(jié)果進行取整,結(jié)果為0,于是變量y的值為0,d * y的值也為0。
15[單選題] 以下敘述中錯誤的是( )。
A.C語言的可執(zhí)行程序是由一系列機器指令構(gòu)成的
B.用C語言編寫的源程序不能直接在計算機上運行
C.通過編譯得到的二進制目標程序需要連接才可以運行
D.在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文件
參考答案:D
參考解析:c語言的可執(zhí)行程序是由一系列機器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進制目標代碼,再經(jīng)過連接才能運行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。
16[單選題] 以下4個選項中,不能看作一條語句的是( )。
A.;
B.a=5,b=2.5,c=3.6;
C.if(b!=5)x=2;y=6;
D.return j;
參考答案:C
參考解析:c語言規(guī)定每個語句以;(分號)結(jié)束,因此選項c)為兩條語句。
17[單選題] 下面程序段的輸出為( )。
#include "stdio.h"
main()
{
printf("%d\n",12<<2);
}
A.0
B.47
C.48
D.24
參考答案:C
參考解析:本題考查位運算的運算原理。<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達式,代表左移的位數(shù),左移時,右端(低位)補0;左端(高位)移出的部分舍棄。
18[單選題] 以下敘述中正確的是( )。
A.C程序中注釋部分只能放在程序最后
B.花括號“{“和”}”可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號不是語句的一部分,是C語句之間的分隔符
參考答案:B 參考解析:花括號可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符。函數(shù)是c程序的基本單位,用戶可以命名自定義函數(shù),而庫函數(shù)名是固定的。c語句以分號結(jié)尾,分號是語句的一部分。
19[單選題] 若有說明,double*m,n;則能通過sCanf語句正確給輸入項讀人數(shù)據(jù)的程序段是( )。
A.*m = &n;scanf("%lf",m);
B.m = (double * ) malloc(10);scanf("%f",m);
C.m = &n;scanf("%lf",n);
D.m = &n;scanf("%le",m);
參考答案:D
參考解析:解析:選項A,*m = &n 錯誤。選項B,輸入 double型,要用%lf 或 %le,否則數(shù)據(jù)不能正常輸入。
選項C,n是變量,不是指針,scanf("%if",n)錯誤。
20[單選題]
A.a=50 b=50(空格分開.
B.50 50(空格分開.
C.a=50,b=50
D.50,50
參考答案:C 參考解析:scanf函數(shù)使用時,如果格式控制串中有非格式字符則輸人時也要輸入該非格式字符。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年全國計算機等級考試復(fù)習(xí)知識點匯總(各科目)
2018全國計算機等級考試備考經(jīng)驗及應(yīng)試技巧匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |