國家二級(C語言)筆試模擬試卷19(共527題)_第1頁
國家二級(C語言)筆試模擬試卷19(共527題)_第2頁
國家二級(C語言)筆試模擬試卷19(共527題)_第3頁
國家二級(C語言)筆試模擬試卷19(共527題)_第4頁
國家二級(C語言)筆試模擬試卷19(共527題)_第5頁
已閱讀5頁,還剩130頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

國家二級(C語言)筆試模擬試卷19

(共9套)

(共527題)

國家二級(C語言)筆試模擬試卷第1

一、公共基礎選擇題(本題共10題,每題7.0分,共

10分。)

1、算法的時間復雜度是指O

A、執行算法程序所需要的時間

B、算法程序的長度

C、算法執行過程中所需要的基本運算次數

D、算法程序中的指令條數

標準答案:4

知識點解析:所謂算法的時間復雜度,是指執行算法所需要的計算工作量。

2、卜列敘述中止確的是。

A、線性表是線性結構

B、棧與隊列是非線性結構

C、線性鏈表是非線性結構

D、二叉樹是線性結構

標準答案:1

知識點解析:一般將數據結構分為兩大類型:線性結構與非線形結構。線性表、棧

與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。

3、下面關于完全二叉樹的敘述中,錯誤的是_____。

A、除了最后一層外,每一層上的結點數均達到最大值

B、可能缺少若干個左右葉子結點

C、完全二叉樹一般不是滿二叉樹

D、具有結點的完全二叉樹的深度為[log2n]+l

標準答案:2

知識點露析:滿二叉扔指除最后一層外每一層上所有結點都有兩個子結點的二叉

樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上

只缺少右邊的若干子結點(葉子結點)的二叉數。

4、結構化程序設計主要強調的是_____o

A、程序的規模

B、程序的易讀性

C、程序的執行效率

D、程序的可移植性

標準答案:2

知識點解析:結構化程序設計主要強調的是結構化程序清嘶易讀,可理解性好,程

序員能夠進行逐步求精、程序證明和測試,以保證程序的正確性。

5、在軟件生命周期中,能準確地確定軟件系統必須做什么和必須具備哪些功能的

階段是。

A、概要設計

B、詳細設計

C、可行性分析

D、需求分析

標準答案:8

知識點露析:需求分析是對待開發軟件提出的需求進行分析并給出詳細定義,即準

確地確定軟件系統的功能。編寫軟件規格說明書及初步的用戶手冊,提交評審。

6、數據流圖用于抽象描述一個軟件的邏輯模型,數據流圖由一些特定的圖符構

成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是_____o

A、控制流

B、加工

C、數據存儲

D、源和潭

標準答案:1

知識點解析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移

動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據

源)、源和潭。

7、軟件需求分析一般應確定的是用戶對軟件的o

A、功能需求

B、非功能需求

C、性能需求

D、功能需求和非功能需求

標準答案:8

知識點解析:軟件需求分析中需要構造一個完全的系統邏輯模型,理解用戶提出的

每一功能與性能要求,使用戶明確自己的任務。因此,需求分析應確定用戶對軟件

的功能需求和非功能需求。

8、下述關于數據庫系統的敘述中正確的是o

A、數據庫系統減少了數據冗余

B、數據庫系統避免了一切冗余

C、數據庫系統中數據的一致性是指數據類型的一致

D、數據庫系統比文件系統能管理更多的數據

標準答案:1

知識點解析:由于數據的集成性使得數據可為多個應用所共享,特別是在網絡發達

的今天,數據庫與網絡的結合擴大了數據關系的應用范圍。數據的共享自身又可極

大地減少數據冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避兔數據

的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的

值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。

9、關系表中的每一橫行稱為一個。

A、

B、

C碼

D、

標準答案:1

知識點解析:在關系數據庫中,關系模型采用二維表來表示,簡稱“表二維表是

由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。

10、數據庫設計包括兩個方面的設計內容,它們是______o

A、概念設計和邏輯設計

B、模式設計和內模式設計

C、內模式設計和物理設計

D、結構特性設計和行為特性設計

標準答案:1

知識點解析:數據庫設計可分為概念設計與邏輯設計。概念設計的目的是分析數據

間內在語義關聯,在此基礎上建立一個數據的抽象模型。邏輯設計的主要工作是將

ER圖轉換為指定的RDBMS中的關系模型。

二、選擇題(1分)(本題共70題,每題,.0分,共70

分。)

11、以下有4組用戶標識符,其中合法的一組是_____。

A^FOR-subCase

B、4dDoSize

C、f2G3IFabc

D^WoRDvoiddefine

標準答案:4

知識點解析:C語言的標識符的定義為:以字母或F劃線開頭的由字母、數字字

符、下劃線組成的字符串。而且標識符不能與關鍵字相同。

12、下列敘述中正確的是______。

A、C程序中注釋部分可以出現在程序中任伺合適的地方

B、花括號"”「和只能作為函數體的定界符

C、構成C程序的基本單位是函數,所有函數名都可以由用戶命名

D、分號是C語句之間的分隔符,不是語句的一部分

標準答案:1

知識點解析:C程序中注釋部分用“/*”和“*尸括起來,可以出現在程序中任何合適

的地方;花括號和"}”不僅可作為函數體的定界符,也可作為復合語句的定界

符:構成C程序的基本單位是函數;一個語句必須在最后出現分號,分號是C語

句中不可缺少的部分。

13、以下合法的賦值語句是。

A、X=Y=100

B、D-;

C、X+Y

D、C=int(A+B)

標準答案:2

知識點解析:本題中的答案A與D都缺少“;”,而答案C中,表達式是不能獨立

成為語句的,答案B使用了C語言的自減運算符它就相當于口=?1,所以答案B

為一賦值語句。

14、設x為int型變量,執行以下語句,X=10;X+=X-=X-X;X的值為。

A、10

B、20

C、30

D、40

標準答案:2

知識點解析:本題x=10,表達式%+=^^;”的求解步驟如下:先進行x?=x?x的

運算,相當于x=x?(x?x)=x=10;再進行乂+=乂的運算,即x=x+x=20。

15、以下程序的輸出結果是______。main(){inta=3;printf(',%\n",(a4-=a-=a*a));}

A、{

B、1

C、2

D、-12

標準答案:8

知識點解析:賦值運算符的結合方向是自右至左,所以表達式a+a-=a*a先運算最

右邊的a*a得9,再運算a二a-9,即a=3-9,所以此時a的值由3變成了-6,最后運

算a=a+(-6)?即a-(-6)+(-6)=-12o

16、設int型占2個字節,則unsignedint所能表示的數據范圍是。

A、。?65535

B、-32769?32767

C、1-65536

D、0-32767

標準答案:1

知識點解析:本題int型占2個字節,即16位,unsignedini所能表示的數據范圍

是0?(2(上標)16-1),即。?65535。

17、設a、b、c、d、m.n均為血型變量,且a=5、b=6^c=7>d=8、m=2>n=2,

則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為。

A、0

B、1

C、2

D、3

標準答案:1

知識點解析:C語言中比較表達式的運算結果為0或1。0代表不成立,1表示成

立。

18、下面的關鍵字中,不能夠從循環體中跳到循環體外的是o

A、goto

B、break

C、return

D、continue

標準答案:2

知識點解析:在C語言中,可以用break語句和continue語句跳出本層循環和結束

本次循環。golo語句可跳出多層循環,如果在函數的循環體內使用relurn語句,就

會直接結束循環返回函數值。

19、以下各選項企圖說明一種新的類型名,其中正確的是o

A、typedefvlint;

typedefv2=int;

C、typedefintv3;

D、typedefv4:int

標準答案:4

知識點解析:C語言中可以使用typedef來重新定義已有的數據類型,相當于為數

據類型取個別名。

20、在調用函數時,如果實參是簡單變量,它與對應形參之間的數據傳遞方式是

A、地址傳遞

B、單向值傳遞

C、由實參傳給形,再由形參傳回實參

D、傳遞方式由用戶指定

標準答案:2

知識點常析:C語言函數中的參數傳遞方式有傳值與傳址兩種方式,傳值方式是指

將實參的值復制一份傳遞給形參,面傳址方式是指將實參的變量地址傳遞給形參,

也就是實參的引用。

三、選擇題(2分)(本題共70題,每題7.0分,共70

分。)

21、下列程序的輸出結果是omain(){inti,k,ai[0],p[3];k=5;for(i=0;i<

10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+I)];for(i=0;i<3;i++)k+=p[i]*2;printf

("%d\n';k);)

A、20

B、21

C、22

D、23

標準答案:2

知識點解析:暫無解析

22、下列程序的執行結果是opoint(char*pl);main(){char

b[4]={'a','c','s',f},*pt=b;point(pt);printf("%c\n",*pt);)point(char*p){p+=3;)

A、s

B、c

C、f

D^a

標準答案:8

知識點解析:暫無解析

23、已知chara=15,則a,-a和!a的整型值分別為。

A、240、-15、0

B、-16、-15.0

C、0、-15、240

D、0、-15、0

標準答案:1

知識點解析:暫無解析

24、設ch是char型變量,其值為A,且有表達式:ch=(ch>=,A,&&chV

=,Z,)?(ch+32):cho該表達式的值是o

A、A

B、a

C、Z

D、z

標準答案:2

知識點解析:暫無解析

25、若tp是指向某文件的指針,且已讀到文件木尾,則庫函數teof(tp)的返回值是

A、EOF

B、-1

C、非零值

D、NULL

標準答案:4

知識點解析:暫無解析

26,下列程序執行后的輸出結果是_____vmain(){intx=,P;printf("%c

\n",'A'+(x-'a'+l));}

A、G

B、H

C、I

D、J

標準答案:1

知識點解析:暫無解析

27、若輸入1,2,下列程序的運行結果為o#defineSWAP(a,b)t=b;b=a;a=t

main(){inta,b,I;scanf("%d,%d",&a,&b);SWAP(a,b);printf("a=%d,b=%d\nn,

a,b);)

A^a=l,b=2

B、a=2,b=1

C、a=1,b=1

D、a=27b=2

標準答案:2

知識點解析:暫無解析

28、運行以下程序后,如果從鍵盤上輸入china#V回車>,則輸了結果為

#include<stdio.h>main(){intvl=0,v2=0;charch;while((ch=getchar())!='#')

switch(ch){case'a':case'h':default:vi++;case'O':v2++;}printf

(”%d,%d\n,',vl,v2);}

A、2,0

B、5,0

C、5,5

D、2,5

標準答案:4

知識點解析:暫無解析

29、下列程序中的foi?循環執行的次當次數是_____o#defineN2#defineMN+i

#defineNUM2*M+1#main()(inti;for(i=l;i<=NUM;i++)printf("%d\n",i);}

A、5

B、6

C、7

D、8

標準答案:2

知識點解析:暫無解析

30、下列程序的輸出結果是omain(){inti;for(i=l;i<6;i++)

{if(i%2){printf("#");continue;}printf("*");}printf("\nM);}

A、#*#*#

B、#####

C、****

D、*#*#*

標準答案:I

知識點解析:暫無解析

四、公共基礎填空題(本題共5題,每題7.0分,共5

分。)

31、若采用直接插入法對字母序列(W,S,E,L,X,G,I)進行排序,使字母按

升序排列,那么第一次排序的結果為【】。

標準答案:S,W,E,L,X,G,I

知識點解析:暫無解析

32、對于一棵具有n個結點的樹,則該樹中所有結點的度之和為【】。

標準答案:n-1

知識點解析:暫無解析

33、單獨測試一個模塊時,有時需要一個【】程序驅動被測試的模塊。

標準答案;驅動

知識點解析:暫無解析

34、僅依據規格說明書描述的程序功能來設計測試實例的方法稱為【】。

標準答案:黑箱法

知識點解析:暫無解析

35、在進行軟件結構設計時,應遵循的最主要原理是【】。

標準答案:模塊獨立原理

知識點解析:暫無解析

五、填空題(本題共70題,每題1.0分,共70分。)

36、x、y、x均為血型變量,描述“x、y和z中至少有兩個為正數”的表達式是

標準答案:((x>0)&&Vy>0))II(x>0)&&(z>0)IIy>0)&&(z>0))

知識點解析:題目要求“x、y和z中至少有兩個為E數”,即x、y和x這3個數中

必須有兩個是正數,且這3個數中的哪兩個數都有可能是正數,所以它們之間是或

的關系。

37、與表達式a+=b等價的另一書寫形式是o

標準答案:a=a+b

知識點解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。

38、下列程序的輸出結果是o#include<stdio.h>main(){int

x=1,y=1,a=1,b=1;switch(x){case1:switch(y){case0:a++;break;caseI:b++;

break;}case2:a++;b++;break;}printf("a=%d,b=%d\n,',a,B);}

標準答案:a=2,b=3

知識點解析:分析程序,程序從語句開始執行,之后執行第一個switch語

句,switch(x)=switch(1),所以執行easel,easel語句中包含一個復合switch語

句:這時執行第二個switch語句,此時y=l,所以switch(y尸switch(l),因此執行

case1,將b加L得到b=2,遇到break語句,退出第二個switch語句,則整個

case1的復合語句執行完畢,由于在這個case1的后面沒有break語句使其退出第

一個switch語句,所以接著執行下列的case2后面的語句,即將a,b各加1,得

到a=2,b=3o

39、C語言用于結構化程序設計的3種基本結構是_____、選擇結構和循環結構。

標準答案:順序結構

知識點解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和

switch語句)和循環結構(包括for語句、while語句、do…while語句)。

40、下列循環的循環次數是ointk=2;while(k=0)printfl"%d",k);k-;

prinlf("\n");

標準答案:0

知識點解析:解答本題需要注意表達式“k=0",它是賦值表達式而不是關系表達

式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環。

41、若有定義flo又b[15],*p=b;,且數組b的首地址為200H,則p+13所指向的數

組元素的地址為。

標準答案:252H

知識點解析:要解答本題,首先要明白在對指針進行加,減運算時,數字“1”不是

十進制數的力”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多

少,應該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的

長度就是位移2個字節;如果存儲單元基類型是float型,則移動1個存儲單元的

長度就是位移4個字節。所以p+13所指向的數組元素的地址為:2OOH+(13M)

H=252Ho

42、“printfC%d\n”,sWen(”\t\"023\xABC\n”);”語句的輸出結果是_____。

標準答案:6

知識點解析:strlcn。函數的作用是計算字符串的長度并作為函數的返回值,這里的

長度不包括串尾的結束標志‘\0‘。'\t'f是轉義字符,代表橫向跳若干格:,'是轉義

字符,代表雙引號;3023,只代表一個字符,而不管轉義字符后面有幾個字符:‘僅

AB,是以兩位十六進制、數AB表示的ASCII碼字符,只代表一個字符;'\n'是轉義

字符,代表回車換行。5個字符常量各代表一個字符,再加上字母C,所以返回的

長度是6。

43、設有下列宏定義:#defineA2#defincBA+3則執行賦值語句;t=B*2;t為int

型變量后的值是_____。

標準答案:8

知識點解析:本題考查帶參數的宏定義及相關運算.運算過程為:

l=B*2=A+3*2=2+3*2=8,

44、下列程序的功能是將字符串s中所有的字符c刪除。請填空。#include<

stdio.h>main(){chars[80];inti,j;gcts(s);fbr(i=j=O;s[i]!='\O';i++)if(s[i]!=,c,)

s[j]='\O';puts(s);)

標準答案:S[j++]=s[i]

知識點解析:循環開始后如果數組s中儲存值與字符c相同,則i++直接跳過當前

值;如果不相同,則將當前值賦予數組指定位置,并通過j++將下標加1,指向下

一元素要存儲的位置。

45N下列程序的運行結果是o#include<stdio.h>func(a,b){staticint

m=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=5,m=3,p;p=fune(k,m);

printf("%dn,p);p=func(k,m);printf("%d\n".p);}

標準答案:1123

知識點解析:在主函數中第一次調用中nc子函數時,m=0,i=2,i=i+m+l=3,

m=i+a+b=3+5+3=11o因為在于函數中將m和i定義成了static類型,所以在于函數

中對m和i進行的改變在下一次調用子函數時能進行保存,所以第二次調用于函數

時,m=11,i=3?則i=i+m+l=15,m=i+a+b=15+5+3=23o

國家二級(C語言)筆試模擬試卷第2

一、公共基礎選擇題(本題共10題,每題1.0分,共

10分。)

1、下面關于完全二叉樹的敘述中,錯誤的是。

A、除了最后一層外,每一層上的結點數均達到最大值

B、可能缺少若干個左右葉子結點

C、完全二叉樹一般不是滿二叉樹

D、具有結點的完全二叉樹的深度為[log2n]+l

標準答案:B

知識點解析:滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的二叉

樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上

只缺少右邊的若干子結點(葉子結點)的二叉樹。

2、設有如圖所示二叉樹,對此二叉樹后序遍歷的結果為()。

B、ATBZXCYP

C、TZBACYXP

D、ATBZXCPY

標準答案:A

知識點解析:后序遍歷首先訪問左子樹,然后右子樹,最后根結點,即左右根。故

該二乂樹的前序遍歷結果為“ATBZXCYP”。后序遍歷和中序遍歷的結果分別為

“ZBTYCPXA”和“TZBACYXP”。

3、軟件生命周期中花費費用最多的階段是

A、詳細設計

B、軟件編碼

C、軟件測試

D、軟件維護

標準答案:D

知識點解析:軟件生命周期分為軟件定義、軟件開發及軟件運行維護3個階段。本

題中,詳細設計、軟件編碼和軟件測試都屬于軟件開發階段;維護是軟件生命周期的

最后一個階段,也是持續時間最長,花費代價最大的一個階段,軟件工程學的一個目的

就是提高軟件的可維護性,降低維護的代價。

4、以下不是面向對象思想中的主要特征的是

A、多態

B、繼承

C、封裝

D、垃圾回收

標準答案:D

知識點解析:面向對象思想中的三個主要特征是:封裝性、繼承性和多態性。

5、數據處理的最小單位是()。

A、數據

B、數據元素

C、數據項

D、數據結構

標準答案:4

知識點解析:數據處理的最小單位是數據項。由若干數據項組成數據元素,而數據

是指能夠被計算機識別、存儲和加工處理的信息載體,數據結構是指數據之間的相

互關系和數據運算。故正確答案為選項C)。

6、在結構化程序設計方法中,下面哪種內聚的內聚性最弱?

A、邏輯內聚

B、時間內聚

C、偶然內聚

D、過程內聚

標準答案:4

知識點解析:內聚有很多種類,其中內聚性由弱到強的順序為:偶然內聚、邏輯內

聚、時間內聚、過程內聚.所以本題的答案為C。

7、下列敘述中錯誤的是()。

A、在數據庫設計的過程中,需求分析階段必須考慮具體的計算機系統

B、在數據庫設計的過程中,概念結構設計與具體的數據庫管理系統有關

C、在數據庫設計的過程中,邏輯結構設計與具體的數據庫管理系統有關

D、在數據庫設計的過程中,物理結構設計依賴于具體的計算機系統

標準答案:2

知識點解析:數據庫設計主要分4個步驟:需求分析、概念結構設計、邏輯結構設

計、物理結構設計。選次B錯誤,應為本題的正確答案,因為概念結構設計在需

求分析的基礎上對客觀世界做抽象,獨立于數據庫的邏輯結構,也獨立于具體的數

據庫管理系統,與具體的數據庫管理系統無關。

8、個人計算機屬于()

A、小巨型機

B、中型機

C、小型機

D、微機

標準答案:8

知識點解析:暫無解析

9、與十進制數96等值的二進制是()

A、1100000

B、10010110

C、1100001

D、1100011

標準答案:1

知識點解析:暫無解析

10、如果一個算法顯式地調用自己則稱為()

A、直接遞歸

B、自用遞歸

C、間接遞歸

D、外用遞歸

標準答案:1

知識點解析:暫無解析

二、選擇題(1分)(本題共“題,每題7.0分,共〃

分。)

11設有定義:intk=l,m=2;noatf=7:則下列選項中錯誤的表達式是()。

A、k=k>=k

B、-k++

C^k%int(f)

D、k>=f>=m

標準答案:C

知識點解析:在C語言中,求余運算符“%”兩邊的運算對象都應為整型數據,所

以需要對變量f進行強制類型轉換,正確的寫法為k%(int)f。在C語言中,邏輯運

算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優先次序

是:!(邏輯“非”)、算術運算符、關系運算符、&&(邏輯“與”卜11(邏輯“或”卜賦值

運算符。根據運算符的優先級與結合性,對于選項A),先計算k>=k的值(為

真,即1),再用1對k進行賦值。對于選取項B),先計算k什的值,再對其取負

數。對于選項D),先計算k>=f的值(為假,即0),再用0與m進行比

12、若變量已正確定義并賦值,以下符合C語言語法的表達式是

A、a:=b+l

B、a=b=c+2

C、int18.5%3

D、a=a+7=c+b

標準答案:B

知識點解析:選項A)中包含一個不合法的運算符“:=";選項C)應改為

(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯

的,因為C語言規定賦值號的左邊只能是單個變量,不能是表達式或常量等。因

此,正確答案是選項B),它實際上相當于a=(b=c+2),進而可分解為兩個表達式:

b=c+2和a=b?

13、設整型數型5,則printf(“%d"i+++++i);的輸出為。

A、10

B、II

C、12

D、語法錯誤

標準答案:D

知識點解析:C語言中有基本的算術運算符(+、-、*、/)還包括自增自減運算符

(++、-),在C語言解析表達式時,它總是進行貪婪咀嚼,這佯,該表達式就被解

析為i+++++i,顯然該表達式不合C語言語法。

14、設R是一個2元關系,有3個元組,S是一個3元關系,有3個元組。如

T=RxS,則T的元組的個數為()。

A、6

B、8

C、9

D、12

標準答案:C

知識點解析:R為n元關系,有P個元組S為m元關系,有q個元組。兩個關系

笛卡兒積是一個n+m元的關系,元組個數是qxp。所以T的元組的個數為9個。

15、設a和b均為double型變量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是

()。

A、6.500000

B、6

C、5.500000

D、6.000000

標準答案:8

知識點解析:在這個表達式中,優先級最高的是(int)a,也就是對5.5取整,結果是

5,其次是b/b,即2.5/2.5,結果是1.000000,最后相加結果為6.000000(表達式的

最終結果為實型),所以4個選項中D正確。

16、若變量已正確定義并賦值,卜.面符合C語言語法的表達式是

A、m:=5

c=b=a=l

C、float8%5

D、x+5=y+2

標準答案:2

知識點解析:選項A)中的賦值方法為Pascal語言賦值格式;C語言中賦值直接為

“=",無冒號;選項D)口“x+5=y+2”賦值格式錯誤,賦值號左邊不可以出現常量,

也不可以同時出現兩個變量。選項C)應改為(float)8%3

17、已知在ASCII字符集中,數字0的序號為48,下列程序的輸出結果為

omain()}chara=,0\b=,9,;printf("%d,%c\n'\a,b);}

A、因輸出格式不合法

B、48,57

C、0,9

D、48,9

標準答案:8

知識點解析:注意輸出控制符%<1,%c,分別表示以十進制形式輸出字符的ASCH

碼值和字符。

18、下列可用于C語言標識符的一組是0

A、voidWORDdefine

B、a6$sysFor

C、2asizeofabc

D^Intdefinesizeof

標準答案:8

知識點解析:C語言規定標識符只能由字母、數字和下劃線三種字符組成,且第一

個字符必須為字母或下劃線。注意,大寫字母和小寫字母被認為是兩個不同的字

符。C語言中的關鍵字不能用作標識符。

19、以下合法的賦值語句是()

A^x=y=100

d--;

C、x+y;

D^c=int(a+B)

標準答案:2

知識點解析:暫無解析

20、假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;

x=12;if(!a)x-;elsex=5;if(c)x=3;elsex=4;

A、11

B、4

C、12

D、3

標準答案:2

知識點解析:本題考查ifelse語句。第一個if語句,先判斷條件,發現a=0,則!a

成立,執行下列的語句,X--,得x=ll:第二個if語句,判斷條件,發現c=o,則條

件不成立,執行下列的else語句,得x=4。

21、設在C語言中,float類型數據占4個字節,則double類型數據占()個字節。

A、1

B、2

C、8

D、4

標準答案:4

知識點解析:在C語言中各種數據類型在內存中所占的字節數和機器的指令周期

有關,若im類型占2個字節,貝Ifloat類型數據占4個字節,double類型數據占8

個字節。

三、選擇題(2分)(本題共20題,每題1.0分,共20

分。)

22、以下程序段給數組所有的元素輸入數據,請選擇正確答案填入。#include<

stdio.h>main(){inta[10]=0;while(i<10)scan(H%d"):::}

A、a+(i++)

B、&a[i+l]

C、a+i

D、&a[++i]

標準答案:A

知識點解析:a就是數組a的首地址,而a+x是數組中第x個元素的地址,所以在

四個選項中,選項B和C只能輸入一個數據,選項D不能給a[0]輸入數據,只有

A可以完成給數組所有的元素輸入數據的任務。

23、以下數組定義中不正確的是______o

A>inta[2][3];

B、intb[][3]={0,l,2}

intc[100][100]={0};

D、intd⑶[]={{1,2},{123},{1,2,3,4}};

標準答案:D

知識點解析:一維數組的定義方式為:類型說明符數組名[常量表式];選項A符

合此定義形式,正確;C語言中多維數組賦初值時可以部分賦值,也可以不指定除

第一維以外的其他維的大小,故選項C正確;另外,如果對全部數組元素都賦初

值,則定義數組時對第一維的長度可以不指定,但第二錐的長度不能省,所以選項

B正確,而選項D是錯誤的。

24>有下列程序段:typcdefstructNODE(intnum:structNODE*next:}OLD;

下列敘述中正確的是()c

A、以上的說明形式非法

13、NODE是一個結構體類型

C、OLD是一個結構體類型

D、OLD是一個結構體變量

標準答案:C

知識點解析:C語言允許用lypedef說明一種新類型名,其一般形式為:typedef類

型名標識符。typedef語句的作用僅僅是使“標識符”來代表已存在的“類型名”,并

未產生新的數據類型。原有類型名依然有效。此題中,用使typcdef定義了新的類

型OLD結構,所以OLD為結構體類型。

25,下列程序的輸出結果是()□#include<stdio.h>#include<string.h>main()

{chara[]="\n!23\\";printf("%d,%d\n",strlcn(a),sizcof(a));}

A、5,6

B、5,5

C>6,6

D、6,5

標準答案:A

知識點解析:轉義字符'\n,表示換行,'\V表示反斜杠,函數strlen()是計算字符串

的長度,不包括文件結束標志('\0'),函數sizeof()統計字符串所占的字節數。

26、下列選項中不會引起二義性的宏定義是()。

A、#defineS(x)x*x

B、#defineS(x)(x)*(x)

C^#defineS(x)(x*x)

D、#defineS(x)((x)*(x))

標準答案:D

知識點解析:本題考查帶參數的宏的替換。有些參數表達式必須加括號,否則,

在實參表達式替換時,會出現錯誤。

27、主程序調用findmax函數求出數組中最人元素在數組中的下標,拈號中需填寫

的內容是#includeVstdio.h>findmax(int*s,intt,int*k){intp:for(p=0,*k=p;p

<t;p++)if(s[p]>s[*k])();}main(){inta[10],i>k;fbr(i=O;i<10;

i++)scanf("%d",&a[i]);findmax(a,10,&k);prinlf("

A^k=p

B>*k=p

CNk=p-s

D、*k=p-s

標準答案:B

知識點解析:暫無解析

28>有以下程序:structS{intn;inta[20];|;voidf(structS*P)(intfor(i=0;i<

P->n-l;i++)for(j=j+1;j<P->n-1;j++)if(p->a[i]>p->a|j]){t=P->a[i];p->a[i]=P->

}main。{inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};f(&s);

for(i=U;i<s.n;i++)printf("%d,1,s.aLiJ);)程序運行后的輸出結果是()。

A、3

B、4

C、5

D、6

標準答案:A

知識點解析:在主函數main()中定義了一個整型變量i和一個結構體變量s。f()函

數中,定義了一個結構體指針類型的指針p,外層循環變量i表示數組的第i個元

素,內層循環j表示數組的第i+1個元素,調用f()函數,通過指針變量p來引用結

構體成員,并把它們進行從小到大排序,最后輸出。

29、以下關于邏輯運算將兩側運算對象的敘述中正確的是()。

A、只能是整數0或1

B、只能是整數。或非0整數

C、可以是結構體類型的數據

D、可以是任意合法的表達式

標準答案:D

知識點解析:邏輯運算的對象可以是C語言中任意合法的表達式。

30、若x和y代表整型數,以下表達式中不能正確表示數學關系,|x-y|V10的是

A、abs(x-y)<10

x-y>-10&&x-y<10

C、(x-y)<-10||!(y-x)>10

D、(x-y)*(x-y)<100

標準答案:C

知識點解析:暫無解析

31、若要說明一個類型名CHARP,使得定義語句“CHARPs;”等價于“char

*S;",以下選項中正確的是O

A、typedefCHARPchar*s;

B、typedef*charCHARP;

C^typedefCHARPxchar:

D、typedefchar*CHARP;

標準答案:D

知識點解析:暫無解析

32、有以卜程序:#include<stdio.h>main(){chara|]=,,abcdefg'\b[10]="abcdefg";

printf("%d%d\n",sizeof(a),sizeof(b));)執行后的輸出結果是()。

A、77

B、88

C、810

D、1010

標準答案:4

知識點解析:用a[]="abcdefg”對數組a進行初始化,是用一個字符串作初值。數組

a的長度包括由系統加上的、0、因此是8。"10]=匕瓦加£浮只初始化了前7個元

素,后3個元素為0(,\0)所以長度為10。

33、有以下程序:#inckide<stdio.h>main(){charc1,c2,c3,c4,c5,c6;

scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);

putchar(c2);printf(%c%c\n,c5,c6);)程序運行后,若從鍵盤輸入(女第I列開始)123

V同車〉45678〈問車〉則輸出結果是().

A、1267

B、1256

C、1278

D、1245

標準答案:8

知識點解析:在題目中,程序執行到scanf()函數時,會暫停等待用戶輸入4個字

符,按題意輸入123V回車〉后,字符1?3被分別輸入到cl?c3中,而c4會得到

一個換行符'\n'。然后執行第1個getchar。函數,由于前面的scanf()函數讀完了緩

沖區中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678V回

車》后,緩沖區第1個字符⑷被讀入并賦給c5,第2個gctchar()函數會讀入緩沖

區第2個字符,5、所以最后依次輸出cl、c2、c5、c6的值后,屏幕上的結果是

1245o故應該選擇D。

34>有以下程序:main(){intx[]={l,3,5,7,2,4,6,0),i,j,k;for(i=0;i<3;i++)for(j=2;j>

=i;j-)if(x|j+l]>x[j]){k=x|j|;x[j|=x|j+l];x[j+l]=k;}for(i=0;i<3;i++)for(j=4;j<7-

i;j++)if(x[j]>x[j+l]){k=x(j];x[j]=x[j4-l];x[j+l]=k;}for(i=0;i<8;i++)

printf("%d",x[i]);printf("\nn);)程序運行后的輸出結果是()°

A、75310246

B、1234567

C、76310462

D、13570246

標準答案:1

知識點解析:主函數中定義了一個整型數組X,并初始化。接著執行了一個二重

for循環,在該二重循環的作用是將數組的前4個元素按從大到小排序,接著用了

一個二重循環(也是冒泡算法)將數組的后4個元素按從小到大的順序排序,故最后

依次輸出數組的個元素的值為75310246,所以,4個選項中選項A符合題意。

35、fseek函數的正確調用形式是

A、fseek(文件指針,起始點,位移量)

B、fseek(文件指針,位移量,起始點)

C、fseek(位移量,起始點,文件指針)

D、tseek(起始點,位移量,文件指針)

標準答案:2

知識點解析:本題考查函數fseek的用法。fseek函數的調用形式為:fseek(文件指

針,位移量,起始點)“起始點”用0,1或2代替,0代表“文件開始”,1為“當前位

置”,2為“文件末尾”。“位移量”指以“起始點”為基點,向前移動的字節數。ANSIC

和大多數C版本要求位移量是long型數據。這樣當文件的長度大于64k時不致出

現問題。ANSIC標準規定在數字的末尾加一個字母L,就表示long型。

36、設有以卜語句:structSS{intno;charname|10|;)PERSON;則下面敘述中

錯誤的是()

A、struct是結構體類型的關鍵字

B、structSS是結構體類型

C、PERSON是結構體類型名

D^name是結構體成員名

標準答案:4

知識點解析:暫無解析

37、有以下程序main(){intp[8]={ll,12,13,14,15,16,17,18},i=0,

j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);)程序運行后的輸出結果是

A、42

B、45

C、56

D、60

標準答案:1

知識點解析:本題考查while語句和if語句的嵌套,程序段實現的功能是將p[l]至

p⑺中的奇數相加求和并輸出,j=13+15+17=45。

38、有以下程序main(){char*p|10]={uabc,\aabdfg,\"dedbe,\"abbd,';,cd"};

printf("%d\n",stxlen(p[4]));)執行后輸出結果是

A、2

B、3

C、4

D、5

標準答案:1

知識點解析:本題中首先定義了一個長度為10的指針數組,并賦初值,因此執行

strlen(p[4])后的返回值為字符串“cd”的長度為2。

39、有以卜.函數char*fun(char*p){returnp;)該函數的返回值是。

A、無確切的值

B、形參p中存放的地址值

C、一個臨時存儲單元的地址

D、形參p自身的地址值

標準答案:2

知識點解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的

地址值。

40、下列程序的執行結果是______o#includc<stdio.h>unionun(inti:char

c[2];);voidmain(){unionunx;x.c|0]=10;x.c[l]=l;printf("\n%d",x.i);}

A、266

B、Il

C、265

D、138

標準答案:1

知識點解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數組

c共占用同一個存儲單元,且此存儲單元為2千字節,通常c[0]位于低字節,c[l]

位于高字節,所以x.i的值為266。

41、卜列程序的輸出結果是()。#include<stdio.h>main(){structst{inty,x,

z;};union{longi;intj;chark;Jun;printf("%d,%d\n",sizeof(structst),

sizeof(un));}

A、6,2

B、6,4

C、8,4

D、8,6

標準答案:2

知識點解析:本題主要考查結構體和聯合內存使用的區別:結構中不同的成員分別

使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空

間大小的總和,結構中舔個成員相互獨立:聯合所占用的內存空間為最長的成員所

占用的空間。

四、公共基礎填空題(本題共5題,每題7.0分,共5

分。)

42、數據庫系統的主要特點為數據集成性、數據的高——和低冗余性、數據獨立性

和數據統一管理和控制。

標準答案:共享性

知識點解析:數據庫系統中的數據能被不同的應用程序使用,實現了數據的高度共

享,從而降低了數據的冗余,這也是數據庫的主要目的。

43、在運算過程中,能夠使空表與非空表的運算統一的結構是【】。

標準答案:循環鏈表

知識點解析:在鏈表的運算過程中,采用鏈接方式即循環鏈表的結構把空表與非空

表的運算統一起來。循環鏈表具有兩個特點:①在循環鏈表中增加了一個表頭結

點,其數據域為任意或根據需要來設置,指針域指向線性表的第一個元素的結點。

循環鏈表的頭指針指向表頭結點。②循環表中最后一個結點的指針不是空,而是

指向表頭結點。

44、如果一個工人可管理多個設備,而一個設備只被一個工人管理,則賣體“工人”

與實體“設備”之間存在【】關系。

標準答案:一對多

知識點解析:實體之間的聯系有3類:一對一,一對多,多對多。設有兩個實體集

E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯系,而E1

中的每一個實體最多與E2中的一個實體有聯系,則稱這樣的聯系為“從E2到E1

的一對多的聯系”,通常表示為“l:n的聯系”。由此可見,工人和設備之間是一對多

關系。

45、在關系運算中,查找滿足一定條件的元組的運算稱之為【】o

標準答案:選擇

知識點解析:在關系數據庫中,選擇運算也是一個元運算,關系R通過選擇運算

(并由該運算給出所選擇的邏輯條件)后仍為一個關系。這個關系是由R中的那些滿

足邏輯條件的元組所組成。

46、軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

標準答案:結構

知識點解析:路徑測試是白盒測試方法中的一種,它要求對程序中的每條路徑最少

檢查一次,目的是對軟件的結構進行測試。

五、填空題(本題共10題,每題1.0分,共10分。)

47、若a=l,b=2,c=3,d=4;則條件表達式a>b?a:cVd?c:d的結果為()。

標準答案:3

知識點解析:暫無解析

48、以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計

算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6請填空。doublefun(doublc

x){return(x*x-2*x+6);}{doublex,y1,y2;printf(HEnterx:");scanf(,,%lf,,

&x);yl=fun([6]);y2=fun([7]);printf("yl=%lf,y2=%lf\n",yl,y

A、[6]x+8[7]sin(x)

標準答案:

知識點解析:暫無解析

49、在數據庫管理系統斃供的數據定義語言、數據操縱語言和數據控制語言中,()

負責數據的模式定義與數據的物理存取構建。

標準答案:數據定義語言

知識點解析:數據定義語言負責數據的模式定義和數據的物理存取構建;數據操縱

語言負責數據的操縱,包括查詢及增、刪、改等操作;數據控制語言負責數據完整

性、安全性的定義與檢查以及并發控制、數據恢復等功能。

50、以下程序運行后的輸出結果是()。structNODE{intk;struct

NODE*link;};main(){structNODEm|5|,*p=m,*q=m+4;inti=0;while(p!=q)

{p->k=++i;p++;q->k=i++;q—;)q->k=i;for(i=0;i<5;i++)printf("%d'',m[i]Jc);

printfC'Xn");}

標準答案:13431

知識點解析:暫無解析

51、在面向對象方法中,類之間共享屬性和操作的機制稱為o

標準答案:繼承

知識點解析:暫無解析

52>有以下程序:main(){intt=l,i=5;for(;i>=0;i-)t*=i;printf("%d\n",t);}執行后

輸出結果是【】。

標準答案:0

知識點解析:本題中的for循環共執行了6次,每執行一次將相應i的值相乘,最

后當i=-l時停止循環。該「or循壞執行完后I的值為5*4*3*2*1*0=0,故最后輸出I

的值為0o

53、函數sub的功能是根據下面近似分式求兀的值。

(兀*兀)/6=1+1/(2*2)+1/(3*3)+…+l/(n*n)現在請在下面的函數中填空,完成求兀值的

功能。#include"math.h"doublesub(longm){doublesum=0.0,t;longn;for(n=1;n<

=m;n++)sum+=[];t=sqrt(6*sum);rcturn(t);}

標準答案:1.0/(n*n)

知識點解析:sam中累加的值是l+l/(2*2)+l/(3*3)+…+1//(n*n),如果寫為

l/(n*n),則會因為1和n都為整型,結果則為實型,將1變為1.0,結果則為實

型。

54、下列程序的運行結果是:【】。#inckide<stnngh>char*ss(char*s){return

s+strlen(s)/2;}main(){char*p,*str="abcdefgh";p=ss(str);printf(n%s\n",p);)

標準答案:etgh

知識點解析:函數SS的作用是讓形參指針S指向該字符串的右半部分。主函數中

首先定義了一個字符型指針變量P和字符型指針str,并初始化為“abcdefgh”,然后

調用函數ss,將實參str傳給形參s,因此可知該函數返回的指針,指向str所指的

字符串“abedergh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p

的值為調用函數ss(str)的返回值)所指向的字符串為“efgh”。

55>有以下程序:#include<stclio.h>main()(charc;

while((c=getchar())!=,?5)putchar(-c);}程序運行時,如果從鍵盤輸入:Y?N?〈回

車〉,則輸出結果為【】。

標準答案:X

知識點解析:主函數中首先定義了一個字符型變量c,接著執行下面while語句,

在while循環中,首先從鍵盤上讀入一個字符Y并給賦給字符變量c,賦值表達式

的值不為'?',執行輸出語句,輸出字符X。接著判斷while中的循環條件,讀入一

個字符'?'并賦值給c,賦值表達式的值為?循環條件不再滿足,退出循環。

56、設y為血型變量,請寫出描述“y是偶數”的表達式______。

標準答集:(y%2)==0

知識點解析:因符合偶數的條件是對2取余為0,所以要描述y是偶數的表達式是

(y%2)==0?

57、以下程序把三個NODEIYPE型的變量鏈接成一個簡單的鏈表,并在while循

環中輸出鏈表結點數據域中的數據。請填空。#include<stdio.h>structnode{int

data;structnode*next;);typedefstructnodeNODETYPE;main()

{NODETYPEa,b,c,*h,*p;a.data=10;b.data=20;c.data=30;h=&a;

ancxt=&b;b.ncxt=&c;c,ncxt=,\O,;p=h;whilc(p){printfi"%d,",p->data):[];)

printf("\n");}

標準答案:P++

知識點解析:本題主要考查的是將NODETYPE型的變量鏈接成一個簡單的鏈表,

利用typedef把NODETYPE變成structnode的另U名,當執行while循環時,首先判

斷是否到了最后一個鏈表結點,如果沒有則引用結構體中的成員dala,然后指向下

—個鏈表結點,繼續判斷,因此,此處應填的是p++指向下一個鏈表結點。

國家二級(C語言)筆試模擬試卷第3

一、公共基礎選擇題(本題共10題,每題1.0分,共

10分。)

1、算法的空間復雜度是指

A、算法程序的長度

B、算法程序中的指令條數

C、算法程序所占的存儲空間

D、執行算法需要的內存空間

標準答案:8

知識點解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂

算法的時間復雜度是指執行算法所需要的計算工作量;算法的空間復雜度一般是指

執行這個算法所需要的內存空間。

2、用鏈表表示線性表的優點是

A、便于隨機存取

B、花費的存儲空間較順序存儲少

C、便于插入和刪除操作

D、數據元素的物理順序與邏輯順序相同

標準答案:4

知識點解析:鏈式存儲結構克服了順序存儲結構的缺點:它的結點空間可以動態申

請和釋放;它的數據元素的邏輯次序靠結點的指針來指示,不需要移動數據元素。

故鏈式存儲結構下的線性表便于插入和刪除操作。

3、數據結構中,與所使用的計算機無關的是數據的

A、存儲結構

B、物理結構

C、邏輯結構

D、物理和存儲結構

標準答案:4

知識點解析:數據結構概念一般包括3個方面的內容,數據的邏輯結構、存儲結構

及數據卜的運算集合°數據的邏輯結構只抽象的反映數據元素之間的邏輯關系.一而

不管它在計算機中的存儲表示形式。

4、結構化程序設計主要強調的是

A、程序的規模

B、程序的效率

C、程序設計語言的先進性

D、程序易讀性

標準答案:8

知識點解析:結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、模

塊化及限制使用got。語句,總的來說可使程序結構良好、易讀、易理解、易維

護。

5、軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指

A、模塊間的關系

B、系統結構部件轉換成軟件的過程描述

C、軟件層次結構

D、軟件開發過程

標準答案:2

知識點露析:軟件設計包括軟件結構設計、數據設計、接口設計和過程設計。其中

結構設計是定義軟件系統各主要部件之間的關系;數據設計是將分析時創建的模型

轉化為數據結構的定義;接口設計是描述軟件內部、軟件和操作系統之間及軟件與

人之間如何通信;過程沒計則是把系統結構部件轉換成軟件的過程性描述。

6、檢查軟件產品是否符合需求定義的過程稱為

A、確認測試

B、集成測試

C、驗證測試

D、驗收測試

標準答案:1

知識點解析:確認測試的任務是驗證軟件的功能和性能,以及其他特性是否滿足需

求規格說明中確定的各種需求;集成測試的主要目的是發現與接口有關的錯誤。

7、數據流圖用于抽象描述一個軟件的邏輯模型,數據流圖由一些特定的圖符構

成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是

A、控制流

B、加工

C、數據存儲

D、源和潭

標準答案:1

知識點解析:數據流圖包括

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論