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

下載本文檔

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

文檔簡介

國家二級(C語言)筆試模擬試卷28(共9套)(共492題)國家二級(C語言)筆試模擬試卷第1套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、下列敘述中錯誤的是()。A、一種數(shù)據(jù)的邏輯結構可以有多種存儲結構B、數(shù)據(jù)的存儲結構與數(shù)據(jù)的處理效率無關C、數(shù)據(jù)的存儲結構與數(shù)據(jù)的處理效率密切相關D、數(shù)據(jù)的存儲結構在計算機中所占的空間不一定是連續(xù)的標準答案:B知識點解析:數(shù)據(jù)的存儲結構分為順序結構和鏈式結構,一個數(shù)據(jù)的邏輯結構可以有多種存儲結構。順序結構中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈式存儲結構中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結構與數(shù)據(jù)的處理效率密切相關。2、下列敘述中錯誤的是()。A、線性表是由n個元素組成的一個有限序列B、線性表是一種線性結構C、線性表的所有結點有且僅有一個前件和后件D、線性表可以是空表標準答案:C知識點解析:線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C)是錯誤的。3、下列關于棧的描述中錯誤的是()。A、棧是先進先出的線性表B、棧只能順序存儲C、棧具有記憶作用D、對棧的插入與刪除操作中,不需要改變棧底指針標準答案:B知識點解析:棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈式存儲。4、對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標準答案:C知識點解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。5、下列敘述中正確的是()。A、在模塊化程序設計中,一個模塊應該盡量多的包括與其他模塊聯(lián)系的信息B、在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節(jié)C、在模塊化程序設計中,一個模塊內(nèi)部的控制結構也要符合結構化原則D、在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法標準答案:C知識點解析:在模塊化程序設計中,模塊之間的聯(lián)系可以通過程序的控制結構來實現(xiàn),在自頂向下、逐步細化的設計過程中,首先要考慮全局目標,而不是細節(jié)。在程序設計中模塊化和結構化可以同時使用,一個模塊的內(nèi)部結構也要符合結構化設計原則。6、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、繼承C、封裝性D、模塊化標準答案:D知識點解析:面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。7、有下列二叉樹,對此二叉樹中序遍歷的結果為()。A、BDYEACFXZB、DYBEAFCZXC、ABCDEFXYZD、ABDYECFXZ標準答案:B知識點解析:對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左子樹:BDEY:②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結點八,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。8、下列不屬于軟件工程的3個要素的是()。A、32具B、過程C、方法D、環(huán)境標準答案:D知識點解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段:工具支持軟件的開發(fā)、管理和文檔生成:過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。9、設計軟件結構是在軟件生命周期的()。A、軟件定義期B、軟件開發(fā)期C、軟件維護期D、以上三個都不是標準答案:B知識點解析:設計軟件結構是在軟件概要設計階段進行的,而概要設計屬于軟件開發(fā)期。10、下列工具中為需求分析常用工具的是()。A、PADB、PFDC、N-SD、DFD標準答案:D知識點解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設計的常用工具,不是需求分析的工具。二、選擇題(2分)(本題共30題,每題1.0分,共30分。)11、下列敘述中正確的是()。A、C程序由函數(shù)組成B、C程序由主函數(shù)構成C、C程序由函數(shù)和過程構成D、在C程序中無論是整數(shù)還是實數(shù),都可以正確無誤的表示出來標準答案:A知識點解析:本題涉及C語言最基本的兩個知識點:①C程序是由函數(shù)構成的,有且僅有一個主函數(shù),也可以有其他的函數(shù);②整數(shù)在允許的范圍內(nèi)可以準確無誤的表示出來,但計算機的存儲能力有限,不能表示無限精度的實數(shù)。12、設有定義下列:inta=1,b=2,c=3,d=4,m=2,n=2;則表達式(m=a>B)&&(n=c>D)運算后,n的值是()。A、4B、3C、2D、0標準答案:C知識點解析:在邏輯與&&運算中,如果第一個操作數(shù)為假,則結果是假,后面的操作數(shù)不參與運算,本題中因為第一個操作數(shù)(m=a>B為假,所以第二個操作數(shù)(n=c>d)不參加運算,因此n的值不變。13、執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++X;C=y;A、a=5,b=5,c=5B、a=4,b=5,c=5C、a=5,b=6,c=5D、a=1,b=5,c=6標準答案:B知識點解析:本題考查自加(++)、自減(--)運算符的使用。“++i,--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算:“i++,i--”,先使用此時的i的值參與運算,在使用i之后,再使i的值加1或者減1。對于第1個表達式--x=4,y++=4。兩者相等,--x==y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5第一個表達式c=y=5。14、下列程序的輸出結果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++B);}A、1,2B、1,3C、0,2D、0,3標準答案:D知識點解析:本題主要考查自加(++)、自減(--)運算符的使用?!?+i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時的值參與運算:“i++,i--”是在使用i參與表達式運算之后,再使i的值加1或者減1。本題中--a和料b是先執(zhí)行a減1和b加1操作,再輸出表達式的值。15、下列變量聲明合法的是()。A、short.a=1.4e-1;B、doubleb=l+3e2.8;C、longdo=0xfdaL;D、float2_aaa=1e-3;標準答案:A知識點解析:解答本題需了解3個知識點:①標識符是由字母、數(shù)字或下畫線組成,并且它的第一個字符必須是字母或者下畫線;②do是C語言中的一個關鍵字,不能再用做變量名和函數(shù)名:③C語言規(guī)定指數(shù)形式的實型常量e或E后面的指數(shù)必須是整數(shù)。16、在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。A、不予接收B、并不給出出錯信息,但不能得到正確的數(shù)據(jù)C、能接收到正確輸入D、給出出錯信息,不予接收輸入標準答案:B知識點解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項的類型必須一一對應匹配,如不匹配將導致數(shù)據(jù)輸入出現(xiàn)錯誤,但是系統(tǒng)并不報錯。17、若有下列定義(設int類型變量占2個字節(jié)):floatx=123.4567;則下列語句:printf("x=%5.2f",x);輸出的結果是()。A、x=123.46B、123.4567C、x=123.4567D、123.46標準答案:A知識點解析:本題考查printf函數(shù)的格式?!?5.2f”格式符中的“f”表示以帶小數(shù)點的形式輸出單精度或者雙精度數(shù);“5”表示指定數(shù)據(jù)輸出寬度為5;“.2”表示指定輸出數(shù)據(jù)小數(shù)位占2位數(shù),并對截去的第一位小數(shù)做四舍五入處理。18、下列程序的輸出結果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}A、49B、36C、25D、64標準答案:C知識點解析:本題考查汀語句。當執(zhí)行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下列的printf語句。19、若執(zhí)行下列的程序時,從鍵盤上輸入1和2,則輸出結果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&B);S=a;if(a<B)s=b;s=s*s;printtf("%d\n",s);}A、1B、4C、2D、9標準答案:B知識點解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。20、有下列程序:main(){intt,a=1,b=5,C=-2;while(a>b>C){t=a;a=b;b=t;c++;}printf("%d,%d,%d",a,b,C);}程序的輸出結果是()。A、1,5,0B、1,5,-2C、5,1,-1D、5,1,-2標準答案:A知識點解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。21、運行下列程序,若從鍵盤輸入字母“a”,則輸出結果是()。Charc;c=getchar();if(c>=’a’&&c<=’g’)c=c+4;elseif(c>=’g’&&c<=’z’)c=c-21;elseprintf("inputerror!\n");putchar(C);A、fB、tC、eD、d標準答案:C知識點解析:首先,getchar函數(shù)通過鍵盤讀入字符’a’,即c=’a’(其實c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)’a’>=’a’&&’a’<=’g’成立,則執(zhí)行下列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。22、在C語言中,函數(shù)調(diào)用時()。A、實參和形參各占獨立的存儲單元B、實參和形參共用存儲單元C、由系統(tǒng)自動確定實參和形參是否共用存儲單元D、由用戶指定實參和形參是否共用存儲單元標準答案:A知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在函數(shù)調(diào)用時,實參和其所對應的形參分別占用不同的存儲單元,彼此之間不影響。23、下列程序的輸出結果是()。#include<stdio.h>intb=2;intfunc(int*A){b+=*a;retumb;}main(){inta=1,t=2;t+=func(&A);printf("%d\n",t);}A、4B、5C、6D、8標準答案:B知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在執(zhí)行函數(shù)func時,由于全局定義了一個變量b,所以在函數(shù)體中執(zhí)行時b=2+1=3,最終t=2+3=5。24、若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。A、兩個語句都是將變量a的值賦予變量pB、*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針pC、*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量aD、兩個語句都是使p指向變量a標準答案:C知識點解析:“p”是指針變量,指向一個地址:“*p”為p指針所指向地址的內(nèi)容。25、若有定義血b[8],*p=b;則p+6表示()。A、數(shù)組元素b[6]的值B、數(shù)組元素b[6]的地址C、數(shù)組元素b[7]的地址D、數(shù)組元素b[0]的值加上6標準答案:B知識點解析:指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中將p+6指的是將指針向后移動了6個存儲單元,指向b[6],存放的是b[6]的地址。26、已有定義:chara[]="xyz",b[]={’x’,’y’,’z’};,下列敘述中正確的是()。A、數(shù)組a和b的長度相同B、a數(shù)組長度小于b數(shù)組長度C、a數(shù)組長度大于b數(shù)組長度D、上述三種說法都不對標準答案:A知識點解析:字符數(shù)組a[]中用字符串常量“xyz”進行初始化,字符數(shù)組a[]的長度為字符的個數(shù),所以其值為3,并不包括字符串結束標記’\0’;字符串數(shù)組b[]用3個字符’x’、’y’、’z’來初始化,所以其字符串的長度等于3。27、下列程序的輸出結果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}A、8,2,3,4,5,6,7,1B、5,6,7,8,1,2,3,4C、1,2,3,4,5,6,7,8D、8,7,6,5,4,3,2,1標準答案:D知識點解析:函數(shù)f()的功能是對兩個數(shù)據(jù)互換。在主函數(shù)中指針變量p和q分別指向數(shù)組a[8]的首和尾,在while循環(huán)中實現(xiàn)從首尾開始數(shù)組元素的互換操作。28、對兩個數(shù)組a和b進行下列初始化:charm[]="1234567";charn[]={’1’,’2’,’3’,’4’,’5’,’6’,’7’};則下列敘述正確的是()。A、數(shù)組m與數(shù)組n完全相同B、數(shù)組m與數(shù)組n長度相同C、數(shù)組m比數(shù)組n長1D、數(shù)組m與數(shù)組n中都存放字符串標準答案:C知識點解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。.語句“charm[]="1234567";”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結束標記’\0’,因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結束標記’\0’,因此數(shù)組n的長度是7。29、下列程序的輸出結果是()。#include<stdio.h>main(){chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’\0’};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}A、7,7B、7,6C、6,6D、6,7標準答案:B知識點解析:sizeof()函數(shù)的功能是返回字符串所占的字節(jié)數(shù),strlen()函數(shù)的功能是返回字符串的長度,其中’\0’是一個轉義字符,它占存儲空間,但不計入串的長度。30、設變量已正確定義,則下列能正確計算f=n!的程序段是()。A、f=0;for(i=1;i<=n;i++)f*=i;B、f=1;for(i=1;i<n;i++)f*=i;C、f=1;for(i=n;i>1;i++)f*=i;D、f=1;for(i=n;i>=2;i--)f*=i;標準答案:D知識點解析:要正確計算函數(shù)f=n!,由n!的數(shù)學定義可知n!=n*(n-1)*(n-2)*……*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。31、設有定義:intnl=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價的是()。A、*p=*q;B、p=q;C、*p=&n1;D、p=*q;標準答案:A知識點解析:在定義指針變量p和q時,分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內(nèi)容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價。因此選項A正確。32、設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));A、3B、4C、6D、5標準答案:A知識點解析:頭文件<string.h>是字符串處理函數(shù)對應的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應的頭文件,否則無法使用庫函數(shù)。strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。33、設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為()。A、EOFB、非0值C、0D、NULL標準答案:B知識點解析:ANSIC提供的feof函數(shù)的功能是判斷fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則feof函數(shù)的值為1,否則為0,表示文件尚未結束。34、下列程序執(zhí)行的輸出結果是()。#inClude<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]=’&’;printf("%s\n",A);}A、are&youB、youC、areD、&標準答案:A知識點解析:strcpy(a,"are")中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復制到a中,a[0][3]=’&’,且strcpy(a[1],"you")把you復制到a[1]中,故輸出a為“are&you”。35、一個源文件中的外部變量的作用域為()。A、本文件的全部范圍B、本程序的全部范圍C、本函數(shù)的全部范圍D、從定義該變量的位置開始到本文件結束標準答案:D知識點解析:一個源文件中的外部變量的作用域是從定義該變量的位置開始到本文件結束。36、下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}A、sum=18B、sum=10C、sum=9D、sum=25標準答案:B知識點解析:本題考查帶參數(shù)的宏的定義及相關運算:S=m+n+m+n*k=1+2+1+2*3=10。37、當說明一個結構體變量時系統(tǒng)分配給它的內(nèi)存是()。A、各成員所需要內(nèi)存量的總和B、結構中第一個成員所需的內(nèi)存量C、成員中占內(nèi)存最大者所需的容量D、結構中最后一個成員所需要的內(nèi)存量標準答案:A知識點解析:本題主要考查結構體的內(nèi)存使用:對結構體而言,結構中不同的成員分別使用不同的內(nèi)存空間,一個結構所占內(nèi)存空間的大小是結構中每個成員所占內(nèi)存空間大小的總和,結構中每個成員相互獨立。38、下列語句段中,正確的是()。A、struct{intx;floaty;inta[2];unsignedb[3];charname[10];};B、structstu{unsigneda[3];unsignedb[4];}x;int*p=&x.a;C、structsu{inta;floatx[4];}y={1,1.0};floatdata=y.x;D、stmctnd{inta,b;unsignedc[2]=5;};標準答案:A知識點解析:本題主要考查的知識點是結構類型的概念和定義,結構定義的一般形式是:struct結構類型名稱{數(shù)據(jù)類型成員名1;數(shù)據(jù)類型成員名2;數(shù)據(jù)類型成員名n;};struct為關鍵字,是結構的標識符;{}中包圍的是組成該結構的成員項;每個成員的數(shù)據(jù)類型既可以是簡單的數(shù)據(jù)類型,也可以是復雜的數(shù)據(jù)類型。整個定義作為一個完整的語句,用分號結束。結構類型名稱是可以省略的,此時定義的結構稱為無名結構。39、設x=011050,則x=x&01252的值是()。A、0000001000101000B、1111110100011001C、0000001011100010D、1100000000101000標準答案:A知識點解析:本題主要考查按位與運算,x=011050的二進制形式為0001001000101000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。40、已知函數(shù)fread.的調(diào)用形式為fread(buffer,size,count,fp);,其中buffer代表的是()。A、存放讀入數(shù)據(jù)項的存儲區(qū)B、一個指向所讀文件的文件指針C、一個指針,是指向輸入數(shù)據(jù)存放在內(nèi)存中的起始地址D、一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)標準答案:C知識點解析:數(shù)據(jù)塊讀取函數(shù)調(diào)用形式:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址?!皊ize”是要讀寫的字節(jié)數(shù):“count”是要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。三、公共基礎填空題(本題共5題,每題1.0分,共5分。)41、在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。標準答案:有窮性知識點解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。42、按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。標準答案:線性結構知識點解析:數(shù)據(jù)的邏輯結構,是指數(shù)據(jù)元素之間的邏輯關系,分為線性結構和非線性結構,常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。43、棧中允許進行插入和刪除的一端叫做______。標準答案:棧頂知識點解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。44、在面向?qū)ο蟪绦蛟O計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結構以及實現(xiàn)操作的算法,這稱為對象的______。標準答案:封裝性知識點解析:對象具有下列5個基本特點:①標識唯一性;②分類性;③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。45、軟件工程研究的內(nèi)容主要包括:______技術和軟件工程管理。標準答案:軟件開發(fā)知識點解析:軟件工程包括軟件開發(fā)技術和軟件工程管理。其中軟件開發(fā)技術包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和軟件工具環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學:軟件工程管理包括:軟件管理學、軟件工程經(jīng)濟學、軟件心理學等內(nèi)容。四、填空題(本題共10題,每題1.0分,共10分。)46、表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。標準答案:(x>-5)&&(x<5)知識點解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。47、設y為血型變量,請寫出描述“y是偶數(shù)”的表達式_____。標準答案:(y%2)==0知識點解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。48、下列程序的運行結果是_______。main(){intx=1,y=2,z=3;printf("%d,",x<y?y:x);primf("%d,",z<y?x++:y++);primf("%d,%d",x,y);}標準答案:2,2,1,3知識點解析:本題考查++,--運算符和條件運算符的使用?!氨磉_式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。49、下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。a=15;b=0do{b+=2;a-=2+b;}while(a>=0);標準答案:3知識點解析:本題考查do…while語句形式:do循環(huán)體while表達式首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11:第2次循環(huán);b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。50、語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)。標準答案:ptr知識點解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(葉旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。51、下列程序的輸出結果是______。#include<stdio.h>intt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;}main(){inta=1,b=8,c=7,d=9;t(a,b,c,D);primf("%d,%d%d\n",c,D);}標準答案:79知識點解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。52、\13’在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。標準答案:2知識點解析:’\13’:表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而"\12"是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結束標志“’\0’”,所以共有兩個字節(jié)。53、#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。標準答案:從定義到本源文件結束知識點解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。54、下列程序段的運行結果是______。charstr[]="ABCD",*p=str;printf("%d\n",*(p+3));標準答案:68知識點解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應ASCII碼值68。55、下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?include<stdio.h>main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)______;for(i=0;i<9;i++){if(i%4==0)printf("\n");printf("%3d",b[i]);}}標準答案:b[i]=a[i]+a[i+1]知識點解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。國家二級(C語言)筆試模擬試卷第2套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、在計算機中,算法是指______。A、查詢方法B、加工方法C、解題方案的準確而完整的描述D、排序方法標準答案:4知識點解析:計算機算法是指解題方案的準確而完整的描述,它有以下幾個基本特征:可行性、確定性、有窮性和擁有足夠的情報。2、棧和隊列的共同點是______。A、都是先進后出B、都是先進先出C、只允許在端點處插入和刪除元素D、沒有共同點標準答案:4知識點解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧是一種“后進先出”的線性表;而隊列是一種“先進先出”的線性表。3、已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______。A、cedbaB、acbedC、decabD、deabc標準答案:1知識點解析:二叉樹BT的后序遍歷序列為dabec,故BT的根結點為C;而BT的中序遍歷序列是debac,即遍歷序列中最后一個結點為跟結點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT的左子樹(LST)的后序遍歷序列和中序遍歷序列分別為dabe和deba(樹是遞歸定義的):故LST的根結點是e,在由LST的中序遍歷序列可知其左子樹為d。因此BT的前序遍歷序列為cedba。4、在下列幾種排序方法中,要求內(nèi)存量最大的是______。A、插入排序B、選擇排序C、快速排序D、歸并排序標準答案:8知識點解析:快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟毩⒌膬刹糠郑渲幸徊糠钟涗浀年P鍵字均比另一部分記錄的關鍵字小,再分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應有的位置),然后對剩下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個或兩個以上的有序表組合成一個新的有序表。5、在設計程序時,應采納的原則之一是______。A、程序結構應有助于讀者理解B、不限制goto語句的使用C、減少或取消注解行D、程序越短越好標準答案:1知識點解析:濫用goto語句將使程序流程無規(guī)律,可讀性差:添加的注解行有利于對程序的理解,不應減少或取消;程序的長短要依照實際需要而定,并不是越短越好。6、下列不屬于軟件調(diào)試技術的是______。A、強行排錯法B、集成測試法C、回溯法D、原因排除法標準答案:2知識點解析:調(diào)試的關鍵在于推斷程序內(nèi)部的錯誤位置及原因。主要的調(diào)試方法有強行排錯法、回溯法和原因排除法。7、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是______。A、便于用戶、開發(fā)人員進行理解和交流B、反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)C、作為確認測試和驗收的依據(jù)D、便于開發(fā)人員進行需求分析標準答案:8知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它不能方便開發(fā)人員進行需求分析。8、在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。A、控制程序的執(zhí)行順序B、模塊之間的調(diào)用關系C、數(shù)據(jù)的流向D、程序的組成成分標準答案:4知識點解析:在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外音陜體流向系統(tǒng)或從系統(tǒng)流向外部實體。9、SQL語言又稱為______。A、結構化定義語言B、結構化控制語言C、結構化查詢語言D、結構化操縱語言標準答案:4知識點解析:結構化查詢語言(StructuredQueryLanguage,簡稱SQL)是集數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能于一體的數(shù)據(jù)庫語言。10、視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。A、自頂向下B、由外向內(nèi)C、由內(nèi)向外D、自底向上標準答案:2知識點解析:視圖設計一般有3種設計次序,它們分別是自頂向下、自底向上和由內(nèi)向外,它們又為視圖設計提供了具體的操作方法,設計者可根據(jù)實際情況靈活掌握,可以單獨使用也可混合使用。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、能將高級語言程序轉換成目標語言程序的是______。A、調(diào)試程序B、解釋程序C、編譯程序D、編輯程序標準答案:4知識點解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由0和1組成的二進制指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。12、是構成C語言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程標準答案:1知識點解析:C程序是由函數(shù)構成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù),因此,函數(shù)是C程序的基本單位。13、可以在C語言中用做用戶標識符的是______。A、voiddefineWORDB、as_b3_123IfC、for-abccasD、2cDoSIG標準答案:2知識點解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關鍵字不能作標識符。選項A中void,C中for都為關鍵字,D中2c以字母開頭。14、下面語句的輸出結果是______。printf("%d\n",strlen("\t\"\065\xff\n"));A、14B、8C、5D、輸出項不合法,無正常輸出標準答案:4知識點解析:在C語言中,以“\”開頭的字符均為轉義字符,其中“\”后可跟1~3位八進制數(shù)或在“\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。15、下列程序的輸出結果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}A、2500B、2050C、4D、0標準答案:1知識點解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。16、下列程序的輸出結果是______。main(){inti=3;switch(i){case1:casc2:printf(("%d",i);case3:case4:break;defanlt:printf("OK");}}A、0B、3C、OKD、沒有任何輸出標準答案:8知識點解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強行退出switch語句,所以,本題沒有任何輸出。17、出下列程序執(zhí)行后的輸出結果是______。mare(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i]0;i<3;i++){printf(("%d",m[k][i]);}}A、456B、258C、369D、789標準答案:4知識點解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][0],m[2][2],即369。18、已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara=’A’;intb=20;printf(%d,%0",(a=a+a,a+b,B),a+’a’-’A’,B);}A、表達式非法,輸出零或不確定值B、因輸出項過多,無輸出或輸出不確定值C、輸出結果為20,141D、輸出結果為20,141,20標準答案:4知識點解析:本題中首先輸出逗號表達式“a=a+a,a+b,b”的值,即20。然后以八進制的形式輸出a+’a’-A’的值為97對應的八進制數(shù)141,由于最后一個表達式b沒有對應輸出格式的輸出項表列就不會輸出。19、下列程序執(zhí)行后輸出的結果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",D);}main(){inta=3;fun(A);d+=a++;printf("%d\n",D);}A、8,12B、9,13C、8,4D、9,5標準答案:4知識點解析:本題執(zhí)行過程如下首先調(diào)用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。20、已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*A)……inta=3;X=3*(A+B(7));A、程序錯誤,不允許嵌套定義B、X=93C、X=81D、程序錯誤,宏定義不允許有參數(shù)標準答案:4知識點解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結果為______。A、abcdefB、abcdC、abcdD、abcdef標準答案:4知識點解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。2.putchar():此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符。本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。22、在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是______。A、地址傳遞B、單向值傳遞C、由實參傳遞給形參,再由形參傳遞給實參D、傳遞方式由用戶指定標準答案:2知識點解析:語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實參傳給形參。在內(nèi)存中,實參單元與形參單元是不同的單元。調(diào)用結束后,實參單元仍保留并維持原值。23、以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%ss\n",str);}的輸出是______。A、xyzabcABCB、zabcABCC、yzbcABCD、xyabcABC標準答案:8知識點解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。24、下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。A、-1B、0C、1D、不確定的值標準答案:1知識點解析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷…如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為-1,所以,無論前期如伺變化,最后的x值依然為-1。25、下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。A、100B、160C、120D、64標準答案:8知識點解析:<<是C語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數(shù)左移兩位,左移一位相當于該數(shù)乘于2,左移兩位相當于該數(shù)乘以2的2次方。所以,x<<1=32*2=64。26、以下程序的輸出結果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d\n",(int)(a))#definePRINT1(a)PR(a);putchar(’\n’)main(){intx=2;PRINT1(FUDGE(5)*x);}A、11B、12C、13D、15標準答案:2知識點解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經(jīng)定義的宏中,可以得出答案為“12”。27、以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);::}A、a+(i++)B、&5[i+1]C、a+iD、&a[++i]標準答案:1知識點解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個元素的地址,所以在四個選項中,選項B和C只能輸入一個數(shù)據(jù),選項D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務。28、以下對枚舉類型名的定義中正確的是______。A、enuma={one,two,three};B、enuma{one=9,two=1,three};C、enuma={"one","two","three"};D、enuma{"one","two","three"};標準答案:2知識點解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。29、字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是______。A、反碼B、補碼C、EBCDIC碼D、ASCII碼標準答案:8知識點解析:將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。30、不能把字符串"Hello!"賦給數(shù)組b的語句是______。A、charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};B、charb[10]={’h’,’e’,’l’,’l’,’o’,’!’};C、charb[10];strcpy(b,"Hello!");D、charb[10]="Hello!":標準答案:2知識點解析:在C語言中,大寫字母和小寫字母被認為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。31、下面程序的輸出是______。mare(){intx=3y=6,a=0;while(x++!=(y=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a);}A、x=4,y=4,a=1B、x=5,y=5,a=1C、x=5,y=4,a=3D、x=5,y=4,a=1標準答案:8知識點解析:注意的是x++中x值的引用時,這里應當是先引用,后自加,具體執(zhí)行過程如下:第一次while循環(huán):條件為真,執(zhí)行a=a+1=1此時,x的值已為4,判斷y<x不成立,繼續(xù)抽行循環(huán);第二次while循環(huán):條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。32、若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的輸出結果是_____。A、23B、15C、19D、18標準答案:1知識點解析:static聲明的外部變量只限于彼本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。33、下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default,v4++;case’1’:v1++;case’3’:v3++;case’2’:v2++;}printf("vl=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}A、v1=4,v2=2,v3=1,v4=1B、v1=4,v2=9,v3=3,v4=1C、v1=5,v2=8,v3=6,v4=1D、v1=8,v2=8,v3=8,v4=8標準答案:4知識點解析:當switch后面括弧內(nèi)的表達式的值與某一個case后面的常量的表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句。34、fgetc函數(shù)的作用是從指定文件讀入一個字符,該文件的打開方式必須是______。A、只讀B、追加C、讀或讀寫D、以上均正確標準答案:8知識點解析:fgetc函數(shù)是指從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。35、若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;A、30B、29C、24D、22標準答案:8知識點解析:結構體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用伸變量所占的內(nèi)存長度等于最長的成員的長度。結構件變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。36、下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%x\n",k,k,k);}A、k=11,k=12,k=11B、k=-11,k=13,k=13C、k=11,k=013,k=0xbD、k=11,k=13,k=B標準答案:8知識點解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進制形式輸出整數(shù);“%o”是以8進制無符號形式輸出整數(shù)(不輸出前導符0);“%x”是以16進制無符號形式輸出整數(shù)(不輸出前導符0x)。37、下面程序段中C的二進制值是______。chara=3,b=6.c:c=ab<<1;A、1011B、1111C、11110D、11100標準答案:2知識點解析:C語言提供六種位運算符,按優(yōu)先級由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達式c=ab<<1先運算b<<1得二進制為00001100,再運算a∧00001100,最后得二進制值00001111。38、以下敘述中正確的是______。A、C語言比其他語言高級B、C語言可以不用編譯就能被計算機識別執(zhí)行C、C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式D、C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點標準答案:4知識點解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。39、下列可用于C語言用戶標識符的一組是______。A、voiddefineWORDB、a3_b3_123CarC、For-abcIFCaseD、2aDOsizeof標準答案:2知識點解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除C和D。C語言還規(guī)定標識符不能為C語言的關鍵字,從而選項A(void是關鍵字)也是錯誤的。40、以下程序運行后,輸出結果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}A、cdeB、字符C的ASCII碼值C、字符c的地址D、出錯標準答案:4知識點解析:指針數(shù)組中的每一個元素都相當于一個指針變量。一維指針數(shù)組的定義形式為;類型名*數(shù)組名[數(shù)組長度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為"cde”的首地址。%x是指以十六進制數(shù)形式輸出整數(shù)。四、公共基礎填空題(本題共5題,每題1.0分,共5分。)41、在數(shù)據(jù)的存儲結構中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。標準答案:前后件關系知識點解析:在數(shù)據(jù)存儲結構中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關系,對于順序存儲的數(shù)據(jù)結構,前后件之間的關系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈式存儲來說,數(shù)據(jù)元素之間的前后件關系是通過指針來實現(xiàn)的。42、按照“先進先出”的原則組織數(shù)據(jù)的結構是______。標準答案:隊列知識點解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。43、深度為5的滿二叉樹中,葉子結點的個數(shù)為______。標準答案:16知識點解析:滿二叉樹的葉子結點都在最后一層,即第4層,且第4層的結點達到最大數(shù),即25-1=16。44、在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。標準答案:類知識點解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。45、Jackson方法是一種面向______的結構化方法。標準答案:數(shù)據(jù)結構知識點解析:Jackson方法是一種結構化分析方法,它是一種面向數(shù)據(jù)結構的結構化方法。五、填空題(本題共10題,每題1.0分,共10分。)46、若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。標準答案:12知識點解析:x=(表達式1,表達式2,…)的形式,結果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。47、若a是int型變量,則下列表達式的值為______。(a=2*3,a*2),a+4標準答案:10知識點解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。48、下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結束循環(huán)。請?zhí)羁?。intn=0,c;c=getchar();while(c!=’\n’){if(______)n++;}標準答案:c>=’a’&&c<=’z’知識點解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>=’a’&&c<=’z’判斷是不是小寫字母;c!=’\n’判斷是用換行符結束循環(huán)。49、下列程序的運行結果是______。#include<stdio.h>main(){inta,b,c,n;a=2;b=0;c=1;n=1;while(n<=3){c=c*a;b=b+c;++n;}printf("b=%d",B);}標準答案:b=14知識點解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當n=4時,判斷條件不滿足,退出循環(huán)。50、下列程序的輸出結果是______。main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",A);}標準答案:32知識點解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。51、下列程序的運行結果是______。#include<stdio.h>longfunc(intx){longp;if(x==0||x==1)return(1);p=x*func(x-1);return(p);}main(){printf("%d\n",func(4));}標準答案:24知識點解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。52、下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁?。main(){inta[2][3]={{1,2,3),{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<30++)______;}}標準答案:b[j][i]=a[i][j]知識點解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。53、下列程序的運行結果是______。#include<stdio.h>main(){intfun();fun();}fun(){staticinta[4]={1,2,3,4);inti:for(i:0;i<4;i++)a[i]+=a[i];for(i=0;i<4;i++)printf("%d,",a[i]);printf("\n");}標準答案:2,4,6,8知識點解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。54、設有下列程序:#include<stdio.h>#include<string.h>main(){inti;chars[10],t[10];gets(t);for(i=0;i<2;i++){gets(s);if(strcmp(t,s)<0)strcpy(t,s);}printf("%s\n",t);}程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。標準答案:QTHRG知識點解析:函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中。本題中,t[10]="CDEF"。第一次循環(huán),s[10]="BADEF",if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s="QTHRG",if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中,然后輸出字符數(shù)組t。55、下列程序的運行結果是______。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7),i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}標準答案:55知識點解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5。因為switch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(a[i++])-P(a[4])=P(5),輸出5,之后i自加等于5。國家二級(C語言)筆試模擬試卷第3套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、算法的空間復雜度是指A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲空間D、執(zhí)行算法需要的內(nèi)存空間標準答案:D知識點解析:算法的復雜度主要包括算法的時間復雜度和空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。2、對線性表進行二分法檢索,其前提條件是()。A、線性表以順序方式存儲,并按關鍵碼值排好序B、線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序C、線性表以鏈式方式存儲,并按關鍵碼值排好序D、線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序標準答案:A知識點解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關鍵碼值的大小排好序,而不是按關鍵碼的檢索頻率排序。3、關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。A、排序、索引、統(tǒng)計B、選擇、投影、連接C、關聯(lián)、更新、排序D、顯示、打印、制表標準答案:B知識點解析:關系數(shù)據(jù)庫管理系統(tǒng)的專門關系運算包括選擇運算、投影運算和連接運算。4、對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標準答案:4知識點解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止.在最壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。5、下列程序(注意:ch[0]在低字節(jié),ch[1]在高字節(jié))的輸出結果是______。#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}A、13B、14C、208D、209標準答案:1知識點解析:暫無解析6、下述關于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標準答案:1知識點解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。7、下列有關數(shù)據(jù)庫的描述,正確的是()A、數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程B、數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結構改變時,數(shù)據(jù)的存儲結構不變C、關系中的每一列稱為元組,一個元組就是一個字段D、如果一個關系中的屬性或?qū)傩越M并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字標準答案:8知識點解析:暫無解析8、關系表中的每一行稱為一個()。A、元組B、字段C、屬性D、碼標準答案:1知識點解析:在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關系。關系表中的每一行稱為一個元組。9、對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標準答案:4知識點解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。10、在Windows環(huán)境下,單擊當前窗口中的按鈕“”,其功能是A、將當前應用程序轉為后臺運行B、退出Windows后再關機C、終止當前應用程序的運行D、退出Windows后重新啟動計算機標準答案:C知識點解析:在Windows環(huán)境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關閉當前窗口。二、選擇題(1分)(本題共11題,每題1.0分,共11分。)11、若x=2,y=3,則x&y的結果是()。A、0B、2C、3D、5標準答案:B知識點解析:本題主要考查按位與(&)運算的知識點。“&”是對兩個運算量相應的位進行邏輯與,“&”的規(guī)則與邏輯與“&&”相同。x=2的二進制為00000010,y=3的二進制為00000011,x&y=00000010,轉化為十進制即為2。12、若有以下定義(設int類型變量占2個字節(jié))inti=8,j=9;則以下語句:printf(“i=%%d,j=%%%d\n”,i,j);輸出的結果是()。A、i=8,j=9B、i=%d,j=%8C、i=%d,j=%dD、8,9標準答案:B知識點解析:本題考查printf函數(shù)的格式。printf函數(shù)中格式說明符之前插入的任何字符都按原樣輸出。對于printf函數(shù),有兩個%說明,第一個%后面的內(nèi)容要按原樣輸出。13、下列程序的運行結果是()。main(){inta=-5,b=1,c=1;intx=0,y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y

溫馨提示

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

評論

0/150

提交評論