歷屆c語(yǔ)言試題_第1頁(yè)
歷屆c語(yǔ)言試題_第2頁(yè)
歷屆c語(yǔ)言試題_第3頁(yè)
歷屆c語(yǔ)言試題_第4頁(yè)
歷屆c語(yǔ)言試題_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2010年9月全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言筆試試題一、選擇題(每小題2分,共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。(1)下列敘述中正確的是A)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D)上述三種說(shuō)法都不對(duì)(2)下列敘述中正確的是A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D)上述三種說(shuō)法都不對(duì)(3)軟件測(cè)試的目的是A)評(píng)估軟件可靠性 B)發(fā)現(xiàn)并改正程序中的錯(cuò)誤C)改正程序中的錯(cuò)誤 D)發(fā)現(xiàn)程序中的錯(cuò)誤(4)下面描述中,不屬于軟件危機(jī)表現(xiàn)的是A)軟件過(guò)程不規(guī)范 B)軟件開(kāi)發(fā)生產(chǎn)率低C)軟件質(zhì)量難以控制 D)軟件成本不斷提高(5)軟件生命周期是指A)軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程B)軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程C)軟件的開(kāi)發(fā)過(guò)程 D)軟件的運(yùn)行維護(hù)過(guò)程(6)面向?qū)ο蠓椒ㄖ?,繼承是指A)一組對(duì)象所具有的相似性質(zhì)B)一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C)各對(duì)象之間的共同性質(zhì) D)類(lèi)之間共享屬性和操作的機(jī)制(7)層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是A)記錄長(zhǎng)度B)文件的大小C)聯(lián)系的復(fù)雜程度D)數(shù)據(jù)之間的聯(lián)系方式一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員、與實(shí)體計(jì)算機(jī)之間的聯(lián)系是A)一對(duì)一B)一對(duì)多C)多對(duì)多D)多對(duì)一(9)數(shù)據(jù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是A)內(nèi)模式B)概念模式C)外模式D)設(shè)計(jì)模式(10)有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A)自然連接B)交C)投影D)并(11)以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是A)一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成B)結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷C)在C語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題(12)以卜.關(guān)于簡(jiǎn)單程序設(shè)計(jì)的步驟和順序的說(shuō)法中正確的是A)確定算法后,整理并寫(xiě)出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試B)首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔C)先編碼和上機(jī)調(diào)試,在編碼過(guò)程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔D)先寫(xiě)好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)(13)以下敘述中錯(cuò)誤的是A)C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B)C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C)所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行D)C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù)(14)有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下選項(xiàng)中能表示合法常量的是A)整數(shù):1,200B)實(shí)數(shù):1.5E2.0C)字符斜杠:D)字符串:”\007”(16)表達(dá)式a+=a-=a=9的值是A)9B)_9C)18D)0(17)若變量已正確定義,在if(W)printf("%d\n,k");中,以下不可替代W的是A)a<>b+cB)ch=getchar()C)a==b+cD)a++(18)有以下程序#include<stdio.h>main(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf(99%d\n”,b);)程序運(yùn)行后的輸出結(jié)果是A)0B)1C)2D)3(19)若有定義語(yǔ)句inta,b;doublex;則下列選項(xiàng)中沒(méi)有錯(cuò)誤的是A)switch(x%2)B)switch((int)x/2.0{case0:a++;break;{case0:a++;break;case1:b++;break;case1:b++;break;default:a++;b++;default:a++;b++;})C)switch((int)x%2)D)switch((int)(x)%2){case0:a++;break;{case0.0:a++;break;case1:b++;break;case1.0:b++;break;default:a++;b++;default:a++;b++;})(20)有以下程序#include<stdio.h>main(){inta=1,b=2;while(a<6){b+=a:a+=2;b%二10;}printf("%d,%d\n”,a,b);)程序運(yùn)行后的輸出結(jié)果是A)5,11B)7,1C)7,11D)6,1(21)有以下程序#include<stdio.h>main(){inty=10;while(y—);printf("Y=%d\n,\Y);)程序執(zhí)行后的輸出結(jié)果是A)y=0B)y=-1C)y=lD)while構(gòu)成無(wú)限循環(huán)(22)有以下程序#include<stdio.h>main(){chars[」="rstuvn;printf(M%c\n",*s+2);}程序運(yùn)行后的輸出結(jié)果是A)tuvB)字符t的ASCII碼值C)tD)出錯(cuò)(23)有以下程序include<stdio.h>include<string.h>main(){charx口="STRING”;X[Oj=0;X[1]=>\(T;X[2j=,0r;printf(w%d%d\n",sizeof(x),strlen(x));}程序運(yùn)行后的輸出結(jié)果是A)61B)70 063D)71(24)有以下程序include<stdio.h>Intf(intx);main(){intn=l,m;m=f(f(f(n)));printf("%d\n",m);)intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是A)1B)2C)4D)8(25)以下程序段完全正確的是A)int*p;scanfA%d*&p);B)int*p;scanf(“%d”,p);C)intk,*p=&k;scanfC%d”,p);D)intk,*p:;*p=&k;scanf(“%d”,p);(26)有定義語(yǔ)句:int*p[4];以下選項(xiàng)中與此語(yǔ)句等價(jià)的是A)intp[4J;B)int**p;C)int*(pF4J);D)int(*p)「4」;(27)下列定義數(shù)組的語(yǔ)句中,正確的是A)intN=10;B)#defineN10;intx[N];intx[N];C)intx[0..10];D)intx[];(28)若要定義?個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語(yǔ)句是A)inta[5]={0};B)intb[]={0,0,0,0,0};C)intc[2+3];D)inti=5,d[i];(29)有以下程序#include<stdio.h>voidf(int*p);main(){inta[5]={1,2,3,4,5),*r=a;f(r);printf("%d\n";*r);}voidf(int*p){p=p+3;printf("%d,",*p);}程序運(yùn)行后的輸出結(jié)果是A)1,4B)4,4C)3,1D)4,1(30)有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作)#include<stdio.h>voidfun(int*a;intn){inti、j、k、t;for(i=0;i<n-1;l+=2){k=i;'for(j=i;j<n;j+=2)if(a[j]>a(k])k=j;t=a(i];a(i]=a[k];a[k]=t;))main(){intaa-10」={1>2、3、4、5、6、7),i;fun(aa、7);for(i=0,iv7;i++)printf("%d,”,aa[i]));printf("\n");)程序運(yùn)行后的輸出結(jié)果是A)725,4,3,6/B)1,6,3,4,527C)7,6,5,4,321D)1,7,3,5,621(31)下列選項(xiàng)中,能夠滿足“若字符串si等于字符串s2,則執(zhí)行ST”要求的是A)if(strcmp(s2,sl)==0) ST; B)if (sl==s2)ST;C)if(strcpy(sl,s2)==1) ST; D)if (sl-s2==0)ST;(32)以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是A)while(*t=*s){t++;s++; } B) for(i=O;tli]=s[i] ;i++);C)do{*t++=*s++;}while(*s) ;D) for(i=0,j=0;t[i++]=s[j4-+];);(33)有以下程序(strcat函數(shù)用以連接兩個(gè)字符串)#include<stdio.h>#include〈string.h>main(){chara[20]="ABCD\OEFG\0",b[]="1JK”;strcat(a.b);printf(n%s\n",a);)程序運(yùn)行后的輸出結(jié)果是A)ABCDE\OFG\OIJKB)ABCDIJKC)UKD)EFGIJK(34)有以下程序,程序中庫(kù)函數(shù)islower(ch)用以判斷ch中的字母是否為小寫(xiě)字母#include<stdio.h>#include<ctype.h>voidfun(char*p){inti=0;while(p[i]){if(p[i]==,9&&islower(pFi-1J))p[i-l]=p[i-l]-'a'+'A';i++;}}main(){charsi[100]="abcdEFG!”;fun(si);printf("%s\n",si);)程序運(yùn)行后的輸出結(jié)果是A)abcdEFG!B)AbCdEFg!C)aBcDEFG!D)abcdEFg!(35)有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf(w%d”,x);)main(){fun(7);printf("\nM);)程序運(yùn)行后的輸出結(jié)果是A)137B)731 073D)37(36)有以下程序#include<stdio.h>intfun(){staticintx=l;x+=l;returnx;)main(){inti;s=l;for(i=l;i<=5;i++)s+=fun0;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A)11B)21C)6D)120(37)有以下程序include<stdio.h>include<stdlib.h>Main(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));a=l;*b=2,*c=3;a=b:printf(%d,%d,%d\n”,*a,*b,*c);)程序運(yùn)行后的輸出結(jié)果是A)3,3,3B)2,2,3C)1,2,3D)1,1,3(38)有以下程序include<stdio.h>main(){ints.t,A=10:doubleB=6:s=sizeof(A);t=sizeof(B);printf(%d1%d\n”,s,t);)在VC6平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是A)2,4B)4,404,8D)10,6(39)若有以下語(yǔ)句TypedefstructS{intg;charh;}T;以下敘述中正確的是A)可用S定義結(jié)構(gòu)體變量 B)可用T定義結(jié)構(gòu)體變量C)S是struct類(lèi)型的變量 D)T是structS類(lèi)型的變量(40)有以下程序#include<stdio.h>main(){shortc=124;c=c;printf(%d\n"、C);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是A)?2B)1248C)&0248D)?1二、填空題(每空2分,共30分)請(qǐng)將每空的正確答案寫(xiě)在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。(1)一個(gè)棧的初始狀態(tài)為空。首先將元素5,4,3,2,1依次入棧,然后退棧一次,再將元素A,B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序?yàn)椤?】(2)在長(zhǎng)度為n的線性表中,尋找最大項(xiàng)至少需要比較【2】次。(3)一棵二叉樹(shù)有10個(gè)度為1的結(jié)點(diǎn),7個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)共有【3】個(gè)結(jié)點(diǎn)。(4)僅由順序、選擇(分支)和重復(fù)(循環(huán))結(jié)構(gòu)構(gòu)成的程序是【4】程序。(5)數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì)(5L(6)以下程序運(yùn)行后的輸出結(jié)果是[6】。include<stdio.h>main(){inta=200,b=010;printf(M%d%d\n”,a,b):}(7)有以下程序include<stdio.h>main(){intx,Y;scanf(99%2d%ld”,&x,&y);printf(99%d\n",x+y);)程序運(yùn)行時(shí)輸入:1234567程序的運(yùn)行結(jié)果是(71(8)在C語(yǔ)言中,當(dāng)表達(dá)式值為0時(shí)表示邏輯值“假)當(dāng)表達(dá)式值為【8】時(shí)表示邏輯值“真:(9)有以下程序include<stdio.h>main(){inti,n[]={0,0A0,0);for(i=l;i<=4;i++){n[i]=n[i-l]*3+1;printf("%dn,n[i]);})程序運(yùn)行后的輸出結(jié)果是(9]o(10)以下fun函數(shù)的功能是:找出具有N個(gè)元素的一維數(shù)組中的最小值,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?設(shè)N已定義)intfun(intx[N]){inti,k=0;for(i=0;i<N;I++)if(x[i]returnx[k];}(11)有以下程序#include<stdio.h>int*f(int*p,inl*q);main(){intm=l,n=2,*r=&m:r=f(r,&n);printf("%d\n",*r);)int*f(int*p,int*q){return(*p>*q)?p:q;}程序運(yùn)行后的輸出結(jié)果是[II](12)以下fun函數(shù)的功能是在N行M列的整形二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?設(shè)M,.N已定義)intfun(inta[N]|M)){inti,j?row=0,col=0;for(i=0;i<N;I++)for(j=0;jif(a[i][j]>a[row][col]){row=i;col=j;}return(【12]):)(13)有以下程序include<stdio.h>main(){intn[2],i,j;for(i=0;i<2;i++)n[i]=O;for(i=0;i<2;i++)for(j=0;j<2:j++)n[j]=nFiJ+1:printf(n%d\n”,n[l]);}程序運(yùn)行后的輸出結(jié)果是[13](14)以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。請(qǐng)?jiān)谳敵稣Z(yǔ)句中填寫(xiě)代表最大值的輸出項(xiàng)。include<stdio.h>main(){inta(10],*p,*s;for(p=a;p-a<10;p++)scanf("%d”,p);for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;printf(Mmax=%d\n,\[14]);}(15)以下程序打開(kāi)新文件f.txt,并調(diào)用字符輸出函數(shù)將a數(shù)組中的字符寫(xiě)入其中,請(qǐng)?zhí)羁?。include<stdio.h>main(){[15]*fp;chara[5]=('1','2','3','4','5'},i;fp=fopen("f?txl","w");for(i=0;i<5;i-H-)fputc(a[i],fp);fclose(fp);)2010年3月二級(jí)c語(yǔ)言筆試真題一、選擇題((1)—(10)、(21)—(40)每題2分(11)—(20)每題1分。共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡上,答在試卷上不得分。(1)下列敘述中正確的是A)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)(2)算法的時(shí)間復(fù)雜度是指A)算法的執(zhí)行時(shí)間B)算法所處理的數(shù)據(jù)量C)算法程序中的語(yǔ)句或指令條數(shù)D)算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是A)編輯軟件B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)瀏覽器(4)軟件(程序)調(diào)試的任務(wù)是A)診斷和改正程序中的錯(cuò)誤B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D)確定程序中錯(cuò)誤的性質(zhì)(5)數(shù)據(jù)流程圖(DFD圖)是A)軟件概要設(shè)計(jì)的工具B)軟件詳細(xì)設(shè)計(jì)的工具C)結(jié)構(gòu)化方法的需求分析工具D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?6)軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于A)定義階段B)開(kāi)發(fā)階段C)維護(hù)階段D)上述三個(gè)階段(7)數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是A)數(shù)據(jù)定義語(yǔ)言B)數(shù)據(jù)管理語(yǔ)言C)數(shù)據(jù)操縱語(yǔ)言D)數(shù)據(jù)控制語(yǔ)言(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是A)文件B)數(shù)據(jù)庫(kù)C)字段D)記錄(9)數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的A)需求分析階段 B)邏輯設(shè)計(jì)階段 C)概念設(shè)計(jì)階段 D)物理設(shè)計(jì)階段(10)有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是選擇B)投影。交D)并(11)以下敘述正確的是A)C語(yǔ)言程序是由過(guò)程和函數(shù)組成的B)C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C)C語(yǔ)言函數(shù)不可以單獨(dú)編譯D)C語(yǔ)言中除了main函數(shù),其他函數(shù)不可以作為單獨(dú)文件形式存在(12)以下關(guān)于C語(yǔ)言的敘述中正確的是A)C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間B)C語(yǔ)言中的變量可以再使用之前的任何位置進(jìn)行定義C)在C語(yǔ)言算術(shù)的書(shū)寫(xiě)中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類(lèi)型必須一致D)C語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示(13)以下C語(yǔ)言用戶標(biāo)示符中,不合法的是A)」B)AaBcC)a_bD)a—b(14)若有定義:doublea=22;inli=0,k=18;則不符合C語(yǔ)言規(guī)定的賦值語(yǔ)句是A)a=a++,i++B)i=(a+k)<=(i+k)C)i=a%llD)i=!a(15)#include<stdio.h>Voidmain()chara,b,c,d;scanf(M%c%cM,&a,&b);c=getchar();d=getchar();printf(,,%c%c%c%c\n,\a,b,c,d);)當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第一列開(kāi)始,vCR>代表回車(chē),注意:回車(chē)是一個(gè)字符)12<CR>34<CR>則輸出結(jié)果是:A、1234B、12C、12D、1233416、以下關(guān)于C語(yǔ)言數(shù)據(jù)類(lèi)型使用的敘述中錯(cuò)誤的是:A、若要準(zhǔn)確無(wú)誤的表示自然數(shù),應(yīng)使用整數(shù)類(lèi)型。B、若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類(lèi)型。C、若要處理如“人員信息”等含有不同類(lèi)型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類(lèi)型。D、若只處理”真”和“假"兩種邏輯值,應(yīng)使用邏輯類(lèi)型。17、若a是數(shù)值類(lèi)型,則邏輯表達(dá)式(a==l)II(a!=l)的值是:A、IB、0C、2D、不知道a的值,不能確定18、以下選項(xiàng)中與if(a==l)a=b;elsea++;語(yǔ)句功能不同的switch語(yǔ)句是:A、switch(a)B、switch(a==1){case1:a=b;break;{case0:a=b;break;default:a++;case1:a++;})C、switch(a)D、switch(a==1){default:a++;break;{case1:a=b;break;case1:a=b;case0:a++;})19、有如下嵌套的if語(yǔ)句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是A、k=(a<b)?a:b;k=(b<c)?b:c;B、k=(a<b)?((b<c)?a:b):((b<c)?b:c);C、k=(a<b)?((a<c)?a:c):((b<c)?b:c);D^k=(a<b)?a:b;k=(a<c)?a;c(20)有以下程序#include<stdio.h>main(){inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j-){if(i*j>3)break;printf(,,m=%d\n,\m)}程序運(yùn)行后的輸出結(jié)果是(A)m=6(B)m=2(C)m=4(D)m=5(21)有以下程序#includes<stdio.h>main(){inta=l,b=2;for(;a<8;a++){b+=a;a+=2;}printf(,,%d,%d\n,,,a,b);}程序運(yùn)行后的輸出結(jié)果是(A)9,18(B)8,11(C)7,11(D)10,14(22)有以下程序,其中k的初值為八進(jìn)制數(shù)#include<stdio.h>main(){intk=011;printf(''%d\n”,k++);)程序運(yùn)行后的輸出結(jié)果是(A)12(B)11(C)10(D)9(23)下列語(yǔ)句中,正確的是A)char*s;s=''Olympic”;B)chars[7];s=''01ympic”;C)char*s;s={''Olympic''};D)chars[7];s={"Olympic"};(24)以下關(guān)于return語(yǔ)句的敘述中正確的是A)一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B)一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句 C)定義成viod類(lèi)型的函數(shù)中可以有帶返回值的return語(yǔ)句D)沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處(25)下列選項(xiàng)中,能夠正確定義數(shù)組的語(yǔ)句是A)intnum[0..2008];B)intnum[];C)intN=2008;D)#defineN2008intnum[N];intnum[N](26)有以下程序#include<stdio.h>voidfun(char*c,intd){*c=*c+l;d=d+l;printf("%c,%c,”,*c,d);)main(){charb=,a,,a=,A,;fun(&b,a);printf(''%c,%c\n”,b,a);程序運(yùn)行后的輸出結(jié)果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定義int(*pt)[3];,則下列說(shuō)法正確的是A)定義了基類(lèi)型為int的三個(gè)指針變量B)定義了基類(lèi)型為int的具有三個(gè)元素的指針數(shù)組pt。C)定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組D)定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組(28)設(shè)有定義doublea[10],*s=a;,一下能夠代表數(shù)組元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include<stdio.h>main(){inta[5]={123,4,5),b[5]={0,2,1,3,0),is=0for(i=0;i<5;i++)s=s+a[b[i]];printf("%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是A)6B)10C)11D)1530)有以下程序#include<stdio.h>main(){intb[3][3]={0,l,2,0,l,2,0,l,2},i,j,t=l;for(i=0;i<3;i++)For(j=i;j<=i;j++)t+=b[i][b[j][i]];Printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是A)1B)3C)4D)9(31)若有以下定義和語(yǔ)句Acharsl[10]="abed!",*s2="nl23\\";printf("%d%d\n",strlen(sl),strlen(s2));則輸出結(jié)果是A)55B)105C)107D)58(32)有以下程序#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);}main(){inta[N]={L2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2);i++){printf(H%d';a[i]);}printf(H\nM);程序運(yùn)行后的輸出結(jié)果是A)1313B)2234C)3234D)1234(33)有以下程序#include<studio.h>intf(intt[],intn);main(){inta[4]={l,2,3,4),s;s=f{a,4);printf(,,%d\n,,,s);)intf(intt[],intn){if(n>0)returnt[n-l]+f(t,n-l);elsereturn0;}程序運(yùn)行后的輸出結(jié)果是A)4B)10C)14D)6(34)有以下程序#include<studio.h>intfun(){staticintx=l;x*=2;returnx;}main(){intI,s=l;for(i=l;i<=2;i++)s=fun();printf(,,%d\n,,,s);)程序運(yùn)行后的輸出結(jié)果是A)OB)1C)4D)8(35)以下程序#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(,,%d\n,,,d);I程序運(yùn)行后的結(jié)果是A)OB)-120-20D)10(36)沒(méi)有定義structcomplex{intreal,unreal;}datal={l,8},data2;則以下賦值語(yǔ)句中的錯(cuò)誤的是A)data2=datal;B)data2=(2,6);C)data2.real1=datal.real;D)data2.real=datal.unreal;(37)有以下程序#include<studio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001JZhangDa”,1098.0);f(a);pringt(,,%d,%s,%6.1f\nM,a.a,a.b,a.c);)voidf(structAt){t.a=1002;strcpy(t.b;,ChangRong,,);t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0D)1002,ZhangDaJ202.0(38)有以下定義和語(yǔ)句structworkers{intnum;charname[20];charc;srruct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w能給w中year成員賦1980的語(yǔ)句是A)*pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){inta=2,b=2,c=2;printf(,,%d\n,,,a/b&c);)程序運(yùn)行后的結(jié)果是A)OB)1C)2D)3(40)以下程序#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(''myfile.dat",‘'w'');fpuls(”abc”,fp);fclose(fp);fp=fopen(''myfile.dat'',''a+'');rewind(fp「gd”,28);rewind(fp);fscanf(fp/'gsM,str);puts(str);fclose(fp);I程序運(yùn)行后的輸出結(jié)果是A)abcB)28cC)abc28D)因類(lèi)型不一致而出錯(cuò)二、填空題(每空2分,共30分)請(qǐng)將每空的正確答案寫(xiě)在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。(1)一個(gè)隊(duì)列的初始狀態(tài)為空,先將元素A,CB,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)開(kāi)_o(2)設(shè)某循環(huán)列隊(duì)的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前?位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有個(gè)元素。(3)設(shè)二叉數(shù)如下:對(duì)該二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為(4)軟件是、數(shù)據(jù)和文檔的集合。(5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)好和課號(hào),則關(guān)系模式選課可以定義為:選課(學(xué)號(hào),課號(hào),成績(jī)。(6)設(shè)x為int型變量,請(qǐng)寫(xiě)出一個(gè)關(guān)系表達(dá)式,用以判斷x同時(shí)為3和7的倍數(shù)時(shí),關(guān)系表達(dá)式的值為真。(7)有以下程序#include<stdio.h>main(){inta=l,b=2,c=3,d=0;if(a==l)if(b!=2)if(c!=3)d=l;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf(,,%d\n,\d);I程序運(yùn)行后的輸出結(jié)果是:.(8)有以下程序#include<stdio.h>main(){intm,n;scanf(,*%d%d,,,&m,&n);while(m!=n){while(m>n)m=m-n;while(m<n)n=n-m;)printf(,,%d\n,,,m);}程序運(yùn)行后,當(dāng)輸入1463〈回車(chē)〉時(shí),輸出結(jié)果是(9)有以下程序#include<stdio.h>main(){intl,j,alJ[3]={1,2,3,4,5,6,7,8,9}:for(i=l;i<3;i++)forG=I;j<3;j++)printtf("%d^a[i][j]);printf(,,\n,?);)程序運(yùn)行后的輸出結(jié)果是(10)有以下程序#include<stdio.h>main()(int[]={1,2,3,4,5,6},*k[3],i=0;while(i<3)(k[i]=&a[2*i];printfC,%d",*k[i]);i++;)I程序運(yùn)行后的輸出結(jié)果是(11)有以下程序#include<stdio.h>main()(inta[3][3]={{1,2,3}.{4,5,6},{7,8,9});intb[3]={0},i;for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];for(i=0;i<3;i++)printf("%d",b[i]);printf(,,\n>,);)程序運(yùn)行后的結(jié)果是(12)有以下程序#include<stdio.h>#include<string.h>voidfun(char*slr)chartemp;intn,i;n=strlen(str);temp=str[n-l];for(i=n-l;i>O;i-)str[i]=str[i-l];str[O]=temp;}main()(chars[50];scanf(''%s",s);fun(s);printf("%s\n'',s);)程序運(yùn)行后輸入:abcdefc回車(chē)〉,則輸出結(jié)果是13、以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個(gè)位、十位、百位的順序拆分并輸出。請(qǐng)?zhí)羁铡?include<stdio.h>main()(intx=256;printf(w%d-%d-%d\nw ,x/10%10,x/100);)14、以下程序用以刪除字符串中的所有的空格,請(qǐng)?zhí)羁铡?include<stdio.h>main()(chars[l00]={"our.tercherteachclanguage!”};intij;for(i=j=O;s[i]!=<\O,;i++)if(m]!='*){sU]=s[i];j++;}s[j]=;printf(,,%s\n,\s);}(15)以下程序功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標(biāo)值。請(qǐng)?zhí)羁铡?include<stdio.h>main()(inta[10],*p,*s;for(p=a;p-a<10;p++)scanf(,,%d,\p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=;printf(,,index=%d\n,\s-a);2009年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷c語(yǔ)言程序設(shè)計(jì)(考試時(shí)間90分鐘,滿分100分)一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A)循環(huán)隊(duì)列B)帶鏈隊(duì)列。二叉樹(shù)D)帶鏈棧(2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是A)循環(huán)隊(duì)列B)棧C)隊(duì)列D)二叉樹(shù)(3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是A)隊(duì)頭指針是固定不變的B)隊(duì)頭指針一定大于隊(duì)尾指針C)隊(duì)頭指針一定小于隊(duì)尾指針D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針(4)算法的空間復(fù)雜度是指A)算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語(yǔ)句或指令條數(shù)D)算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是A)低內(nèi)聚低耦合B)iS)內(nèi)聚低耦合C)低內(nèi)聚同耦合D)iSj內(nèi)聚?向耦合(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是A)可封裝B)自頂向下C)模塊化D)逐步求精(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是A)N-S圖B)PAD圖C)程序流程圖D)E-R圖(8)數(shù)據(jù)庫(kù)管理系統(tǒng)是A)操作系統(tǒng)的一部分 B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng) D)一種操作系統(tǒng)(9)在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是A)橢圓圖B)矩形C)菱形D)三角形(10)有三個(gè)關(guān)系R,S和T如下:其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為A)選擇B)投影C)交D)并(11)以下敘述中正確的是A)程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C)程序設(shè)計(jì)的任務(wù)就是確定所用算法 D)以上三種說(shuō)法都不完整(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是A)voidB)8_8C)_0_D)unsigned(13)閱讀以下程序#includemain(){intcase;floatprintF;printf(“請(qǐng)輸入2個(gè)數(shù):”);scanf(ki%d%f\&case,&pjrintF);printf(44%d%f\n,,,case,printF);該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是A)定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符B)定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符C)定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D)定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)515)若有定義語(yǔ)句:intx=10;,則表達(dá)式x?=x+x的值為A)-20B)-10C)0D)10(16)有以下程序#includemain(){inta=l,b=0;printf("%d,”,b=a+b);printf(t4%d\n,\a=2*b);}程序運(yùn)行后的輸出結(jié)果是A)0,0B)1,0C)3,2D)1,217)設(shè)有定義:inta=l,b=2,c=3;,以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是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;}(18)有以下程序#includemain(){intc=0,k;for(k=l;k<3;k++)switch(k){default:c+=kcase2:c++;break;case4:c+=2;break;)printf("%d\rT,c);)程序運(yùn)行后的輸出結(jié)果是A)3B)5C)7D)9(19)以下程序段中,與語(yǔ)句:k=a>b?(b>c?l:0):0;功能相同的是if((a>b)&&(b>c))k=l;elsek=0;if((a>b)ll(b>c)k=l;elsek=0;if(a<=b)k=0;elseif(b<=c)k=l;if(a>b)k=l;elseif(b>c)k=l;elsek=0;20)有以下程序#includemain(){chars[]={M012xyM);inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=,a,&&s[i]<=,z,)n++;printff<%d\n,,,n);程序運(yùn)行后的輸出結(jié)果是A)0B)2C)3D)5(21)有以下程序#includemain(){intn=2,k=0;while(k++&&n++>2);printf(t4%d%d\n”,k,n);)程序運(yùn)行后的輸出結(jié)果是A)02B)13C)57D)12(22)有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是A)chara=ya';B)chara=J\n';C)chara=,aa';D)chara=f\x2d*;(23)有以下程序#includemain(){charcl,c2;cl='A'+'8'-'4';c2='A'+'8'?'5';prinlf("%c,%d\n”,cl,c2);)已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是A)E,68B)D,69C)E,DD)輸出無(wú)定值(24)有以下程序#includevoidfun(inlp){intd=2;p=d++;printf("%d'',p);}main(){inta=l;fun(a);printf(4*%d\n,\a);}程序運(yùn)行后的輸出結(jié)果是A)32B)12C)21D)22(25)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<N;1++)<p=,M,/>{max=MIN;if(maxreturnmax;造成錯(cuò)誤的原因是A)定義語(yǔ)句inti,max;中max未賦初值 B)賦值語(yǔ)句max=MIN;中,不應(yīng)給max賦MIN值C)語(yǔ)句if(maxD)賦值語(yǔ)句max=MIN;放錯(cuò)了位置(26)有以下程序#includemain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printfC<%d,%d,%d,%d\n,,,m5n,*p,*q);)程序運(yùn)行后的輸出結(jié)果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定義語(yǔ)句:ima[4][10],*p,*q[4],0Wiv4,則錯(cuò)誤的賦值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][l](28)有以下程序#include#includemain(){charstr[][20]={itOne*World,\fckOne*Dream!M},*p=str[1];printf(t4%d;\strlen(p));printf(4t%s\n,\p);)程序運(yùn)行后的輸出結(jié)果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]—;}break;casel:a[i[=0;)for(i=0;i<4;i++)printf("%d'',a[i]);primf("\n’’);)A)3344B)2050C)3040D)0304(30)有以下程序#include#includemain(){chara[101=MabcdM;printf(4t%d,%d\n,,,strlen(a),sizeof(a));)程序運(yùn)行后的輸出結(jié)果是A)7,4B)4,10C)8,8D)10,10(31)下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是A)不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串 B)可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組 C)字符數(shù)組中的內(nèi)容不一定是字符串D)字符數(shù)組只能存放字符串(32)下列函數(shù)的功能是fun(char*a,char*b){while((*b=*a)!=,\0,){a++,b++;}}A)將a所指字符串賦給b所指空間 B)使指針b指向a所指字符串C)將a所指字符串和b所指字符串進(jìn)行比較D)檢查a和b所指字符串中是否有‘\0'(33)設(shè)有以下函數(shù)voidfun(intn,char*s){ }則下面對(duì)函數(shù)指針的定義和賦值均是正確的是A)void(*pf)();pf=fun; B)viod*pf();pf=fun;C)void*pf();*pf=fun; D)void(*pf)(int,char);pf=&fun;(34)有以下程序#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf(t4%d\n,,,s);}intf(intn){staticinta=1;n+=a++;returnn;I程序運(yùn)行以后的輸出結(jié)果是A)7 B)8 C)9 D)10(35)有以下程序#include#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+l);t=f((a+l));printf("%d,%d\n',s,t);)程序運(yùn)行后的輸出結(jié)果是A)10,64B)10,10C)64,10D)64,64(36)下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是A)structord{intx;inty;intz;};structorda;B)structord{intx;inty;intz;}structorda;C)structord{intx;inty;intz;}a; D)struct{intx;inty;intz;}a;(37)設(shè)有定義:char*c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是A)charstr[J=,Tstring;c=str;B)scanf("%s”,c);C)c=getchar();D)*c="stringn;(38)有以下程序#include#includestructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={100l,,,ZhangDa,;1098.0};a=f(a);jprintf(4t%d,%s,%6.1f\n'',a.a,a.bac);}structAf(structAt)(t.a=1002;strcpy(t.b,,,ChangRong,,);t.c=1202.0;returnt;)程序運(yùn)行后的輸出結(jié)果是A)1001,ZhangDa,1098.0B)1001,ZhangDaJ202.0C)lOOLChangRong,1098.0D)1001,ChangRong,l202.0(39)若有以下程序段intr=8;輸出結(jié)果是A)16B)8C)4D)2(40)下列關(guān)于C語(yǔ)言文件的敘述中正確的是A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D)文件由字符序列組成,其類(lèi)型只能是文本文件二、填空題(每空2分,共30分)(1)某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn)以及3個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中共有【1】個(gè)結(jié)點(diǎn)。(2)程序流程圖中的菱形框表示的是[21(3)軟件開(kāi)發(fā)過(guò)程主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試四個(gè)階段,其中【3】階段產(chǎn)生“軟件需求規(guī)格說(shuō)明書(shū)。(4)在數(shù)據(jù)庫(kù)技術(shù)中,實(shí)體集之間的聯(lián)系可以是一對(duì)一或一對(duì)多或多對(duì)多的,那么“學(xué)生”和“可選課程”的聯(lián)系為[41(5)人員基本信息一般包括:身份證號(hào),姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是[51(6)若有定義語(yǔ)句:inta=5;,則表達(dá)式:a++的值是【6】。(7)若有語(yǔ)句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為[7]?(8)以下程序運(yùn)行后的輸出結(jié)果是[81#includemain(){intx=20;printf(44%d,,,0<X<20);<p="H/>printf(t4%d\n,\0<X&&X<=,,M/>(9)以下程序運(yùn)行后的輸出結(jié)果是[9L#includemain(){inta=l,b=7;do{b=b/2;a+=b;}while(b>1);printf(44%d\n,\a);}(10)有以下程序#includemain(){intfl=0;f2=l;printf(44%d%d,,,fl,f2);for(i=3;i<=5;i++){f=fl+f2;printf("%d”,f);fl=f2;f2=f;)printf("\n'');)程序運(yùn)行后的輸出結(jié)果是【10】。(11)有以下程序#includeinta=5;voidfun(intb){inta=10;a+=b;printf(fcfc%d,\a);)main(){intc=20;fun(c);a+=c;printf(fc4%d\n,,,a);I程序運(yùn)行后的輸出結(jié)果是【II】。(12)設(shè)有定義:structperson{intID;charname[12];}p;請(qǐng)將scanf(“%d”,[12]);語(yǔ)句補(bǔ)充完整,使其能夠?yàn)榻Y(jié)構(gòu)體變量p的成員ID正確讀入數(shù)據(jù)。(13)有以下程序#includemain(){chara[20]="Howareyou?,,,b[20];scanf(<<%s,\b);printf(**%s%s\n,\a,b);I程序運(yùn)行時(shí)從鍵盤(pán)輸入:Howareyou?v回車(chē)〉則輸出結(jié)果為【13】。(14)有以下程序#includetypedefstruct{intnum;doubles}REC;voidfun1(RECx){x.num=23;x.s=88.5;}main(){RECa={16,90.0};fun1(a);printf("%d\n”,a.num);)程序運(yùn)行后的輸出結(jié)果是【14】。(15)有以下程序#includefun(intx){if(x/2>0)run(x/2);printf(t4%d”,x);}main(){fun(6);printf("\n");}程序運(yùn)行后的輸出結(jié)果是【15】。2009年3月二級(jí)C語(yǔ)言筆試真題及答案(1)下列敘述中正確的是A)棧是“先進(jìn)先出”的線性表B)隊(duì)列是“先進(jìn)先出”的線性表C)循環(huán)隊(duì)列是非線性結(jié)構(gòu)D)有序性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是A)棧B)樹(shù)C)隊(duì)列D)二叉樹(shù)(3)某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)是A)10B)806D)4(4)下列排序方法中,最壞情況下比較次數(shù)最少的是A)冒泡排序B)簡(jiǎn)單選擇排序C)直接插排序D)堆排序(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是A)編譯軟件B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)匯編程序(6)下面敘述中錯(cuò)誤的是A)軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B)對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C)程序調(diào)試通常也稱(chēng)為DebugD)軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性(7)耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是A)提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C)耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D)內(nèi)聚性是指模塊間互相連接的緊密程度(8)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是A)數(shù)據(jù)庫(kù)設(shè)計(jì)B)數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)C)數(shù)據(jù)庫(kù)維護(hù)D)數(shù)據(jù)庫(kù)管理員培訓(xùn)(9)有兩個(gè)關(guān)系R,S如下:RABCa32bO1c21SABa3bOc2由關(guān)系R通過(guò)運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為A)選擇B)投影C)插入D)連接(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為A)屬性B)鍵C)關(guān)系D)域(11)以下選項(xiàng)中合法的標(biāo)識(shí)符是A)1-1B)1—1C)-11D)1-(12)若函數(shù)中有定義語(yǔ)句:intk;,則A)系統(tǒng)將自動(dòng)給k賦初值0B)這時(shí)k中值無(wú)定義C)系統(tǒng)將自動(dòng)給k賦初值-1D)這時(shí)k中無(wú)任何值(13)以下選項(xiàng)中,能用作數(shù)據(jù)常量的是A)0115B)011801.5el.5D)115L(14)設(shè)有定義:intx=2;,以下表達(dá)式中,值不為6的是A)x*=x+lB)x++,2*xC)x*=(1+x)D)2*x,x+=2(15)程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的輸出結(jié)果是A)123.141593B)123.141593012,3.141593D)123.141593(16)若有定義語(yǔ)句:doublex,y,*px,*py,執(zhí)行了px=&x,py=&y;之后,正確的輸入語(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);(17)以下是if語(yǔ)句的基本形式:if(表達(dá)式)語(yǔ)句其中“表達(dá)式”A)必須是邏輯表達(dá)式B)必須是關(guān)系表達(dá)式C)必須是邏輯表達(dá)式或關(guān)系表達(dá)式D)可以是任意合法的表達(dá)式(18)有以下程序#include<stdio.h>main(){intx;scanf("%d”,&x);if(x<=3);elseif(x!=10)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果A)不等于10的整數(shù)B)大于3且不等于10的整數(shù)C)大于3或等于10的整數(shù)D)小于3的整數(shù)(19)有以下程序#include<stdio.h>Main(){inta=1,b=2,c=3,d=0;if(a==l&&b++==2)if(b!=2IIc-!=3)printf("%d,%d,%d\n”,a,b,c);elseprintf(u%d,%d,%d\nw,a,b,c);elseprintf(<<%d,%d,%d\n>>,a,b,c);)程序運(yùn)行后的輸出結(jié)果是A)1,2,3B)1,3,201,3,3D)3,2,1(20)以下程序中的變量已正確定義for(i=0;i<4;i++,i++for(k=l;k<3;k++);printf(*");程序段的輸出結(jié)果是A)********b) **D)*(21)有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是A)5670B)6566670567D)ABC(22)設(shè)變量已正確定義,以下不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(shù)(不包含回車(chē)符)的程序段是n=0;while((ch=getchar0)!='\n')n++;B)n=0;while(getchar()!='\n*)n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!=,\n';n++);(23)有以下程序#include<stdio.h>main(){intal,a2;charcl,c2;scanf(<<%d%c%d%c>,,&al,&cl,&a2,&c2);printf("%d,%c,%d,%c",&l,cl,a2,c2);)若想通過(guò)鍵盤(pán)輸入,使得al的值為12,a2的是為34,cl的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b,則正確的輸入格式是(以下代表空格,<CR>代表回車(chē))A)12a34b<CR>C)12,a,34,b<CR>12D)12aa3434b<CR>b<CR>24)有以下程序#include<stdio.h>intf(intx,inty){return()y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);)程序運(yùn)行后的輸出結(jié)果是A)10B)908D)7(25)有以下程序#include<stdio.h>voidfun(char*s){while(*s){if(*s%2==0)printf(“%c”,*s);S++;}}main(){chara[]={“good”};fun(a);printf(u\nw);}注意:字母a的ASCII碼值為97,程序運(yùn)行后的輸出結(jié)果是A)dB)goC)godD)good(26)有以下程序#include<stdio.h>voidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y-5,*P=&x,*q=&y;fun(p,q);printf("%d,%d,”;fun(&x,&y);printf(a%d,%d\nw,*p,*q);)程序運(yùn)行后的輸出結(jié)果是A)3,5,5,3B)3,5,3,505,335D)5,3,5,3(27)有以下程序#include<stdio.h>viodf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序運(yùn)行后輸出的結(jié)果是A)1,3B)2,3C)1,4D)1,2(28)以下函數(shù)按每行8個(gè)輸出數(shù)組中的數(shù)據(jù)voidfun(int*w,intn){inti;for(i=0;i<n;i++)printf(“%d",w);}printf(“\n");}下劃線處應(yīng)填入的語(yǔ)句是A)if(i/8==0)print("\n");B)if(i/8==0)continue;if(i%8==0)print(“\n");D)if(i%8==0)continue;(29)若有以下定義intx[10],*pt=x;則對(duì)x數(shù)組元素的正確應(yīng)用是A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+330)設(shè)有定義:chars[81];inti=10;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串真確讀入的語(yǔ)句或語(yǔ)句組是A)gets(s)B)while((sli++]=getchar())!="\n";s="\0”;C)scanf("%s”,s);D)do{scanf("%c",&s);}while(s[i++]!="\n");s="\0";(31)有以下程序#include<stdio.h>main(){char*a[]={tiabcd,,;,ef,,,,gh,V,ijk,,};intI;for(i=0;i<4;i++)printfC(%c",*a);)程序運(yùn)行后輸出的結(jié)果是A)aegiB)dfhkC)abedD)abedefghijk32)以下選項(xiàng)中正確的語(yǔ)句組是A)chars[];s=wBOOK!”;B)char*s;s={wBOOK!”};C)chars[10];s=nBOOK!”;D)char*s;s=MBOOK!”;(33)有以下程序#include<stdio.h>intfun{intx,inty){if(x==y)return(x);elsereturen((x+y)/2)}main(){inta=4,b=5,c=6;printf("%d\n"Jun(2*a,fun(b,c))))程序運(yùn)行后的輸出結(jié)果是A)3B)608D)12(34)設(shè)函數(shù)中有整型變量n,為保證其在未賦值的情況下初值為0,應(yīng)選擇的存儲(chǔ)類(lèi)別是A)autoB)registerC)staticD)auto或register(35)有以下程序#include<stdio.h>intb=2;intfun(int*k){b=*k+b;retum(b);}main(){inta[10]={1,2,3,4,5,678},I;for(i=2;i<4;i++){b=fun(&a)+b;printf("%d",b);)printf ;)程序運(yùn)行后輸出的結(jié)果是A)10B)8010D)101210281636)有以下程序#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;mian(){inta=l,b=2;printf(<<%4.1f\nw,S(a+b));}程序運(yùn)行后輸出的結(jié)果是A)14.0B)31.507.5D)程序有錯(cuò)無(wú)輸出結(jié)果37)有以下程序#include<stdio.h>structord{intx,y;}dt[2]={l,2,3,4);main(){structord*p=dt;printf("%d,”,++p->x);printf("%d\n",++p->y);}程序的運(yùn)行結(jié)果是A)1,2B)2,3C)3,4D)4,138)設(shè)有宏定義:includeIsDIV(k,n) ((k%n==l)?l:0且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是A)判斷m是否能被5或者7整除B)判斷m是否能被5和7整除C)判斷m被5或者7整除是否余1D)判斷m被5和7整除是否余1(39)有以下程序#include<stdio.h>main(){inta=5,b=l,t;t=(a?2lb);printf("%d\n",t)}程序運(yùn)行后的輸出結(jié)果是A)21B)11C)6D)1(40)有以下程序#include<stdio.h>main(){EILE*f;f=fopen("filea.txt"w");fprintf(f,"abc");fclose(f);}若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為A)helloabcB)abcloC)abcD)abchello二、填空題(每空2分,共30分)(1)假設(shè)一個(gè)長(zhǎng)度為50的數(shù)組(數(shù)組元素的下標(biāo)從。到49)作為棧的存儲(chǔ)空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【1】個(gè)元素。(2)軟件測(cè)試可分為白盒測(cè)試和黑盒測(cè)試?;韭窂綔y(cè)試屬于【2】測(cè)試。(3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。(4)數(shù)據(jù)庫(kù)系統(tǒng)的核心是【4】(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實(shí)體聯(lián)系的是【5】框。(6)表達(dá)式(int)((double)(5/2)+2.5)的值是[6](7)若變量x、y已定義為int類(lèi)型且x的值為99,y的值為9,請(qǐng)將輸出語(yǔ)句printf(17】,x/y);補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=ll(8)有以下程序#include<stdio.h>main(){charc1,c2;scanf("&c”,&c1);while(cl<65llcl>90)scanf("&c",&cl);c2=cl+32;printf("&c,&c\n”,cl,c2);}程序運(yùn)行輸入65回車(chē)后,能否輸出結(jié)果、結(jié)束運(yùn)行(請(qǐng)回答能或不能)[8].(9)以下程序運(yùn)行后的輸出結(jié)果是[9】#include<stdio.h>main(){intk=l,s=0;do{if{((k&2)!=0)continue;s+=k;k++;}while(k)10);printf("s=&d/n";}(10)下列程序運(yùn)行時(shí),若輸入labcedl2dfv回車(chē)〉輸出結(jié)果為[10]#include<stdio.h>main(){chara=0,ch;while((ch=getchar())!=,\n,){if(a&2!=0&&(ch>,a,&&ch<=,z,))ch=ch?'a'+'A';a++;putchar(ch);)printf("\n");}(11)有以下程序,程序執(zhí)行后,輸出結(jié)果是【11】#include<stdio.h>voidfun(int*a){a[0=a[l];]}main(){inta[10]={10,9,8,7,6,5,4,3,2,l},i;for(i=2;i>=0;i-)fun{&a};for(i=0;i<l0;i++)printf("&d'',a);}(12)請(qǐng)將以下程序中的函數(shù)聲明語(yǔ)句補(bǔ)充完整#include<stdio.h>int[12];main(){intx,y,(*p)();p=max;printf("&d\

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論