2012年3月份全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言_筆試 上機(jī)題庫(kù).doc_第1頁
2012年3月份全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言_筆試 上機(jī)題庫(kù).doc_第2頁
2012年3月份全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言_筆試 上機(jī)題庫(kù).doc_第3頁
2012年3月份全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言_筆試 上機(jī)題庫(kù).doc_第4頁
2012年3月份全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言_筆試 上機(jī)題庫(kù).doc_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、選擇題在下列各題的A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確的選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)算法的空間復(fù)雜度是指 A)算法程序的長(zhǎng)度 B)算法程序中的指令條數(shù) C)算法程序所占的存儲(chǔ)空間 D)執(zhí)行算法需要的內(nèi)存空間(2)在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是 A)各模塊應(yīng)包括盡量多的功能 B)各模塊的規(guī)模應(yīng)盡量大 C)各模塊之間的聯(lián)系應(yīng)盡量緊密 D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度(3)下列敘述中,不屬于測(cè)試的特征的是 A)測(cè)試的挑剔性 B)完全測(cè)試的不可能性 C)測(cè)試的可靠性 D)測(cè)試的經(jīng)濟(jì)性(4)下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是 A)對(duì)象就是C語言中的結(jié)構(gòu)體變量 B)對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體 C)對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體 D)對(duì)象之間的信息傳遞是通過消息進(jìn)行的(5)下列關(guān)于隊(duì)列的敘述中正確的是 A)在隊(duì)列中只能插入數(shù)據(jù) B)在隊(duì)列中只能刪除數(shù)據(jù) C)隊(duì)列是先進(jìn)先出的線性表 D)隊(duì)列是先進(jìn)后出的線性表(6)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是 A)acbed B)decab C)deabc D)cedba(7)某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為 A)n+1 B)n-1 C)2n D)n/2(8)設(shè)有如下三個(gè)關(guān)系表RSTABCABCm13m13nn13下列操作中正確的是 A) T=RS B) T=RS C) T=RS D) T=R/S(9)下列敘述中,正確的是 A)用E-R圖能夠表示實(shí)體集間一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系和多對(duì)多的聯(lián)系 B)用E-R圖只能表示實(shí)體集之間一對(duì)一的聯(lián)系 C)用E-R圖只能表示實(shí)體集之間一對(duì)多的聯(lián)系 D)用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型(10)下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是 A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程 B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變 C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段 D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字(11)C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置 A)必須在最開始 B)必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面 C)可以任意 D)必須在最后(12)以下敘述中錯(cuò)誤的是 A)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序 B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件 C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件 D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行(13)下列選項(xiàng)可以正確表示字符型常量的是 A)r B)a C)897 D)296(14)以下敘述中正確的是 A)構(gòu)成C程序的基本單位是函數(shù) B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù) C)main()函數(shù)必須放在其他函數(shù)之前 D)C函數(shù)定義的格式是K&R格式(15)設(shè)變量均已正確定義,若要通過scanf(%d%c%d%c,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:代表空格字符) A) 10X20Y B) 10X20Y C) 10X 20Y D) 10X 20Y(16)若有說明:int *p,m=5,n;,以下正確的程序段是 A)p=&n;scanf(%d,&p); B)p=&n;scanf(%d,*p) C)scanf(%d,&n);*p=n; D)p=&n;*p=m;(17)在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為 main() int a,b,s; scanf(%d%d,&a,&b); s=a if(ab) s=b; s*=s; printf(%d,s); A)36 B)64 C)48 D)以上都不對(duì)(18)若執(zhí)行下面的程序時(shí),從鍵盤輸入5和2,則輸出結(jié)果是 main() int a,b,k; scanf(%d,%d ,&a,&b); k=a; if(a0 & n6)n-; printf(%d,n); 該程序的輸出結(jié)果是 A)987 B)876 C)8765 D)9876(24)有以下程序 #include main() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break; printf(n) 從第一列開始輸入以下數(shù)據(jù)代表一個(gè)回車符。 2743 程序的輸出結(jié)果是 A)66877 B)668966 C)6677877 D)6688766(25)有以下程序 main() int x=0,y=0,i; for (i=1;+i) if (i%2=0) x+;continue; if (i%5=0) y+;break; printf ( %d,%d,x,y); 程序的輸出結(jié)果是 A)2,1 B)2,2 C)2,5 D)5,2(26)有以下程序 main() int a44=l,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+) for(k=j+1;kaki)t=aji;aji=aki;aki=t;/*按列排序*/ for(i=0;i4;i+)printf(%d,aii); 程序運(yùn)行后的輸出結(jié)果是 A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,(27)有以下程序 int f(int n) if(n=1)return 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+)j+=f(i); printf(%dn,j); 程序運(yùn)行后的輸出結(jié)果是 A)4 B)3 C)2 D)1(28)當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入AhaMA(空格)Aha,則下面程序的運(yùn)行結(jié)果是 #include main() char s80,c=a; int i=0; scanf(%s,s); while(si!= if(si=c)si-32; else if(si=c-32)si=si+32; i+; puts(s); A)ahaMa B)AbAMa C)AhAMa空格ahA D)ahAMa空格ahA(29)下面程序輸出的結(jié)果是 main() int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d ,a2-ii); A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1(30)現(xiàn)有如下程序段 #include stdio.h main() int a56=23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1; int i=0,j=5; printf(%dn,*(&a00+2*i+j-2); 則程序的輸出結(jié)果為 A)21 B)78 C)23 D)28(31)請(qǐng)選出正確的程序段 A)int *p; scanf(%d,p); B)int *s, k; *s=100; C)int *s, k; char *p, c; s=&k; p=&c; *p=a; D)int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; (32)下面程序段的運(yùn)行結(jié)果是 char a=lanuage,*p; p=a; while(*p!=u)printf(%c,*p-32);p+; A)LANGUAGE B)language C)LAN D)langUAGE(33)以下程序的輸出結(jié)果是 #include int a33=1,2,3,4,5,6,7,8,9,*p; main() p=(int*)malloc(sizeof(int); f(p,a); printf(%dn,*p); free(p); f(int *s, int p3) *s=p11; A)1 B)4 C)7 D)5(34)有以下程序 void f(int *q) int i=0; for(;i5; i+) (*q)+; main() int a5 =1,2,3,4,5, i; f(a); for(i=0;i5; i+) printf(%d, ai); 程序運(yùn)行后的輸出結(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,(35)以下合法的字符型常量是 A)x13 B) 081 C) 65 D)n(36)有以下語句,則對(duì)a數(shù)組元素的引用不正確的是 int a10=0,1,2,3,4,5,6,7,8,9,*p=a; A)ap-a B)*(&ai) C)pi D)*(*(a+i)(37)有以下程序 # include main() char p20=a, b, c, d, q=abc, r=abcde; strcat(p, r); strcpy(p+strlen(q), q); printf(%dn,strlen(p); 程序運(yùn)行后的輸出結(jié)果是 A)9 B)6 C)11 D)7(38)在C語言中,變量的隱含存儲(chǔ)類別是 A)auto B)static C)extern D)無存儲(chǔ)類別(39)以下程序的輸出結(jié)果是 main() int c=35; printf(%dn,c&c); A)0 B)70 C)35 D)1(40)有以下程序 #include main() FILE *fp; int i=20,j=30,k,n; fp=fopen(d1.dat,w); fprintf(fp,%dn,i);fprintf(fp,%dn,j); fclose(fp); fp=fopen(d1.dat,r); fscanf(fp,%d%d,&k,&n); printf(%d %dn,k,n); fclose(fp); 程序運(yùn)行后的輸出結(jié)果是 A)20 30 B)20 50 C)30 50 D)30 20二、填空題請(qǐng)將每一個(gè)空的正確答案寫在答題卡序號(hào)的橫線上,答在試卷上不給分。(1)設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有 【1】 個(gè)葉子結(jié)點(diǎn)。(2)常用的黑箱測(cè)試有等價(jià)類劃分法、 【2】 和錯(cuò)誤推測(cè)法3種。(3)數(shù)據(jù)庫(kù)管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和 【3】 3種。(4)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為 【4】 。(5)數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制 、 【5】 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。(6)執(zhí)行以下程序后的輸出結(jié)果是 【6】 。 main() int a=10; a=(3*5,a+4);printf(a=%dn,a); (7)以下程序的輸出結(jié)果是 【7】 。 #include main() printf(%dn,strlen(IBMn0121);(8)已定義char ch=$; int i=1,j;,執(zhí)行j!=ch&i+以后,i的值為 【8】 。(9)以下程序的運(yùn)行結(jié)果是 【9】 。 #include long fib(int g) switch(g) case 0:return 0; case 1: case 2:return 1; return(fib(g-1)+fib(g-2); main() long k; k=fib(5); printf(k=%5ldn,k);(10)下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?main() int k, p,s=1, -9, 7, 2, -10, 3; for(p=0, k=p; psk) 【10】 printf(%dn,k);(11)以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?main() int x10,a9,I; for(I=0; I10; I+) scanf(%d,&xI); for( 【11】 ; I10; I+ ) aI-1=xI+ 【12】 ;. for(I=0; Inext=NULL),請(qǐng)?zhí)羁铡?#include struct list int data; struct list *next; struct list*creatlist() struct list *p,*q,*ph;int a;ph=(struct list *)malloc (sizeof(struct list); p=q=ph;printf(Input an integer number; entre-1 to end:n);scanf(%d,&a); while(a!=-1) p=(struct list*)malloc(sizeof(struct list); 【14】 =a;q-next=p; 【15】 =p;scanf(%d,&a); p-next=0;return(ph); main() struct list * head; head=creatlist();(1)D 【解析】 算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。(2)D 【解析】 在結(jié)構(gòu)化程序設(shè)計(jì)中,一般較優(yōu)秀的軟件設(shè)計(jì)盡量做到高內(nèi)聚、低耦合,這樣有利于提高軟件模塊的獨(dú)立性,也是模塊劃分的原則。(3)C 【解析】 軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。其中,沒有測(cè)試的可靠性這一說法。(4)A 【解析】 對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C+、Java等語言中,因此A)錯(cuò)誤。(5)C 【解析】 隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)行刪除操作。其中,允許插入的一端稱為隊(duì)尾(rear),允許刪除的一端稱為隊(duì)首(front)。隊(duì)列具有先進(jìn)先出的特點(diǎn),它是按先進(jìn)先出的原則組織數(shù)據(jù)的。(6)D 【解析】 依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如下圖所示,求得該二叉樹的前序遍歷序列為選項(xiàng)D)。 (7)A 【解析】 對(duì)于任何一棵二叉樹T,如果其終端結(jié)點(diǎn)(葉子)數(shù)為n1,度為2的結(jié)點(diǎn)數(shù)為n2,則n1=n2+1,所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于n+1。(8)C 【解析】 對(duì)于兩個(gè)關(guān)系的合并操作可以用笛卡爾積表示。設(shè)有n元關(guān)系R和m元關(guān)系S,它們分別有p和q個(gè)元組,則R與S的笛卡兒積記為RS它是一個(gè)m+n元關(guān)系,元組個(gè)數(shù)是pq由題意可得,關(guān)系T是由關(guān)系R與關(guān)系S進(jìn)行笛卡爾積運(yùn)算得到的。(9)A 【解析】 兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對(duì)一的聯(lián)系、一對(duì)多(或多對(duì)一)的聯(lián)系和多對(duì)多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。(10)D 【解析】 數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A)敘述錯(cuò)誤;數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B)敘述錯(cuò)誤;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C)敘述錯(cuò)誤。(11)C 【解析】 不論main函數(shù)在整個(gè)過程中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。(12)D 【解析】 一個(gè)C語言的源程序(后綴名為.c)在經(jīng)過編譯器編譯后,先生成一個(gè)匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),目標(biāo)程序不可以直接運(yùn)行,它要和庫(kù)函數(shù)或其他目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)后方可運(yùn)行。(13)A 【解析】 C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的的范圍是0127。由于字符常量用單引號(hào)括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。(14)A 【解析】 本題考查C語言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),不論main函數(shù)在整個(gè)程序中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行,C語言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。(15)D 【解析】 本題中,scanf函數(shù)的格式控制沒有空格,所以,對(duì)于選項(xiàng)A)、B)、C),輸入的第一個(gè)空格會(huì)作為字符賦值給變量c1,而不會(huì)被解釋成分隔符。(16)D 【解析】 &是求址運(yùn)算符,*是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf(%d,p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。(17)B 【解析】 本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。(18)C 【解析】 本題考查簡(jiǎn)單的ifelse語句。先執(zhí)行條件if(ab),顯然不成立,在執(zhí)行else語句。(19)A 【解析】 在C語言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類型,凡不加類型說明的函數(shù),一律按整型處理。在定義函數(shù)時(shí),對(duì)函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)類型為主,即函數(shù)類型決定返回值的類型。(20)D 【解析】 C語言中,字符數(shù)據(jù)參加運(yùn)算時(shí),實(shí)際上是其ASCII碼參與運(yùn)算。大寫字母的ASCII碼比其對(duì)應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項(xiàng)B)、C)都符合條件,因?yàn)樽兞縞中存儲(chǔ)的是大寫字母,所以c-A的值一定小于26,故選項(xiàng)A)與選項(xiàng)C)的含義相同。(21)D 【解析】 因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來說,x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。(22)A 【解析】 因?yàn)樽兞康某跏贾捣謩e為k=5,n=0,所以程序第一次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,這時(shí)k=4,執(zhí)行case 4:這個(gè)分支,結(jié)果是n=2,k=3,打印出2;程序然后進(jìn)行第二次循環(huán),這時(shí)n=2,k=3,執(zhí)行case 3:這個(gè)分支,結(jié)果是n=3,k=2,打印出3;程序進(jìn)行第三次循環(huán),這時(shí)n=3,k=2,執(zhí)行case 2: case 4:這兩個(gè)分支,結(jié)果是n=5,k=1,打印出5,這時(shí)因?yàn)閚=5不滿足n6可以知道,最后一次循環(huán)開始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。(24)A 【解析】 本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。(25)A 【解析】 本題考查了continue和break語句在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。(26)A 【解析】 本題利用多重 for循環(huán)的嵌套來實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對(duì)角線上的元素值。(27)B 【解析】 在main函數(shù)中,對(duì)f(1)和f(2)的值進(jìn)行了累加。 f(1)=1 f(2)=f(1)+1=2 最后,j的值為1+2=3(28)A 【解析】 本題主要考查的知識(shí)點(diǎn)是大寫字母比它對(duì)應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進(jìn)行算術(shù)運(yùn)算等操作。(29)B 【解析】 本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a20=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為7的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍11=5,依次循環(huán),可求出答案。(30)A 【解析】 通過地址來引用二維數(shù)組,若有以下定義:int a34,i,j;且當(dāng)0i3,0j4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:aij,*(ai+j),*(*(a+i)+j),(*(a+i)j,*(&a00+4*i+j)。表達(dá)式&a00+2*i+j-2相當(dāng)于是地址&a00加上多少偏移量。(31)C 【解析】 本題的選項(xiàng)A)和B)犯了同樣的錯(cuò)誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。(32)C 【解析】 本段程序的作用是輸出字符串lanuage中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。 注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長(zhǎng)字符多一個(gè)元素,以存放0。(33)D 【解析】 本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長(zhǎng)度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p11為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。(34)B 【解析】 調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a0。在5次循環(huán)過程中,q始終指向a0,因此a0的值增加了5。最后的輸出結(jié)果為6,2,3,4,5。(35)A 【解析】 C語言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。除此之外,在C語言中還允許用一個(gè) 開頭的字符序列來表示字符常量。其中,形式ddd表示1到3位8進(jìn)制數(shù)所代表的字符;形式xhh表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,x13表示回車符,是一個(gè)字符常量;081用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字8;65不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;n是用雙引號(hào)括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。(36)D 【解析】 本題考查數(shù)組指針的應(yīng)用。選項(xiàng)D)第一層括號(hào)中為數(shù)組a中第i項(xiàng)元素的值,外面再加指針運(yùn)算符沒有意義。(37)B 【解析】 strcpy()函數(shù)的功能是將字符串q復(fù)制到從p3位置開始的存儲(chǔ)單元,同時(shí)復(fù)制字符串結(jié)束標(biāo)志0 到p6中。函數(shù)strlen()返回的是字符串中不包括0在內(nèi)的實(shí)際長(zhǎng)度,故本題答案為B)(38)A 【解析】 auto變量:無static聲明的局部變量。用auto作存儲(chǔ)類別的聲明時(shí),可以不寫auto,存儲(chǔ)類別隱含確定為auto(自動(dòng)存儲(chǔ)類別),是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字auto 可以省略,auto不寫則隱含確定為自動(dòng)存儲(chǔ)類別,屬于動(dòng)態(tài)存儲(chǔ)方式。(39)C 【解析】 本題考查按位與&。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。(40)A 【解析】 本題中,最主要的是掌握幾個(gè)有關(guān)文件函數(shù)的應(yīng)用。 函數(shù)名:fopen 功能:打開一個(gè)文件 調(diào)用方式FILE *fp ; fp=fopen(文件名,使用文件方式); 函數(shù)名:fprintf 功能:傳送格式化輸出到一個(gè)文件中 調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列); 函數(shù)名:fclose 功能:關(guān)閉一個(gè)文件 調(diào)用方式:fclose(文件指針); 函數(shù)名:fscanf 功能:從磁盤文件執(zhí)行格式化輸入 調(diào)用方式:fscanf(文件指針,格式字符串,輸入列表)。二、填空題(1)【1】 350 【解析】 完全二叉樹中,設(shè)高度為n,則除h層外其它層結(jié)點(diǎn)數(shù)都到達(dá)最大,可以算出h=10,1至9層結(jié)點(diǎn)個(gè)數(shù)為29-1=511,最后一層結(jié)點(diǎn)個(gè)數(shù)為700-511=189個(gè),189/2=95,除最后一層外共有結(jié)點(diǎn)2(9-1)-95=161個(gè),所以所有的結(jié)點(diǎn)個(gè)數(shù)為:189+161=350個(gè)。(2)【2】 邊界值分析法 【解析】 黑箱測(cè)試法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分法、邊界值分析法和錯(cuò)誤推測(cè)法3種。(3)【3】 關(guān)系模型 【解析】 數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,屬于系統(tǒng)軟件是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口,其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。(4)【4】 軟件生命周期 【解析】 軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。(5)【5】 完整性控制 【解析】 安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫(kù)中數(shù)據(jù)及語義的正確性和有效性,防止任何對(duì)數(shù)據(jù)造成錯(cuò)誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯(cuò)誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫(kù)被破壞或數(shù)據(jù)不正確時(shí),使數(shù)據(jù)庫(kù)將其恢復(fù)到正確的狀態(tài)。(6)【6】 a=14 【解析】 本題考查的是表達(dá)式的優(yōu)先級(jí)問題。先計(jì)算表達(dá)式3*5=15,再計(jì)算a+4=14,將數(shù)據(jù)14賦值給a,根據(jù)printf()函數(shù)內(nèi)的輸出格式控制串,最后的輸出結(jié)果應(yīng)為a=14。(7)【7】 9 【解析】本題的字符串中共有9個(gè)字符,它們分別是I、B、M、n、 0、1、2、1、,其中,n表示換行,表示反斜杠字符,所以本題的最后輸出結(jié)果為9。(8)【8】 1 【解析】 在執(zhí)行邏輯表達(dá)式j(luò)=!ch&i+時(shí),首先判斷j=!ch的值,因?yàn)閏h=$不為0,所以j=!ch=0,編譯系統(tǒng)便不再計(jì)算表達(dá)式i+的值,i的值不變,仍為1。(9)【9】 k=5 【解析】 本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。(10)【10】 k=p; 【解析】 為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素sp比臨時(shí)最大元素sk更大時(shí),應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼k=p;。 (11)【11】 I=1 【12】 xI-1 【解析】 對(duì)于10個(gè)數(shù),相臨的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入I=1。相臨的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x0與x1的和存放在a0中,所以空15處應(yīng)填入xI-1。(12)【13】 #include 【解析】 本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用#include文件包含命令將定義函數(shù)的文件包含進(jìn)來。(13)【14】 p-data 【15】 q 【解析】 本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。一、選擇題在下列各題的A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確的選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)程序流程圖中帶有箭頭的線段表示的是 A)圖元關(guān)系 B)數(shù)據(jù)流 C)控制流 D)調(diào)用關(guān)系(2)結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括 A)多態(tài)性 B)自頂向下 C)模塊化 D)逐步求精(3)軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是 A)低內(nèi)聚低耦合 B)高內(nèi)聚低耦合 C)低內(nèi)聚高耦合 D)高內(nèi)聚高耦合(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是 A)可行性分析報(bào)告 B)軟件需求規(guī)格說明書 C)概要設(shè)計(jì)說明書 D)集成測(cè)試計(jì)劃(5)算法的有窮性是指 A)算法程序的運(yùn)行時(shí)間是有限的 B)算法程序所處理的數(shù)據(jù)量是有限的 C)算法程序的長(zhǎng)度是有限的 D)算法只能被有限的用戶使用(6)對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)下列關(guān)于棧的敘述正確的是 A)棧按先進(jìn)先出組織數(shù)據(jù) B)棧按先進(jìn)后出組織數(shù)據(jù) C)只能在棧底插入數(shù)據(jù) D)不能刪除數(shù)據(jù)(8)在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于 A)需求分析階段 B)概念設(shè)計(jì)階段 C)邏輯設(shè)計(jì)階段 D)物理設(shè)計(jì)階段(9)有三個(gè)關(guān)系R、S和T如下:RBCDa0k1b1n1SBCDf3h2a0k1n2x1TBCDa0k1由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為 A)并 B)自然連接 C)笛卡爾積 D)交(10)設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字 (鍵或碼)為 A)課號(hào),成績(jī) B)學(xué)號(hào),成績(jī) C)學(xué)號(hào),課號(hào) D)學(xué)號(hào),姓名,成績(jī)(11)以下敘述中正確的是 A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面 B)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句 C)C程序書寫格式自由,一個(gè)語句可以寫在多行上 D)用C語言編寫的程序只能放在一個(gè)程序文件中(12)以下選項(xiàng)中不合法的標(biāo)識(shí)符是 A)print B)FOR C)&a D)_00(13)以下選項(xiàng)中不屬于字符常量的是 A)C B)C C)xCC D) 072(14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是 A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.0(15)以下定義語句中正確的是 A)int a=b=0; B)char A=65+1,b=b; C)float a=1,*b=&a,*c=&b; D)double a=0.0;b=1.1; (16)有以下程序段 char ch; int k; ch=a; k=12; printf(%c,%d,ch,ch,k); printf(k=%dn,k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是 A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值 C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCI

溫馨提示

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

評(píng)論

0/150

提交評(píng)論