




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級(C語言)筆試模擬試卷第1
套
一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共
10分。)
1、程序流程圖中帶有箭頭的線段表示的是
A、圖元關(guān)系
B、數(shù)據(jù)流
C、控制流
D、調(diào)用關(guān)系
標(biāo)準(zhǔn)答案:C
知識點解析:程序流程圖是人們對解決問題的方法、思路或算法的一種圖形方式
的描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容;
流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流:帶箭頭的
線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線
段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。
2、數(shù)據(jù)流圖用于抽象描述一下軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)
成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是。
A、控制流
B、加工
C、數(shù)據(jù)存儲
D、源和潭
標(biāo)準(zhǔn)答案:A
知識點解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移
動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)
源)、源和潭。
3、設(shè)有以下定義:inta=0;doubleb=1.25;char#defined2則下面語句中錯誤
的是o
A^a++:
B、b++;
C、C++
D、d++
標(biāo)準(zhǔn)答案:D
知識點解析:選項D中d是符號常量,不能進(jìn)行++的運算。
4、關(guān)系表中的每一橫行稱為一個
A^元組
B、字段
C、屬性
D、碼
標(biāo)準(zhǔn)答案:A
知識點解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為一個
屬性,對應(yīng)表中的一個字段;在二維表中凡能唯一標(biāo)識元組的最小屬性集稱為該表的
鍵或碼。
5、用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為
A、關(guān)系模型
B、層次模型
C、網(wǎng)狀模型
D、數(shù)據(jù)模型
標(biāo)準(zhǔn)答案:2
知識點解析:關(guān)系模型以二維表表示實體之間的聯(lián)系,網(wǎng)狀模型以一個不加任何條
件限制的無向圖表示實體之間的聯(lián)系。層次模型的基本結(jié)構(gòu)為樹形結(jié)構(gòu).而D選
項數(shù)據(jù)模型包括關(guān)系模型,網(wǎng)狀模型和層次模型。
6、計算機(jī)軟件一般包括應(yīng)用軟件和—o
A、字處理軟件
B、系統(tǒng)軟件
C、服務(wù)性軟件
D、操作系統(tǒng)
標(biāo)準(zhǔn)答案:2
知識點解析:暫無解析
7、將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成()
A、屬性
B、關(guān)系
C、鍵
D、域
標(biāo)準(zhǔn)答案:2
知識點解析:暫無解析
8、下列敘述中正確的是()。
A、線性鏈表中的各元素在存儲空間中的位置必須是連續(xù)的
B、線性鏈表中的表頭元素一定存儲在其他元素的前面
C、線性鏈表中的各元素在存儲空間中的位國不一定是連續(xù)的,但表頭元素一定存
儲在其他元素的前面
D、線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順
序也是任意的
標(biāo)準(zhǔn)答案:8
知識點解析:在線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲位置不連續(xù),且各結(jié)
點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間
的前后關(guān)系是由各結(jié)點的指針域來指示的。所以,選項D正確。
9、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種
A、隨機(jī)結(jié)構(gòu)
B、順序結(jié)構(gòu)
C、索引結(jié)構(gòu)
D、散列結(jié)構(gòu)
標(biāo)準(zhǔn)答案:2
知識點解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點不僅含有一個數(shù)據(jù)元素,
還包括指針,每一個指升指向一個與木結(jié)點有邏輯關(guān)系的結(jié)點。此類存儲方式屬于
順序存儲。
10、在Windows環(huán)境下,下列敘述中正確的是
A、在“開始“菜單中可以增加項目,也可以刪除項目
B、在“開始”菜單中不能增加項目,也不能刪除項目
C、在“開始”菜單中可以增加項目,但不能刪除項目
D、在“開始”菜單中不能增加項目,但可以刪除項目
標(biāo)準(zhǔn)答案:A
知識點解析:在“開始”菜單中右擊某項子菜單,從快捷菜單中選擇"刪除”命令即可
刪除某項子菜單,還可以通過“開始”菜單的“設(shè)置”命令向“開始”菜單中添加項子菜
單。
二、選擇題(1分)(本題共〃題,每題7.0分,共〃
分。)
11、當(dāng)變量C的值不為2、4、6時,值也為“真”的表達(dá)式是
A、(c==2)||(c==4)||(c==6)
B、(c>=2&&c<=6)||(c:=3)||(c!=5)
C、(c>=2&&c<=6)&&!(c%2)
D、(c>=2&&c<=6)&&(c%2!=1)
標(biāo)準(zhǔn)答案:B
知識點解析:滿足表達(dá)13式(c>=2&&cV=6)的整型變量c的值是2,3,4,5,
6o當(dāng)變量c的值不為2,4,6時,其值只能為3或5,所以表達(dá)式c!=3和c!=5中
至少有一個為真,即不論c為何值,表達(dá)式B)都為“真”。
12、有以卜程序fun(inlx){intp;if(x==OIIx==l)retum(3);p=x-fun(x-2);return
p:)main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是
A、7
B、3
C、2
D、0
標(biāo)準(zhǔn)答案:C
知識點解析:因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過三次遞歸
調(diào)用,其過程可以描述為“加立7)=7-彘11(5)=7?(5加11(3))=7?(5?(3加11(1)))=7?(5?(3-
3))=7-5=2",所以最后的輸出結(jié)果為2。
13、C語言中允許用外部說明來指定變量、函數(shù)和其他標(biāo)識符的特征,這里所說的
外部指的是()。
A、冠以關(guān)鍵字extern
B、位置在函數(shù)體外部
C、作用范圍是全程的
D、位置在函數(shù)的外部
標(biāo)準(zhǔn)答案:D
知識點解析:C語言中允許用位置在函數(shù)外部的說明來指定變量、函數(shù)和其他標(biāo)識
符的特征。
14、軟件是指()。
A、程序
B、程序和文檔
C、算法加數(shù)據(jù)結(jié)構(gòu)
D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合
標(biāo)準(zhǔn)答案:D
知識點解析:計算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合.
15、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A、getc()
B、gets()
C、getchar()
D、scanf()
標(biāo)準(zhǔn)答案:B
知識點解析:canf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于
字符串的讀入。
16、以下能正確定義字符串的語句是()。
A、charstr[]={,\064,};
B、charstr="\x43n;
C^charstr=";
D、charstr||="\On;
標(biāo)準(zhǔn)答案:8
知識點解析:C語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數(shù)
組來存放,故選項A)、C)不是字符中;選項B)定義的是一個字符變量sir,不能用
來存放字符串,所以不正確。
17、用C言編寫的代碼程序()。
A、可立即執(zhí)行
B、是個源程序
C、經(jīng)過編譯即可執(zhí)行
D、經(jīng)過編譯解釋即可執(zhí)行
標(biāo)準(zhǔn)答案:2
知識點解析:C語言-一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,
生成一個后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程
序”(Link)的軟件,把此.obj文件與C語言提供的各種庫函數(shù)連接在一起,生成一個
后綴.cxc的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項A錯誤;根據(jù)以上定
義,選項C和選項D錯誤,所以,4個選項中選項B符合題意。
18、以下合法的賦值語勺是0
A、X=Y=100
B、D-;
C、X+Y
D、C=int(A+B)
標(biāo)準(zhǔn)答案:2
知識點解析:本題中的答案A與D都缺少“;”,而答案C中,表達(dá)式是不能獨立
成為語句的,答案B使用了C語言的自減運算符它就相當(dāng)于D二D-I,所以答案B
為一賦值語句。
19、用scanf(”%d,%d",&a,&b)輸入數(shù)據(jù)時,下面輸入法中,正確的是
A、123,4
B、1234
C、123;4
D、123:4
標(biāo)準(zhǔn)答案:1
知識點解析:暫無解析
20、下列正確的實型常量是()。
A、E3.4
B、-12345
C、2.2e0.8
D、4
標(biāo)準(zhǔn)答案:2
知識點0析:實型常量有兩種書寫形式。①小數(shù)形式,它由符號、整數(shù)部分、小
數(shù)點及小數(shù)部分組成:②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形
式為:十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整
數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項A)中E的前面沒有數(shù)字,因
此錯誤。選項C)中0.8不是整數(shù),因此錯誤。選項D)中4是整型常量而不是實型
常量。
21、有以下程序#inckidemain。{intx=011:printf(i<%d\n,\++x):}程序運行后
的輸出結(jié)果是
A、12
B、11
C、10
D、9
標(biāo)準(zhǔn)答案:C
知識點解析:變量x初始化值為Oil.Oil為八進(jìn)制數(shù).代表十進(jìn)制的9,執(zhí)行
printf函數(shù)后,x先加1.然后按十進(jìn)制輸出,即程序輸出結(jié)果為10。
三、選擇題(2分)(本題共20題,每題1.0分,共20
分。)
22、下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]=
},*pt=b;pt=point(pt);printf(M%c\n',,*pt);}point(char*p){p+=3;return
P;}
A、s
B、c
C、f
D、a
標(biāo)準(zhǔn)答案:C
知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)
執(zhí)行函數(shù)point時,剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“『所以最
后的輸出結(jié)果是f。
23、有以下程序:#inckide<stdio.h>voidfun(char*c,intD){*c=*c+l;d+=l;
printf(H%c,%c,',*c,D;}main(){chara=,F,,b=T;fun(&b,A);printf(”%c,%c\n”,a,B):}程
序的輸出結(jié)果為()。
g,GF,g
B、g,FF,g
C、G,fF,G
D、f,gf,g
標(biāo)準(zhǔn)答案:A
知識點解析:暫無解析
24、若運行以下程序時,從鍵盤輸入ADescriptorVCR>(VCR>表示回車),則下
面程序的運行結(jié)果是(卜#include<stdio.h>main。{chare;intv0=l,vl=0,v2=0;
do{switch(c=gctchar()){casc,a,:casc,A,:casc,c,:case,E,:casc'i':cascT:
case,o,:case,O,:casc,u,:casc,U,:vl+=l:default:vO+=1;v2+=1;}}whilc(c!=,\n,);
printf("vO=%d,v1=%d,v2=%d\n",vO,v1,v2);)
A、v0=7,vl=4,v2=7
B、v0=8,vl=4,v2=8
C、vO-ll,vl-4,v2-l1
D、v0=13,vl=4,v2=12
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查的是swilch語句的應(yīng)用。分析程序,do?while語句是先執(zhí)行
do后面的語句再判斷是否符合while的條件。V2+=l:語句無論讀入的是什么字母
(包括回車符),此語句都要執(zhí)行,語句default:vO+=l;亦是如此;而語句
case,U,:vl+=l;只有在讀入的字母
是3、A、Q、E、T、T、Q、。、3、U時才會執(zhí)行。
25、下面的for語句的循環(huán)次數(shù)為()。
A、是無限循環(huán)
B、循環(huán)次數(shù)不定
C、最多執(zhí)行6次
D、最多執(zhí)行5次
標(biāo)準(zhǔn)答案:D
知識點解析:暫無解析
26、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A、getc()
B>gets()
C、getchar()
D、scanf()
標(biāo)準(zhǔn)答案:B
知識點解析:scanf()語句肘,空格”區(qū)別不同的字符串;geic()與gelchar。語句不能
用于字符串的讀入。
27、下歹ij程序的輸出結(jié)果為main。{unionu{char*name;intage;intincome:)s
="WANGLIONG";s.age=28:s.income=1000;printf("%d\n",s.age);}
A、28
B、1000
C、0
D^不確定
標(biāo)準(zhǔn)答案:B
知識點解析:本題對共用體的使用進(jìn)行了考查。由于共用體所有成員共同占據(jù)一
段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為
s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段
存儲空間,所以age的值也為lOOOo
28、有以下程序#inckidevoidfun(int*s,intnl,intn2){inti=n1;j=n2;while(i
A、0987654321
B、4321098765
C、5678901234
D、0987651234
標(biāo)準(zhǔn)答案:C
知識點解析:函數(shù)fun(int*s,intnl,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相
調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組多12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)
行fun?4,9),數(shù)組,12]={4,3,2,1,0,9,876,5};再執(zhí)行fun(a,0,9)后,數(shù)組
a[12]={5,6,7,8,9,0,l,2,3,4)o
29、有如下程序main(){intn=9;while(n>6){n—;printf("%d",n);)}該程序的輸出結(jié)
果是
A、987
B、876
C、8765
D、9876
標(biāo)準(zhǔn)答案:B
知識點解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪
一項是正確的。第一次進(jìn)入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n-運算,n的值變?yōu)?/p>
8,所以第一次的輸出值是8,由此可以排除選項A)和D)o由循環(huán)條件n>6可以知道,
最后一次循環(huán)開始時,n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以
排除選項C)c
30、以下敘述錯誤的是。
A、共用體的所有變量都有一個相同的地址
B、結(jié)構(gòu)體變量可以作為共有用體中的成員
C、共用體的成員一個時刻只有一個生效
D、耍傳遞共用體的成員通常采用函數(shù)
標(biāo)準(zhǔn)答案:C
知識點解析:暫無解析
31、定義a為整型變量,且設(shè)其初值為10,則表:iA式a+二a-=a*=a的值為。
A、10
B、0
C、100
D、-10
標(biāo)準(zhǔn)答案:B
知識點解析:暫無解析
32、有以下程序#includcmain(){charp[]={,a'Jb',d},q[10]={亂'b',*};
printf(H%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是
A、在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B、由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定,但q數(shù)組中字符串長度為3
C、由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定,但p數(shù)組中字符串長度為3
D、由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定
標(biāo)準(zhǔn)答案:A
知識點解析:在給p和q數(shù)組賦初值時,系統(tǒng)會自動添加字符串結(jié)束符,從題目中可
以看出數(shù)組p和q都有3個字符,所以長度均為3o
33、以下程序調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是
()o#include<stdio.h>main(){int*p,*q,a,b;p=&a;printf("inputa:");
scanf(H%d';*p);)
A、*p表示的是指針變量p的地址
B、*p表示的是變量a的值,而不是變量a的地址
C、*p表示的是指針變量p的值
D、*p只能用來說明p是一個指針變量
標(biāo)準(zhǔn)答案:2
知識點解析:本題經(jīng)過定義語句和賦值后,p表示的是變量a的地址,*p表示的是
變量a的值。
34、下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是o
A、rnax(intx,inty,int*z){*z=x>y?x:y;)z=x>y?x:y;
B、intmax(intx,y){intz;returnz;}
C、max(intx,inty){intz;z=x>y?x:y;return(z);)
D^intmax(intx,inty){returnx>y?x:y;)
標(biāo)準(zhǔn)答案:2'
知識點解析:在C語言中,不可以在函數(shù)的參數(shù)聲明列表中用一個類型名指定多
個參數(shù)。故選項B是錯誤的。其正確的表示方式應(yīng)為:intmax(intx,inty){....}
或intmax(x,y)intx,y;{....}
35、若已建立如下圖所示的單向鏈表結(jié)構(gòu):
P
一???一|E||—[F]―
s-1在該鏈表結(jié)構(gòu)中,指針p、s分
別指向圖中所示結(jié)點,則不能將S所指的結(jié)點插入到鏈表末尾仍構(gòu)成單向鏈表的語
句組是。
A、p=p->next;s->nexl=p;p->next二s;
B、p=p->next;s->next=p->next;p->next=s;
C、s->next=NULL;p=p->next;p->next=s;
D、p=(*p).next;(*s).nexl=(*p).next;(*p).nexl=s;
標(biāo)準(zhǔn)答案:1
知識點解析:在答案A中:p=p->next;s->next=p:p->next=s;s的確已插到了
鏈表的末尾,但它的nexl卻并沒有為NULL,而是指向了它的直接前趨p,這樣它
就不是一個單向鏈表(單向鏈表最后一個結(jié)點的next指針一定是一個NULL)o
36、以下程序的輸出結(jié)果是()main(){inta=-l,b=4,k;k=(++a<=0)&<&!(b-<=0);
printf("%d%d%d\nM,k,a,B);}
A、104
B、004
C、103
D、003
標(biāo)準(zhǔn)答案:4
知識點解析:暫無解析
37、有如下程序main。{floatx=2.0,y:if(x<C0.0)y=0.0;elseif(x<10.0)y=10/x;
elsey=1.0;printf("%f\n",y):}該程序輸出結(jié)果是。
A、0
B、0.25
C、0.5
D、1
標(biāo)準(zhǔn)答案:4
知識點解析:本題考查的是if,……else語句的使用。x=2.0,符合第二個IF語句的
條件xV10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。
38、有以下程序:main(){ints=0,a=l,n;scanf("%d",&n);do{s+=l;a=a-2;)while
(a!=n);printf("%d\n”,s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是
()o
A、-1
B、-3
C、-5
D、0
標(biāo)準(zhǔn)答案:2
知識點解析:根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變s的值的語
句只有循環(huán)體中的s+=l:語句,向初始s的值為0.顯然要使s的值變?yōu)?,該語
句必須執(zhí)行兩次,即dowhilc循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-whilc中,首
先不執(zhí)行條件而執(zhí)行do后面的循環(huán)體語句,然后再判斷while循環(huán)條件。所以不
管循環(huán)判斷條件是否為真s+=l;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面
括號的循環(huán)判斷表達(dá)式的值為真成立一次且只能為真一次,將4個選項中的內(nèi)容依
次代入該程序中不難得到只有n=3剛好使循環(huán)判斷條件a!=n為真一次。故4個選
項中選項B符合題意。
39、以下敘述正確的是
A、可以把define和if定義為用戶標(biāo)識符
B、可以把define定義為用戶標(biāo)識符,但不能把if定義為用戶標(biāo)識符
C、可以把if定義為用戶標(biāo)識符,但不能把define定義為用戶標(biāo)識符
D、define和if都不能定義為用戶標(biāo)識符
標(biāo)準(zhǔn)答案:2
知識點解析:C語言中的保留字,而define不是保留字。用戶標(biāo)識符不允許使用保
留字。
40、有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k—;break;
dcfault:n=O;k-;case2:case4;n+=2;k—;break;}printf("%dH,n);}whilc(k>0&&n<
5);)程序運行后的輸出結(jié)果是()。
A、235
B、235
C、2356
D、2356
標(biāo)準(zhǔn)答案:2
知識點解析:因為變量的初始值分別為k=5,n=0,所以程序第I次進(jìn)入循環(huán)時,執(zhí)
行default語句,輸出0,k減1;這時n=0,k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case
4:這個分支,結(jié)果是n=2,k=3,打印出2;這時n=2,k=3,程序進(jìn)行第3次循環(huán),
執(zhí)行case3:這個分支,結(jié)果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進(jìn)行
第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5,k=l,打印出5,這時因為
n=5不滿足nV5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束。所以在屏幕上擰印
出的結(jié)果是0235。
41、有以下程序#include<stdio.h>#include<
string.h>voidfun(charn){chart;
intij;for(i=0;i<n-l;i++)for0—i+l;j<
n;j++)/*比較字符串的首字符大小,并交換字符串的首字符*/
if(s[i][O]>sUJlOJ){t=sliJIO];sliJIO]=sljJIO];s[j]⑼=
t;)}main(){charss[5][10|={"bcc'\"bbccn,"xy'\
"aaaacc","aabcc");fun(ss,5);printf(H%s,%s\n",
ss[0],ss[4]);)程序的運行結(jié)果是
A、xy,aaaacc
B、aaaacc,xy
C^xcc,aabcc
D、acc,xabcc
標(biāo)準(zhǔn)答案:D
知識點解析:在函數(shù)fun()中有一個兩層嵌套的for循環(huán),外循環(huán)變量i從0遞增到
n-2,內(nèi)循環(huán)變量i從i+1循環(huán)遞增到n-1,這是選攔排序算法的標(biāo)準(zhǔn)結(jié)構(gòu)。循環(huán)體
中因為逆序條件為s|j][Or\所以實現(xiàn)的是升序排序。由此可見,fun()函
數(shù)實現(xiàn)的功能是對一個二維字符數(shù)組前n行的首字符進(jìn)行升序排序。主函數(shù)中定義
的二維數(shù)組初始化為{“bcc",“bbcc“,“xy”,,,aaaaccu,"aabcc1'),通過fun()函數(shù)
的排序后,結(jié)果將為acc","abcc",nby","baaacc%"xabcc")o故最終輸出字符
串ss⑼和ss[4]的結(jié)果為acc,xabcc,應(yīng)該選擇D。
四、公共基礎(chǔ)填空題(本題共3題,每題7.0分,共3
分。)
42、在面向?qū)ο蟮姆椒ㄖ?,描述的是具有相似屬性與操作的一組對象。
A、類
標(biāo)準(zhǔn)答案:
知識點解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是
對象的抽象,對象是類的實例。
43、排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、
和選擇排序。
A、交換排序
標(biāo)準(zhǔn)答案:
知識點解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序
序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒
泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選
擇排序和堆排序。
44、算法的復(fù)雜度主要包括時間復(fù)雜度和復(fù)雜度。
標(biāo)準(zhǔn)答案:空間
知識點解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)
雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行
這個算法所需要的內(nèi)存空間。
45、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)
構(gòu)、數(shù)據(jù)流、【】和處理過程。
標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲
知識點解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,
是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)
項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中
存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機(jī)文件;處理過程。
46、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)
構(gòu)、數(shù)據(jù)流、【】和處理過程。
標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲
知識點解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,
是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)
項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中
存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機(jī)文件;處理過程。
五、填空題(本題共“題,每題分,共〃分。)
47、軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理
來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
標(biāo)準(zhǔn)答案:軟件工程學(xué)
知識點解析:為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件
工程是使計算機(jī)軟件走向工程科學(xué)的途徑。逐步形成了軟件工程的概念,開辟了工
程學(xué)的新興領(lǐng)域一軟件工程學(xué)。
48、語句:x++;++x;x=l/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能
的賦值語句o
標(biāo)準(zhǔn)答案:x+=1
知識點解析:本題考查"++"、”「運算符?!?+“、”「只能作用于變量,不能用于
表達(dá)式或常量:前綴形式是在使用變量之前先將其值增1或減I,后綴形式是先使
用變量原來的值,使用完后再使其增1或減1。
49、以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出
NOo當(dāng)給a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是
需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?include<stdio.h>
main(){floata,b,c;scanf("%f%f%f,&a,&b,&c);if([])printf(,,YES\nM);/*ab.c
能構(gòu)成三角形*/elseprinff(nNO\n");/*a.b.c不能構(gòu)成三解形*/)
標(biāo)準(zhǔn)答案:(a+b>c)&&(a+c>b)&&(b+c>a)
知識點解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b
>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
50、以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。#defineN2#dcfineMN+1
#defineKM+1*M/2main。{inti;for(i=l;i<K;i++){......}
標(biāo)準(zhǔn)答案:4
知識點解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到
N+l+l*N+l/2;再將N的宏定義帶人,得到2+1+42+1/2=3+2+0=5,所以循環(huán)4
次。
51、在內(nèi)存中,存儲字符'X,要占用1個字節(jié),存儲字符串“x“要占用【】個字節(jié)。
標(biāo)準(zhǔn)答案:2
知識點解析:計算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用I
個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符
串“X”要占用2個字節(jié),存儲字符'X,只要1個字節(jié)。注意:sizeofO函數(shù)和strleM)函
數(shù)的作用。
52、表達(dá)式10+匕'+1.5-0.5*舊,的結(jié)果是[]o
標(biāo)準(zhǔn)答案:75.5
知識點解析:暫無解析
53、用復(fù)合的賦值運算符將變量x中的值增大2的賦值表達(dá)式是【】。
標(biāo)準(zhǔn)答案:x+=2
知識點解析:x+=2等價于x=x+2,"+=”為復(fù)合的賦值運算符。
54、以下程序的輸出結(jié)果是【】。main(){unsignedshorta=65536;intb:
printf("%d\n",b=A);}
標(biāo)準(zhǔn)答案:0
知識點解析:對于一個nusignedshortshort來說,它能取的最大值是65535。這里
給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦
給它(全零)。所以a的值實際為0。
55、若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式
pow(y,fabs(x))的值為[]。
標(biāo)準(zhǔn)答案:8
知識點解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計
算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0
次方,結(jié)果為8.000000。
56、求任意一個數(shù)(用16位二進(jìn)制碼表示)的補(bǔ)碼。main。(unsignedinta;
[1;&a);prinlf("%o\ii”,gclbiUi(a));)unsignedinigulbils(value)
unsignedintvalue;{unsignedintz;z=[];if(z==0100000)[];else
z=value;return(z);}
標(biāo)準(zhǔn)答案:unsignedintgetbits()value&O100000z=~value+l
知識點解析:暫無解析
57、有以下程序#inculdemain(){inta[3][3]={(1,2,3),(4,5,6),(7,8,9));intB[3]={0},i;
For(i=0;i<3;i++)B[i]=a[i][2]+a[2][i];For(i=0;l<3;i++)printF("%d”,B[i]);
printF("\n");}程序運行后的輸出結(jié)果是[1】。
標(biāo)準(zhǔn)答案:101418
知識點解析:當(dāng)i=0時,b[0]=a[0][2]+a[2][0]=3+7=10:當(dāng)i=l時,b
[1]=a[1][2]+a[2][1]=6+8=14;當(dāng)i=2時,b[2]=a[2][2]+a
[2][2]=9+9=18,則打印結(jié)果為101418o
國家二級(C語言)筆試模擬試卷第2
套
一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共
10分。)
1、在軟件工程中,白盒測試法可用于測試程序的內(nèi)部結(jié)構(gòu),此方法將程序看做是
()。
A、循環(huán)的集合
B、地址的集合
C、路徑的集合
D、目標(biāo)的集合
標(biāo)準(zhǔn)答案:4
知識點解析:軟件的白盒測試法是把測試對象看作一個打開的盒子,它允許測試人
員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息設(shè)計或選擇測試用例,對程序所有邏輯路徑
進(jìn)行測試。
2、在單鏈表中,增加頭結(jié)點的目的是()。
A、方便運算的實現(xiàn)
B、使單鏈表至少有一個結(jié)點
C、標(biāo)識表結(jié)點中首結(jié)點的位置
D、說明單鍵表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)
標(biāo)準(zhǔn)答案:1
知識點解析:頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表(包含頭結(jié)點)
的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便
于運算的實現(xiàn)。
3、面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是
()。
A、模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B、強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而不強(qiáng)調(diào)概念
C、使用現(xiàn)實世界的概念抽象地思考問題,從而自然地解決問題
D、鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考
標(biāo)準(zhǔn)答案:4
知識點解析:面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本
原理是,使用現(xiàn)實世界的概念抽象地思考問題,從而自然地解決問題。它強(qiáng)調(diào)模擬
現(xiàn)實世界中的概念,而不強(qiáng)調(diào)算法,鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用
領(lǐng)域的概念去思考。
A
4、下圖所示二叉樹的中序遍歷結(jié)果為()。
A、ABCDEF
B、DBEAFC
C、ABDECF
D、DEBFCA
標(biāo)準(zhǔn)答案:2
知識點解析:中序遍歷首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹,并且
在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。
5、在計算機(jī)中,算法是指()。
A、查詢方法
B、加工方法
C、解題方案的準(zhǔn)確而完整的描述
D、排序方法
標(biāo)準(zhǔn)答案:4
知識點解析:計算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它具有的基本特征
有:可行性、確定性、有窮性和擁有足夠的情報。
6、用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()。
A、關(guān)系模型
B、層次模型
C、網(wǎng)狀模型
D、數(shù)據(jù)模型
標(biāo)準(zhǔn)答案:2
知識點解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實世界中很普
遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu)等,它們自頂向下、層次分明。
7、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。
A、便于用戶、開發(fā)人員相互理解和交流
B、反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C、作為確認(rèn)測試和驗收的依據(jù)
D、便于開發(fā)人員進(jìn)行需求分析
標(biāo)準(zhǔn)答案:8
知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重
要文檔之一。它有以下幾個方面的作用:①便于用戶、開發(fā)人員相互理解和交
流。②反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。③作為確認(rèn)
測試和驗收的依據(jù)%
8、單個用戶使用的數(shù)據(jù)視圖的描述稱為()。
A、外模式
B、概念模式
C、內(nèi)模式
D、存儲模式
標(biāo)準(zhǔn)答案:1
知識點解析:選項A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)
模式:選項B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)
的整體邏輯結(jié)構(gòu)的描述;選項。不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,
即數(shù)據(jù)庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內(nèi)模式。
9、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()。
A、定義、開發(fā)、運行維護(hù)
B、設(shè)計階段、編程階段、測試階段
C、總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試
D、需求分析、功能定義、系統(tǒng)設(shè)計
標(biāo)準(zhǔn)答案:1
知識點解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱
為軟件生命周期,它可以分為軟件定義、軟件開發(fā)及軟件運行維護(hù)三個階段。
10、按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式為()。
A、R|X|R
RIxIR
B、f
C、of(R)
D、nf(R)
標(biāo)準(zhǔn)答案:4
知識點解析:選擇運算是一個一元運算,關(guān)系R通過選擇運算(并由該運算給出所
選擇的邏輯條件)后仍為一個關(guān)系。這個關(guān)系是由R中那些滿足邏輯條件的元組組
成的。如果關(guān)系的邏輯條件為f,則R滿足f的選擇運算可以寫成:af(R)o
二、選擇題(1分)(本題共10題,每題1.0分,共10
分。)
11、設(shè)函數(shù)fun的定義形式為:voidfun(charch,floatx){...}則以下對函數(shù)fun
的調(diào)用語句中,正確的是()。
A、funCabc'1,3.0);
B、t=fun(,D\16.5);
C、fun(,65',2.8);
D、fun(32,32);
標(biāo)準(zhǔn)答案:8
知識點解析:調(diào)用有參函數(shù)時,實參與形參的類型應(yīng)相同或賦值兼容。由于整型數(shù)
據(jù)與字符型數(shù)據(jù)可以通用,所以實參“32”與形參ch的類型是一致的;又因為整型
變量給浮點型變量賦值是相兼容的,所以選項D)正確。
12、以下敘述中錯誤的是()。
A、C語句必須以分號結(jié)束
B、復(fù)合語句在語法上被看做一條語句
C、空語句出現(xiàn)在任何位置都不會影響程序運行
D、賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
標(biāo)準(zhǔn)答案:4
知識點解析:選項C)是錯誤的。例如,對于for(;;)語句,如果循環(huán)體中沒有結(jié)束循
環(huán)的語句,循環(huán)將無限地進(jìn)行下去,導(dǎo)致死循環(huán)出現(xiàn)。
13、以下能正確定義且賦初值的語句是()。
A、intnl=n2=10;
B、charc=32;
CNfloatf=f+1;
D、doublex=12.3E2.5;
標(biāo)準(zhǔn)答案:2
知識點解析:語句intnl=n2=10;中,由于變量n2未定義,所以此賦值語句錯
誤;由于賦值語句中不能存在運算表達(dá)式,所以選項C)中的賦值語句錯誤;選項
D)中指數(shù)表示錯誤,C語言規(guī)定,e后面的指數(shù)必須為整數(shù);選項B)中的32是
ASCII碼的表示形式,這是c語言中字符型數(shù)據(jù)和整型數(shù)據(jù)通用的表現(xiàn),即一個字
符數(shù)據(jù)可以以字符形式出現(xiàn),也可以以整數(shù)形式出現(xiàn)。
14、以下關(guān)于函數(shù)的敘述中正確的是()。
A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B、每個函數(shù)都可以被單獨編譯
C、每個函數(shù)都可以單獨運行
D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)
標(biāo)準(zhǔn)答案:2
知識點解析:C語言的函數(shù)間可以互相調(diào)用,但不能調(diào)用main函數(shù);函數(shù)可以分
別編寫、分別編譯,但函數(shù)不能單獨運行;函數(shù)是互相獨立的,在一個函數(shù)內(nèi)部不
能定義另一個函數(shù),即函數(shù)不能嵌套定義。
15、有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;
if(n%2)(staticinta=4;t+=a++;)else{staticinta=5;t-:a++;)returnt+a++;main
(){ints-a,i;for(i-0;i<3;i++)s十-f(i);piinff(u%d\n''s);}程序運行后的輸出結(jié)縣是
()。
A、26
B、28
C、29
D、24
標(biāo)準(zhǔn)答案:4
知識之解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位
置開始到本文件的結(jié)束;在f函數(shù)中的if子句(復(fù)合語句)和else子句中定義的變量
a是局部變量,其作用范圍只在其所在的復(fù)合語句內(nèi);在f函數(shù)中定義的第一個變
量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內(nèi)部,無論被調(diào)用多少次都只初始
化一次,并且保留上次函數(shù)調(diào)用結(jié)束時的值,該變量不對復(fù)合語句產(chǎn)生作用,所
以,f函數(shù)的返回值是這個a變量和t值相加的結(jié)果。
16、有以下程序:#include<stdio,h>voidsum(intalJ){a[OJ=a[-lJ+atlJ;)main
n
(){inta[10]={l,2,3,4,5,6J,8,9,10);sum(&a[2]);prinff(%d\n",a[2]);}程序運行后的
輸出結(jié)果是()。
A、6
B、7
C、5
D、8
標(biāo)準(zhǔn)答案:1
知識點解析:本題將主函數(shù)中a[2]的地址傳遞給了sum函數(shù)中的形參a[],使得
sum函數(shù)中的(a+0)為主函數(shù)中a[2]的地址,所以a[-l]即*(a-l)的值為主函數(shù)中a[l]
的值,故函數(shù)sum中a[0]=2+40由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以主
函數(shù)中的a[2]的值即為6。
17、有以下程序:#includc<stdio,h>main(){intk=5,n=0;while(k>0){switch
(k){default:break;case1:n+=k;case2:case3:n+=k;}k-;printf("%d\n",n);}程
序運行后的輸出結(jié)果是()。
A、0
B、4
「、6
D、7
標(biāo)準(zhǔn)答案:8
知識點解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)
行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順
序執(zhí)行case3:n+=k;得n=5;當(dāng)k=l時,執(zhí)行easel:n+=k;得n=6,然后順序
執(zhí)行case2:和case3:n+=k;使得n=7o
18、設(shè)有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達(dá)式是()。
A、k=k>=k
B、-k++
C、k%int(f)
D、k>=f>=m
標(biāo)準(zhǔn)答案:4
知識點解析:強(qiáng)制類型轉(zhuǎn)換的一般形式為:(類型名)(表達(dá)式),而選項C)中沒有給
類型名加括號,所以選項C)錯誤。
19、以下不能正確計算代數(shù)式3I2,的值的c語言表達(dá)式是()。
A、1/3*sin(l/2)*sin(l/2)
B、S1H(O.5)*sin(0.5)/3
C、pow(sin(0.5),2)/3
D、l/3.0*pow(sin(1.0/2),2)
標(biāo)準(zhǔn)答案:1
知識點解析:在有運算符的表達(dá)式中,要避免兩個操作數(shù)都是整數(shù)的情況。本
題選項A)中的“1/3”和“1/2”的值都為0,使選項A)的表達(dá)式值為0,但事實上代數(shù)
式312加勺值并不為0,所以選項A)錯誤。
20、有以下程序段:intk=0>a=l,b=2,c=3;k=a<b?b:a;k=k>c?c:K;執(zhí)行
該程序段后,k的值是()。
A、3
B、2
C、1
D、0
標(biāo)準(zhǔn)答案:2
知識點解析:由于aVb成立,所以表達(dá)式aVb?b:a取b的值2,得到k=2;由于k
>c不成立,所以表達(dá)式k>c?c:k取k的值2,故k的值為2。
三、選擇題(2分)(本題共30題,每題7.0分,共30
分。)
21、下面程序的功能是瑜出以下形式的金字塔圖案:****************#mdude
<stdio.h>main(){intij;for(i=l;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=l;j
<=J++)printf("*");printf(,'\n");))在下劃線處應(yīng)填入的是()。
A、i
B、2*i-l
C、2*i+l
D、i+2
標(biāo)準(zhǔn)答案:2
知識點解析?:本題是找出打'印號的條件,從圖中我們可以找到規(guī)律,第一行1
個,第二行3個“*”,第三行5個*,……,即每行中。的個數(shù)恰好是行數(shù)的2
倍減一個,由此不難得出,橫線處應(yīng)當(dāng)填入
22、有以下程序:#include<stdio.h>main(){chark;inti;for(i=l;i<3;i++)
{scanR"%c",&k);switch(k){case'O':printf(”another\n”);caseT:
primf("number\n”);}{}程序運行時,從鍵盤輸入:01V回車》,程序執(zhí)行后的輸
出結(jié)果是()。
A、anothernumber
B、anothernumberanother
C、anothernumber
D、numbernumber
標(biāo)準(zhǔn)答案:4
知識點解析:本題中沒有使用break終止switch語句的執(zhí)行,當(dāng)k為XT時,執(zhí)行完
caseU后的輸出后將繼續(xù)執(zhí)行caseT后的輸出;當(dāng)k為T時,執(zhí)行case”'后的
輸出。
23、有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z->0&&
++x<5)y=y-l:printf("%d,%d,%d\n”,x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。
A、3,2,0
B、32-1
C、4,3,-1
D^5,-2,-5
標(biāo)準(zhǔn)答案:2
知識點解析:當(dāng)x=0,y=5,z=3時,z->0&&++x<5成立,執(zhí)行y=y-1;此時
y=5-l=4,z=z-1=2,x=x+l=l;條件z-->0&&++xV5仍然成立,繼續(xù)執(zhí)行y=y-
1,此時y=y-1=3,z=l,x=2;條件z??>0&&++xV5仍然成立,繼續(xù)執(zhí)行y二y-1,
此時y=y?l=2,z=0,x=3;條件不再成立,執(zhí)行條件判斷后x=3,y=2,z=-lo
24有以下程序:#include<stdio.h>main(){intx=102,y=012;
printf(',%2d,%2d\n',,x,y);)執(zhí)行后的輸出結(jié)果是()°
A、10,01
B、02,12
C、102,10
D、02,10
標(biāo)準(zhǔn)答案:4
知識點解析:y=012是將八進(jìn)制數(shù)12賦給變量y。格式符%d,用于輸出十進(jìn)制整
數(shù):%md,m為指定的輸出值的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空
格,若大于m,則按實際位數(shù)輸出。本題是將八進(jìn)制數(shù)12也按十進(jìn)制數(shù)輸出,八
進(jìn)制數(shù)12轉(zhuǎn)換為十進(jìn)制數(shù)為10,輸出結(jié)果為102,10o
25、設(shè)有定義:intn=O,*p=&n,**q=&p;則以卜選項中,止確的賦值語句是()。
A、P=1
B、*q=2;
C、q=p;
D、*p=5;
標(biāo)準(zhǔn)答案:8
知識點解析:指針變量中只能存放地址(指針),不能將一個非地址類型的數(shù)據(jù)賦給
一個指針變量,選項A)錯誤;q是指向指針的指針,選項B)錯誤;q和p是基類型
不同的指針變量,不能相互賦值,所以選項C)錯誤。
26、有以下程序:#include<stdio.h>#include<stdlib.h>structNODE{intnum;
structNODE*next;};main(){struetNODE*p,*q,*r;intsum=0;p=(structNODE*)
malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(struetNODE));r=(struct
NODE*)malloc(sizeof(structNODE));P->num=l;q->num=2;r->num=3;p->
next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=P->num;
printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()
A、3
B、4
C、5
D、6
標(biāo)準(zhǔn)答案:2
知識點解析:程序中q->next=r,所以q->next->num即為r->num,值為3,而
p->num=l,所以sum=3+l=4。
27、有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+
=i+l;printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()°
A、正整數(shù)1?9的累加和
B、正整數(shù)1?10的累加和
C、正整數(shù)1?9中奇數(shù)之和
D、正整數(shù)1?10中偶數(shù)之和
標(biāo)準(zhǔn)答案:8
知識點解析:通過for(i=l;iV10;i+=2河知,i取值為1?10的奇數(shù),即1,3,5,
7,9,i+1即為2,4,6,8,10。因此,程序的功能是計算并輸出1?10中的偶數(shù)
之和,s+=i+l就是累加這些偶數(shù)。
28設(shè)有定義:inta,*pa二&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。
A、scanf("%d",pa);
scanf("%d",a);
C、scanf("%dn,&pa);
D、scanf("%d",*pa);
標(biāo)準(zhǔn)答案:1
知識點解析:scanf函數(shù)是格式輸入函數(shù),用于輸入任何類型的多個數(shù)據(jù)。該函數(shù)
的一般形式為:scanf(格式控制,地址列表),其中“格式控制”是用雙引號括起來的
字符串,”地址列表”是由若干個地址組成的表列,可以是變量的地址,或字符串的
首地址。題目中可以作為地址列表項的有pa和&a。所以,選項A)正確。
29、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是
使位置指針從文件末尾向前移2*sizeof(int)字節(jié)):#inckide<stdio.h>main()
{FILE*fp;inti,a[4]={1,2,3,4),b;^fopenCtdata.dar","wb");for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dar',,"rbn);fseek(fp,-
2L*sizeof(int),SEEK_END);firead(&b,sizeof(ini),l,fp);/*從文件中讀取sizeof(int)字節(jié)
的數(shù)據(jù)到變量b中*/幻(^你);printf("%d\n",b);}執(zhí)行后的輸出結(jié)果()。
A、2
B、1
C、4
D、3
標(biāo)準(zhǔn)答案:8
知識點解析:Leek(fp,-2L*sizeof(int),SEEK_END):語句的作用是使位置指針從
文件末尾向前移2*sizeof(int)字節(jié),調(diào)用此函數(shù)后指針指向a⑵,
fread(&b,sizeof(inl),l,fp)是從文件中讀取sizeof(inl)字節(jié)的數(shù)據(jù)到變量b中,也就是
從文件中讀取數(shù)據(jù)3到變量b中。
30、有以卜程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;
fp=fopen("dl.dat",nw");for(i=l;i<4;i++)fprintf(fp,"%d",i);fclose(fp);
fp=fopen("dI.dat","r");fscanf(fp,"%d%d",&k,&n):printf("%d%d\n",k,n);fclose(fp);{執(zhí)
行后的輸出結(jié)果是()。
A、12
B、1230
C、123
D、00
標(biāo)準(zhǔn)答案:2
知識點解析:fprintf、fscanf函數(shù)與printf、scanf函數(shù)作用相仿,都足格式化讀寫函
數(shù),其區(qū)別在于:fprinlf和fscanf函數(shù)的讀寫對象不是終端而是磁盤文件。這兩個
函數(shù)的一般調(diào)用方式為:fprintf(文件指針,格式字符串,輸出表列):fscanf(文件
指針,格式字符串,輸入表列);程序首先將123寫入dl.dat文件中,再從該文件
中將數(shù)據(jù)讀給變量k和n。由于文件dl.dat中的數(shù)據(jù)是123
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 19566-7:2022/AMD1:2025 EN Information technologies - JPEG systems - Part 7: JPEG linked media format (JLINK) - Amendment 1: Revision to the JLINK XMP expressions
- 【正版授權(quán)】 ISO/IEC/IEEE 29119-5:2024 EN Software and systems engineering - Software testing - Part 5: Keyword-driven testing
- 杭州全日制勞動合同
- 磚塊購銷合同磚塊購銷合同
- 虛擬現(xiàn)實技術(shù)內(nèi)容開發(fā)合作協(xié)議
- 招投標(biāo)文件合同協(xié)議書
- 購房押金合同書
- 房歸女方所有離婚協(xié)議書
- 幼兒端午活動方案
- 商場柜臺轉(zhuǎn)讓協(xié)議書
- 1企業(yè)網(wǎng)絡(luò)與信息安全管理組織架構(gòu)
- 綠色建筑設(shè)計標(biāo)準(zhǔn)-云南
- 《公路智慧養(yǎng)護(hù)信息化建設(shè)指南(征求意見稿)》
- 《書籍裝幀設(shè)計》 課件 項目4 書籍裝幀版式設(shè)計
- 作物栽培學(xué)課件
- 2024年遼寧大連中遠(yuǎn)海運川崎船舶工程有限公司招聘筆試參考題庫含答案解析
- 資產(chǎn)盤點方案策劃
- 血漿置換的護(hù)理
- 加油站安全生產(chǎn)標(biāo)準(zhǔn)化檔案清單
- 《群英會蔣干中計》課件38張 2023-2024學(xué)年高教版(2023)中職語文基礎(chǔ)模塊下冊
- 大單元教學(xué)和集體備課研究
評論
0/150
提交評論