計算機(jī)二級C語言精彩試題庫_第1頁
計算機(jī)二級C語言精彩試題庫_第2頁
計算機(jī)二級C語言精彩試題庫_第3頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機(jī)二級C語言試題庫1有以下程序main () int a=1,b=2,m=0, n=0,k;k=( n=b>a)|(m=apri ntf("%d,%dn",k,m);程序運行后的輸出結(jié)果是A0,0 B0,1 C1,0 D1,12在一個C程序中Amain函數(shù)必須出現(xiàn)在所有函數(shù)之前Bmain函數(shù)可以在任何地方出現(xiàn)Cmain函數(shù)必須出現(xiàn)在所有函數(shù)之后Dmain函數(shù)必須出現(xiàn)在固定位置3有以下程序main () int a=5,b=4,c=3,d=2;if (a>b>c)prin tf("%dn", d);else if ( (c-1 >

2、;= d) = 1)prin tf("%dn", d+1);elseprin tf("%dn", d+2);執(zhí)行后輸出結(jié)果是A2 B3 C4 D丨編譯時有錯,無結(jié)果4有以下程序main () int i;for (i=0; i<3; i+)switch (i) case 1: prin tf("%d ", i);case 2: prin tf("%d ", i);default : prin tf("%d ", i);執(zhí)行后輸出結(jié)果是A011122 B012 C012020 D120 來源

3、:.examda.5有以下程序main () int k=4, n=0;for( ; n n+;if(n %3!=0) con ti nue;k-; prin tf("%d,%dn",k, n);程序運行后的輸出結(jié)果是A1,1 B2,2 C3,3 D4,46有以下程序fun (i nt a, int b) if(a>b) return(a);else return(b);main () int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);prin tf("%dn", r);程序運行后的輸出結(jié)果是A3 B6 C8 D1

4、27有以下程序int *f(int *x, i nt *y) if (*x < *y)return x;elsereturn y;main () int a=7,b=8,*p,*q, *r;p=&a; q=&b;r = f(p,q);prin tf("%d,%d,%dn",*p,*q,*r);執(zhí)行后輸出結(jié)果是A7,8,8 B7,8,7 C8,7,7 D8,7,88以下能正確地定義整型變量a, b和c并為其賦初值5的語句是A) int a=b=c=5 ;B)int a,b,c=5 ;C)a=5,b=5,c=5 ;D)a=c=b=5 ;9假如二維數(shù)組a有m

5、列,如此在aij前的元素個數(shù)為Aj*m+i B)i*m+j C)i*m+j-1 D)i*m+j+110下面程序段是輸出兩個字符串中對應(yīng)相等的字符。請選擇填空char x= " programming "char y= " Fortran"int i=0;while(xi!= 0' &&yi!= 0')if(xi= =yi)pri ntf( ",);" %celse i+;A) xi+ B)y+i C)xi D)yi11假如使用一維數(shù)組名作函數(shù)實參,如此以下正確的說法是A丨必須在主調(diào)函數(shù)中說明次數(shù)組的大小

6、B實參數(shù)組類型與形參數(shù)組類型可以不匹配C在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小D實參數(shù)組名與形參數(shù)組名必須一致12以下程序的正確運行結(jié)果是#i ncluedmain ()int k=4,m=1,p;p=func(k,m);printf(” ,p)%dp=func(k,m);printf(n ”"fun c(i nt a,i nt b)static int m=0,i=2;i+=m+1;m=i+a+b;return(m);A) 8,17 B)8,16 C)8,20 D)8,813假如有說明:int *p,m=5,n ;以下正確的程序段是A) p=&n ;sca nf("

7、;'%&p);B) p=&n ;sca nf('"%dp);C) scanf("'%&n);*p=n;D) p=&n ;*p=m;14執(zhí)行以下程序后,a和b的值為main ()int a,b,k=4,m=6,*p 1=&k,*p2=&m;a=p1=&m;b=(-*p1)/(*p2)+7;pri ntf( " a=%d ,a);printf( “ b=%d ,b);A) -1 ,5 B)1,6 C)0,7 D)4,10如此文件方式字15假如要用fopen函數(shù)打開一個新的二進(jìn)制文件,該文件

8、要既能讀也能寫,符串應(yīng)是A) ” ab+” B) ” wb+ ” C)” rb+ ” D ” ab”16根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為已有定義:float f1,f2;數(shù)據(jù)的輸入方式4523.5A) scanf(" %f,%t&f1,&f2);B) scanf(“ f%&f1,&f2);C) scanf(“ %3.2f %2.1,&f1,&f2);D) scanf(“ 3.2f%2.1,&f1,&f2);17分析以下程序運行結(jié)果#i ncludeint fun c(i nt n)if(n=1)return

9、 1;elsereturn( n*func(n-1);void mai n()int x;x=fu nc(5);printf(“r%d,x);A) 100 B)5 C)1 D)120 18分析以下程序運行結(jié)果#in clude void mai n()int y=2,a=1;while(y-!=-1)doa*=y;a+;while(y-);printf(“ %c%d,a,y);A) 1,-2 B)2,1 C)1,0 D)2,-119下面程序段的運行結(jié)果是char a7= " abcdef"charb4= ” ABC ” ;strcpy(a,b);printf( "

10、%c5);A) 空格 B)0 C)e D)f20下面是對s的初始化,其中不正確的答案是A) char s5=“ ab(B)char s5= a' , ' b' , ' c' ;C)char s5= "" ; D)char s5= " abcdef"21執(zhí)行語句for(i=1;i+<4;);后變量i的值是A) 3 B)4 C)5 D)不定22以下程序段x=-1;dox=x*x;while(!x);A)是死循環(huán) B)循環(huán)執(zhí)行二次C)循環(huán)執(zhí)行一次D)有語法錯誤23假如有以下定義和語句:inion dataint i

11、;char c;float f;a;int n;如此以下語句正確的答案是A) a=5; B)a=2,' a' ,1.2; C)printf(n" ,a); D)'r%)a;24下面程序的運行結(jié)果是main ()struct cmplx int x;int y;um2=1,3,2,7;printf(“n%d,um0.y/um0.x*cu nm1.x);A) 0 B)1 C)3 D)625以下程序的運行結(jié)果是main ()int k=4,a=3,b=2,c=1;printf( n%dn" ,kA) 4 B)3 C)2 D)1二填空1假如有以下定義,如此計

12、算表達(dá)式y(tǒng)+=y-=m*=以后y的值是int m=5,y=2;2假如有定義:int b=7;float a=2.5,c=4.7;:如此下面表達(dá)式的值為 a+(i nt)(b/3*(i nt)(a+c)/2)%43有int a=3,b=4,c=5;,如此以下表達(dá)式的值為 !(a+b)+c-1 &&b+c/24條件"2或x<-10"的c語言表達(dá)式是 5以下程序的功能是判斷輸入的年份是否是閏年.請在內(nèi)填入正確內(nèi)容main ()int y,f;sca nf( “ d&y);if(y%400=0)f=1;else if(5 )f=1;else6;if(f

13、) printf("“ d iselse printf(“ %d ' is,y)o tprintf( “ a leap near);5。請?zhí)羁?下面程序的功能是計算100至1000之間有多少個數(shù)其各位數(shù)字之和是#i ncludemain (0int i,s,k,co un t=0;for(i=100;i<=1000;i+)s=0;k=i;while(7)s=s+k%10;k=8;if(s!=5)9;else coun t+;printf(“'dou nt);7下面程序?qū)⒍S數(shù)組a的行和列元素呼喚后存到另一個二維數(shù)組b中。請?zhí)羁誱ain ()int a23=1,2

14、,3,4,5,6;int b32,l,j;printf(“ array "a:);for(i=0;i<=1;i+)for(j=0;10;j+)pri ntf(“ 5aij);11;printf( n“);printf(“ array "b:);for(i=0;12;i+)for(j=0;j<=1;j+)printf( “ 5dij);printf( n"“);8以下search函數(shù)的功能是利用順序查找法從數(shù)組a的10個元素中對關(guān)鍵字m進(jìn)展查找。順序查找法的思路是:從第一個元素開始,從前向后依次與關(guān)鍵字你叫,直到找到此元素或查找到數(shù)組尾部時完畢。假如找到

15、,返回此元素的下標(biāo);假如仍未找到,如此返回值-1。請?zhí)羁?i ncludeint search(i nt a10,i nt m)int I;for(i=0;i<=9;i+) if(1)return(i);return(-1);main ()int a13,m,i,no;no=search(14);if(15) printf( nOK FOUND!%d " ,no +1);else printf( nSorry Not Found!");9 假如有定義:int a=2,4,6,8,10,12,*p=a;如此 *(p+1)的值是16 , *(a+5)的值是1710將任意輸

16、入的一個偶數(shù)n分解為兩個素數(shù)之和,并給出各種分解方法#in cludemain ()int n,i;int check(i nt x);doscanf( “ d&n);while( n%2!=0);for(i=3;i<=n/2;i+)if(check(i) &&18)printf( “ d=%d+%'d ,n,i,n-i);int check(i nt x)int i;for(i=2;iif(19) return(O);return(1);11函數(shù)調(diào)用語句:fgetsbuf, n, fp;從fp指向的文件中讀入20個字符放到buf字符數(shù) 組中。函數(shù)值為21

17、12設(shè)數(shù)組a包括10個整型元素。下面程序的功能是求出a中各相鄰元素的和,并將這些和存在數(shù)組b中,按每行3個元素的形式輸出。請?zhí)羁誱ain ()int a10,b10,i;for(i=0;i<10;i+)scanf( “ d&ai);for(22;i<10;i+)23for(i=1;i<10;i+) pri ntf(“'咂);if(24=0) printf(n"); “13如果以下程序輸入的是 we are stude nts,如此輸出的結(jié)果是25#i nclude “ stdio.hvoid mai n() char s81,*p;printf( &

18、quot;In put a sen tende:);gets(s);for(p=s;*p;p+)if(*p=32) / 空格鍵的 ASCII 值是 32 if(*(p+1)!=32) printf(n" ); “else putchar(*p);05年9月等級考試二級C語言考前密卷2選擇題 (10)每一小題2分,(11)-(50)每一小題1分,共60分)如下各題 A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在 答題卡相應(yīng)位置上,答在試卷上不得分。(1) 算法分析的目的是。A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)找出算法中輸入和輸出之間的關(guān)系C)分析算法的易懂性和可靠性

19、D)分析算法的效率以求改良答案:D評析:算法分析是指對一個算法的運行時間和占用空間做定量的分析,一般計算出相應(yīng)的數(shù)掌級,常用時間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率。(2) n個頂點的強(qiáng)連通圖的邊數(shù)至少有 。A) n-1B) n(n-1)C)nD) n+l答案:C評析:在有向圖中,假如任意兩個頂點都連通,如此稱該圖是強(qiáng)連通圖,這樣的有向圖 的形狀是環(huán)狀,因而至少應(yīng)有n條邊。(3) 數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)采用的算法是。A)堆排序B)直接插入排序C)快速排序D)直接選擇排序答案:B評析:當(dāng)數(shù)據(jù)表A中每個元素距其

20、最終位置不遠(yuǎn),說明數(shù)據(jù)表A按關(guān)鍵字值根本有序,在待排序序列根本有序的情況下,采用插入排序所用時間最少,故答案為選項B。(4) 用鏈表表示線性表的優(yōu)點是 。A)便于插入和刪除操作B)數(shù)據(jù)元素的物理順序與邏輯順序一樣C)花費的存儲空間較順序存儲少D)便于隨機(jī)存取答案:A評析:鏈?zhǔn)酱鎯Y(jié)構(gòu)克制了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放; 它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。故鏈?zhǔn)酱鎯Y(jié)構(gòu)下的線性表便于插入和刪除操作。(5) 如下不屬于結(jié)構(gòu)化分析的常用工具的是 。A)數(shù)據(jù)流圖B)數(shù)據(jù)字典C)判定樹 D)PAD圖答案:D評析:結(jié)構(gòu)化分析的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、

21、判定樹和判定表。而PAD圖是常見的過程設(shè)計工具中的圖形設(shè)計。(6) 軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成 。A)定義、開發(fā)、運行維護(hù)B)設(shè)計階段、編程階段、測試階段C)總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試D)需求分析、功能定義、系統(tǒng)設(shè)計答案:A評析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)與軟件運行維護(hù)三個階段。(7)在軟件工程中,白盒測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是A)循環(huán)的集合B)地址的集合C)路徑的集合D)目標(biāo)的集合答案:C評析:軟件的白盒測試方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)

22、部的邏輯結(jié)構(gòu)與有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)展測試。(8)在數(shù)據(jù)管理技術(shù)開展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有A)數(shù)據(jù)無冗余B)數(shù)據(jù)可共享C)專門的數(shù)據(jù)管理軟件D)特定的數(shù)據(jù)模型答案:D評析:在文件系統(tǒng)中,相互獨立的記錄其內(nèi)部結(jié)構(gòu)的最簡單形式是等長同格式記錄的集 合,易造成存儲空間大量浪費,不方便使用。而在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié) 構(gòu)化要求在描述數(shù)據(jù)時不僅描速數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系, 這正是通過采用特定的數(shù)據(jù)模型來實現(xiàn)的。(9)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是 。A)分布式B)數(shù)據(jù)冗余C)數(shù)據(jù)分布性和邏輯整體性D)位置透明性和復(fù)制透明性

23、答案:B評析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性的特點,其數(shù)據(jù)也是分布的; 但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲,數(shù)據(jù)也并非必須重復(fù)存儲,主要視數(shù)據(jù)的分配模式而定。假如分配模式是一對多, 即一個片段分配到多個場地存放,如此是冗余的數(shù)據(jù)庫,否如此是非冗余的數(shù)據(jù)庫。(10)如下說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是 。A)數(shù)據(jù)結(jié)構(gòu) B)數(shù)據(jù)操作C)數(shù)據(jù)查詢D)數(shù)據(jù)約束答案:C評析:數(shù)據(jù)模型所描述的內(nèi)容有 3個局部,它們是數(shù)據(jù)結(jié)構(gòu)、 數(shù)據(jù)操作和數(shù)據(jù)約束。數(shù)據(jù)操作主要是描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型與操作方式;數(shù)據(jù)模型中的數(shù)據(jù)約束主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、語義聯(lián)系

24、,它們之間的制約與依存關(guān)系,以與數(shù)據(jù)動態(tài)變化的 規(guī)如此,以保證數(shù)據(jù)的正確、有效與胡容。(11)在結(jié)構(gòu)化程序設(shè)計中,限制使用goto語句的原因是 A)提高程序的執(zhí)行效率B) 提高程序的清晰性和可靠性C) 便于程序的合成D) 該語句對任何結(jié)構(gòu)的程序都不適用答案:B評析:在c語言中,限制使用 goto語句,其目的是為了提高程序的清晰性與可靠性, 般來說,除了從多重循環(huán)中跳出,一般不使用goto語句。(12) 以下選項中合法的實型常數(shù)是 。A) 5E2 . 0B)E-3 C). 2E0D)1 . 3E答案:C評析:以指數(shù)形式表示實數(shù)時,字母e(或E)之前必須有數(shù)字,且 e后面指數(shù)必須為整數(shù)。(13)

25、如下表示中,正確的答案是 。A) C語言中既有邏輯類型也有集合類型B) c語言中沒有邏輯類型但有集合類型B) C語言中有邏輯類型但沒有集合類型B) C語言中沒有邏輯類型也沒有集合類型答案:B評析:在c語言中只提供了整型、浮點型、字符型這幾種根本類型,c語言沒有提供邏輯類型,在c中一般用整型來表示邏輯類型。在自定義類型中,c提供了 struct, enum與union類型,但沒有提供集合類型,在pascaI中提供了集合類型 set。(14) 大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,如此用八進(jìn)制表示的 字符常量 101 '是。A) 字符A B)字符a C)字符e D

26、)非法的常量答案:A評析:八進(jìn)制101轉(zhuǎn)換為十進(jìn)制即為 65,而字母A的ASCII碼是65,所以用八進(jìn)制表 示的字符常量101 '是A。(15) 設(shè)a和b均為double型常量,且 a=5. 5、b=2. 5,如此表達(dá)式(int)a+b / b的值是A) 6 . 500000B)6C)5. 500000D)6. 000000答案:D評析:各類數(shù)值型數(shù)據(jù)在進(jìn)展混合運算時, 不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)展運算。轉(zhuǎn)換的規(guī)如此為:總是轉(zhuǎn)換為精度更大的數(shù)據(jù)類型,字符數(shù)據(jù)轉(zhuǎn)換為整數(shù),short型轉(zhuǎn)為int型,float型數(shù)據(jù)在運算時轉(zhuǎn)換成雙精度型,以提高運算精度。(16) 以下四個選項

27、中不能看作一條語句的是 。A) ; B)a=0, b: 0, c=0;C)if(a>0) ;D)if(b=0)m=l ; n=2;答案:D評析:選項A為空語句,選項 B是一個由逗號運算符表達(dá)式形成的語句,選項c為個條件語句,選項 D有兩個分號,是由兩個語句構(gòu)成,不能看成一條語句。(17) i、j、k為int型變量,假如從鍵盤輸入:1, 2, 3/,使i的值為I、j的值為2、k的值為3,以下選項中正確的輸入語句是 。A) scanf(" % 2d % 2d % 2 dtt, &i,& j, &k);B) scanf(” % d % d % d",

28、 &,& j,& k);C) scanf(” % d,% d, % dfI,& i,& j, & k);D) scanf("i= %d, j= %d, k= %d-t, & , &j , &k);答案:C評析:如果在"格式控制”字符串中除了格式說明以外還有其它字符,如此在輸入數(shù)據(jù)時應(yīng)輸入與這些字符一樣的字符。(18) 關(guān)于goto語句的使用,下面正確的答案是 。A) goto 2 ;B)goto g ;C)goto g : ;D)goto 2 ;2: exit(0) ; g: exit(O); g: e

29、xit(O) ;2 exit(0);答案:B評析:在c 中, goto語句后面的標(biāo)號的命名規(guī)如此與c語言中標(biāo)識符的命名規(guī)如此一樣,在goto語句后面的標(biāo)號后不要加":"號,在某一行上添加標(biāo)號時,在標(biāo)號的后面要添加":"號。(19) 假如有以下程序:main ()int k=2 , i=2 , m;m=(k+=l*=k);printf(" %d, % d、n", m, i);執(zhí)行后的輸出結(jié)果是。A) 8 , 6B)8 , 3C)6 , 4 D) 7 , 4答案:C評析:在賦值符"="之前加上其它運算符,可以構(gòu)成復(fù)合的

30、運算符。此運算為右結(jié)合性, 即從右往左計算。I*=k即i=i*k=2*2=4 , k=k+i=2+4=6,然后將k的值賦給 m。(20) 以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#define N 10void arrin (i nt xN) int i=0 ;while(i在下劃線處應(yīng)填入的是。A) x+iB)& xi+lC)x+(i+) D)& x+I答案:C評析:在c中,對于一維數(shù)組而言,數(shù)組變量表示數(shù)組中首元素的的地址。當(dāng)用scanf函數(shù)向數(shù)組x的第i個元素中輸入整型數(shù)據(jù)時,只要執(zhí)行scanf(” % d"x+i):由于要循環(huán)輸入數(shù)組中和各

31、個元素,必須要使其地址值不斷自增。故此題答案為c。(21) 已有定義:int x=3 , y=4,z=5 ;,如此表達(dá)式!(x+y)+z-l & &y+z / 2 的值是A) 6B)0C)2D)1答案:D!>/>+,->&& 即: !(3+4)+5-1 &&4+5 /評析:在此題中,運算符的優(yōu)先級分別為:2=0+5-1 &&4+2=4&&6=1。(22) 以下選項中,與 k=11+完全等價的表達(dá)式是 。A)k=n , n=n+1 B)n=n+1, 1(=nC)l(=什 nD)k+-n+1答案:A評

32、析:n+是自增運算,是先使用,然后再使n加1,(28) 已定義以下函數(shù):fun (char*p2,char*p1)while(*p2=*p1)!=' 0' )pl+ ; p2+; 函數(shù)的功能是。A) 將p1所指字符串復(fù)制到p2所指內(nèi)存空間B) 將pl所指字符串的地址賦給指針p2C) 對p1和p2兩個指針?biāo)缸址M(jìn)展比擬D) 檢查p1和p2兩個指針?biāo)缸址惺欠裼蠴'答案:A評析:由于在while循環(huán)的條件中執(zhí)行了 *p2=*pl運算,其作用是將*pl中的內(nèi)容復(fù)制到 *p2中,而(*p2=*p1)!= ' 0'的作用是判斷當(dāng)前字符是否為字符串完畢字符O

33、 '。在循環(huán)體中p1+ , p2+的目的是移動字(29) 有以下程序void fun( char*c,i nt d)*c=*c+1 ; d=d+1 ;printf(" %c,% c, ", *c , d);main ()char a :。A' , b。 a'fun(&b , a); printf(" % c,% cn", a, b);)程序運行后的輸出結(jié)果是 。A)B,a,B,a B)a,B,a,B C)A , b, A,b D)b , B, A , b 答案:D評析:將a, b代入函數(shù)得+&b=。 &b+

34、仁a+l=b,所以打印出第一個字母b;a=a+l=A+l=B,打印出第二個字符B;a=' A',輸出字母A ;b由于是按地址傳到函數(shù)而被修改,為b',輸出字母b(30)以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進(jìn)展由大到小的排序。void sort(int a , im n)intiJ , t;for(i=O ; i for=i+1 0 if(ai main ()int aa10 : 1,2,3,4,5,6,7,8,9,10, i;sort(&aa3 , 5);for(i=0 ; iprintf(”、n");)程序運行后的輸出結(jié)果是 。A)l

35、, 2,3,4, 5,6,7, 8, 9, 10,B)10,9,8,7,6,5,4,3 , 2,1,C) l, 2,3,8, 7,6,5, 4, 9, 10,D)l,2,10,9,8,7,6,5,4,3 ,答案:C評析:此題并不是對數(shù)組的所有元素進(jìn)展排序,而是對從a3開始往后的4個元素進(jìn)展排序。(31) 對于基類型一樣的兩個指針變量,不能進(jìn)展的運算是 。A)<B)= C)+ D)答案:C評析:對于指針變量,除了常規(guī)的 *、&、=運算外,還可以對其比擬地址的大小,計算 兩指針變量的差值,但對于地址執(zhí)行+、*、/、等算術(shù)運算都是無意義的。(32) 有以下程序main ()char a

36、= ' a', b', c ', d' ,' e' / f', g' ,' h', O' ; int I,J ;i=sizeof(a) ; j=strlen(a);printf(" %d,% dn", I,J);程序運行后的輸出結(jié)果是 。A)9,9B)8,9C)1,8D)9,8答案:D評析:sizeof()函數(shù)是計算字符數(shù)組的長度,因為0 '也是一個字符,要計算在內(nèi)。strle n()是計算字符串長度的函數(shù),遇到0 '即認(rèn)為是字符串完畢,不把空字符計入字符串的長度

37、。(33) 以下不能正確定義二維數(shù)組的選項是 。A)int a22=1, 2 B)int a2=l, 2, 3, 4C) int a22=l, 2,3 D)int a2=1, 2 , 3 , 4答案:D評析:在二維數(shù)組進(jìn)展初始化時,可以省略數(shù)組的一個維度,但省略的維數(shù)只能是高維 局部,不能是低維。對于多維數(shù)組的初始化時,也是同樣處理,因此,此題答案應(yīng)選D,其它選項均能對數(shù)組進(jìn)展正確的初始化。(34) 有一函數(shù)廠 I x>0y= TO x=OL -1 x以下程序段中不能根據(jù)x的值正確計算出y的值的是 。A)if(x>O)y=l ; else if(x=O)y=0 ; else y=-

38、l;B) y=O ; if(x>O)y=1 ; else if(x C)y=0;if(x>=0)if(x>0)y=1; else y=-l;D) if(x>=0)if(x>O)y=l ; else y=O; else y=-1;答案:C評析:此題應(yīng)當(dāng)注意if與else的配對關(guān)系。從最內(nèi)層開始,else總是與它上面最近的(未 曾配對的)if配對。(35) 以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)展逆置。void reverse(int a, im n)int i,t ;for(i=O ; i t=ai ; ai=an-l-i ; an-1-i=t

39、 ; main ()int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0;reverse®, 8);for(i=6 ; i<10; i+)s+=bI;printf(" % d n", s);程序運行后的輸出結(jié)果是A)22B)10C)34D)30答案:A評析:此題并不是將整個數(shù)組中的內(nèi)容逆置,而是逆置前8個元素。逆置后的數(shù)組為:8, 7, 6, 5, 4, 3, 2, 1 , 9, 10通過 for 循環(huán)計算 b6+b7+b8+b9即 2+1+9+10=22。(36) 執(zhí)行下面的程序段后,變量k的值為。int k=3,s2;s0=k

40、; k=s1*10 ;A)不確定 B)33C)30D)10答案:A評析:由于此題中未對數(shù)組進(jìn)展初始化,因此程序運行時,數(shù)組 s中各個元素的值都是不確定的,雖然在代碼中對 sO進(jìn)展了賦值,但沒有對 s1進(jìn)展賦值,故執(zhí)行l(wèi)(=s1+10 ; 后,k的值不確定。(37) 有以下程序#i ncludemain () char' p="abcde 0fghjik O"printf(" % d n",strlen(p);程序運行后的輸出結(jié)果是 。A)12B)15C)6D)5答案:D評析:"0"是字符串完畢標(biāo)志,當(dāng)遇到此標(biāo)志時字符串已完畢。

41、所以字符串的長度為(38) 程序中頭文件t)rpel_h的內(nèi)容是:#define N 5#define Ml N*3程序如下:#i nclude"type 1.h"#define M2 N*2main () inti ;i=MI+M2 ;printf(" % d n", i);程序編譯后運行的輸出結(jié)果是 。A)lO B)20C)25D)30答案:C評析:宏定義就是用一個指定的標(biāo)識符(即名字)來代表一個字符串,它的一般形式為:#define 標(biāo)識符字符串這種方法使用戶能以一個簡單的名字代替一個長的字符串,因此把這個標(biāo)識符(名字)稱為"宏名&quo

42、t;。(39)假如有以下的程序段,如此在執(zhí)行for語句后,*(*(pt+1)+2)表示的數(shù)組元素是int t33,*pt3,k ;for(k=0 ; k<3 ; k+)ptk=&tkO;A)t20Bt22Ct12Dt21答案:C評析:在題面中定義了一個二維數(shù)組I,與一個一維指針數(shù)組pt,在循環(huán)語句中分別對指針 數(shù)組賦值為二維數(shù)組t的第k行首元素的地址。*(pt+1),表示的是數(shù)組 pt中下標(biāo)為1的元素的值,而該值為二維數(shù)組t的第I行(從第0行算起)的首元素的地址,故*(*(pt+1)+2)表示的是數(shù)組t中t12的元素的值。(40) 以下表示中錯誤的答案是 。A) 二進(jìn)制文件打開后

43、可以先讀文件的末尾,而順序文件不可以B) 在程序完畢時,應(yīng)當(dāng)用fclose函數(shù)關(guān)閉已打開的文件C) 利用fread函數(shù)從二進(jìn)制文件中讀數(shù)據(jù),可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)D) 不可以用FILE定義指向二進(jìn)制文件的文件指針答案:D評析:每個被使用的文件都在內(nèi)存中開辟一個區(qū),用來存放文件的有關(guān)信息, 這些信息是保存在一個名為 FILE的結(jié)構(gòu)體類型的結(jié)構(gòu)體變量中的。 而文件又分為 ASCII文件和二進(jìn) 制文件,所以,、可以用FILE定義指向二進(jìn)制文件的文件指針。(41) 有以下程序#i ncludemain (i nt argc,char *argv) inti,len=0 ;for(i=1

44、; iprintf(” % d n",len);)程序編譯連接后生成的可執(zhí)行文件是exl. exe,假如運行時輸入帶參數(shù)的命令行是:exl abed efg10/如此運行的結(jié)果是。A)22B)17C)12D)9答案:D評析:此題主函數(shù)帶有兩個參數(shù),一個int型變量argc,另一個是char型的一維一級指針數(shù)組argv。當(dāng)主函數(shù)被執(zhí)行時,系統(tǒng)自動將根據(jù)命令行的情況,分別給主函數(shù)的兩個參數(shù)賦值。argc用于存放命令行中命令字和參數(shù)的總和的個數(shù)4, argv用來存放命令行中命令字和所有參數(shù)的字符串,并規(guī)定argv0存放命令字字符串exl, argv1用來存放第一個參數(shù)的字符串a(chǎn)bcd, a

45、rgv21用來存放第二個參數(shù)的字符串e龜,argv 3用來存放第三個參數(shù)的字符串10。那么for循環(huán)將循環(huán)3次分別將argv數(shù)組中元素的長度累加到len中,所以答案為9。(42) 假如有以下說明和定義: 。fun(*C)main ()int(*a)()=fun , (*b)() , w10 , c; 在必要的賦值后,對fun函數(shù)調(diào)用正確的答案是 。A)a=a(w) ;B) (*a)(&C) ;C)b=*b(w) ; D)fun(b);答案:B評析:在主函數(shù)中定義了二個指向函數(shù)的指針a,b,其中指針a指向函數(shù)fun,指針b未初始化。對于選項A、c,其返回類型是錯誤的,對于D,其調(diào)用的參數(shù)

46、是錯誤的,選項B是正確的,其相當(dāng)于調(diào)用函數(shù)fhll(&C);。(43) 有以下程序intfa(intx、returnx*x ; int fb(i ntxlreturnX*X*x ; int f(int(*f1)() , int(*f2)() , int x)return f2(x)-fl(x);)mai n() inti ;i=f(fa,fb,2) ; printf(" % d n", i);程序運行后的輸出結(jié)果是A) 4B)1C)4D)8答案:C(28) 已定義以下函數(shù):fun (char*p2,char*p1)while(*p2=*p1)!=' 0

47、9; )pl+ ; p2+; 函數(shù)的功能是。A) 將pl所指字符串復(fù)制到p2所指內(nèi)存空間B) 將pl所指字符串的地址賦給指針p2C) 對pl和p2兩個指針?biāo)缸址M(jìn)展比擬D) 檢查pl和p2兩個指針?biāo)缸址惺欠裼蠴'答案:A評析:由于在while循環(huán)的條件中執(zhí)行了 *p2=*pl運算,其作用是將*pl中的內(nèi)容復(fù)制到 *p2中,而(*p2=*p1)!= ' 0'的作用是判斷當(dāng)前字符是否為字符串完畢字符O '。在循環(huán)體中p1+ , p2+的目的是移動字(29) 有以下程序void fun( char*c,i nt d)化=憶+1 ; d=d+1 ;printf

48、(" %c,% c, ", *c , d);main ()char a :。A' , b。 a'fun(&b , a); printf(" % c,% cn", a, b);)程序運行后的輸出結(jié)果是 。A)B,a,B,a B)a,B,a,B C)A , b, A,b D)b , B, A , b 答案:D評析:將a, b代入函數(shù)得+&b=。 &b+仁a+l=b,所以打印出第一個字母b;a=a+l=A+l=B,打印出第二個字符B;a=' A',輸出字母A ;b由于是按地址傳到函數(shù)而被修改,為b'

49、;,輸出字母b(30) 以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進(jìn)展由大到小的排序。void sort(int a , im n)intiJ , t;for(i=O ; i for=i+1 0 if(ai main ()int aa10 : 1,2,3,4,5,6,7,8,9,10 , i;sort(&aa3 , 5);for(i=0 ; i printf(" n");)程序運行后的輸出結(jié)果是 。A)l , 2,3,4,5,6,7,8, 9,10,B)10,9,8,7,6,5,4,3 , 2,1,C) l , 2 ,3 ,8 ,7 ,6 ,5 ,4 , 9

50、 ,10 ,D)l,2,10,9,8,7,6,5,4,3 ,答案:C評析:此題并不是對數(shù)組的所有元素進(jìn)展排序,而是對從a3開始往后的4個元素進(jìn)展排序。(31) 對于基類型一樣的兩個指針變量,不能進(jìn)展的運算是 。A)<B)= C)+ D)答案:C評析:對于指針變量,除了常規(guī)的*、&、=運算外,還可以對其比擬地址的大小,計算兩指針變量的差值,但對于地址執(zhí)行+、*、/、等算術(shù)運算都是無意義的。(32) 有以下程序main ()char a= ' a', b', c ', d' ,' e', f', g' ,'

51、; h', O' ; int l,J ;i=sizeof(a) ; j=strlen(a);printf(” d,% dn", I,J);程序運行后的輸出結(jié)果是 。A)9,9B)8,9C)1,8D)9,8答案:D評析:sizeof()函數(shù)是計算字符數(shù)組的長度,因為0 '也是一個字符,要計算在內(nèi)。strle n()是計算字符串長度的函數(shù),遇到 0 '即認(rèn)為是字符串完畢,不把空字符計入字符 串的長度。(33) 以下不能正確定義二維數(shù)組的選項是 。A)int a22=1, 2B)int a2=l , 2, 3, 4C) int a22=l, 2,3D)int

52、 a2=1, 2 , 3 , 4答案:D評析:在二維數(shù)組進(jìn)展初始化時,可以省略數(shù)組的一個維度,但省略的維數(shù)只能是高維 局部,不能是低維。對于多維數(shù)組的初始化時,也是同樣處理,因此,此題答案應(yīng)選D,其它選項均能對數(shù)組進(jìn)展正確的初始化。(34) 有一函數(shù)廠 I x>0y= T O x=OL -1 x以下程序段中不能根據(jù)x的值正確計算出y的值的是 。A) if(x>O)y=l ; else if(x=O)y=0 ; else y=-l;B) y=O ; if(x>O)y=1 ; else if(x C)y=O;if(x>=O)if(x>O)y=1 ; else y=-l

53、;D) if(x>=0)if(x>O)y=l; else y=O ; else y=-1;答案:C評析:此題應(yīng)當(dāng)注意if與else的配對關(guān)系。從最內(nèi)層開始,else總是與它上面最近的(未 曾配對的)if配對。(35) 以下程序中的函數(shù) reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)展逆置。void reverse(int a , im n)int i , t ;for(i=O ; i t=ai ; ai=an-l-i ; an-1-i=t ; main ()int b10=1,2,3,4,5,6,7,8,9,10; int i , s=0;reverse®, 8);for(

54、i=6 ; i<10; i+)s+=bI;printf(” d n", s);程序運行后的輸出結(jié)果是A)22B)10C)34D)30答案:A評析:此題并不是將整個數(shù)組中的內(nèi)容逆置,而是逆置前8個元素。逆置后的數(shù)組為:8, 7,6,5,4,3,2,1,9,10 通過 for 循環(huán)計算 b6+b7+b8+b9即 2+1+9+10=22。(36) 執(zhí)行下面的程序段后,變量k的值為。int k=3,s2;s0=k ; k=s1*10 ;A)不確定 B)33C)30D)10答案:A評析:由于此題中未對數(shù)組進(jìn)展初始化,因此程序運行時,數(shù)組 s中各個元素的值都是不確定的,雖然在代碼中對 sO

55、進(jìn)展了賦值,但沒有對 s1進(jìn)展賦值,故執(zhí)行l(wèi)(=s1+10 ; 后,k的值不確定。(37) 有以下程序#i ncludemain () char' p="abcde 0fghjik O"printf(" % d n",strlen(p);程序運行后的輸出結(jié)果是 。A)12B)15C)6D)5答案:D評析:"0"是字符串完畢標(biāo)志,當(dāng)遇到此標(biāo)志時字符串已完畢。所以字符串的長度為5。(38) 程序中頭文件t)rpel_h的內(nèi)容是:#define N 5#define Ml N*3程序如下:#i nclude"type 1.h"#define M2 N*2main () inti ;i=MI+M2 ;printf(" % d n",i);程序編譯后運行的輸出結(jié)果是 。A)lO B)20C)25D)30答案:C評析

溫馨提示

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

評論

0/150

提交評論