![國家二級C語言機試(選擇題)模擬試卷30(共285題)_第1頁](http://file4.renrendoc.com/view12/M00/1C/05/wKhkGWa9R82Ac2JUAAHvVsJjzDM538.jpg)
![國家二級C語言機試(選擇題)模擬試卷30(共285題)_第2頁](http://file4.renrendoc.com/view12/M00/1C/05/wKhkGWa9R82Ac2JUAAHvVsJjzDM5382.jpg)
![國家二級C語言機試(選擇題)模擬試卷30(共285題)_第3頁](http://file4.renrendoc.com/view12/M00/1C/05/wKhkGWa9R82Ac2JUAAHvVsJjzDM5383.jpg)
![國家二級C語言機試(選擇題)模擬試卷30(共285題)_第4頁](http://file4.renrendoc.com/view12/M00/1C/05/wKhkGWa9R82Ac2JUAAHvVsJjzDM5384.jpg)
![國家二級C語言機試(選擇題)模擬試卷30(共285題)_第5頁](http://file4.renrendoc.com/view12/M00/1C/05/wKhkGWa9R82Ac2JUAAHvVsJjzDM5385.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C語言機試(選擇題)模擬試卷30(共9套)(共285題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、軟件生存周期中,解決軟件“做什么”的階段是()。A、需求分析B、軟件設計C、軟件實現(xiàn)D、可行性研究標準答案:A知識點解析:軟工生命周期可細化為可行性研究和計劃制定、需求分析、軟件設計(總體設計和詳細設計)、編碼、軟件測試、運行和維護等階段。需求分析是對待開發(fā)軟件提出的需求進行分析并給出詳細定義,是解決軟件“做什么”的階段。軟件設計是解決軟件“怎么做”的階段。2、有以下程序:#include<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++:for(j=0;j<=3;j++){if(j%2==0)continue;x++;}x++:}printf(″x=%d\n″,x);程序的運行結(jié)果是()。A、x=4B、x=6C、x=8D、x=12標準答案:C知識點解析:第一次循環(huán):i=0,執(zhí)行x++后x=1,執(zhí)行內(nèi)層循環(huán)j=0,由于j%2!=0時才執(zhí)行x++,即只有j取1和3時,執(zhí)行x++,此時x=1+1+1=3,跳出內(nèi)層循環(huán),執(zhí)行下一條語句x++,x=4,第二次循環(huán):x=1時,重復上述循環(huán),共執(zhí)行兩次循環(huán),故x最終結(jié)果是4*2=8。3、以下不能輸出字符A的語句是(注:字符A的ASCⅡ碼值為65,字符a的ASCⅡ碼值為97)A、printf(’’%c\n’’,’a’-32);B、printf(’’%d\n’’,’A’);C、printf(’’%c\11’’,65);D、printf(’’%cin’’,’B’-1);標準答案:B知識點解析:在選項B的輸出函數(shù)中,大寫字符’A’以整型數(shù)據(jù)的形式輸出。4、下面不屬于軟件工程過程的4種基本活動A、軟件規(guī)格說明B、軟件開發(fā)C、軟件演進D、軟件測試標準答案:D知識點解析:軟件工程過程的4種基本活動是:軟件規(guī)格說明、軟件開發(fā)、軟件確認、軟件演進。5、下面不屬于軟件工程過程的4種基本活動A、軟件規(guī)格說明B、軟件開發(fā)C、軟件演進D、軟件測試標準答案:D知識點解析:軟件工程過程的4種基本活動是:軟件規(guī)格說明、軟件開發(fā)、軟件確認、軟件演進。6、下面描述中錯誤的是A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細設計B、軟件設計是將軟件需求轉(zhuǎn)換為軟件表示的過程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設計是軟件設計的任務之一D、PAD圖是軟件詳細設計的表示工具標準答案:A知識點解析:軟件設計是將軟件需求轉(zhuǎn)換為軟件表示的過程;數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設計是軟件設計的任務之一;PAD圖,即問題分析圖,是一種主要用于描述軟件詳細設計的圖形工具。7、有以下程序:#includemain(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}}程序的運行結(jié)果是()。A、1,1,2,0B、0,0,0,3C、編譯有錯D、0,1,2,0標準答案:C知識點解析:本題中if(a=1)b=1;與elsed=3;之間多了語句c=2;,所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。8、表達式:(int)((double)9/2)一9%2的值是()。A、5B、4C、3D、2標準答案:C知識點解析:C語言的計算過程與常規(guī)相似,這個表達式的計算過程為,首先求出9除以2的商等于4,再把其強制轉(zhuǎn)化為實型數(shù)據(jù)為4.0,然后再強制轉(zhuǎn)4,減去9對2求余數(shù)1,得到其結(jié)果等于3。9、對于一個正常運行的C程序,以下敘述中正確的是A、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束C、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D、程序的執(zhí)行總是從main函數(shù)開始標準答案:D知識點解析:一個C語言源程序無論包括了多少函數(shù),在正常情況下總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。10、有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);則程序段的輸出結(jié)果是A、5.175000B、5.169000C、5.170000D、5.168000標準答案:B知識點解析:(jnt)(x*1000+0.5)/(double)1000表達式功能,保存數(shù)據(jù)x的后三位小數(shù),把第四位四舍五入。11、下面屬于應用軟件的是A、學生成績管理系統(tǒng)B、UNIX操作系統(tǒng)C、匯編程序D、編譯程序標準答案:A知識點解析:學生成績管理系統(tǒng)為應用軟件;UNIX操作系統(tǒng)屬于系統(tǒng)軟件;編譯程序和匯編程序?qū)儆谥诬浖?2、有以下定義和語句:struetworkers{intnum;charname[20];charc;struet{intday;intmonth;intyear;}s;};struetworkersw,*pw;pw=&w:能給w中year成員賦1980的語句是()。A、pw->year=1980;B、w.year=1980;C、w.s.year=1980;D、*pw.year=1980;標準答案:C知識點解析:本題考查結(jié)構(gòu)體變量的引用。題目中定義了一個結(jié)構(gòu)體,其中結(jié)構(gòu)體中的變量又是一個結(jié)構(gòu)體,w為外層結(jié)構(gòu)體,如果給內(nèi)層結(jié)構(gòu)體賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即w.s,若要給year賦值,表示為w.s.year即可,選項C正確。13、表達式a+=a=a=9的值是A、-9B、0C、18D、9標準答案:B知識點解析:第一步a=9,然后計算a-a的值,并將此值賦給a,因此此時a=0,最后計算a+a,并將此值賦給a,因此最終結(jié)果為0。14、有以下程序#includemain(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是()。A、m=6B、m=2C、m=4D、m=5標準答案:A知識點解析:考查for循環(huán)語句的嵌套。該程序的執(zhí)行流程就是i從1加到2,j從3減到1,然后把i*j的值小于3的值累乘并存在變量m中,即1*3、1*2、1*1,所以m最終的值為6,答案選A。15、以下關(guān)于函數(shù)的敘述中正確的是A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個函數(shù)都可以被單獨編譯C、每個函數(shù)都可以單獨運行D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)標準答案:B知識點解析:本題主要考查函數(shù)的定義和使用。選項A)錯誤,main函數(shù)可以調(diào)用其他函數(shù),但是其他函數(shù)不能調(diào)用main函數(shù);選項B)正確;選項C)錯誤,只有main函數(shù)可以單獨運行,其他函數(shù)只能被調(diào)用;選項D)錯誤,C語言中不能在函數(shù)內(nèi)部定義函數(shù)。16、設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號,成績B、學號,成績C、學號,課號D、學號,姓名,成績標準答案:C知識點解析:學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應該是與前兩個表能夠直接聯(lián)系且能唯一定義的學號和課號,所以選擇C)。17、有以下程序structS{intn;inta[20];);voidf(structS*p){intij,t;for(i=0;i<p->n-1;i++)for(j=i+l;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]--t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d,",s.a(chǎn)[i]);}A、10,9,8,7,6,5,4,3,2,1,B、2,3,1,6,8,7,5,4,10,9,C、10,9,8,7,6,1,2,3,-4,5,D、1,2,3,4,5,6,7,8,9,10,標準答案:D知識點解析:voidf(stmctS*p)函數(shù)的功能使用了結(jié)構(gòu)體指針變量實現(xiàn)對一維數(shù)組的元素從小到大排序。用關(guān)系表達式p->a[i]>p->a[j]實現(xiàn)一維數(shù)組中相鄰元素兩兩比較,大的元素向后移,小的元素向前移。在主函數(shù)中語句f(&s);的功能實現(xiàn)對結(jié)構(gòu)體變量s中一維數(shù)組的元素從小到大的排序,所以循環(huán)語句的輸出結(jié)果為1,2,3,4,5,6,7,8,9,10。18、有下列程序,程序的運行結(jié)果是#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}A、127B、1212C、1111D、117標準答案:D知識點解析:在本題中,定義了3個宏定義語句,分別是:#defineN5、#defineMN+5和#definef(x)(x*M),所以根據(jù)C語言的宏替換規(guī)則,我們可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。19、若有以下程序,則程序的輸出結(jié)果是#defineS(x)x*x#defineT(x)S(x)*S(x)main(){intk=5,j=2;printf("%d,%d\n",S(k+j),T(k+j));}A、17,37B、49,2401C、17,289D、49,289標準答案:A知識點解析:本題考查了宏替換,宏替換就是簡單的字符替換,不會進行語法錯誤檢查也不會進行運算。S(k+j)宏展開以后為k+j*k+j,值為17,T(k+j)宏展開以后為k+j*k+j*k+j*k+j,值為37。20、以下敘述中正確的是A、break語句不能用于提前結(jié)束for語句的本層循環(huán)B、continue語句使得整個循環(huán)終止C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標準答案:C知識點解析:用break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán),而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。21、有下列程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是A、2,2,3,4,5,B、6,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標準答案:B知識點解析:voidf(int*q)函數(shù)的功能是對(*q)的值連續(xù)5次自加1。在main()函數(shù)中f(a)語句把一維數(shù)組a[5]的首地址作為實參,傳遞給函數(shù)f(int*q)的形參q,然后在函數(shù)f(int*q)內(nèi),a[0]連續(xù)5次自加1后,a[0]的值就變成6。所以輸出為6,2,3,4,5。22、設有定義語句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa[0]存放了字符串"abcd"的首地址B、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址C、aa數(shù)組的值分別是字符串"abcd"和"ABCD"D、aa是指針變量,它指向含有兩個元素的字符型數(shù)組標準答案:A知識點解析:本題中定義了一個指針數(shù)組,數(shù)組中存放的是字符指針,aa數(shù)組的兩個元素分別包含了5個字符,所以可以存放5個字符的一維數(shù)組的首地址,所以B選項錯誤。aa數(shù)組的值是指向那兩個字符串的字符指針,而不是那兩個字符串,所以C選項錯誤。aa本身是一個指向兩個字符指針的指針,所以D選項錯誤。23、有以下程序main(){inti=1;i=i^i;printf("%d\n",i);}程序運行后的輸出結(jié)果是A、-1B、0C、1D、7標準答案:B知識點解析:按位異或(^)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應的二進制位上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,該位的結(jié)果為1。本題中表達式i^i的值必為0,因為i的各個位置的二進制值相同。24、若有以下程序段intr=8;printf("%d\n",r>>1);輸出結(jié)果是()。A、4B、8C、16D、2標準答案:A知識點解析:右移運算符">>"的運算規(guī)則是把左邊運算數(shù)的各二進制位全部右移n位,n取決于">>"右邊的數(shù)值。整型數(shù)據(jù)r的十進制值為8,對應二進制數(shù)值為0100,右移1位的運算結(jié)果為0010,十進制數(shù)值為4,答案選A。25、設有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是A、判斷m是否能被5和7整除B、判斷m被5和7整除是否都余1C、判斷m被5或者7整除是否余1D、判斷m是否能被5或者7整除標準答案:B知識點解析:本題考查邏輯運算符的相關(guān)概念,邏輯與若要為真,那么兩邊都要為真,所需要m都能被5和7整除都余1,所以選項B正確。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、有以下程序#includemain(){ints,t,A=10;doubleB=6:s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6平臺上編譯運行,程序運行后的輸出結(jié)果是A、4,4B、2,4C、4,8D、10,6標準答案:C知識點解析:關(guān)鍵字sizeof用于測試不同類型變量所占的內(nèi)存空間,返回所占的字節(jié)數(shù)。在VC編譯系統(tǒng)中,整型變量占用4個字節(jié)的內(nèi)存空間,而雙精度型變量占用8個字節(jié)的內(nèi)存空間。2、一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標準答案:B知識點解析:棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。所以出棧順序是EDCBA54321。3、在最壞情況下()。A、快速排序的時間復雜度比冒泡排序的時間復雜度要小B、快速排序的時間復雜度比希爾排序的時間復雜度要小C、希爾排序的時間復雜度比直接插入排序的時間復雜度要小D、快速排序的時間復雜度與希爾排序的時間復雜度是一樣的標準答案:C知識點解析:在最壞情況下,快速排序、冒泡排序和直接插入排序所需要的比較次數(shù)為O(n2),希爾排序所需要的比較次數(shù)為O(n1.5),所以答案選C。4、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(圖中n≥5)該系統(tǒng)結(jié)構(gòu)圖的寬度是()。A、nB、3C、2D、1標準答案:A知識點解析:寬度指整體控制跨度(橫向最大模塊數(shù))的表示。本題中第1層有1個模塊,第二層有n個模塊(注意n≥5),第3層有5個模塊,故寬度為n。5、在希爾排序法中,每經(jīng)過一次數(shù)據(jù)交換后A、能消除多個逆序B、只能消除一個逆序C、不會產(chǎn)生新的逆序D、消除的逆序個數(shù)一定比新產(chǎn)生的逆序個數(shù)多標準答案:A知識點解析:希爾排序法(縮小增量法)屬于插入類排序,是將整個無序列分割成若干小的子序列分別進行插入排序的方法。插入排序能夠消除多個逆序,也會產(chǎn)生新的逆序。消除的逆序與新產(chǎn)生的逆序有多有少。6、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n—1C、n(n—1)D、n(n—1)/2標準答案:D知識點解析:快速排序最壞情況就是每次選的基準數(shù)都和其他數(shù)做過比較,共需比較(n—1)+(n—2)+…+1=n(n—1)/2,故D項正確。7、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。A、便于用戶,開發(fā)人員進行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎和依據(jù)C、作為確認測試和驗收的依據(jù)D、便于開發(fā)人員進行需求分析標準答案:D知識點解析:軟件需求規(guī)格說明書有以下幾個方面的作用:①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。8、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。A、記錄長度B、文件的大小C、聯(lián)系的復雜程度D、數(shù)據(jù)之間的聯(lián)系方式標準答案:D知識點解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。9、有如下嵌套的if語句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是A、k=(a<b)?((bc)?b:c);B、k=(a<c)?b:c;C、k=(a<c)?a:c;D、k=(a<b)?((a<c)?a:c):((b<c)?b:c);標準答案:D知識點解析:嵌套的ifelse語句的禽義是,在變最a的值小于變量b的值,同時,變量a的值小于變量c的值時,把變量a的值賦給變量k。在變量a的值小于變量b的值,同時,變量a的值大于等于變量c的值時,把變量c的值賦給變量k。在變量a的值大于等于變量b的值,同時,變量b的值小于變量c的值時,把變量b的值賦給變量k。在變量a的值人于等于變量b的值,同時,變量b的值大于等于變量c的值時,把變量c的值賦給變量k。10、下列選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。A、x%2==0B、x/2C、x%21=0D、x%2==1標準答案:A知識點解析:算術(shù)運算符的優(yōu)先級高于關(guān)系運算符的優(yōu)先級,所以當x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。D選項的值為真,即1。11、以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序的運行結(jié)果是()。A、**B、****C、*D、********標準答案:C知識點解析:由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個“*”,選擇C選項。12、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個階段相同標準答案:C知識點解析:數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。人工管理階段無共享,冗余度大;文件管理階段共享性差,冗余度大;數(shù)據(jù)庫系統(tǒng)管理階段共享性大,冗余度小。13、有以下程序#include<stdio.h>main(){intx=8:for(;x>0;x-){if(x%3){printf(’’%d,’’,x一);continue;}printf(’’%d,’’,-x);}}程序的運行結(jié)果是A、8,7,5,2,B、9,7,6,4,C、7,4,2,D、8,5,4,2標準答案:D知識點解析:”x-”表示先執(zhí)行程序,再令x的值減1;而”-x”表示令x的值減1,再執(zhí)行程序。x=8時,x%3為非0值,執(zhí)行語句{printf(’’%d,’’,x-);continue;),輸出”8,”,此時經(jīng)過x-,x的值變?yōu)?,跳出此次循環(huán);執(zhí)行x-,x=6,x%3=0,后面語句不執(zhí)行,執(zhí)行語句printfi(“%d,”,-x);,輸出”5,”:執(zhí)行for語句中的x-得到x=4,判斷x%3,輸出”4,”,執(zhí)行兩次x-后,x=2,執(zhí)行{printf(“%d,”,x-);continue;}后,輸出”2,“;然后執(zhí)行兩次x-后,x=0,不符合”x>0”,循環(huán)全部結(jié)束。14、以下不合法的數(shù)值常最是A、1e1B、011C、0xabcdD、8.0E0.5標準答案:D知識點解析:實型常量又稱為實數(shù)或浮點數(shù)。在C語言中,可以用兩種形式表示一個實型常量。①小數(shù)形式是由數(shù)字和小數(shù)點組成的一種實數(shù)表示形式,這種表示形式的常量必須要有小數(shù)點。②指數(shù)形式用以“e”或“E”后跟一個整數(shù)來表示以10為底的冪數(shù)。C語言的語法規(guī)定,字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。因為選項D)中字母E后面的指數(shù)為小數(shù)形式,所以選項D)這種表示方法不合法。15、以下選項中合法的標識符是A、1-1B、1_1C、_11D、1__標準答案:C知識點解析:本題考查標識符定義。合法標識符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個字符必須是字母或下劃線。16、有以下程序#includemain(){inta=3;printf("%d\n",(a+=a-=a*a));}程序運行后的輸出結(jié)果是()。A、-12B、9C、0D、3標準答案:A知識點解析:表達式"(a+=a-=a*a)",先計算表達式"a-=a*a",即"a=a-a*a",結(jié)果為"a=-6"然后計算"a+=a"即"a=a+a",得a=-12,所以輸出結(jié)果為A)。17、以下程序的輸出結(jié)果是()。#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf(’’%4.1f\n’’,S(a+b));}A、14.0B、7.5C、程序有錯無輸出結(jié)果D、31.5標準答案:C知識點解析:C語言規(guī)定預處理語句后面不能加分號,因此程序有錯。如果沒加分號的話S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。18、關(guān)于預處理命令的敘述中錯誤的是()。A、預處理命令行的最后不能以分號表示結(jié)束B、C程序?qū)︻A處理命令行的處理是在程序執(zhí)行的過程中進行的C、#defineMAX是合法的宏定義命令行D、在程序中凡是以“#”開始的語句行都是預處理命令行標準答案:B知識點解析:C語言中預處理命令行是以“#”開始的語句,預處理命令行的最后不能以分號表示結(jié)束。其中宏定義的字符替換的定義格式為:#define標識符字符串,預處理命令行是在系統(tǒng)對源程序進行編譯之前進行處理的,不是在程序執(zhí)行的過程中。19、設有關(guān)系表學生S(學號,姓名,性別,年齡,身份證號),每個學生學號唯一。除屬性學號外,也可以作為鍵的是A、姓名B、身份證號C、姓名,性別,年齡D、學號,姓名標準答案:B知識點解析:候選鍵是是二維表中能唯一標識元組的最小屬性集。一個二維表有多個候選碼,則選定其中一個作為主鍵供用戶使用,學生學號與身份證號均是唯一的,都可以作為主鍵,B選項正確。20、有以下程序voidfun(intn,int*s){intf;if(n==1)*s=n+1;else{fun(n-1,&f);}s=f;}}main(){intx=0;fun(4,&x);printf("%d\n",x);}程序運行后的輸出結(jié)果是A、1B、3C、4D、2標準答案:D知識點解析:函數(shù)fun為遞歸調(diào)用函數(shù),如果n的值為1,那么后面形參指向的空間存放n+1,否則繼續(xù)計算fun(n-1)的值。調(diào)用分析過程:fun(4,&x)-→fun(3,&x)-→fun(2,&x)-→fun(1,&x)在回歸的過程中,對于x內(nèi)的數(shù)據(jù)并沒有改動。21、以下語句中存在語法錯誤的是A、charss[][20]={"right?"};B、char*ss[6];ss[1]="right?";C、char*ss[]={"right?");D、charss[6][20];ss[1]="right?";標準答案:A知識點解析:選項A)中定義了二維數(shù)組ss,可以用于存儲字符串,但是字符串的存儲不能通過賦值,僅可以初始化或者輸入得到,而選項C)和A)不同,選項C)為指針數(shù)組,對于指針變量可以保存常量字符串的地址。22、有以下程序#includeintf(intx);main(){inta,b=0;for(a=0;a<3;a+=1){b+=f(a);putchar(’A’+b);}}intf(intx){returnx*x+1;}程序運行后輸出結(jié)果是()。A、BDIB、BCDC、ABED、BCF標準答案:A知識點解析:考查函數(shù)的返回值。三次a的值分別為0、1、2,對應的函數(shù)返回值為1、2、5,b累加后為1、3、8字符參與運算時等同于讓其對應的ASCII碼參與計算,然后對應輸出字符或其ASCII碼值,?A?+b后分別為?B?、?D?、?I?,答案選A。23、有以下程序#include<stdio.h>voidmain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結(jié)果是A、2050B、3344C、3040D、0304標準答案:C知識點解析:在主函數(shù)的for循環(huán)語句中,當循環(huán)變量i的值等于0,2時,執(zhí)行switch中的case0語句,分別對數(shù)組元素a[0]和a[2]加1和減1,所以a[0]的值等于3,a[2]等于4。當循環(huán)變量i的值等于1,3時,執(zhí)行switch中的case1語句,把數(shù)組元素a[1]和a[3]的值賦為0。所以輸出數(shù)組a的元素,其結(jié)果為3040。24、有以下程序#includemain(){inta[]={2,4,6,8,10},x,*p,y=1;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);}程序的輸出結(jié)果是A、13B、19C、11D、15標準答案:B知識點解析:本題通過語句"p=&a[1]"將指針變量p指向了存儲單元a[1],即使得p[0]的值為4,y的初始值為1,然后通過3次for循環(huán),使得y的值分別加上p[0]、p[1]和p[2],那么y=1+4+6+8,所以輸出的y的值為19。25、以下關(guān)于宏的敘述中正確的是A、宏替換沒有數(shù)據(jù)類型限制B、宏定義必須位于源程序中所有語句之前C、宏名必須用大寫字母表示D、宏調(diào)用比函數(shù)調(diào)用耗費時間標準答案:A知識點解析:宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的最開頭,所以B)選項中宏定義必須位于源程序中所有語句之前是錯誤的。宏名一般用大寫,但不是必須用大寫,所以C選項錯誤。宏展開不占運行時間,只占編譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選項錯誤。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、有以下程序:#include<stdio.h>voidmain(){unsignedchara=8,c;c=a>>3:printf(″%d\n″,c);}程序運行后的輸出結(jié)果是()。A.32B.16C.1D.0A、32B、16C、1D、0標準答案:C知識點解析:字符常量與其ASCⅡ碼值一一對應,在計算的時候,可以使用該字符的ASCⅡ碼參與運算,輸出時會根據(jù)格式控制符輸出對應的字符或者ASCⅡ碼。右移運算符“>>”的運算規(guī)則是把左邊運算數(shù)的各二進制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCⅡ碼值為8,對應二進制為1000,所以a>>3=1,輸出的字符c的ASCⅡ碼值為1,答案選C。2、下面對軟件描述錯誤的是()。A、文檔是不可執(zhí)行的B、程序和數(shù)據(jù)是可執(zhí)行的C、軟件文檔是與程序開發(fā)、維護和應用無關(guān)的資料D、軟件是程序、數(shù)據(jù)及相關(guān)文檔的集合標準答案:C知識點解析:軟件是程序、數(shù)據(jù)及相關(guān)文檔的集合。程序、數(shù)據(jù)和相關(guān)文檔又稱為軟件的三要素。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料??梢姡浖袃刹糠纸M成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的文檔。3、數(shù)據(jù)流圖(DFD)中的有向箭頭(→)表示()。A、控制流B、數(shù)據(jù)流C、輸入流D、輸出流標準答案:B知識點解析:數(shù)據(jù)流圖中的主要圖形元素與說明如下:加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。→數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名。存儲文件:表示處理過程中存放各種數(shù)據(jù)的文件。數(shù)據(jù)的原點和終點:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。4、下面函數(shù)調(diào)用語句含有實參的個數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));A、1B、2C、3D、5標準答案:B知識點解析:本題考查函數(shù)調(diào)用時的實參形式。這里有一個逗號運算的考查,(a,b)的運算結(jié)果為b,因而只有一個值,結(jié)合func的調(diào)用形式,可以知道實參的個數(shù)只有2個。5、設有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是A、if(a>b)c=a;a=b;b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a,a=b,b=c;D、if(a>b){c=a;a=b;b=c;}標準答案:A知識點解析:在C語言中,用分號表示一條語句的結(jié)束,用{}把幾條語句放在一塊表示一個語句塊,其整體表示一個功能。因而在題目給出的四個選項中,選項B、C、D表示的功能相同,而選項A表示的是一條if語句,兩條賦值語句。6、有以下程序#includemain(){inta=7;while(a-);printf(’’%dkn’’,a);}程序運行后的輸出結(jié)果是A、0B、1C、.1D、7標準答案:C知識點解析:在while語句中,先判斷while后面的表達式是否為0,如果為0,則退出循環(huán),否則執(zhí)行循環(huán)體。在本題中,當變量a的值經(jīng)過幾次循環(huán)后,其值等于0時,退出while循環(huán)語句,變量a再執(zhí)行自減運算,所以其值等于-1。7、數(shù)據(jù)庫設計的四個階段是:需求分析、概念設計、邏輯設計和A、編碼設計B、測試階段C、運行階段D、物理設計標準答案:D知識點解析:數(shù)據(jù)庫設計目前一般采用生命周期法,即把整個數(shù)據(jù)庫應用系統(tǒng)的開發(fā)分解成目標獨立的四個階段。它們分別是需求分析階段、概念設計階段、邏輯設計階段、物理設計階殷。8、有以下程序#includeintflintx,inty){return((y-x)*x);}main()finta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運行后的輸出結(jié)果是A、10B、8C、9D、7標準答案:C知識點解析:本題考查函數(shù)的嵌套調(diào)用。首先計算f(a,b)與f(a,c),f(a,b)=(b—a)*a=3,f(a,c)=(c-a)*a=6,然后計算f(3,6)=(6—3)*3=9。9、若函數(shù)調(diào)用時的實參為變量,下列關(guān)于函數(shù)形參和實參的敘述中正確的是()。A、函數(shù)的形參和實參分別占用不同的存儲單元B、形參只是形式上的存在,不占用具體存儲單元C、同名的實參和形參占同一存儲單元D、函數(shù)的實參和其對應的形參共占同一存儲單元標準答案:A知識點解析:本題重點考查的是函數(shù)的形參和實參。在定義函數(shù)時,函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元,因此A選項正確。10、設有定義:intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是()。A、k++B、k+=1C、++kD、k+1標準答案:A知識點解析:表達式"k++"表示先取得變量k的值作為整個表達式的值,然后變量k再自加。所以除了選項A)的表達式的值為0外,其他幾個選項的表達式的值均為1,故而答案選A)。11、有以下程序#includefun(inta,intb){intstaticm=0,i=2;i=i+m+1:m=i+a+b:returnm;}main(){intk=4,m=1,p;p=fun(k,m);printf("%d,",p);p=fun(k,m);printf("%d\n",p);}程序運行后的輸出結(jié)果是A、8,17B、7,16C、8,8D、7,17標準答案:A知識點解析:本題考查了靜態(tài)變量以及局部變量的同名問題。主函數(shù)中調(diào)用fun函數(shù)兩次,第一次調(diào)用fun(4,1),形參a和b接收以后。i值為3,m的值為8,調(diào)用結(jié)束返回8存放到p中并且輸出p的值為8,除了靜態(tài)變量m和i,變量a,b撤銷。第二次調(diào)用fun(4,1),接收實參值以后,i為3+8+1,而m為12+4+1,即輸出函數(shù)值17。12、下列敘述中正確的是()。A、在C語言中,預處理命令行都以“#”開頭B、預處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能標準答案:A知識點解析:預處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、C選項錯誤。C語言的預處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D選項錯誤。13、以下敘述中正確的是A、字符變量在定義時不能賦初值B、同一英文字母的大寫和小寫形式代表的是同一個字符常量C、字符常量可以參與任何整數(shù)運算D、轉(zhuǎn)義字符用符號開頭標準答案:C知識點解析:一個字符常量代表ASCⅡ字符集中的一個字符,在C程序中,字符常量可參與任何整數(shù)運算,轉(zhuǎn)義字符以一個反斜線開頭后跟一個特定的字符。14、有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fpr4ntf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運行結(jié)果是()。A、321B、12300C、1D、123標準答案:D知識點解析:程序首先將數(shù)組a[10]中的元素1、2、3分別寫入了文件d1.dat文件中,然后又將d1.dat文件中的數(shù)據(jù)123整體寫到變量n的空間中,所以打印n時輸出的數(shù)據(jù)為123。15、有三個關(guān)系R,S和T如下圖所示:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、差C、交D、并標準答案:B知識點解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由屬于關(guān)系R但是不屬于關(guān)系S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和S通過差運算得到的。16、有以下程序#includemain(){inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;for(i=0;i<3;i++)for(k=i+1;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++)printf("%d,",a[0][i]);}程序運行后的輸出結(jié)果是A、1,1,2,6,B、6,2,1,1,C、6,4,3,2,D、2,3,4,6,標準答案:C知識點解析:首先對二維數(shù)組進行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為1、4、…、6、1。通過for嵌套循環(huán)語句和if條件語句,對二維數(shù)組對角線元素進行由大到小的排序操作,程序最后通過for語句輸出二維數(shù)組第1行的4個元素。因此C選項正確。17、以下選項中非法的C語言字符常量是A、’9’B、’\09’C、’\x09’D、’\x9d’標準答案:B知識點解析:一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來。也可以為轉(zhuǎn)移字符,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符,這些字符常量也必須括在一對單引號內(nèi)。其中反斜線后的八進制數(shù)可以不用0開頭,但是不能有8和9字符出現(xiàn)。反斜線后的十六制數(shù)只可由小寫字母x開頭。18、有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是A、y=0B、y=-1C、y=1D、while構(gòu)成無限循環(huán)標準答案:B知識點解析:在while循環(huán)中每次變量y的值減1,直到其值等于0時退出循環(huán),這時y的再減1變?yōu)?1。19、若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語言函數(shù)feof(fp)的函數(shù)返回值是A、0B、非0C、-1D、EOF標準答案:A知識點解析:feof用來判斷文件是否結(jié)束。如果遇到文件結(jié)束,函數(shù)feof(fp)的值為1,否則為0。20、若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A、#definen5inta[2*n];B、inta[5+5];C、#defineN10inta[N];D、intn=10,a[n];標準答案:D知識點解析:在C語言中,定義一維數(shù)組的語句形式為:類型名數(shù)組名[整型常量表達式]。在選項D)中,n是一個整型的變量。21、有以下程序#includevoidfun(intx,inty,int*z){*z=y-x;}main(){inta,b,c;fun(10,5,&a);fun(7,a,&b);fun(a,b,&c);printf("%d,%d,%d\n",a,b,c);}程序運行后的輸出結(jié)果是()。A、-5,-12,-7B、5,2,3C、-5,-12,-17D、5,-2,-7標準答案:A知識點解析:函數(shù)fun()返回的是y-x的值并存放在指針變量z指向的變量中。所以函數(shù)fun(10,5,&a);調(diào)用結(jié)束后,a=-5;函數(shù)fun(7,a,&b);調(diào)用結(jié)束后,b=-5-7=-12;函數(shù)fun(a,b,&c);調(diào)用結(jié)束后,c=-12-(-5)=-7,答案選A。22、以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是A、fwriteB、fputcC、ftellD、fprintf標準答案:C知識點解析:本題考查文件操作。ftell函數(shù)返回文件指針的當前位置,其他的都寫文件函數(shù)。23、下面結(jié)構(gòu)體的定義語句中,錯誤的是()。A、structord{intx;inty;intz;}structorda;B、structord{intx;inty;intz;};structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;標準答案:A知識點解析:分號代表該結(jié)構(gòu)體定義語句的結(jié)束,選項A)的結(jié)構(gòu)體沒有定義完全就用該結(jié)構(gòu)體另外定義變量,用法有誤,所以答案選A)。24、有以下程序#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={"Zhao",’m’,85,90};a[1]=b;}main(){structSTUc[2]={{"Qian",’f’,95,92},{"Sun",’m’,98,99}};f(C);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序運行后輸出結(jié)果是A、Qian,f,95,92,Sun,m,98,99B、Qian,f,95,92,Zhao,m,85,90C、Zhao,m,85,90,Sun,m,98,99D、Zhao,m,85,90,Qian,f,95,92標準答案:B知識點解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)后,結(jié)構(gòu)體數(shù)組c的第二個元素被改寫,c[1].name為Zhao,選項B正確。25、以下對軟件描述錯誤的是()。A、文檔是不可執(zhí)行的B、程序和數(shù)據(jù)是可執(zhí)行的C、軟件文檔是與程序開發(fā)、維護和應用無關(guān)的資料D、軟件是程序、數(shù)據(jù)及相關(guān)文檔的集合標準答案:C知識點解析:軟件是程序、數(shù)據(jù)及相關(guān)文檔的集合。程序、數(shù)據(jù)和相關(guān)文檔又稱為軟件的三要素。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料??梢姡浖袃刹糠纸M成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的文檔。故本題答案為C選項。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標準答案:B知識點解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的數(shù)據(jù)結(jié)構(gòu)只有一個根結(jié)點,但它不是線性結(jié)構(gòu)。2、算法的有窮性是指()。A、算法程序的運行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標準答案:A知識點解析:算法的有窮性是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。3、下列敘述中正確的是A、對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為nB、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標準答案:A知識點解析:本題主要考查的知識點為查找技術(shù)。順序查找的使用情況:①線性表為無序表;②表采用鏈式存儲結(jié)構(gòu)。二分法查找只適用于順序存儲的有序表,并不適用于線性鏈表。4、以下選項中,合法的一組C語言數(shù)值常量是A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10.0003.e5標準答案:A知識點解析:八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,而在選項B中,028是錯誤的。浮點數(shù)據(jù)的指數(shù)形式表示常量中,C語言規(guī)定字母e或E之前必須要有數(shù)字,且e或E之后的指數(shù)必須為整數(shù),而選項C中4e1.5是錯誤的。在選項D中,整型數(shù)據(jù)10,000的表示形式是錯誤的。5、下列描述中,不符合良好程序設計風格要求的是A、程序的效率第一,清晰第二B、程序的可讀性好C、程序中要有必要的注釋D、輸入數(shù)據(jù)前要有提示信息標準答案:A知識點解析:一般來講,程序設計風格是指編寫程序時所表現(xiàn)出的特點、習慣和邏輯思路。程序設計風格總體而言應該強調(diào)簡單和清晰,程序必須是可以理解的。著名的“清晰第一,效率第二”的論點已成為當今主導的程序設計風格。6、開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()。A、大型系統(tǒng)的復雜性B、人員知識不足C、客觀世界千變?nèi)f化D、時間緊、任務重標準答案:A知識點解析:隨著計算機軟件規(guī)模的擴大,軟件本身的復雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發(fā)費用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危機”。7、在C語言中,以下說法不正確的是()。A、在C程序中,整數(shù)和實數(shù)都能被準確無誤地表示出來B、在C程序中,任何一個變量名都代表存儲器中的一個位置C、靜態(tài)變量的生存期與整個程序的運行期相同D、C語言中,任何變量都必須先聲明才能進行引用標準答案:A知識點解析:此題考查C語言的基本概念。變量的實質(zhì)就是在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值,變量的值可以根據(jù)需要進行修改;整數(shù)在允許的范圍內(nèi)可以準確的表示出來,但不可能表示無限度的實數(shù)。8、在學校里,教師可以講授不同的課程,同一課程也可由不同教師講授,則實體教師與實體課程間的聯(lián)系是()。A、一對多B、一對一C、多對一D、多對多標準答案:D知識點解析:一個教師可以講授不同的課程,同一課程也可由不同教師講授,則實體教師與實體課程間的聯(lián)系是多對多。9、若有以下程序:#includemain(){inta=0,b=0,c=0;c=(a一=++a),(a+=b,b+=4);printf(“%d,%d,%d\n”,a,b,c);}則程序的輸出結(jié)果是()。A、0,4,0B、0,4,4C、1,4,1D、1,4,4標準答案:A知識點解析:逗號運算符的結(jié)合性從左到右,因此逗號表達式將從左到右進行計算。另外逗號運算符的優(yōu)先級最低,所以先計算c=(a一=++a)這部分。其中,賦值運算符從右往左計算,先執(zhí)行++a,a自增1后再賦值,所以a的值為1,執(zhí)行a=a一1,即a=1—1,a的值為0,并將0賦給變量c。第二部分(a+=b,b+=4),先執(zhí)行a=a+b,a=0+0,即a的值為0,然后執(zhí)行b+=4,b=0+4,即bl的值為4。所以輸出結(jié)果為0,4,0,故選項A正確。10、下列選項中屬于面向?qū)ο笤O計方法主要特征的是A、繼承B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:面向?qū)ο笤O計方法的主要特征有封裝性、繼承性和多態(tài)性。而結(jié)構(gòu)化程序設計方法的主要原則有自頂向下,逐步求精,模塊化,限制使用goto語句。11、有以下程序main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}程序的輸出結(jié)果是A、a=%2,b=%5B、a=%d,b=%dC、a=2,b=5D、a=%%d,b=%%d標準答案:B知識點解析:輸出“%”,可以在格式控制中用“%%”表示,將輸出一個“%”,而沒有%表示格式符的開始,%%d不能表示格式符,因此僅輸出:a=%d,b=%d。12、若有定義語句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語句是A、scanf("%f%f"&x,&y);B、scanf("%f%f",x,y);C、scanf("%lf%le",px,py);D、scanf("%lf%lf",x,y);標準答案:C知識點解析:本題考查scanf語句。scanf()函數(shù)的一般格式為:scanf("格式字符串",輸入項首地址表),對于double類型數(shù)據(jù),輸入時候要加上1修飾,否則會產(chǎn)牛錯誤的輸入信息,同時輸入項必須是地址,可以使保存變量地址的指針變量。13、有兩個關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是A、選擇B、投影C、交D、并標準答案:A知識點解析:由關(guān)系R和T所包含的元素可知,關(guān)系R經(jīng)過選擇操作就可以得到關(guān)系T。14、下面不屬于結(jié)構(gòu)化程序設計風格的是A、程序結(jié)構(gòu)良好B、程序的易讀性C、不濫用Goto語句D、程序的執(zhí)行效率標準答案:D知識點解析:結(jié)構(gòu)化程序設計(stmcturedprogramming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結(jié)構(gòu)化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。15、結(jié)構(gòu)化程序設計的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標準答案:B知識點解析:程序設計語言僅僅使用順序、選擇和重復(循環(huán))三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設計方法。遵循程序結(jié)構(gòu)化的設計原則,按結(jié)構(gòu)化程序設計方法設計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。16、已定義以下函數(shù)intfun(int*p){return*p;}fun函數(shù)返回值是A、一個整數(shù)B、不確定的值C、形參p中存放的值D、形參p的地址值標準答案:A知識點解析:返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項正確。17、若有定義語句:intm[]={5,4,3,2,1},i=4;,則下面對m數(shù)組元素的引用中錯誤的是A、m[--i]B、m[2*2]C、m[m[0]]D、m[m[i]]標準答案:C知識點解析:本題考查數(shù)組的使用。m是一個一維數(shù)組,長度為5,因此下標范圍是0-4。選項A中一是先自減,然后使用i,因此訪問的是元素m[3]:選項B訪問的是元素m[4]:選項C中內(nèi)部的m[0]值是5,因此實際訪問是的m[5],下標超出范圍:選項D中m[i]的值是1,訪問元素m[1]。18、若有以下程序#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結(jié)果是A、10B、6C、7D、3標準答案:C知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!=1不成立,執(zhí)行else分支,r=1;第二條if表達式b==2成立,執(zhí)行r+=2,r=3;第三條if語句c!=3不成立,執(zhí)行else分支,分支為空語句:第四條if分支d==4成立,執(zhí)行該if分支語句,r+=4,r=7。19、設有定義doublea[10],*s=a;以下能夠代表數(shù)組元素a[3]的是A、(*s)[3]B、*s[3]C、*s+3D、*(s+3)標準答案:D知識點解析:語句*s:a,使用指針變量s指向一維數(shù)組a的首地址,所以*(s+3)表示的是引用數(shù)組a[3]。20、以下選項中非法的C語言字符常量是A、’9’B、’\09’C、’\x09’D、’\x9d’標準答案:B知識點解析:一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來。也可以為轉(zhuǎn)移字符,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符,這些字符常量也必須括在一對單引號內(nèi)。其中反斜線后的八進制數(shù)可以不用0開頭,但是不能有8和9字符出現(xiàn)。反斜線后的十六制數(shù)只可由小寫字母x開頭。21、有以下程序#include#includevoidfun(char*w,intm){chars,*p1,*p2;p1=w;p2=w+m-1;while(p1<p2){s=*p1;*p1=*p2;*p2=s;p1++;p2--;}}main(){chara[]="123456";fun(a,strlen(a));puts(a);}A、116611B、161616C、654321D、123456標準答案:C知識點解析:函數(shù)fun的功能是將字符串w中的元素從大到小進行排列,所以在主函數(shù)中調(diào)用函數(shù)fun后,字符串a(chǎn)的元素從大到小進行了排列。22、下面不屬于軟件需求分析階段主要工作的是A、需求變更申請B、需求分析C、需求評審D、需求獲取標準答案:A知識點解析:需求分析階段的工作可概括為4個方面:①需求獲取。②需求分析。③編寫需求規(guī)格說明書。④需求審評。23、若有以下程序structstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;a.name=(char*)malloc(10);strcpy(a.name,"Zhao");b=a;b.gender=’f’;b.score=350;strcpy(b.name,"Qian");printf("%s,%c,%d,",a.name,a.gender,a.score);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Qian,f,350B、Qian,f,350,Qian,f,350C、Zhao,m,290,Zhao,f,350D、Qian,m,290,Qian,f,350標準答案:D知識點解析:主函數(shù)中定義結(jié)構(gòu)體類型structstu,有三個成員,第一個成員為字符指針變量。主函數(shù)中為stu類型變量a賦值,首先為a.name成員分配存儲空間,存入數(shù)據(jù)。b=a;語句執(zhí)行完畢以后,a和b的各個成員值相同,需要注意的是b.name和a.name成員都保存了同一段內(nèi)存的地址,因此當為變量b賦值的時候,同樣更改了的name成員,而其他成員由于有單獨的存儲空間而不會發(fā)生改變。24、若有以下程序#include<stdio.h>voidsp(int*a){intb=2;*a=*a*2;printf("%d,",*a);a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3;sp(&k);printf("%d\n",k);}則程序的輸出結(jié)果是A、6,4,6B、6,4,3C、6,12,12D、9,4,9標準答案:A知識點解析:本題考查了指針作為函數(shù)的參數(shù),可以接收實參變量的地址,改變實參的值。主函數(shù)調(diào)用sp(&k),執(zhí)行sp函數(shù)a指向向k,執(zhí)行語句*a=*a*2后a指向空間的值k的值為6,改變a的指向以后,此時a指向b,則執(zhí)行*a=*a*2以后,a指向空間b的值為4。調(diào)用結(jié)束返回主函數(shù),輸出k的值為6。25、若有以下程序#includemain(){ints=0,n;for(n=0;n<4;n++){switch(n){default:s+=4;case1:s+=1;case2:s+=2;case3:s+=3;}}printf("%d\n",s);}則程序的輸出結(jié)果是A、6B、18C、10D、24標準答案:D知識點解析:第一次for循環(huán),n的值為0,所以從default后面的語句開始執(zhí)行,s+=4,s+=1,s+=2,s+=3,s的值為10。在進入第二次for循環(huán),n的值為1,所以執(zhí)行s+=1,s+=2,s+=3,s的值為16。在進入第三次for循環(huán),n的值為2,所以執(zhí)行s+=2,s+=3,s的值為21。在進入第四次for循環(huán),n的值為3,所以執(zhí)行s+=3,s的值為24。國家二級C語言機試(選擇題)模擬試卷第5套一、選擇題(本題共40題,每題1.0分,共40分。)1、以下敘述中正確的是A、程序的算法只能使用流程圖來描述B、N—S流程圖只能描述簡單的順序結(jié)構(gòu)的程序C、計算機可以直接處理C語言程序,不必進行任何轉(zhuǎn)換D、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)標準答案:D知識點解析:結(jié)構(gòu)化程序有三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu),描述算法常見的有文字描述,流程圖,盒圖,偽代碼等。N-S圖為盒圖,可以描述比較復雜的程序結(jié)構(gòu),而計算機不能直接處理C程序,只能處理二進制代碼。2、在一個C源程序文件中所定義的全局變量,其作用域為()。A、所在文件的全部范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、由具體定義位置和extern說明來決定范圍標準答案:D知識點解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。3、下列關(guān)于線性鏈表的敘述中,正確的是A、各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)C、進行插入與刪除時,不需要移動表中的元素D、以上都不正確標準答案:C知識點解析:線性表的鏈式存儲結(jié)構(gòu)稱為線性鏈表。在鏈式存儲結(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。4、以下選項中關(guān)于C語言常量的敘述錯誤的是A、常量分為整型常量、實型常量、字符常量和字符串常量B、經(jīng)常被使用的變量可以定義成常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運行過程中,其值不能被改變的量標準答案:B知識點解析:常量指在程序運行過程中,其值不能被改變的量。常量分為整型常量(即整常數(shù))、實型常量、字符型常量和字符串常量。常量也可以按數(shù)據(jù)類型分為為數(shù)據(jù)常量和非數(shù)據(jù)常量。變量是指在程序運行過程中,其值能被改變的量。5、下面程序的輸出是()。main(){inti=9;for(;i>0;i--){if(i%3==0){printf("%d",--i);continue;}}}A、741B、852C、963D、875421標準答案:B知識點解析:本題考查continue的應用。程序中for循環(huán)體內(nèi)有一個continue語句,它的功能是提前結(jié)束本次循環(huán)體(即循環(huán)體的后半部分不執(zhí)行了),直接來到下一次循環(huán)的條件判斷。本題中,當i值為3的倍數(shù)(9,6,3)時,表達式i%3值為0,輸出--i(8,5,2),否則無輸出。第6次循環(huán)結(jié)束后,i--使i得0,此時i>0為假,循環(huán)結(jié)束。6、下列描述中正確的是A、軟件交付使用后還需要再進行維護B、軟件工具交付使用就不需要再進行維護C、軟件交付使用后其生命周期就結(jié)束D、軟件維護是指修復程序中被破壞的指令標準答案:A知識點解析:通常將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護三個階段。已交付的軟件投入運行后,應在運行使用中不斷地維護,根據(jù)新提出的需要進行必要而且可能的擴充和刪改。7、定義部門關(guān)系模式如下:部門(部門號,部門名,部門成員,部門總經(jīng)理),使它不滿足第一范式的屬性是()。使它不滿足第一范式的屬性是()。A、部門名B、部門成員C、部門總經(jīng)理D、部門號標準答案:B知識點解析:對于關(guān)系模式,若其中的每個屬性都已不能再分為簡單項,則它屬于第一范式。本題中“部門成員”可進一步分解(成員編號、姓名等),因此不滿足第一范式。8、定義學生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學號、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號、課程名、先修課);SC(S#,C#,G)(其屬性分別為學號、課程號和成績)。包含對非主屬性部分依賴的關(guān)系是()。A、S(S#.Sn,Sd,Dc,Sa)B、C(C#,Cn,P#)C、SC(S#,C#,G)D、不存在標準答案:A知識點解析:關(guān)系S的主鍵是S#(學號),S#是主屬性,但非主屬性Sd(所在系)也可決定Dc(所在系的系主任),所以包含對非主屬性部分依賴的關(guān)系是S。9、已知下列函數(shù)定義:fun(int*b,intc,intn,intdata){intk;for(k=0;kA、fun(*a,4,5,1);B、fun(&a,4,5,1);C、fun((int*)a,4,5,1);D、fun(a,4,5,1);標準答案:D知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。fun函數(shù)的調(diào)用形式為“fun(int*b,intm,intn,intdata)”,而調(diào)用數(shù)組時,用數(shù)組名表示一個指向數(shù)組第一個元素的指針,因此,調(diào)用時的形式為:fun(a,4,5,1)。10、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是intk=0;while(k=1)k++;A、一次也不執(zhí)行B、執(zhí)行一次C、無限次D、有語法錯,不能執(zhí)行標準答案:C知識點解析:循環(huán)條件表達式為賦值表達式k=1,因此循環(huán)執(zhí)行無限次。11、下列一維數(shù)組說明中,不正確的是()。A、intN;scanf("%d",&N);intb[N];B、floata[]={1,6,6,0,2};C、#defineS10inta[S];D、#defineS10inta[S+5];標準答案:A知識點解析:本題考查一維數(shù)組的賦值。一維數(shù)組的一般定義格式為:類型說明符數(shù)組名[常量表達式]。其中,“[]”中的內(nèi)容可以是整型常量,也可以是整型表達式。選項A)中的N是一個變量,所以錯誤。12、下列條件語句中,輸出結(jié)果與其他語句不同的是()。A、if(a!=0)printf(’’%d\n’’,x);elseprintf(’’%d\n’’,y);B、if(a==0)printf(’’%d\n’’,y);elseprintf(’’%d\n’’,x);C、if(a==0)printf(’’%d\n’’,x);elseprintf(’’%d\n’’,y);D、if(a)printf(’’%d\n’’,x);elseprintf(’’%d\n’’,y);標準答案:C知識點解析:A、B、D選項的含義均為:a的值如果為0,打印y的值,否則打印x的值。而C選項的含義是:a的值為0時打印x的值,不為0時打印y的值,與其他選項正好相反。13、以下敘述中錯誤的是A、算法正確的程序最終一定會結(jié)束B、算法正確的程序可以有零個輸入C、算法正確的程序可以有零個輸出D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標準答案:C知識點解析:算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應該具有以下5個特征:①有窮性。一個算法包含的操作步驟應該是有限的。也就是說,在執(zhí)行若干個操作步驟之后,算法將結(jié)束,而且每一步都在合理的時間內(nèi)完成。②確定性。算法中的每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。③可行性。算法中指定的操作,都可以通過已經(jīng)驗證過可以實現(xiàn)的基本運算執(zhí)行有限次后實現(xiàn)。④有零個或多個輸入。在計算機上實現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些對象需要通過輸入來得到。⑤有一個或多個輸出。算法的目的是為了求“解”,這些“解”只有通過輸出才能得到。14、有以下程序段inti,n;for(i=0;i<8;i++){n=rand0%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%dkn",n);}A、當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作B、當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作C、當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行D、for循環(huán)語句固定執(zhí)行8次標準答案:C知識點解析:rand()函數(shù)功能為產(chǎn)生一個隨機數(shù),ralId()%5,則產(chǎn)生0~4之間的任意隨機數(shù),當產(chǎn)生的隨機數(shù)n為O時,執(zhí)行case0:exit(0)這條語句,結(jié)束程序的運行。15、設有下面的定義:structst{inta;floatb;}d;int*p;要使p指向結(jié)構(gòu)變量d中的a成員,正確的賦值語句是()。A、*p=d.a(chǎn);B、p=&a;C、p=d.a(chǎn);D、p=&d.a(chǎn);標準答案:D知識點解析:本題主要考查按結(jié)構(gòu)數(shù)組元素方式引用結(jié)構(gòu)成員。結(jié)構(gòu)體變量的成員引用方法有3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代科技助力白水泥行業(yè)財務風險管理
- 衛(wèi)浴潔具國慶節(jié)活動方案
- 環(huán)境藝術(shù)設計與室內(nèi)設計的審美互動
- 生產(chǎn)工藝流程中的質(zhì)量控制與安全管理
- 現(xiàn)代服務業(yè)在商業(yè)地產(chǎn)中的價值挖掘
- 物流技術(shù)與管理教育的新模式
- Unit 4 Plants around us Lesson 6(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊
- 7《可愛的動物》(說課稿)2023-2024學年統(tǒng)編版道德與法治一年級下冊
- Unit 2 Whats your name (Story time)(說課稿)-2024-2025學年譯林版(三起)(2024)英語三年級上冊001
- Unit 4 A glimpse of the future 說課稿-2023-2024學年高二下學期英語外研版(2019)選擇性必修第三冊001
- 工地試驗室質(zhì)量手冊
- 高一寒假學習計劃表格
- 信息資源管理(馬費成-第三版)復習重點
- 郵輪外部市場營銷類型
- GB/T 42460-2023信息安全技術(shù)個人信息去標識化效果評估指南
- 05G359-3 懸掛運輸設備軌道(適用于一般混凝土梁)
- 工程與倫理課程
- CKDMBD慢性腎臟病礦物質(zhì)及骨代謝異常
- 潮汕英歌舞課件
- 田字格模版內(nèi)容
- 第一章 公共政策分析的基本理論與框架
評論
0/150
提交評論