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