版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機(jī)試(選擇題)模擬試
卷第1套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、下列關(guān)于棧的敘述中正確的是()。
A、棧底元素定足最后入棧的元素
B、棧頂元素一定是最先入棧的元素
C、棧操作遵循先進(jìn)后出的原則
D、以上說法均錯誤
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:棧頂元素總是最后被插入的元素,從而也是最先被刪除的元素;棧底
元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進(jìn)
先出的原則進(jìn)行的,因此,棧稱為先進(jìn)后出表,或后進(jìn)先出表,所以選擇C選
項。
2、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(圖中佗5)
|某系統(tǒng)|
I功能111孕艇I???能n
I功能2.1]⑼功能2.3|/\
畫直口國題目該系統(tǒng)結(jié)構(gòu)圖的寬度是()。
A^n
B、3
C、2
D、1
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:寬度指整體控制跨度(橫向最大模塊數(shù))的表示。本題中第1層有1個
模塊,第二層有n個模塊(注意位5),第3層有5個模塊,故寬度為n。
R
ABCD
aa24
be12
cc114
3、關(guān)系R經(jīng)過運(yùn)算QA=BAS4AD>3(R)的結(jié)果為()。ee61
A、(a,a,2,4)
(e,e,6,1)
C、(c,c,11,4)
D、(a,a,2,4)和(e,e,6,1)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:選擇運(yùn)算是在二維表中選出符合條件的行,形成新的關(guān)系的過程。設(shè)
關(guān)系的邏輯條件為F,則關(guān)系R滿足F的選擇運(yùn)算可寫成OF(R)。本題中條件為
“A=BAC>4AD>3”(A為并且的意思),只有(c,c,11,4)滿足。
4、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達(dá)式(x-y)?(x++):
(y++)中的條件表達(dá)太(x—y)等價的是()。
A、(x一y<0IIx-y>0)
B、(x—y<0)
C、(x—y>0)
D、(x一y==0)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)
式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x:若表達(dá)式1的值為
0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。本題中與表達(dá)式1:(x—y)等價
的是(x—y<0IIx—y>0)o
5、下面對對象概念描述正確的是
A、對象間的通信靠消息傳遞
B、對象是名字和方法的封裝體
C、任何對象必須有繼承性
D、3寸象的多態(tài)性是指一個對象有多個操作
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,操作描述了對象?zhí)行的功能,
通過消息傳遞,還可以為其他對象使用。操作過程是被封裝在對象中,用戶看不
到,稱之為對象的封裝性。對象的多態(tài)性是指同一個操作可以是小同對象的行為。
不是所有的對象都必須有繼承性。
6、表達(dá)式3.6—5/2+1.2+5%2的值是()。
A、1.8
B、2.8
C、3.8
D、3.3
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:表達(dá)式的計算過程為:3.6—5/2+1.2+5%2=3.6—
2+1.2+1=3.8o此題要注意整數(shù)相除會丟掉小數(shù)位,5/2的結(jié)果是2,而不
2.5,因為除法運(yùn)算符兩邊的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定
為整型。
7、有以下程序:#includeinta=l,b=2;voidfunl(inta,intb){prinff("%d%d",
a,b);)voidtun2(){a=3.b=4;)voidmain(){tunl(5,6);tun2();pnnff(fc%%
d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A、1256
B、5634
C、5612
D、3456
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:funl是輸出局部變量的值,fun2是把全局變量的值改成3,4,所以
輸出結(jié)果是5634。
8、C源程序中不能表示的數(shù)制是
A、八進(jìn)制
B、十進(jìn)制
C、二進(jìn)制
D、十六進(jìn)制
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在C語言的源程序中,數(shù)值可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來表
示。不用二進(jìn)制來表示。
9、下列關(guān)于C語言文件的敘述中正確的是()。
A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D、文件由字符序列組成,其類型只能是文本文件
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析?:本題考查文件的概念。文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或
文本文件,所以答案為C選項。
10、以下關(guān)于宏的敘述中正確的是
A、宏定義必須位于源程序中所有語句之前
B、宏名必須用大寫字母表示
C、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時間
D、宏替換沒有數(shù)據(jù)類型限制
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替
換兩類。使用宏時應(yīng)注意以下幾點(diǎn):①宏定義儀儀是符號替換,不是賦值語句,
因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識符,宏名的定義通常用大寫字
母,但不是必須用大寫:③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌
套,即后定義的宏中可以使用先定義的宏。
T
國
11有三個關(guān)系R,S和T如下圖所不:則
由關(guān)系R和S得到關(guān)系T的運(yùn)算是
A、自然連接
B、交
C、除
D、并
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R,S經(jīng)過除運(yùn)算
后得到的。
12、若有定義語句charc='\101';則變量c在內(nèi)存中占
A、2個字節(jié)
B、3個字節(jié)
C、1個字節(jié)
D、4個字節(jié)
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。
字符值是以ASCH碼的形式存放在變量的內(nèi)存單元之中的。
13、有以下程序#include#includevoidfun(int*pl,int*p2,int*s){s=(int*)calloc(l,
sizcof(int));*s=*pl+*p2;frce(s);}main(){inta[2]={1?2),b[2]={40,50},
*q=a;fun(a,b,q);print「("%d\n",*q);}程序運(yùn)行后的輸出結(jié)果是
A、41
B、42
C、0
D、1
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:主函數(shù)定義數(shù)組a,b,q指向數(shù)組a,調(diào)用fun函數(shù)以后形參接收實
參的數(shù)據(jù),pl和p2指向數(shù)組a和b,同時s指向數(shù)組a,在fun函數(shù)中改變了s的
指向和賦值,但是在程序調(diào)用結(jié)束之間形參空間全部釋放,因此對于s的指向改動
不會對主函數(shù)參數(shù)構(gòu)成影響。因此主函數(shù)中數(shù)去*q的值仍然為1。
14^已定義以卜,函數(shù)inifun(int*p){return*p;}fun函數(shù)返回值是
A、不確定的值
B、一個整數(shù)
C、形參p中存放的值
D、形參p的地址值
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由函數(shù)imfun(inl*p){reuim*p;)的定義可知,返回值為整型指針變量
p所指向的數(shù)據(jù)。
15、汗語句的基本形式是:計(表達(dá)式)語句,以下關(guān)于,、表達(dá)式”值的敘述中正確的是
A、必須是整數(shù)值
B、必須是正數(shù)
C、可以是任意合法的數(shù)值
D、if(a>b){c=a;a=b;b=c;)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在if語句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時,執(zhí)
行if語句,為0時執(zhí)行else語句。
16,有以下程序#includestructtt{intX:structtt*y;}*p;structtta[4]={20,a-1,
15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=l;i<=2;i++){printf("%
d,H,p->x);p=p->y;}}程序的運(yùn)行結(jié)果是
A、20,15,
B、30,17
C、15,30,
D、20,30,
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:程序定義了結(jié)構(gòu)體類型儲其成員包括一個整型數(shù)據(jù)x和指向其自身
結(jié)構(gòu)的指針變量力程序在定義結(jié)構(gòu)體數(shù)組a的同時對其進(jìn)行了初始化.其元素
a⑼的成員y被賦值為元素a[l]的地址,a[l].y被賦值為a⑵的地址,a⑵.y被賦
予a[3]的地址,a[3].y被賦予a[0]的地址。這就形成了一個單向的循環(huán)鏈表,每
個元素的指針成員都指向下一個元素的地址。在主函數(shù)中,通過一個for循環(huán)語
句,輸出該鏈表前2個節(jié)點(diǎn)數(shù)值成員的值,即a[0].x和a[l].X。
17^有以下程序#include<stdio.h>func(intn)voidmain(){staticintnum=I;
{func(3);func(4):printf("\n"):)num=num+n;printf("%d'\num);}程序運(yùn)行
后的輸出是
A、45
B、35
C、48
D、34
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在函數(shù)func(inm)中定義了局部靜態(tài)變量num,,其初始值等于1,
所以在主函數(shù)中執(zhí)行func(3),輸出4,此時靜態(tài)變量num的值等于4,當(dāng)退出函數(shù)
func⑶時,其值不會丟夫,所以當(dāng)在執(zhí)行func(4)時.輸出8。
18、有以下程序#includeintfun(){staticintx=l;x*=2;returnx;}main(){int
i,s=l;for(i=l;i<=2;i++)s=fun();printfC%d\nn,s);}程序運(yùn)行后的
輸出結(jié)果是
A、4
B、1
C、0
D、8
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在子函數(shù)fun()中定義局部靜態(tài)變量x,其初值等于1,然后再把其值
擴(kuò)大1倍后返回。在主函數(shù)中執(zhí)行for循環(huán)語句2次,調(diào)用函數(shù)fun()兩次,所以變
量s的值等于4。這里要強(qiáng)調(diào)的一點(diǎn)是當(dāng)函數(shù)fun()執(zhí)行完畢后,局部靜態(tài)變量x的
值不會丟失,仍然有效。
19、有以下程序#include〈stdio.h>voidfun(inta:intb){intt;t=a;a=b;
b=t;)main(){intc[10]={l,2,3,4,5,6,7,g,9,0),i;for(i=0;i<IO;
i+=2)fun(c[i]?c|i+l|);for(i=0;i<10;i++)printf("%d,",c|i|);printf("\n");)
程序的運(yùn)行結(jié)果是
A、2,1,4,3,6,5,8,7,0,9,
B、0,9,8,7,6,5,4,3,2,1,
C、1,2,3,4,5,6,7,8,9,0,
D、0,1,2,3,4,5,6,7,8,9,
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:c語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳
遞.只由實參傳給形參,而不能由形參傳I川來給實參C在調(diào)用函數(shù)時,給形參分配
存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單
元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,inlb)的功能是實現(xiàn)形
參整形變量a和b值的互換。當(dāng)在主函數(shù)中調(diào)用fun(c[i],c[i+l])時,把實參變量
疝和c[i+l]的值賦給形參變量a和b,執(zhí)行完函數(shù)fun(c[i],c[i+l])時,形參變量a
和b的值發(fā)生了互換,實參變量c[i]和c[i+l]的值并沒有發(fā)生互換,所以輸出的值
為1,2,3,4,5,6,7,8,9,0。
20、卜面選項中的程序段,沒有編譯錯誤的是
A、char*sp,S[10];sp="Hello";
B、char*sp,s[10];s="Hel]oH;
C、charstrl110]="computer",str2|IO|;str2=str1;
D、charmark[];mark="PROGRAM7";
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:選項B中數(shù)組名為常量,不能賦值,選項C字符數(shù)組之間無法完成
賦值操作,選項D和選項B相同,無法對數(shù)組進(jìn)行賦值。
21、以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是
A、fwrite
B、foutc
C、ftell
D、fprintf
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題考查文件操作。ttell函數(shù)返回文件指針的當(dāng)前位置,其他的都寫
文件函數(shù)。
22、以下敘述中正確的是
A、如果函數(shù)帶有參數(shù),就不能調(diào)用自己
B、所有函數(shù)均不能接受函數(shù)名作為實參傳入
C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用
D、函數(shù)名代表該函數(shù)的入口地址
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:木題考查函數(shù)調(diào)用相關(guān)知識,B選項中函數(shù)可以接受函數(shù)名作為實參
傳入,引用函數(shù)名也是指針,C、A選項是錯誤的,因為遞歸函數(shù)就能調(diào)用自己。
23、有以下程序(strcpy為字符串復(fù)制函數(shù),sircat為字符串連接函數(shù))include
#includemain(){chara[10]="abc",b[10]="OI2'\c[IO]=Mxyzn;strcpy(a+1,b+2);
puts(strcat(a,c+l));}程序運(yùn)行后的輸出結(jié)果是
A、a!2xyz
B、bc2yz
C>a2yz
D、12yz
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題考查字符串處理函數(shù)strcpy和strcat,執(zhí)行完strcpy(a+1,b+2);
后,a變?yōu)閍2,執(zhí)行完strcal(a,c+l)后,a菱為a2yz,所以答案為C選項。
24、軟件生命周期是指
A、軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程
B、軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C、軟件的開發(fā)過程
D、軟件的運(yùn)行維護(hù)過程
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱
為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用
為止的整個時期都屬于軟件生命周期。
25有以下程序#includemain(){inta=2,b;b=a<<2;printf(n%d\n",b);}程序運(yùn)行后
的輸出結(jié)果是
A、2
B、4
C、6
D、8
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題考查位運(yùn)算符,題目中將a向左移兩位,左移兩位表示乘以4,
所以答案為8,選項D正確。
家二級C語言機(jī)試(選擇題)模擬試
卷第2套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A、軟件測試
B、概要設(shè)計
C、軟件維護(hù)
D、詳細(xì)設(shè)計
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:軟件生命周期分為軟件定義期、軟件開發(fā)期和運(yùn)行維護(hù)期3個時期,
其中的軟件開發(fā)期包括概要設(shè)計、詳細(xì)設(shè)計、實現(xiàn)和測試4個階段。
2、有以下程序#inchidemain(){inta=0,b=0;/*給a賦值a=10;b=20:給b賦值
*/printf("a+b=%d\n'\a+b);/*輸出計算結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是
A、a+b=30
a+b=10
C、出錯
D、a+b=O
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:C語言規(guī)定,在字符“/*”和其后緊跟的第一個字符“*/”中間的部分
是注釋內(nèi)容,且注釋部分的內(nèi)容不參與程序的編譯和運(yùn)行,因此,本題中程序語句
<4a=10;b=20;”沒有執(zhí)行。
3、下列敘述中正確的是()。
A、數(shù)據(jù)庫的數(shù)據(jù)項之間無聯(lián)系
B、數(shù)據(jù)庫中任意兩個表之間一定不存在聯(lián)系
C、數(shù)據(jù)庫的數(shù)據(jù)項之間存在聯(lián)系
D、數(shù)據(jù)庫的數(shù)據(jù)項之間以及兩個表之間都不存在段系
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:數(shù)據(jù)庫的數(shù)據(jù)項之間以及表之間都存在聯(lián)系。
4、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬
于應(yīng)用軟件的是()。
A、編譯程序
B、操作系統(tǒng)
C、教務(wù)管理系統(tǒng)
D、匯編程序
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有C)教務(wù)管理
系統(tǒng)才是應(yīng)用軟件。
5、在軟件開發(fā)中,需求分析階段可以使用的工具是
A、N.S圖
B、DFD圖
C、PAD圖
D、程序流程圖
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在軟件開發(fā)中,需求分析階段常使用的工具有數(shù)據(jù)流圖(DFD),數(shù)據(jù)
字典(DD)、判斷樹和判斷表。
6、以下選項中,值為1的表達(dá)式是()。
A、1-,0,
B、1八0'
C、T-0
D、,\0,-,0,
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:'\0',空值,其ASCH碼值為O,所以B選項的值為1。字符O的
ASCH碼值為48,所以A、C、D選項的值均不為1。
7、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課
程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為
()。
課
號
成
績
A、
學(xué)
績
號
成
B、
學(xué)
號
號
、課
學(xué)
C名
號
、姓成績
DC
知識點(diǎn)解析:學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的
關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇
Co
8、函數(shù)rewind(fp)的作用是()。
A、使fp指定的文件的位置指針重新定位到文件的開始位置
B、將fp指定的文件的位置指針指向文件中所要求的特定位置
C、使fp指定的文件的位置指針向文件的末尾
D、使fp指定的文件的位置指針自動移至下一個字符位置
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:位置指針重返文件頭指針rewind的調(diào)用形式為:rewind(fp):,
rewind(fp)的功能是:使fp指定的文件的位置指針重返定位到文件的開始位置°
9、有以下程序:#includemain(){intx=l,y=2,z=3;if(x>y)if(y
A、1
B、41
C、2
D、331
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:else總是與離它最近的if配對,所以第一個if語句的判斷條件不成
立,不再執(zhí)行第二個if語句和與第二個if語句配對的else語句,而是直接執(zhí)行打
印x++的操作,打印x的值1以后再加lo
10、以下關(guān)于return語句的敘述中正確的是
A、一個自定義函數(shù)中必須有一條return語句
B、一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C、定義成void類型的函數(shù)中可以有帶返回值的return語句
D、沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:return語句主要用于返回函數(shù)的值。在一個自定義函數(shù)中,可以根據(jù)
不同的情況設(shè)置多條reiurn語句返回函數(shù)的值。
A^選擇
B、投影
C、交
D、并
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:由關(guān)系R和T所包含的元素可知,關(guān)系R經(jīng)過選擇操作就可以得到
關(guān)系T。
12、有以下程序:#include<stdio.h>main(){FJLE*fp;charstr[10];
fp=fopen("myfile.dat","w");fputs(nabcn?fp);felose(fp);
fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,
"%sn,str);puts(str);felose(fp);}程序的運(yùn)行結(jié)果是()。
A、abc
B、28c
C、ad9c28
D、因類型不一致而出錯
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題考查文件操作函數(shù):fprintf()函數(shù)。fprintf()函數(shù)向文件輸出,將
輸出的內(nèi)容輸出到硬盤上的文件,或是相當(dāng)于在文件的設(shè)備上執(zhí)行兩次fprintf
后,文件中有abc28,所以C選項正確。
13、有以下程序(字母A的ASCII代碼為65)includemain(){charcl=W,c2
=Y;printfiT%d,%d\n”,cl,c2);}程序運(yùn)行后的輸出結(jié)果是()°
A、65,89
B、A,Y
C、65,90
D、輸出格式不合法,輸出出錯信息
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:考查字符型數(shù)據(jù)。字符常量與其ASCH碼值一一對應(yīng),在計算的時
候,一般是字符數(shù)據(jù)對應(yīng)的ASCII碼參與運(yùn)算,輸出時會根據(jù)格式控制符輸出對
應(yīng)的字符或者ASCII碼、所以答案選Ac
14、有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f',x,y);其輸出結(jié)
果是()。
A、123.141593
B、123.141593
C、12,3.141593
D、123.1415930
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:考查printf函數(shù)的格式輸出。除了格式控制符外,其余均按照雙引號
內(nèi)原樣輸出。變量x、y輸出時中間沒有其他字符,所以選項C)錯誤;”%8.6「表
示控制輸出寬度為8(包括小數(shù)點(diǎn)),右對齊,小數(shù)點(diǎn)后保留位數(shù)為6,所以輸出
結(jié)果為選項A)。
15、有以卜程序#includemain(){inta=7;while(a-);printf("%d\n'\a);}程序運(yùn)
行后的輸出結(jié)果是
A、0
B、-1
C、1
D、7
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:a--的含義是先用后減1,所以當(dāng)a的值為0時,跳出循環(huán),但是仍要執(zhí)行
a—,a的值變?yōu)?1。
16、以下敘述中錯誤的是
A、函數(shù)可以返回地址值
B、改變函數(shù)形參的值,不會改變對應(yīng)實參的值
C、當(dāng)在程序的開頭包含頭文件sidio.h時,可以給指針變量賦NULL
D、可以給指針變量賦一個整數(shù)作為地址值
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項D的
描述是錯誤,為待選答案。函數(shù)可以返回內(nèi)存空間的地址,同時函數(shù)形參和實參分
別占用不同的內(nèi)存單兀,改變形參的值不會改變對應(yīng)實參的值,在頭文件sidio.h
中,NuLL被定義為void型的指針。
17、有以下程序main。{intij;for(i=l;i<4;i++){for(j=i;j<4:j++)printf("%
d*%d=%d”,i,j,i*j);printf("\n");)}
A、1*1=11*2=21*3=32*1=22*2=43*1=3
B、1*1=11*2=22*2=41*3=32*3=63*3:9
C、1*1=11*2=21*3=32*2=42*3=63*3=9
D、1*1=12*1=22*2=.43*1=33*2=63*3=9
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:外層for循環(huán)的自變量i從I開始,每次循環(huán)后增1,直到i等于3結(jié)
束。對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次
循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打
印i*戶兩個乘數(shù)的積,然后回車換行,下次循環(huán)從卜一行開始打印輸出結(jié)果。
18、若有以下程序lypedefstructstu{chamame[10],gender;in(score;)STU;
voidf(char*P){strcpy(P,"Qian''):}main(){STUa={,,Zhao,\,m',290},b;
b=a;f(b.name);b.gender=T;b.score=350;printf(''%s,%c,%d,
a.name,a.gender,a.score);printR''%s,%c,%d\n”,b.name,
b.gender,b.score);}則程序的輸出結(jié)果是
A、Zhao,m,290,Zhao,m,290
B、Qian,f,350,Qian,f350
C^Zhao,m,290,Qian,f,35O
D、Zhao,m,290,Zhao,C350
標(biāo)準(zhǔn)答案:c
知識點(diǎn)0析:主函數(shù)中結(jié)構(gòu)體變量定義同時賦初值。執(zhí)行b=a;語句后,b的數(shù)據(jù)
和a的數(shù)據(jù)相同,調(diào)用函數(shù)f(b-name),形參指針p接收實參b.name的地址,此
時p和b.name指向同一個存儲空間,流程轉(zhuǎn)到f執(zhí)行,p指向的存儲空間存放字
符串"oianH流程結(jié)束返回主函數(shù)。主函數(shù)中變量b的其他成員存放數(shù)據(jù)。因此a
的數(shù)據(jù){"zhao",'m,,290),b的數(shù)據(jù)為{"QJanLf,350}。注意本題結(jié)構(gòu)體
STU類型變量a和b中的name成員為數(shù)組,不是指針,它具有白己的存儲空間。
19、設(shè)有定義:structcomplex{intreal,unreal;}datal={1,8},data2;則以下賦
值語句中錯誤的是
A、data2=(2,6);
B、data2=data1;
C^data2.real=datal.real;
D、data2.real=datal.unreal;
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題主要考查結(jié)構(gòu)體變量的定義與初始化。題目中定義了complex類
型的結(jié)構(gòu)體變量daial和data2,并對datal進(jìn)行了初始化??梢杂靡粋€結(jié)構(gòu)體變量
對另一個結(jié)構(gòu)體變量賦值,用一個結(jié)構(gòu)體變量的成員對另一個結(jié)構(gòu)體變量的成員賦
值。
20、以下敘述中正確的是
A、函數(shù)的返回值不能是結(jié)構(gòu)體類型
B、函數(shù)的返回值不能是結(jié)構(gòu)體指針類型
C、在調(diào)用函數(shù)時,可以將結(jié)構(gòu)體變量作為實參傳給函數(shù)
D、結(jié)構(gòu)體數(shù)組不能作為參數(shù)傳給函數(shù)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:和普通變量相似,結(jié)構(gòu)體變量也可以作為函數(shù)實參或者形參,函數(shù)的
返1口1值也可以是結(jié)構(gòu)體類型C
21、有以卜程序#includemain(){FILE*pf;char*sl="China'\*s2="Beijing";
pf=fopen(',abc.dat,',',wb+');fwrite(s2,7,l,pf);rewind(pf);/*文件位置指針回至I」文件開
頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。
A、Chinang
B、China
C>ChinaBeijing
D、BeijingChina
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:語句“fwrile(s2,7,l,pD;”將指針s2指向的7個字節(jié)的數(shù)據(jù)寫入到
abc.dat文件中,而后將文件指針fp重定向指向文件首,再執(zhí)行語句
時將si指向的5個字符寫入當(dāng)前文件,原先寫入的數(shù)據(jù)會被部分
覆蓋,最后文件中的內(nèi)容為Chinang,答案選A。
22、設(shè)有如下定義strucl{inln;charc;}a[2],*p=a;則以下錯誤引用結(jié)構(gòu)體成員n的
是()。
A、(*a)->n
B、a|O].n
C、p->n
D、(*p).n
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:結(jié)構(gòu)體變量對其成員變量的引用用“.”運(yùn)算符,而結(jié)構(gòu)體指針引用成
員變量使用指向運(yùn)算符(*a)與a[0]等價,引用成員變量n應(yīng)該使用”.“運(yùn)算
符,所以答案選A。
23有以下程序#includemain(){inta[]={2,4,6,8,10),x,*p,y=l;p=&a[l];
for(x=O;x<3;x++)y+=*(p+x);printf("%d\n",y);)程序的輸出結(jié)果是
A、13
B、19
C、Il
D、15
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題通過語句將指針變量p指向了存儲單元a[了即伎得
p[0]的值為4,y的初始值為1,然后通過3次for循環(huán),使得y的值分別加上
p[0]、p[l]和p⑵,那么y=l+4+6+8,所以輸出的y的值為19。
24、有以下程序#includeintfun(intx){intp;if(x==0||x==l)return(3);p=x-fun(x-2);
returnp;)main(){printf("%d\n",fun(7));)執(zhí)行后的輸出結(jié)果是
A、2
B、3
C、7
D、0
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)
用,其過程可以描述為"fim(7)=7-fun(5)=7?(5-fun(3))=7-(5-(3-fun(l)))=7-(5-(3-3))=7-
5=2",所以最后輸出結(jié)果為2。因此A選項正確。
25、設(shè)有定義:intx[2][3];則以下關(guān)于二維數(shù)組x的敘述錯誤的是
A、元素x[0]可看作是由3個整型元素組成的一維數(shù)組
B、數(shù)組x可以看作是由x|0]和x[11兩個元素組成的一維數(shù)組
C、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0
D、x[0]和x[l]是數(shù)組名,分別代表一個地址常量
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:x[0]可看作是由3個整型元素組成的一維數(shù)組,不可以用語句
x[0]=0;為數(shù)組所有元素賦初值0。因此C選項正確。
國家二級C語言機(jī)試(選擇題)模擬試
卷第3套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、有以下程序:#includemain(){inti,array[6]={1,5,0,4);for(i=0;i<5;
i++)printf,%d",array[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。
A、04040
B、15040
C、15540
D、12120
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個元素,但初始化數(shù)
組的時候只給出4個元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,
不夠位數(shù)補(bǔ)0,所以選項B正確。
2、若a是數(shù)值類型,見邏輯表達(dá)式(a==l)II(a!=l)的值是()。
A、1
B、0
C、2
D、不知道a的值,不能確定
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:邏輯或“II”要求只要兩邊的運(yùn)算對象有一個非零,結(jié)果就為真。雖
然不知道a的值,但是若a為1,則左邊運(yùn)算對象為1:若a的值不是1,則右邊運(yùn)
算對象的值為1,所以總能保證一邊非零。
3、有以下程序:#includemain(){chars[]-kabode,,js+=2;prinfR"%d\n",
s[0]);}程序的運(yùn)行結(jié)果是()。
A、輸出字符c的ASCH碼
B、程序出錯
C、輸出字符c
D、輸出字符a的ASCH碼
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題重點(diǎn)考查數(shù)組名的概念。在C語言中,數(shù)組名類似于一個指向
數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的飛+=2”;語句
讓數(shù)組名s的內(nèi)容加2是錯誤的,編譯無法通過,因此B選項正確。
RST
mmprq
4、有三個關(guān)系R、S和T如下:LZLZJI31H由關(guān)
系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為
A、笛卡爾積
B、交
C、并
D、自然連接
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析?:在實際應(yīng)用中,最常用的連接是一個叫自然連接的特例。它滿足下面
的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個關(guān)系
R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。
5、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()o
A、記錄長度
B、文件的大小
C、聯(lián)系的復(fù)雜程度
D、數(shù)據(jù)之間的聯(lián)系方式
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制
的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的
聯(lián)系方式。
6、若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是()。
A、inta[5]={1};
B、intb[]={l,2,3,4,5);
C、imC[2+3]
D、inti=5,d|i)
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題考查一維數(shù)組的定義,C語言中一維數(shù)組的長度表達(dá)式必須是常
量;選項A正確:選項B初始化了5個元素,因此數(shù)組長度為5;選項C常量表
達(dá)式2+3的值為5,正確;選項D數(shù)組長度不是常量表達(dá)式,錯誤。
7、下列敘述中正確的是
A、對象標(biāo)識具有唯一性
B、屬性是對象的動態(tài)屬性
C、任何對象都必須有多態(tài)性
D、對象是對象屬性和方法的封裝體
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:每個對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。
在對象的整個生命期中,它的標(biāo)識都不改變,不同的對象不能有相同的標(biāo)識。
8、不屬于對象構(gòu)成成份的是
A、規(guī)則
B、屬性
C、標(biāo)識
D、方法(或操作)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:對象由屬性、方法和標(biāo)識構(gòu)成。
9、有以下程序#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:
switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;
break:}primf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是
A、a=l,b=l
B、a=l,b=0
C、a=2,b=l
D^a=2,b=2
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:本題考查的是用switch語句實現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個
switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇
到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束
循環(huán),此時a=2,b=lo
10、若有以下程序#includeint*t){int*k:if(*s<*t){k=s;s=t:t=k;}
returns;)main()(inti=3?j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%
d,%d,%d,%d\n”,i,j,*p,*q,*r);}則程序的輸出結(jié)果是
A、3,5,5,3,5
B、5,3,5,3,5
C、5,3,3,5,5
D、3.5.3.5.5
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個參數(shù)小
于第二個參數(shù),那么交疾指針的指向,這對于實參指向的數(shù)據(jù)時沒有影響的。最后
返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調(diào)用r=f(p,q),返回q的
地址,因止匕*p=3,*q=5,*r=5o
11、有以下程序#includeVstdio.n>main(){inta=l,b=0;pnntf(M%d,”,
b=a+b);printf("%d\n',a=2*b);}程序運(yùn)行后的輸出結(jié)果是
A、1,0
B、3,2
C、I,2
D、0,0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在主函數(shù)中定義了兩個整型變量a和b,并把它們的初值分別設(shè)置為
1和0;在第二條語句中,首先計算出a和b的和等于1,把此值賦給變量b,并在
屏幕上輸出此時變量b的值1;在第三條語句中,計算出2乘以1的積等于2,把
2賦給變量a,再把變量a的值在屏幕上輸出。
12、有以下程序#includeVstdio.h>main(){intx=8;for(;x>0;x--){if(x%
3){printf("%d,",x—);continue;}printf("%d,",—x);}}程序的運(yùn)行結(jié)果是
A、8,7,5,2,
B、9,7,6,4,
C>7,4,2,
D、8,5,4.2,
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:表示先執(zhí)行程序,再令x的值減1:而表示令x的值減1,
再執(zhí)行程序。x=8時,x%3為非0值,執(zhí)行語句“{print(”%d,",x-):
continue:}",輸出“8,”,此時經(jīng)過x--,x的值變?yōu)?,跳出此次循環(huán):執(zhí)行“x-
-,x=6,x%3=0”,后面語句不執(zhí)行,執(zhí)行語句“printf("%d,",??x);”,輸出
“5,”;執(zhí)行for語句中的X--,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x-
后,x=2,執(zhí)行“{primff%d,”,X-);continue;}”后,輸出“2,”;然后執(zhí)行兩次
X--后,X—0,不符合“x>0",循環(huán)全部結(jié)束o
13、有以下程序段structst{intx;int*y;)*pt;inta[]={1,2),b[]={3,4);
structstc[2]=(10,a,20,b);pt=c:以下選項中表達(dá)式的值為11的是
A、pt->x
B、*pt->y
C^++pt->x
D、(pt++)->x
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:由題目的已知條件可知,m指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[0],所
以pt->x=10,執(zhí)行白加運(yùn)算后為11。
14、有以下程序main(){inta=0,b=0,c=0,d=0;if(a=l)b=l;c=2:elsed=3;
printf(n%d,%d,%d,%d\n",a,b,c,d);}程序輸出
A、0,0,0,3
B、1,1,2,0
C、編譯有錯
D、0,1,2,0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:if語句的格式為:ifr表達(dá)式)語句1else語句2if和else是C語言的
關(guān)鍵字?!罢Z句1”稱為if子句,“語句2”稱為else子句,這些子句只允許為一條語
句,若需要多條語句時,則應(yīng)該使用復(fù)合語句。因此題目“if(a=l)b=l;c=2;else
d=3;",if分支有兩條語句,沒構(gòu)成復(fù)合語句。
15、以F敘述中正確的是
A、循環(huán)發(fā)生嵌套時,最多只能兩層
B、三種循環(huán)for,while,do-while可以互相嵌套
C、循環(huán)嵌套時,如果不進(jìn)行縮進(jìn)形式書寫代碼,則會有編譯錯誤
D、for語句的圓括號中的表達(dá)式不能都省略掉
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在一個循環(huán)體內(nèi)又完整包含了另一個循環(huán),稱為循環(huán)嵌套。循環(huán)的嵌
套可以多層,但每一層循環(huán)在邏輯上必須是完整的。for循環(huán)、while循環(huán)、do-
whilc循環(huán)可以互相嵌套,但每層循環(huán)在邏輯上必須完整。而在for語句中,for語
句中的表達(dá)式可以部分或全部省略,但兩個";不可省略。
16、有以下程序main(){charcl,c2;cl='A'+'8'-'4';c2='A+8'-'5';
printf(u%c,%d\nu,cl,c2);}已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是
A、D,69
B、E,68
C、E,D
D、輸出無定值
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:字符變顯cl的ASCH值等于69,而字符變顯c2的ASCH值等于
68,當(dāng)分別以字符和整型輸出cl和c2的ASCII碼道時,其結(jié)果為E,68。
17、以下選項中,沒有編譯錯誤的是
A、charstr3[]={,d\V,V,V,'g',,\0>
B、charstrl[5]="pass'\str2[6];str2=strl;
C>charname[10];nams="china";
D、charstr4[J;str4="helloworld";
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:選項A)是定義了字符數(shù)組4r3□:并對其賦初值n選項B)中語句
str2二strl非法,字符數(shù)經(jīng)不能直接賦值。選項C),D)和選項B)一致。
18、有以下程序#includeVstdio.h>main()(inta[]={10,20,30,40],*p=a.
i:for(i=0;i<=3;i++){a[i]=*p;p++:}prin>f("%d\n”,a⑵b}程序運(yùn)行后的
輸出結(jié)果是
A、20
B、30
C、10
D、40
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:因為指針變量p的初始值指向數(shù)組a,所以執(zhí)行for循環(huán)語句后,數(shù)
組a中的元素的值不變?:
19、以下.程序用來統(tǒng)計文件中字符的個數(shù)(函數(shù)feof用以檢查文件是否結(jié)束,結(jié)束
時返回非零)#inck】deVstdio.h>main(){FILE*fp;longnum=0;
fp=fopen("fname.dat'\"r");while(){fgetc(fp);num++;)printf("num=%
d\n'\num);felose(fp);}下面選項中,填入橫線處不能得到正確結(jié)果的是
A、feof(fp)
B、feof(fp)==NULL
C>!feof(fp)
D、feof(fp)==0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:feof函數(shù)用來判斷文件是否結(jié)束。如果遇到文件結(jié)束:,函數(shù)feof(fp)
的值為1,否則為0。題目橫線用于判斷文件不結(jié)束,讀出字符。文件不結(jié)束feof
值為0,若執(zhí)行循環(huán)則應(yīng)用表達(dá)式!feof(fp)。
20、有以下程序段int*p;p=malloc(sizeof(int));若要求使p指向一個
int型的動態(tài)存儲單元,在橫線處應(yīng)填入的是()。
A、(int*)
B、int
C、int*
D、(*int)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:語句“maHoc(sizeof(int))”為動態(tài)分配了一塊內(nèi)存,因為p為int型指
針,所以需要使用強(qiáng)制轉(zhuǎn)換將該內(nèi)存地址轉(zhuǎn)換成int*類型后再指給p,填入的內(nèi)容
為(im*),答案選A。
21、下列敘述中正確的是
A、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間一般要少于順序存儲結(jié)構(gòu)
B、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)的存儲空間都是連續(xù)的
C、線件表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的
D、以上說法均錯誤
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:線性表的順序存儲結(jié)構(gòu)具備如下兩個基本特征:(1)線性表中的所
有元素所占的存儲空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏
輯順序依次存放的。用一組任意的存儲單元來依次存放線性表的結(jié)點(diǎn),這組存儲單
元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上
的。因此C正確。
22、下列描述中不屬于軟件需求分析階段任務(wù)的是()。
A、編寫軟件需求規(guī)格說明書
B、軟件的總體結(jié)構(gòu)設(shè)計
C、軟件的需求分析
D、軟件的需求評審
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等
方面的期望。需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫
需求規(guī)格說明書和需求評審。軟件的總體結(jié)構(gòu)設(shè)計屬于軟件設(shè)計階段的任務(wù)。故本
題答案為B選項。
23、算術(shù)運(yùn)算符和圓括號有不同的運(yùn)算優(yōu)先級,對于表達(dá)式:a+b+c*(d+e),關(guān)于
執(zhí)行順序,以下說法正確的是()。
A、先執(zhí)行(d+e)得「2,再執(zhí)行c*己得「3,再執(zhí)行a+b得rl,最后執(zhí)行rl+r3得表
達(dá)式最后結(jié)果
B、先執(zhí)行a+b得門,再執(zhí)行(d+e)得己,再執(zhí)行c水也得「3,戰(zhàn)后執(zhí)行rl+g得表
達(dá)式最后結(jié)果
C、先執(zhí)行(d+e)得己,再執(zhí)行c*r2得「3,再執(zhí)行b+r3得r4,最后執(zhí)行a+r4得表達(dá)
式最后結(jié)果
D、先執(zhí)行a+b得再執(zhí)行rl+c得r5,再執(zhí)行(d+e)得己,最后執(zhí)行r5*r2得表
達(dá)式最后結(jié)果
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:題意中的表達(dá)式,圓括號的優(yōu)先級最高,乘法運(yùn)算符次之,加法運(yùn)算
符最低。同優(yōu)先級中,加法運(yùn)算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)
行順序是:先執(zhí)行a十b得rl,接著執(zhí)行(d+e)得r2,再執(zhí)行是r2得3最后執(zhí)行
rl+r3得表達(dá)式最后結(jié)果。故本題答案為B選項。
24>有以下程序#include<stdio.h>main()(intt;scanf("%d",&t);
if(t++<6)printf(',%d\nt);elseprintf("%d\n",t-);printf("\n");)
執(zhí)行時輸入6并按<En〔er>,則輸出結(jié)果是()。
A、6
B、8
C、7
D、5
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語句“if(t++<6)printf("%d
\n",t);elseprintf("%d\n",t--);”中t的初值為6,則堂++V6”條件為假,t自增
至7,執(zhí)行“printf("%d\n",t??);”,此時匚7,輸出I值為7,之后進(jìn)行自減操
作,即1=6。因此輸出的結(jié)果為7。故本題答案為C選項。
25、設(shè)文件指針fp已定義,執(zhí)行語句"fp=fopen(“file”,”w");"后,下列針對文本
文件file操作敘述的選項中正確的是()。
A、只能寫,不能讀
B、寫操作結(jié)束后可以從頭開始讀
C、可以在原有內(nèi)容后追加寫
D、可以隨意讀和寫
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題考查文件操作函數(shù)fopen。以““產(chǎn)方式打開文件時只能寫,不能
讀。故本題答案為A選項。
國家二級C語言機(jī)試(選擇題)模擬試
卷第4套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、以下選項中關(guān)于程序模塊化的敘述錯誤的是
A、把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊
B、可采用自底向上、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序
C、把程序分成若干相對獨(dú)立的模塊,可便于編碼和調(diào)試
D、可采用自頂向下、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:如果應(yīng)用結(jié)構(gòu)化程序設(shè)計方法設(shè)計程序,那么可采用自頂向下,逐步
細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序。
2、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。關(guān)于轉(zhuǎn)
換以下說法錯誤的是
A、一條C語句可能會被轉(zhuǎn)換成多條機(jī)器指令
B、一條C語句對應(yīng)轉(zhuǎn)換成一條機(jī)器指令
C、一條C語句可能會被轉(zhuǎn)換成零條機(jī)器指令
D、某種類型和格式的C語句被轉(zhuǎn)換成機(jī)器指令的條數(shù)是陶定的
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由C語言編寫的程序,通過編譯、鏈接轉(zhuǎn)換成可以讓機(jī)器識別的01
二進(jìn)制指令。這些二進(jìn)制指令命令機(jī)器計算,這些就是機(jī)器指令,而C語言的語
言條數(shù)和機(jī)器指令的條數(shù)不是一對一的關(guān)系。
3、面向?qū)ο蠓椒ㄖ?,實現(xiàn)對象的數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中的是()。
A、結(jié)合
B、封裝
C、隱藏
D、抽象
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析?:對象的基本特點(diǎn)是:標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)
立性好。封裝是指隱藏對象的屬性和實現(xiàn)細(xì)節(jié),將數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中,僅
對外提供訪問方式。B選項正確。
4、以下敘述中正確的是
A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法
B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語句結(jié)構(gòu),才能準(zhǔn)確表達(dá)
C、只有簡單算法才能在有限的操作步驟之后結(jié)束
D、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)爽成二進(jìn)制的機(jī)器指令
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:C語句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過編譯轉(zhuǎn)換成二進(jìn)制代碼后
可以運(yùn)行,算法是指為解決某個特定問題而采取的確定且有限的步驟,可以利用代
碼來描述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
和選擇結(jié)構(gòu)三種基本結(jié)溝組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的
問題,反之則不一定,所有算法必須在有限步驟后結(jié)束。
5、數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法
圖符的是()。
A、加工
B、控制流
C、數(shù)據(jù)存儲
D、數(shù)據(jù)流
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度來刻畫數(shù)據(jù)流從輸入到輸出的移動
變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)
源)等。本題答案為B選項。
6、設(shè)棧的順序存儲空間為S(l:m),初始狀態(tài)為t。尸m+1?,F(xiàn)經(jīng)過一系列入棧與退
棧運(yùn)算后,top=20,則當(dāng)前棧中的元素個數(shù)為
A、30
B、20
C、m-19
D、m-20
標(biāo)準(zhǔn)答案:C
出棧
入校
知識點(diǎn)解析:根據(jù)題意,??臻g如卜.圖所示。棧是向
上增長的,每次壓入一個元素,棧的TOP指針向上移動一位。當(dāng)壓入第一個元素
時,TOP指針指向m+l-l=m;當(dāng)壓入第二個元素時,TOP指針指向m+l-2=m-
1;......;以此類推,當(dāng)壓入第N個元素時,TOP指針指向m+l-N=20;則N=m+l?
20=m-19o因此選項C正確。
7、下列敘述中正確的是()。
A、在鏈表中,如果每個結(jié)點(diǎn)有兩個指針域,則該鏈表一定是非線性結(jié)構(gòu)
B、在鏈表中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則該鏈表一定是非線性
結(jié)構(gòu)
C、在鏈表中,如果每個結(jié)點(diǎn)有兩個指針域,則該鏈表一定是線性結(jié)構(gòu)
D、在鏈表中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則該鏈表一定是線性結(jié)
構(gòu)
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:判斷一個非空的數(shù)據(jù)結(jié)構(gòu)是否為線性結(jié)構(gòu)必須滿足以下兩個條件:
①有且只有一個根結(jié)點(diǎn);②每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。選
項R)中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則說明至少有一個結(jié)點(diǎn)有兩
個前件,不符合線性結(jié)溝的定義,所以答案選B),
8、軟件(程序)調(diào)試的任務(wù)是()。
A、診斷和改正程序中的錯誤
B、盡可能多地發(fā)現(xiàn)程序中的錯誤
C、發(fā)現(xiàn)并改正程序中的所有錯誤
D、確定程序中錯誤的性質(zhì)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在對程序進(jìn)行了成功的測試之后將進(jìn)入程序調(diào)試(通常稱Debug,即
排錯)。程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測
試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于一定的調(diào)試
工具去執(zhí)行并找出錯誤的具體位置。軟件測試貫穿整個軟件生命期,調(diào)試主要在開
發(fā)階段。
9、對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正
確的是
A、冒泡排序為n/2
B、冒泡排序為n
C、快速排序為n
D、快速排序為n(n—1)/2
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2
遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n—1)/
2。快速排序法也是一種互換類的排序方法,但由于它比冒泡排序法的速度快,因
此,稱為快速排序法。
10、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬
于應(yīng)用軟件的是
A、編譯程序
B、操作系統(tǒng)
C、教務(wù)管理系統(tǒng)
D、匯編程序
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:編譯程序和匯編程序
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考試題解析質(zhì)量數(shù)據(jù)分析應(yīng)用案例分析
- 深度解析(2026)《GBT 19275-2003材料在特定微生物作用下潛在生物分解和崩解能力的評價》
- 風(fēng)險管理與內(nèi)部控制考試題庫
- 通信行業(yè)人力資源部工作手冊及面試題集
- 獨(dú)居老人術(shù)后焦慮抑郁干預(yù)方案
- 深度解析(2026)《GBT 18758-2002防偽核技術(shù)產(chǎn)品通 用技術(shù)條件》(2026年)深度解析
- 軟件測試崗位招聘面試技巧全解
- 深度解析(2026)《GBT 18916.27-2017取水定額 第27部分:尿素》
- 圓刻線機(jī)項目可行性分析報告范文
- 深度解析(2026)《GBT 18769-2003大宗商品電子交易規(guī)范》
- 2024學(xué)年安徽省江南十校高一上學(xué)期12月聯(lián)考物理試題及答案
- 六章 幾何圖形初步 專題一-線段的計算 教學(xué)設(shè)計 2024--2025學(xué)年人教版數(shù)學(xué)七年級上冊
- 2GW高效N型Topcon電池智能制造項目可行性研究報告模板-立項拿地
- 鄉(xiāng)村振興戰(zhàn)略的理論與實踐智慧樹知到期末考試答案章節(jié)答案2024年華中師范大學(xué)
- 金屬硬度轉(zhuǎn)換表【HLD,HRC,HRB,HV,HB,HSD】
- 建材有限公司砂石卸車作業(yè)安全風(fēng)險分級管控清單
- 中石化華北分公司鉆井定額使用說明
- 礦山壓力與巖層控制智慧樹知到答案章節(jié)測試2023年湖南科技大學(xué)
- 機(jī)加工車間主任年終總結(jié)3篇
- WB/T 1119-2022數(shù)字化倉庫評估規(guī)范
- GB/T 5125-1985有色金屬沖杯試驗方法
評論
0/150
提交評論