全國計算機等級考試《二級C語言程序設(shè)計》真題題庫(含答案詳解)_第1頁
全國計算機等級考試《二級C語言程序設(shè)計》真題題庫(含答案詳解)_第2頁
全國計算機等級考試《二級C語言程序設(shè)計》真題題庫(含答案詳解)_第3頁
全國計算機等級考試《二級C語言程序設(shè)計》真題題庫(含答案詳解)_第4頁
全國計算機等級考試《二級C語言程序設(shè)計》真題題庫(含答案詳解)_第5頁
已閱讀5頁,還剩158頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

(含答案詳解)一、單選題1.待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()的最小元素9與15交換,15被放在第3個位置。答案選擇B選項。了}程序運行后的輸出結(jié)果是()。選擇B選項。A、(3+4)>6解析:A項,先執(zhí)行3+4=7,7>6,結(jié)果為真;B項,先執(zhí)行3!=4為真,即為1,1>2結(jié)果為假;C項,先執(zhí)行3<=4結(jié)果為真,即1,再邏輯或運算只要左邊值為1,就不在執(zhí)行右邊運算,結(jié)果為真;D項,先執(zhí)行3<4結(jié)果為真,即為1,再執(zhí)行1==1,結(jié)果為真。答案選擇B選項。{if(x/2>1)fun(x/2);pri}了了}程序運行后的結(jié)果是()。A、137解析:函數(shù)fun是遞歸函數(shù),遞歸終止條件是x小于等于3,當大于3時遞歸調(diào)5.下列敘述中正確的是()。D、兩個連續(xù)的雙引號是合法的字符串常量個字符串常量,稱為空串。答案選擇D選項。6.下列不屬于軟件工程3個要素的是()。A、工具B、過程文檔生成;③過程,用于支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。答案選擇D#include<stdio.h>voidfun(int*p}}程序運行后的輸出結(jié)果是()。解析:語句p=p+1;只改變指針p的地址,與p的內(nèi)容無關(guān),所以m值沒有改仍為1,答案選擇A選項。9.下列敘述中正確的是()。A、所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點C、只有一個根結(jié)點,且只有一個葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D、沒有根結(jié)點或沒有葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)解析:D項正確,線性結(jié)構(gòu)的特點是:①集合中必存在“第一個元素”且惟一;均有惟一的“后繼”;④除第一個元素外,其他數(shù)據(jù)元素均有惟一的“前驅(qū)”。所以沒有根結(jié)點或沒有葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是則后序序列為()。{}}下劃線處應(yīng)填入的語句是()。A、if(i/8==0)printf("\}以下敘述中正確的是()。{inti;for(i=0;i<=n;i++)printf("*"}main(){func(3);printf("????"}程序運行后的輸出結(jié)果是()。A、****#????***#個“*”,然后輸出一個"#";輸出“????";再次調(diào)用func(4),for循環(huán)執(zhí)行5次,連續(xù)輸出五個“*”,然后輸出一個“了了了}}程序運行后的輸出結(jié)果是()。A、1012第一次i=2,a[i]=3,所以fun(&a[i])=3+2=5,這時b為5,所以=4,這時fun(&a[i])=10+4=14,所以b=fun(&a[i])+b=14+14=28。答案選15.以下敘述中錯誤的是()。解析:A項正確,NULL是在頭文件stdio.h中定義的符號常量;B項正確,函運算符“&”把該整型變量的地址賦值給該指針變量。答案選擇D選項。了了z=x++,y++,++y;printf("%d,%d,%d}程序運行后的輸出結(jié)果是()。解析:注意區(qū)分,z=x++是先將x的值賦給z,在令x自增;z=++x是自增,再將自增后的值賦給z;而無論是++x還是x++,都會完成x自增的運算。對于表達式"z=x++,y++,++y;",因為賦值運算符的優(yōu)先級高于逗號運算符的表達式z=x++,后綴自增運算先進行其他運算,再執(zhí)行自增運算,所以z的值為1,x的值為2,再計算逗號表達式第二個表達式y(tǒng)++,此時y的值為1,y++的值為2,最后計算第三個表達式++y,y的值為3。答案選擇A選項。17.若要實現(xiàn)total=1+2+3+4+5求和,以下程序段錯誤的是()。A、inti=1,total=1;while(i<5){total+=iB、inti=1,total=0;whC、inti=0,total=0;while(i解析:A項執(zhí)行過程為:i=1,total=1,判斷while循環(huán)條件1<5成立,toi=1,total=0,1<=5成立,total=0+1=1,i=2;直到程序正確。18.以下敘述中正確的是()。#include<stdio.h>mainA,b,c;a=10;b=50;c=30;if(a>b)a=b,b=}程序的輸出結(jié)果是()。D、輸入數(shù)據(jù)前要有提示信息21.以下敘述中正確的是()。A、函數(shù)的形參類型不能是指針類型B、函數(shù)的類型不能是指針類型C、設(shè)有指針變量為double*p,則p+1將指針p移動8個字節(jié)D、基類型不同的指針變量可以相互混用解析:C項正確,一般情況下,double類型的變量長度為8個字節(jié),對指針進行加、減運算時,數(shù)字“1”指1個存儲單元長度。A項錯誤,函數(shù)的形參可以函數(shù)指針;D項錯誤,int類型的指針只能指向int,不能指向double,基類型22.以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以“#”開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include<stdio.h>必須放在C程序的開頭D、C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能解析:“編譯預(yù)處理”就是在C編譯程序?qū)源程序進行編譯前,由編譯預(yù)處理程序?qū)@些編譯預(yù)處理命令行進行處理的過程。A項正確,在C語言中,凡是以“#”號開頭的行,都稱為“編譯預(yù)處理”命令行。B項錯誤,預(yù)處理命令預(yù)處理可以實現(xiàn)宏定義、條件編譯和文件包含。答案選擇A選項。23.下列敘述中正確的是()。A、棧是“先進先出”的線性表D、有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)誤,棧是“先進后出”的線性表;B項錯誤,隊列用鏈式存儲結(jié)構(gòu)。答案選擇D選項。24.有以下程序:{inta=1,b=0;if(--a)b++;elseif(a==0)b}程序運行后的輸出結(jié)果是()。A、0操作。a初始定義為1,b為0,執(zhí)行--a,a的值變?yōu)?,--a的值也為0,即if判斷為假,執(zhí)行b+=2,輸出b的值為2。答案選擇C選項。25.以下敘述中正確的是()。{chara[10]="abc",b[10]="012",c[10]="xyz";s}了/*給a賦值a=10;給b賦值b=20*/printf("a+b=%d\n",a+b);/*輸出計算結(jié)果*/}程序運行后的輸出結(jié)果是()。D、出錯解析:注釋/*和*/之間的代碼不參與編譯,所以a、b的值仍為0。答案選擇A28.以下結(jié)構(gòu)體類型說明和變量定義中正確的是()。A、typedefstruct{intn;charc;}REC;RECC、typedefstructREC:{intn=0;charc=解析:A項,用typedef定義結(jié)構(gòu)體類型名REC后,可以用REC定義變量。B答案選擇A選項。29.有以下程序段:Ch='a';k=12;printf("已知字符a的ASCII碼十進制值為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。A、因變量類型與格式描述符的類型不匹配輸出算。"ch='a'",%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進制代碼的形式輸出ch的值,為97;k沒有對應(yīng)的輸出格式,不輸出。在第二個語句中,首先輸出"k=",然后以十進制代碼輸出k的值,為12。答案選擇D選項。30.以下關(guān)于C語言函數(shù)參數(shù)傳遞方式的敘述正確的是()。A、數(shù)據(jù)只能從實參單向傳遞給形參B、數(shù)據(jù)可以在實參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實參D、C語言的函數(shù),參數(shù)既可以從實參單向傳遞給形參,A項正確,B、C、D錯誤;數(shù)組名、指針等作參數(shù),實參傳遞給形參的是地址31.以下敘述正確的是()。A、在C語言中調(diào)用fopen函數(shù)就可把程序中要讀、寫的文件與磁盤上實際的數(shù)據(jù)文件聯(lián)系起來C、fopen函數(shù)的返回值為NULL時,則成功打開指定的文件D、fopen函數(shù)的返回值必須賦給一個任意類型的指針變量解析:A項正確,C語言中打開一個文件通過系統(tǒng)函數(shù)fopen實現(xiàn),通過這個數(shù)調(diào)用中缺少參數(shù)“操作方法”,其調(diào)用的一般形式為:文件指針名=fopen(文二、程序填空題則以下敘述正確的是()。4個單元即可放下所有初始化值,故數(shù)組長度為4。所以數(shù)組s1的長度大于33.以下敘述中錯誤的是()。令中34.有以下程序(說明:字母A的ASCII碼值是65):了{}程序運行后的輸出結(jié)果是()。的字母,當取第一個字母B時,因為B的ASCII碼值為66,所以不會輸出B,字母Y的ASCII碼值為89,字母T的ASCII碼值為84,字母E的ASCII碼值為69,所以最后輸出字母YE。答案選擇D選項。了了scanf("%c%c",&a,&b);c=getchar();d=getchar();printf("%}則輸出結(jié)果是()。A、1234符,格式是由“%”和格式字符組成。getchar()上讀入一個字符。根據(jù)程序中的格式控制可知,接收輸入時分別把1賦給了a,2賦給了b,然后getchar()函數(shù)提取一個換行符賦給c,再提取一個字符3賦給了d。所以程序的輸出結(jié)果為:12<CR>3。答案選擇C選項。36.C語言主要是借助以下()功能來實現(xiàn)程序模塊化的。A、定義函數(shù)C、三種基本結(jié)構(gòu)語句D、豐富的數(shù)據(jù)類型解析:C程序的模塊化主要通過函數(shù)來實現(xiàn)。C語言允許對函數(shù)單獨進行編譯,37.下列二叉樹描述中,正確的是()。A、任何一棵二叉樹必須有一個度為2的結(jié)點B、二叉樹的度可以小于2C、非空二叉樹有0個或1個根結(jié)點D、至少有2個根結(jié)點解析:空樹度為0,斜二叉樹度為1,故A項錯誤,B項正確。空二叉樹沒有結(jié)C和D項錯誤。答案選擇B選項。則下列操作中正確的是()。解析:圖中關(guān)系R比關(guān)系S多一行T中的元組,故由關(guān)系R和S得到關(guān)系T的操作是差。答案選擇D選項。39.下面不屬于黑盒測試方法的是()。B、基本路徑測試C、等價類劃分法解析:常見的黑盒測試方法有:等價類劃分法、邊界值分析法、錯誤推測法以及因果圖等;常見的白盒測試方法有:邏輯覆蓋測試和基本路徑測試。答案選擇BB、數(shù)據(jù)庫設(shè)計C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換41.有以下程序(其中的strstr()函數(shù)頭部格式為:char*strstr(c串首地址):#include<stdio.h>#include<string.h>char*Char*b="WeleyoutoBeijing!";main(){char*p;p=strstr(b}程序的運行結(jié)果是()。含結(jié)束標志)。strstr函數(shù)返回的地址下標值為8,加上a長度3,再加1,指針P指向的地址下標值為12,輸出:toBeijing!,答案選擇A選項。度(根結(jié)點在第1層)為()。敘述正確的是()。解析:"stdio.h"文件中包含標準輸入輸出函數(shù)的函數(shù)說明,預(yù)處理指令#include<stdio.h>是指程序可以在該文件中找到printf,scanf等函數(shù),答案選擇A選項。44.下面描述不屬于軟件特點的是()。A、軟件是一種邏輯實體,具有抽象性B、軟件在使用中不存在磨損、老化問題C、軟件復雜性高D、軟件使用不涉及知識產(chǎn)權(quán)知識產(chǎn)權(quán)等。答案選擇D選項。45.設(shè)序列長度為n,在壞情況下,時間復雜度為O(log2n)的算法是()。A、二分法查找B、順序查找C、分塊查找D、哈希查找解析:對長度為n的線性表排序,壞情況下時間復雜度,二分法查找為O(1og2n);順序查找法為O(n);分塊查找時間復雜度與分塊規(guī)則有關(guān);哈希查46.計算機軟件包括()。47.以下能正確輸出字符a的語句是()。#include<stdio.h>#defineS(x)x*xmain(){intk=5j=2;printf("%d}程序的運行結(jié)果是()。+2,計算時先計算2*k,結(jié)果為21;Sj+k+2)被置換成j+k+2*j+k+2,計算時先計算2*j,結(jié)果為18。程序的運行結(jié)果是了了}}程序運行時,從鍵盤輸入:3<回車>后,程序輸出結(jié)果為()。本題執(zhí)行過程為:輸入3,則data=3;執(zhí)行for循環(huán),i=0,if條件成立,結(jié)束出i值3,4,;直到i=5退出for循環(huán)。答案選擇A選項。句中正確的是()。解析:定義了結(jié)構(gòu)體類型數(shù)組s,長度為2,結(jié)構(gòu)體類型數(shù)組m,長度為2,并壞情況下需要比較的次數(shù)為()。{char*p=s;while(*p++!='\0');}main(){char*p="01234";printf("%d\}程序的運行結(jié)果是()。A、6址之差,也即是字符串長度加1。輸出地址差為6,答案#includemian(){charc;for(;(c=getchar())!='#';)putch}執(zhí)行時如輸入為:abcdefgh#<回車>,則輸出結(jié)果是()。A、bcdefg行putchar(++c),即將當前變量c的ASCII碼加1后,再輸出改變后的變量c的值。當變量c的值等于#,則終止循環(huán),所以輸出應(yīng)該是bcd立即執(zhí)行以下語句,正確的語句是()。A、p=x;56.關(guān)于地址和指針,以下說法正確的是()。B、可以取一個常數(shù)的地址賦值給同類型的指針變量C、可以取一個表達式的地址賦值給同類型的指針變量D、可以取一個指針變量的地址賦值給基類型相同的指針變量址屬于指針,只能賦值給指針類型的指針變量,D項錯誤。答案選擇57.以下敘述正確的是()。A、do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為0時結(jié)束循環(huán)B、do-while語句和while-do構(gòu)成的循環(huán)功能相同C、while-do語句構(gòu)成的循環(huán),當while語句中的表達式值為非0時結(jié)束循環(huán)D、o-while語句構(gòu)成的循環(huán),必須用break語句退出循環(huán)o循環(huán)先判斷循環(huán)條件語句,再執(zhí)行循環(huán)體;C項錯誤,do-while語句構(gòu)成的Voidfun(int*x,ints,i了了}fun(m,0,3);fun(m+4,0,5);fun(m,0,9);for(k=0;k<10;k++)printf("程序的運行結(jié)果是()。解析:程序的執(zhí)行過程為:定義數(shù)組m,并為其賦初值,數(shù)組長度為10。調(diào)用函數(shù)fun(m,0,3)將數(shù)組首地址傳入函數(shù),函數(shù)實現(xiàn)將數(shù)組下標值從0調(diào)用函數(shù)fun(m+4,0,4)將數(shù)組下標值為4的元素地址傳入函數(shù),函數(shù)實現(xiàn)將數(shù)組下標值從4到9的元素首尾倒置,for循環(huán)結(jié)束之后數(shù)組為m=數(shù)組下標值從0到9的元素首尾倒置,for循環(huán)結(jié)束之后數(shù)組為m={4,5,6,7,8,9,0,1,2,3}。依次輸出數(shù)組元素,結(jié)果為4567890123。答案選擇A選項。二、程序填空題以下表達式值不等于12的是()。D選項邏輯表達式x==y不成立,則z=0,表達式值為0。B選項逗號表達式x,程序段的輸出結(jié)果是()。A、61。執(zhí)行pAd=sum++,sum++是后置自61.在壞情況下()。62.以下關(guān)于宏的敘述錯誤的是()。63.以下選項中,合法的C語言常量是()。串常量,用一對雙引號括起來的一串字符。1.234為實型常量,A項正確;'C+類型常量,C項錯誤;2Kb不合法,若加上雙引號"2Kb"為字符串常量,D項錯誤。答案選擇A選項。64.關(guān)于C語言標識符,以下敘述錯誤的是()。C、標識符可全部由小寫字母組成頭,故答案選擇A選項。了default:nn++;case'0':n0++;case'1':n}}while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n"}配case'2',n2=2;s[2]='0',匹配case'0',n0=1,n1=2,n2=3;s[3]='1',匹配case'1',n1=3,n2=4;s[4]='1',匹配case'l',n1=4,n2=5;s9',匹配default,nn=1,n0=2,n1=5,n2=6;s[6]='1',匹配case'1',n1=6,n2=7;s[7]='1',匹配case'1',n1=7,n2=8;s[8]='0',匹配case'0',n0=3,n1=8,n2=9;s[9]='\0',對應(yīng)ASCII碼為0,退出循環(huán)。輸出n0,n1,n2,nn為3,8,9,1。答案選擇A選項。\n'實際上是一個字符,它的ASCII碼值為10,不存在'\\n'用法。答案選擇A選67.下列敘述中正確的是()。A、存儲空間連續(xù)的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)B、存儲空間不連續(xù)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)C、沒有根結(jié)點的非空數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D、具有兩個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)根結(jié)點,具有兩個根結(jié)點的結(jié)構(gòu)一定是非線性結(jié)構(gòu)。答案選擇D選項。{if(x>10)printf("1");elseif(x>20)printf("2");e}若運行時輸入:35<回車>,則輸出結(jié)果是()。A、123解析:程序執(zhí)行過程為:輸入35<回車>,scanf函數(shù)從鍵盤讀入35賦值給x=35,對if條件進行判斷,35>10,條件成立,輸出1,不再執(zhí)行下面的elseifA、屬性70.以下選項中敘述正確的是()。用的是()。若串s1>串s2,函數(shù)值大于0(正數(shù));若串s1=串s2,函數(shù)值等于0;若串s1<串s2,函數(shù)值小于0(負數(shù))。答案選擇A選項。{intx=0x13;if(x=0x18)printf("T");printf("F")}程序運行后的輸出結(jié)果是()。#include<stdio.h>voidcalc(floatx,floaty,flo }main(){floatx,y,add;scanf("%f%f",&x,&y);calc(x,y,&add);pr}Calc函數(shù)中下劃線處應(yīng)填入的是()。A、*sumVoidchange(int*array,int了for(;len>=0;len--)array[leinti,array[5]={2,2};change(array,4);for(i=0;i<5;i75.C語言中,基本的數(shù)據(jù)類型包括()。inti,array[5]={3,5,10,4};for(i=0;i<5;i++)}程序運行后的輸出結(jié)果是()。解析:在對數(shù)組進行初始化時,如果在聲明數(shù)組時給出有的元素賦予初始值,那么C語言將自動對余下的元素賦初值0,則Array={3,5,10,4,0}。按位與運算“&”,當參加運算的兩個二進制數(shù)的對應(yīng)位都為1,則該位的結(jié)果為1,否則為0。將數(shù)組元素與3按位與,即3&3=3,5&3=1,10&3=2,4&3=0,0&3=0。for循環(huán)輸出與運算結(jié)果:3,77.下列敘述中錯誤的是()。A、算法的時間復雜度與算法所處理數(shù)據(jù)的存儲結(jié)構(gòu)有直接關(guān)系B、算法的空間復雜度與算法所處理數(shù)據(jù)的存儲結(jié)構(gòu)有直接關(guān)系C、算法的時間復雜度與空間復雜度有直接關(guān)系D、算法的時間復雜度與算法程序執(zhí)行的具體時間是不一致的算法程序執(zhí)行的具體時間是不一致的,D項正確。答案選擇C選項。78.下面屬于白盒測試方法的是()。A、邊界值分析法C、等價類劃分法D、錯誤推測法值分析法、錯誤推測法和因果圖等,ACD三項錯誤。答案選擇B選項。79.以下選項中,合法的實數(shù)是()。點的位置不受限制。指數(shù)形式由十進制數(shù)加階碼標志"e"或“E”以及階碼(只間的聯(lián)系是()。A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系解析:實體集之間的聯(lián)系分為3類:一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、公司與雇員之間的聯(lián)系為一對多(1:m)聯(lián)系。答案選擇B選項。輸出結(jié)果是()。解析:C語言中,“>>”右移運算符是將變量轉(zhuǎn)換成二進制,然后右移相應(yīng)位數(shù),將移出的位信息舍去,并在高位補0,將所得的結(jié)果再賦值給變量。本題十進制數(shù)8轉(zhuǎn)換為二進制數(shù)為00001000,右移一位得到00000100,再轉(zhuǎn)換成十進制數(shù)就是4。所以答案選擇C選項。其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。可知,關(guān)系T=RS。答案選擇D選項。84.以下敘述中正確的是()。A、程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試D、以上三種說法都不完整解析:程序設(shè)計是指設(shè)計、編程、調(diào)試程序的方法和過程,通常分為4個階段:本概念、工具、方法及方法學,是目標明確的智力活動。答案選擇D選項。85.在E-R圖中,用來表示實體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形解析:在E-R圖中,菱形表示聯(lián)系,矩形表示實體,橢圓形表示屬性。答案選擇C選項。了}}程序運行后的輸出結(jié)果是()。fault語句之后沒有break語句,因此繼續(xù)執(zhí)行case2,c變?yōu)?,之后執(zhí)行Break語句跳出本次循環(huán)。下次循環(huán)k=2,直接執(zhí)行case2,c自增為3后跳出#include<stdio.h>#include<stcharstr[][20]={"One*World","One*Dream!"},*p=str[1];}程序運行后的輸出結(jié)果是()。88.表達式:(int)((double)9/2)-9%2的值是()。A、0再進行減法運算。強制類型轉(zhuǎn)換表達式的形式:(類型名)(表達式)。“9/2”結(jié)果為4,轉(zhuǎn)換成double類型再轉(zhuǎn)換成int類型結(jié)果依然為4,9%2的結(jié)果為1,后結(jié)果為4-1=3。答案選擇B選項。功能相同的是()。A、if((a>b)&&(b>c))k=1;else解析:三元運算符表達式的形式為:表達式1?表達式2表達式3,當表達式1的值為真時,結(jié)果為表達式2的值;當表達式1的值為假時,結(jié)果為表達式31:0);判斷b、c的關(guān)系,如果b>c,k=1,否則k=0;②如果a≤b,則k=擇B選項。了了}程序運行后的輸出結(jié)果是()。解析:m和n的值不變,分別是1,2;指針*p和=&n,*q=&m,分別為2,1。答案選擇B選項。#include<stdio.h>#include<stchara[10]="abcd";printf("%d,%d\n",strle}程序運行后的輸出結(jié)果是()。A、7,4個數(shù)為4,但由于數(shù)組a定義含有10個字符,所以所占空間大小為10。所以答案選擇B選項。{}main(){inta=1;fun(a);printf}程序運行后的輸出結(jié)果是()。且0≤i<4,則錯誤的賦值是()。A、p=a{charc1,c2;c1='A'+'8'-'4}已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是()。D、輸出無定值A(chǔ)、structord{intx;inty;intz;};structo98.下列函數(shù)的功能是()。了{inta=1,b=0;printf("%d,",b=a+b);printf}程序運行后的輸出結(jié)果是()。并將b打印出來。接著做運算2*b結(jié)果為2*1=2賦值給a,將a打印出來,所以終的輸出結(jié)果為1,2。答案選擇D選項。解析:C語言中if語句后面只跟一條語句時,可以省略大括號。即if語句僅作用于緊隨其后的那條語句或者是復合語句的內(nèi)容,所以A項,執(zhí)行三條語句組成的復合語句;BD兩項執(zhí)行大括號中的三條語句;而C項只執(zhí)101.下列關(guān)于C語言文件的敘述中正確的是()。A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件D、文件由字符序列組成,其類型只能是文本文件解析:C語言將文件看作是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCII文件,又稱文本(text)文件,它的每一個字節(jié)可放一個ASCII碼,代出到磁盤上存放。所以C文件就是一個字節(jié)流或一個二進制流。答案選擇C選102.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。A、可封裝解析:結(jié)構(gòu)化程序設(shè)計的基本原則包括:①模塊化;②自頂向下;③逐步求精;④限制使用goto語句??煞庋b是面向?qū)ο蟮脑O(shè)計思想。答案選擇A選項。103.算法的空間復雜度是指()。A、算法在執(zhí)行過程中所需要的計算機存儲空間C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的臨時工作單元數(shù)#include<stdio.h>#include<string.h>structA{inta;chstructAa={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1}t.a=1002;strcpy(t.b,"ChangRong");t}程序運行后的輸出結(jié)果是()。了了}}造成錯誤的原因是()。解析:本題中for循環(huán)中首先將MIN值賦值給max,然后用A、charstr[]="string";c=確。A項定義字符數(shù)組str,再將字符數(shù)組str的首地址賦給字#include<stdio.h>main(){intn=2,k=0;while(k++&&n++>2);p程序運行后的輸出結(jié)果是()。A、02答案:D解析:(表達式1)&&(表達式2)中,如果表達式1為假或0,那么表到式2就不會被執(zhí)行。本題中首先進入while的判斷語句,執(zhí)行k++和n++。k++為零,不滿足循環(huán)條件,所以n++不會被執(zhí)行,while循環(huán)結(jié)束后,k經(jīng)過運算自增為1,n沒有進行運算,仍為2。答案選擇D選項。二、程序填空題110.若有定義語句:A、-20解析:單目加運算符優(yōu)先級高于賦值運算符,所以先做x+x結(jié)果為20,再做x20,結(jié)果為-10,然后賦值給x。所以答案選擇B選項。111.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。B、帶鏈隊列C、二叉樹D、帶鏈棧是一個頭結(jié)點和尾結(jié)點互為前驅(qū)結(jié)點和后繼結(jié)點的特殊的隊列,屬于線性結(jié)構(gòu);112.有以下程序:{chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>}程序運行后的輸出結(jié)果是()。解析:程序中main函數(shù)的作用就是判斷字符串s中小寫字母的個數(shù),顯然結(jié)果為2。答案選擇B選項。113.閱讀以下程序:}該程序編澤時產(chǎn)生錯誤,其出錯原因是()。A、定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符B、定義語句出錯,printF不能用作用戶自定義標識符D、定義語句無錯,printf不能輸出case的值#include<stdio.h>#definef(xinta=3,s,t;s=f(a+1);t=f((a+1)}程序運行后的輸出結(jié)果是()。該圖是()。B、PAD圖C、程序流程圖控制流向;E-R圖即實體-聯(lián)系圖,用來描述現(xiàn)實體、屬性和聯(lián)系,分別用矩形、橢圓形和菱形表示。所以答案選擇C選項。116.對于循環(huán)隊列,下列敘述中正確的是()。A、隊頭指針是固定不變的B、隊頭指針一定大于隊尾指針C、隊頭指針一定小于隊尾指針D、隊頭指針可以大于隊尾指針,也可以小于隊尾指針解析:在循環(huán)隊列中,用隊尾指針(rear)指向隊列中的隊尾元素,用隊頭指針(front)指向隊頭元素的前一個位置。在循環(huán)隊列中,一般情況下rear>front,當存儲空間的后一個位置被使用,而新元素要入隊時,如果存置,此時存儲空間的第一個位置作為隊尾,便有front>rear。所以答案選擇D117.數(shù)據(jù)庫管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)③各種服務(wù)性程序;④各種數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,答案選擇B選項。118.有以下程序:#include<stdio.h>ma}for(i=0;i<4;i++)printf("%d",a[i]);prin}程序運行后的輸出結(jié)果是()。=0”,后將數(shù)組順序輸出。所以程序功能是將數(shù)組下標為奇數(shù)的項設(shè)為0,數(shù)#include<stdio.h>intf(intn);}了}程序運行以后的輸出結(jié)果是()。s=4;第二次調(diào)用時,a初值為2,調(diào)用后,a=3,n=5,s=4+5=9,所以由關(guān)系R通過得到關(guān)系S,則所使用的運算為()。案選擇B選項。了structord*p=dt;printf("%d",++p->x);print}程序運行后的輸出結(jié)果是()。*p=dt;,表示p指向dt[0]。++p->x中,->的優(yōu)達式等價于++(p->x),因為p->x為1,所以這個值為2,同理,第二個++p->y的值為2+1=3。答案選擇B選項。#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b}所以c值仍為3。答案選擇C選項。A、系統(tǒng)將自動給k賦初值0B、這時k中的值無定義#include<stdio.h>intf(int了了}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));pri}程序運行后的輸出結(jié)果是()。A、10(a,b)代入a=3,b=4,得3,然后計算f(a,c),代入a=3,c=5得6,所以d=f(f(a,b),f(a,c));,即為計算d=f(3,6),值為9。答案選擇B選項。點)數(shù)等于度為2的結(jié)點數(shù)加1。所以該二叉樹的葉子結(jié)點數(shù)為5+1=6。答案選擇C選項。了了了了}}第一次i=2,a[i]=3,所以fun(&a[i])=3+2=5,這時b為5,所以b=fun(&a[i])A[i]=4,這時fun(&a[i])=10+4=該程序段的輸出結(jié)果是()。A、******129.下列敘述正確的是()。#include<stdio.h>main(){inta1,a2;chascanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d}若想通過鍵盤輸入,使得a1的值為12,得a2的值為34.得c1的值為a,得A、12a34b<CR>A選項。131.以下選項中合法的標識符是()。A、屬性C、關(guān)系D、域選擇C選項。133.有以下程序:#include<stdio}程序運行后的輸出結(jié)果是()。5的二進制是101,在<<2后為10100,然后和00001進行或運算后等于10101,其十進制為21;②a<<2即為a*4,結(jié)果為20,|1相當于保證這個數(shù)是奇數(shù),若不是則加1,所以為21。答案選擇A選項。其中“表達式”()。則對x數(shù)組元素的正確引用是()。解析:數(shù)組的下標是從0開始的,故x[10]實選擇B選項。了了intx;scanf("%d",&x);if(x<=3);elseif(程序運行時,輸入的值在哪個范圍內(nèi)才會有輸出結(jié)果?()A、不等于10的整數(shù)B、大于3且不等10的整數(shù)C、大于3或等于10的整數(shù)D、小于3的整數(shù)解析:第一個if有一個else語句,若x<=3,就什么也不做,若x>3,則進入范圍應(yīng)為大于3且不等于10的整數(shù)。答案選擇B選項。f=fopen("filea.txt","w");fprintf(f,"abc");f}中的內(nèi)容為()。解析:Fopen("filea.txt","w");表示以寫的138.有以下程序:{char*a[]={"abcd","ef","gh"for(i=0;i<4;i++)printf("%c",}程序運行后的輸出結(jié)果是()。解析:Char*a[]定義了一個指向數(shù)組的指針。由題中初始化結(jié)果得:*a[0]="abcd",a[1]="ef",a[2]="gh",a[3]="jjk",但是在輸出語句時要求輸擇A選項。#include<stdio.h>voidfun(int*a,}{intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d",*p,*q)}程序運行后的輸出結(jié)果是()。140.以下選項中正確的語句組是()。A、判斷m是否能被5或者7整除B、判斷m是否能被5和7整除C、判斷m被5或者7整除是否余1D、判斷m被5和7整除是否都余1解析:IsDIV(m,5)&&IsDIV(m,7)為真,即表達式(m%5==1)?10)結(jié)果為1,且表達式((m%7==1)?10)結(jié)果也為1,也就是m%5,m%7都等于1,所以表達的是,判斷m被5和7整除是否都余1。答案選擇D選項。B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性C、耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度答案選擇B選項。143.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹儲類別是()。#include<stdio.h>intfun(int了inta=4,b=5,c=6;printf("%}程序運行后的輸出結(jié)果是()。A、3解析:fun的功能是求兩數(shù)的平均數(shù),并且參數(shù)和結(jié)果都為整型。題中是用一Fun(b,c),值為5。fun(2*a,fun(b,c))即為計算fun(2*4,5),所以結(jié)果為(5+8)/2=6。答案選擇B選項。二、程序填空題146.數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是()。A、數(shù)據(jù)庫設(shè)計B、數(shù)據(jù)庫系統(tǒng)設(shè)計C、數(shù)據(jù)庫維護D、數(shù)據(jù)庫管理員培訓解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)是在數(shù)據(jù)庫管理系統(tǒng)(DBMS)支持下建立的計算機應(yīng)用系統(tǒng),其核心問題是數(shù)據(jù)庫設(shè)計。答案選擇A選項。147.設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是()。A、n=0;while((ch=getchar())!="\n"達式格式錯誤,應(yīng)在ch前添加";",注意for循環(huán)中有三個表達式,必須有兩輸出結(jié)果是()。解析:輸出的x與y間沒有空格,“%8.6f”代表總共8位寬度,包括小數(shù)點,小數(shù)點后有6位小數(shù)。答案選擇A選項。{}注意:字母a的ASCII碼值為97,程序運行后的輸出結(jié)果是()。A、d解析:Good中g(shù)的ASCII碼值為103,o的ASCII碼值為111,d的ASCII母e(或E)之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),故C項錯誤;八進制整數(shù)常量以數(shù)字0開始,而不是o,故A項錯誤。在八進制數(shù)中的有效數(shù)字為0~7,故B項錯誤;L是長整型數(shù)據(jù)標識,115L為長整型常數(shù)即longint,D項正確。答案選擇D選項。151.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、匯編程序解析系統(tǒng)軟件主要包括:①操作系統(tǒng)軟件②各種語言的解釋程序和編譯程序;152.有以下程序:}程序運行后的輸出結(jié)果是()。為7.5,注意,7前面有一個空格字符。%4.1f要求輸出的浮點數(shù)的寬度為4(包入語句是()。Voidf(int*p,int*q);ma了}{p=p+1;*q=*q+1;}程序運行后的輸出結(jié)果是()。D、1,2仍為1,答案選擇A選項。以上表達式中,值不為6的是()。然后再計算x*=3,所以x=2*3=6;B項,x++得3然后2*x得6;原理一致。D項,2*x雖然結(jié)果為4,但沒有賦值,此時x的值仍為2,所以最{}}下劃線處應(yīng)填入的語句是()。A、if(i/8==0)printf("\D、if(i%8==0)continue;解析:每行輸出8個數(shù)組數(shù)據(jù)后輸入一個換行,所以應(yīng)該采取對8取余的方法,157.下面敘述中錯誤的是()。A、軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤B、對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測試應(yīng)嚴格執(zhí)行測試計劃,排除測試的隨意性出高質(zhì)量的完全符合用戶需要的軟件。答案選擇A選項。158.設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。B、while((s[i++]=getD、o{scanf("%c",&s[i]);}whil數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止;B項,159.有以下程序:#include<stdio.h>machar*s={"ABC"};do{prin}注意:字母A的ASCII碼值為65,程序運行后的結(jié)果是()。A、5670解析:每進行一次循環(huán),將輸出s指向字母的ASCII碼值除以10的余數(shù)。第一次執(zhí)行循環(huán),s指向字符'A',字符'A'的ASCII碼值為65,第一次輸出65%10的余數(shù)5,字符'A'的ASCII碼值大于0,進入第二次循環(huán),并執(zhí)行s++,s指向字符'B';第二次循環(huán),字符'B'的ASCII碼值為66,輸出66%10的余數(shù)6,字符'B'的ASCII碼值大于0,進入第三次循環(huán),并執(zhí)行s++,s指向字母'C';第三次循環(huán),字符'C'的ASCII碼值為67,輸出67%10的余數(shù)7,字符'C'的ASCII碼值大于0,進入第四次循環(huán),并執(zhí)行s++,s指向串結(jié)束標志'\0';第四次循環(huán),字符'\0'對應(yīng)ASCII值為0,輸出0,字符字符'\0'的ASCII碼值等于0,退出循環(huán)。因此,輸出結(jié)果為5670。答案選擇A選項。160.下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡單選擇排序C、直接插入排序D、堆排序(n2),而堆排序為0(nlog2n)。答案選擇D選項。161.下列敘述中正確的是()。A、循環(huán)隊列有對頭和隊尾兩個指針,因此,循環(huán)C、在循環(huán)隊列中,只需要對尾指針就能反應(yīng)隊列中元素的動態(tài)變化環(huán)形空間。循環(huán)隊列仍然是順序存儲的線性結(jié)構(gòu),是隊列常采用的形式,故A項錯誤。在循環(huán)隊列中,用隊尾指針rear指向隊尾元素,用隊頭指針front指了隊列中元素的動態(tài)變化情況,BC兩項錯誤。從隊頭指針指向的后一個位置與162.下列敘述中正確的是()。A、順序存儲結(jié)構(gòu)的存儲空間一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的B、順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)C、順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表D、鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間鏈式存儲結(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù)。BC兩項錯誤,線性表構(gòu)和鏈式存儲結(jié)構(gòu)都是既可用于線性結(jié)構(gòu),也可以用于非線性結(jié)構(gòu);D項錯誤,163.以下關(guān)于宏的敘述中正確的是()。B、宏定義必須位于源程序中所有語句之間了}程序的運行結(jié)果是()。165.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1="China",*s2="Beijin}以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。A、ChinaD、BeijingChina解析:Pf是一個文件指針,fopen("abc.dat","wb+");執(zhí)行后,pf指向可讀寫的二進制文件abc.dat。語句fwrite(s2,7,1,pf);是將s2的前7*1個字符的內(nèi)容寫入,替換掉原來位置上的內(nèi)容,所以結(jié)果為Chinang。答案選擇B選項。#include<stdio.h>main(){i{}程序運行的結(jié)果是()。A、*70,則終止dowhile循環(huán)。第1遍循環(huán),5%3==1不成立,執(zhí)行i++,i變?yōu)?,第1遍循環(huán)結(jié)束,判斷(i!=0)為真,繼續(xù)循環(huán)。第2遍循環(huán),6%3==1不成遍循環(huán)7%3==1成立,7%3==2成立,執(zhí)行if子句printf("*%d",i);break;,了for(j=1;j<=2;j++)printf("%d",i+j);prin}}程序運行的結(jié)果是()。(以下<CR>代表回車)D、45<CR>34<CR>23解析:在外循環(huán)中,循環(huán)變量i從3遞減到1,所以外循環(huán)將進行3次,i的值依次為3、2、1。在內(nèi)循環(huán)中,循環(huán)變量i從1遞增到2,所以內(nèi)循環(huán)將進行2次,j的值依次為1、2。內(nèi)循環(huán)的循環(huán)體輸出i+j的值,每次內(nèi)循環(huán)結(jié)束后,還會輸出一個換行符。所以程序終輸出的結(jié)果是3+1、3+2、換行、2+1、2+2、換行、1+1、1+2、換行。答案選擇D選項。168.有以下程序:#include<stdio.h>#include<strprintf("%d,%d\n",str}以結(jié)果為13+1=14。答案選擇B選項。{intm,i;m=s[0][k];for(i=1;i<n;i++)if(s[i]inta[4][4]={1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}}就是搜索a[0][0]~a[3][0]之間的大值,這4個值分別是1、11、21、31,所以structst*p=data;printf("%d,",p->y);printf("%}程序運行的結(jié)果是()。Data[0],++p則指向data[1],所以輸出p->y,(++p)->x和171.下列與棧結(jié)構(gòu)有關(guān)聯(lián)的是()。172.以下不能正確表示代數(shù)式的C語言表達是()。解析:條件表達式形式為<表達式1>?<表達式2>:<表達C、多態(tài)性D、標識唯一性塊內(nèi)部各部分及模塊間的關(guān)系的一種衡量標準。答案選擇A選項。176.下面屬于黑盒測試方法的是()。C、判定覆蓋測試D、語句覆蓋測試覆蓋、判斷覆蓋、條件覆蓋;②基本路徑測試ACD三項屬于白盒測試。答案選擇B選項。177.以下敘述中錯誤的是()。A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值C、用戶定義的函數(shù)中若沒有return語句,則應(yīng)當定義函數(shù)為void類型D、函數(shù)的return語句中可以沒有表達式解析:用戶定義的函數(shù)有兩種:①void函數(shù),可以沒有return語句,如果有r語句。在一個函數(shù)內(nèi),可以根據(jù)需要在多處出現(xiàn)return語句,但無論有多少個任何表達式;B項,用戶定義的函數(shù)可以有多個return語句,但是只能返回一個函數(shù)值。答案選擇B選項。178.以下敘述中正確的是()。A、C程序的基本組成單位是語句B、C程序中的每一行只能寫一條語句C、簡單C語句必須以分號結(jié)束D、C語言必須在一行內(nèi)寫完179.若有說明:typedefstruct{inta;charc;}w;,則以下敘述正確的是A、編譯后系統(tǒng)為w分配5個字節(jié)B、編譯后系統(tǒng)為w分配6個字節(jié)C、編譯后系統(tǒng)為w分配58個字節(jié)D、編譯后系統(tǒng)不為w分配存儲空間解析:w是一個自定義類型,不是變量,故編譯后系統(tǒng)不為w分配存儲空間。當w定義為結(jié)構(gòu)體變量時才會為其分配存儲空間。答案選擇D選項。180.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。B、循環(huán)鏈表C、二叉鏈表A、N-S圖182.下列形式中不合法的常量是()。解析:-028表示的是八進制的整型常量,但八進制的數(shù)字只能用0~7表示。了}184.下面對軟件特點描述不正確的是()。185.以下敘述中錯誤的是()。#defineM5#definef(x,y)x*y+Mmain(){intk;k=f(2,3)*f(2,3);printf(}程序的運行結(jié)果是()。2*3+5*2*3+5=41。答案選擇B選項。Inta[]={1,2,3,4,5,6,7,8,9},sA、13C、17D、45188.在E-R圖中,表示實體的圖形是()。A、矩形C、菱形189.以下不是C語言字符型或字符串常量的是()。A、-1C、1#include<stdio.h>#include<st{int*p;p=(int*)malloc(si*p=n;return*p;}main(){int}程序運行的結(jié)果是()。A、0并返回p指向的空間的值,即為n。fun(10)的返回值為10,所以a=fun(10)后a的值為10,a+fun(10)=20。答案選擇C選項。出版日期。能作為關(guān)鍵字的是()。193.以下選項中不能作為C語言合法常量的是()。A、'cd'194.C語言編譯程序的功能是()。A、0字符串的長度,不包含字符'\0',所以值#include<stdio.h>main(){intsum=0,x=5;do{sum+=x;}while(!--x)}程序的運行結(jié)果是()。執(zhí)行While中的表達式,結(jié)果為0,退出循環(huán),所以運行結(jié)果是5。答案選擇B選項。198.C源程序中不能表示的數(shù)制是()。A、二進制B、八進制C、十進制D、十六進制算機只能識別二進制數(shù),但二進制不能用源程序表示。答案選擇A選項。#include<stdio.h>#include<math.h了了了了}}}程序的運行結(jié)果是()。時才執(zhí)行x++,即只有j取1和3時,執(zhí)行x++,此時x=1+1+1=3,跳出內(nèi)intx=1,y=2,z=3;if(x>y)if(y<z)printf("%d",++z);elseprintf(}程序運行的結(jié)果是()。擇D選項。202.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。B、事件驅(qū)動C、模塊調(diào)用示變換數(shù)據(jù)的處理邏輯;③缺少右半邊的矩形表示數(shù)據(jù)的存儲;203.構(gòu)成C語言程序的三種基本結(jié)構(gòu)是()。A、順序結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、遞歸結(jié)構(gòu)C、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、嵌套結(jié)構(gòu)204.數(shù)據(jù)庫管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)解析系統(tǒng)軟件主要包括:①操作系統(tǒng)軟件②各種語言的解釋程序和編譯程A、(*)p.next=(*q).next;free解析:要刪除結(jié)點q,首先要將q的上一個結(jié)點P的指針Scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下A、uuu1,2,3<回車>B、1u2u3<回車>D、1,2,3<回車>面。B項,沒有輸入非格式符","。答案選擇A=10;b=50;c=30;if(a>b)a=b,b=c;C=a;printf("a=%db=%dc=序的輸出結(jié)果是()。A、單鏈表提取出的是()。#include<stdio.h>intf}了}程序運行的結(jié)果是()。A、1=2,返回fun(3,1),此時b=1,返回fun(2,0),b=0,返回a的值2。答案選擇B選項。{chara=4;printf("%d}程序運行的結(jié)果是()。A、40a的二進制移位運算,左移一位相當于原數(shù)乘以2,a<<1結(jié)果為4*2=8,沒有超過char類型的范圍,將8賦值給a,并輸出a的值。答案選擇C選項。{}程序的運行結(jié)果是()。符語法規(guī)則,執(zhí)行--b,此時b為5,賦給i,i=5。j=a++,將a=5先賦給j,擇B選項。了for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);pri}程序運行的結(jié)果是()。{intk=10;printf("%4d,%o,%}解析:%4d表示輸出占4個字符的十進制,故先輸出2個空格,然后輸出10;%o表示輸出八進制,所以輸出10的八進制為12;%x表示輸出十六進制,即a。#include<stdio.h>main(){charch='Z';ch=(ch-'A'+1)%26+'A';pu}程序的運行結(jié)果是()。解析:'Z'的ASCII碼是90,'A'是65,執(zhí)行eh=(ch-卡兒積是一個4元關(guān)系,有4個元素,A項錯誤。R與S有公共的屬性B,可通過公共屬性的相等值進行連接,這種連接稱之為自然連接。答案選擇D選項。220.有以下定義:以下敘述中錯誤的是()。A、x的內(nèi)存地址與x.i的內(nèi)存地址相同B、structdata是一個類型名C、初始化時,可以對x的所有成員同時賦初值D、成員i、c和d占用的是同一個存儲空間解析:變量i、c、d是結(jié)構(gòu)體變量x中三個不同的成員,占用不同的存儲空間。答案選擇D選項。補充:區(qū)分struct和union,union的各個數(shù)據(jù)成員共221.下面不屬于軟件設(shè)計階段任務(wù)的是()。B、軟件的總體結(jié)構(gòu)設(shè)計D、軟件的過程設(shè)計程設(shè)計。軟件的功能確定是在需求分析階段完成A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個階段相同共享自身又可極大地減少數(shù)據(jù)冗余性。答案選擇C選項。223.一個棧的初始狀態(tài)為空。現(xiàn)將元素1E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEDoublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;則錯誤引用x數(shù)組元素的是()。組大小為n時,下標的取值范圍為0~(n-1),所以本題中x的下標為0~4,x[5]225.在C語言程序中,下列說法正確的是()。226.計算機能直接執(zhí)行的程序是()。成一個后綴為.obj的二進制文件(稱為目標程序),后還要由“連接程序”(Li誤的是()。m[i]的值為4,即m[4]的值為1。答案選擇C選項。#include<stdio.h>#deVoidfun(inta[][N],in{inti;for(i=0;i<N;i++)b[i]intx[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}}程序的運行結(jié)果是()。229.有以下程序:casel:case3:case5:putchar(C);printf("%d",++n);break;defau}程序的運行結(jié)果是()。A、Ne1NN1時,c='e',執(zhí)行case1分支,沒有break語句,繼續(xù)執(zhí)行case3分支,沒有break語句,繼續(xù)執(zhí)行case5分支,輸出el;k=2時,c=A、a1Fc='c',輸出c2;k=4,c='h',輸出N。故程序的輸出結(jié)果為Ne1Nc2N。答案{inti;for(i=0;i<4;i++)printf("%c",p[i][i]chars[6][6]={"ABCD","abcde","12345","FGHU","fgh}程序的運行結(jié)果是()。則由關(guān)系R得到關(guān)系T的操作是()。#include<stdio.h>#deVoidfun(inta[][N],in{inti;for(i=0;i<N;i++)intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;fun(x,y);for(i=0;i<}程序運行的結(jié)果是()。賦給b[0],b[1],b[2],b[3]。在主函數(shù)中,二維數(shù)組初始化為{1,2,3},{4},{5,6,7,8},{9,A、O(n)則執(zhí)行表達式(a=b+c)|(++b)后,a、b、c的值依次為()。D、5,3,3則a=5,而|右邊的括號不會被執(zhí)行,所以b=2,c=3。答案選擇236.有以下程序:了了了了intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i}程序運行的結(jié)果是()。A、345678解析:在main()函數(shù)中定義了一個有10個元素的數(shù)組k,并且賦初值為賦給形參n。在fun()函數(shù)中,for循環(huán)執(zhí)行了2次:第一次,i的值為0,循則以下選項中錯誤的調(diào)用語句是()。選項。238.下面的函數(shù)調(diào)用語句中func函A、3/**********code.c********了了}/**********-code.c********了*c=a%10+(b%10)*10+(a/10)*100+(解析:本題的主要問題是如何取出a和b的個位數(shù)和十位數(shù),取出后如何表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),所以分別對它們除10可得到它們的十位數(shù),分別用10對它們求余可得到它們的個位數(shù)。得到后對應(yīng)乘以1000、100、10、1就可得到c的千位數(shù)、百位數(shù)、十位數(shù)和個位數(shù)。注意:2.請根據(jù)以下各小題的要求設(shè)計C應(yīng)用程序(包括界面和代碼)。下列給定程序中,函數(shù)fun()的功能是:將n個無序整數(shù)從小到大排序。注意:不要改動函數(shù)main(),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。/**********code.c********了{/**********found**********/for(i=j+1;i<n-1;i++)if(a[p/**********found********了了}ers:\n",n);putarr(n,aa);fun(n,aa);printf("\nAftersorting}/**********-code.c********答案:(1)錯誤:for(i=j+1;i<n-1;i++)錯誤1:選擇排序法是在外循環(huán)中從第一個元素開始,依次與比它小的元素進行-1次,如果設(shè)定循環(huán)次數(shù)為n次,則最后一次第n個元素與自己交換;內(nèi)循環(huán)是找出比當前元素更小的元素,故是從當前需要交換的元素的下一個元素開始,直到第n個元素。故“for(i=j+1;i<n-1;i++)”應(yīng)改為“for(i=j+1;i<n;i++)”。3.請補充fun函數(shù),該函數(shù)的功能是:計算N×N維矩陣元素的方差,結(jié)果由函例如:的計算結(jié)果是14.414。求方差的公式為:其中注意:請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所/**********code.c********/**********found*******了doublesd=0.0;for(i=0;i<n;i++)for(j=0;j<n/**********found********aver=②.;for(i=0;i<n;i++)for(j=0;j<n;j++)f+=(a[i][j]-aver)*(a[i][j]-ave/**********found********returnsd;}main(){inta[N][N];intn;intij;doubles;priscanf("%d",&n);printf("*****Thearray*****\n");fo了了了a[i][J]=rand()%50;while(a[i]J)==0)a[i]}}Printf("*****THERESULT*****}填空1:根據(jù)函數(shù)中各變量的使用情況及實參的類型,這里應(yīng)該是對二維數(shù)組a度,所以此處應(yīng)填inta[][N]。填空2:這里求矩陣元素的平均值,注意元素的個數(shù)應(yīng)該是n*n。填空3:此處應(yīng)該調(diào)用庫函數(shù)sqrt()求平方根。4.請編一個函數(shù)voidfun(inttt[M][N],intpp[N]),tt指向一個M行N列的/**********code.c********Voidfun(inttt[M][N],int}intt[M][N]={{68,32,54,12},{14,24,88,58},{4for(j=0;j<N;j++)printf("%6d",t[i][j]);pri}printf("\nTheresultis:\n");for(k=0;k<N{intij,max;if(tt==NULL|lpp==NULL)return;fo了了for(i=1;i<M;i++)if(tt[j]J)>max)max=tt[j]J];/*如果各列中的其他元素比大值pp[j]=max;/*將各列的大值依次放入pp數(shù)組中*/}}ax,首先將每列的第一個元素設(shè)為大值,然后將大值max與第二個元素比較,較大值賦給max;以此類推,將max依次與第三,…,M個元素比較,得出該5.下列給定程序中,函數(shù)fun的功能是:從s所指字符

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論