




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)二級(jí)C語言試題庫1有以下程序 main() int a=1,b=2,m=0,n=0,k; k=(n=b>a)|(m=aprintf("%d,%dn",k,m); 程序運(yùn)行后的輸出結(jié)果是 A)0,0 B)0,1 C)1,0 D)1,1 2在一個(gè)C程序中 A)main函數(shù)必須出現(xiàn)在所有函數(shù)之前 B)main函數(shù)可以在任何地方出現(xiàn) C)main函數(shù)必須出現(xiàn)在所有函數(shù)之后 D)main函數(shù)必須出現(xiàn)在固定位置 3有以下程序 main() int a=5,b=4,c=3,d=2; if (a>b>c) printf("%dn", d); el
2、se if ( (c-1 >= d) = 1) printf("%dn", d+1); else printf("%dn", d+2); 執(zhí)行后輸出結(jié)果是 A)2 B)3 C)4 D)編譯時(shí)有錯(cuò),無結(jié)果 4有以下程序 main() int i; for (i=0; i<3; i+) switch (i) case 1: printf("%d ", i); case 2: printf("%d ", i); default : printf("%d ", i); 執(zhí)行后輸出結(jié)果是 A)
3、011122 B)012 C)012020 D)120來源: 5有以下程序 main() int k=4,n=0; for( ; n n+; if(n%3!=0) continue; k-; printf("%d,%dn",k,n); 程序運(yùn)行后的輸出結(jié)果是 A)1,1 B)2,2 C)3,3 D)4,4 6有以下程序 fun(int 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); printf("%dn"
4、, r); 程序運(yùn)行后的輸出結(jié)果是 A)3 B)6 C)8 D)12 7有以下程序 int *f(int *x, int *y) if (*x < *y) return x; else return y; main() int a=7,b=8,*p,*q, *r; p=&a; q=&b; r = f(p,q); printf("%d,%d,%dn",*p,*q,*r); 執(zhí)行后輸出結(jié)果是 A)7,8,8 B)7,8,7 C)8,7,7 D)8,7,8 8以下能正確地定義整型變量a,b和c并為其賦初值5的語句是 A)int a=b=c=5; B)int
5、a,b,c=5; C)a=5,b=5,c=5; D)a=c=b=5; 9若二維數(shù)組a有m列,則在aij前的元素個(gè)數(shù)為 A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 10下面程序段是輸出兩個(gè)字符串中對(duì)應(yīng)相等的字符。請(qǐng)選擇填空 char x=”programming”; char y=”Fortran”; int i=0; while(xi!=0&&yi!=0) if(xi= =yi)printf(“%c”,); else i+; A) xi+ B)y+i C)xi D)yi 11若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說法是 A)必須在主調(diào)函數(shù)中說明次數(shù)
6、組的大小 B實(shí)參數(shù)組類型與形參數(shù)組類型可以不匹配 C在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小 D實(shí)參數(shù)組名與形參數(shù)組名必須一致 12以下程序的正確運(yùn)行結(jié)果是 #inclued main() int k=4,m=1,p; p=func(k,m);printf(“%d”,p); p=func(k,m);printf(“%dn”,p); func(int a,int 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,8 13若有說明:int *p,m=5,n;以下正確的程序段是 A) p=&n
7、;scanf(“%d”,&p); B) p=&n;scanf(“%d”,*p); C) scanf(“%d”,&n);*p=n; D) p=&n;*p=m; 14執(zhí)行以下程序后,a和b的值為 main() int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; b=(-*p1)/(*p2)+7; printf(“a=%dn”,a); printf(“b=%dn”,b); A)-1 ,5 B)1,6 C)0,7 D)4,10 15若要用fopen函數(shù)打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則文件方式字符串應(yīng)是
8、A)”ab+” B)”wb+” C)”rb+” D”ab” 16根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為 已有定義:float f1,f2; 數(shù)據(jù)的輸入方式:4.52 3.5 A)scanf(“%f,%f”,&f1,&f2); B) scanf(“%f%f”,&f1,&f2); C) scanf(“%3.2f %2.1f”,&f1,&f2); D) scanf(“%3.2f%2.1f”,&f1,&f2); 17 分析以下程序運(yùn)行結(jié)果 #include int func(int n) if(n=1) return 1; els
9、e return(n*func(n-1); void main() int x; x=func(5); printf(“%dn”,x); A)100 B)5 C)1 D)120 18 分析以下程序運(yùn)行結(jié)果 #include void main() int y=2,a=1; while(y-!=-1) do a*=y;a+; while(y-); printf(“%d,%dn”,a,y); A)1,-2 B)2,1 C)1,0 D)2,-1 19下面程序段的運(yùn)行結(jié)果是 char a7=”abcdef”; charb4=”ABC”; strcpy(a,b); printf(“%c”,a5); A)
10、空格 B)0 C)e D)f 20下面是對(duì)s的初始化,其中不正確的是 A)char s5=“abc”; 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; do x=x*x; while(!x); A)是死循環(huán) B)循環(huán)執(zhí)行二次 C)循環(huán)執(zhí)行一次 D)有語法錯(cuò)誤 23若有以下定義和語句: inion data int i; char c; float f; a; int n; 則以下語句正確的是 A)a=5; B)a=2
11、,a,1.2; C)printf(“%dn”,a); D)n=a; 24下面程序的運(yùn)行結(jié)果是 main() struct cmplxint x; int y; cnum2=1,3,2,7; printf(“%dn”,cnum0.y/cnum0.x*cunm1.x); A)0 B)1 C)3 D)6 25以下程序的運(yùn)行結(jié)果是 main() int k=4,a=3,b=2,c=1; printf(“n%dn”,k A)4 B)3 C)2 D)1 二 填空 1 若有以下定義,則計(jì)算表達(dá)式y(tǒng)+=y-=m*=以后y的值是_ int m=5,y=2; 2 若有定義:int b=7;float a=2.5,
12、c=4.7;:則下面表達(dá)式的值為_ a+(int)(b/3*(int)(a+c)/2)%4 3 有 int a=3,b=4,c=5;,則以下表達(dá)式的值為_ !(a+b)+c-1&&b+c/2 4 條件”2或x<-10”的c語言表達(dá)式是_ 5 以下程序的功能是判斷輸入的年份是否是閏年.請(qǐng)?jiān)?內(nèi)填入正確內(nèi)容 main() int y,f; scanf(“%d”,&y); if(y%400=0)f=1; else if(5)f=1; else6; if(f) printf(“%d is”,y); else printf(“%d is not”,y); printf(“a
13、 leap yearn”); 6 下面程序的功能是計(jì)算100至1000之間有多少個(gè)數(shù)其各位數(shù)字之和是5。請(qǐng)?zhí)羁?#include main(0 int i,s,k,count=0; for(i=100;i<=1000;i+) s=0;k=i; while(7)s=s+k%10;k=8; if(s!=5)9; else count+; printf(“%d”,count); 7 下面程序?qū)⒍S數(shù)組a的行和列元素呼喚后存到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁?main() int a23=1,2,3,4,5,6; int b32,I,j; printf(“array a:n”); for(i=0;i&
14、lt;=1;i+) for(j=0;10;j+) printf(“%5d”,aij); 11; printf(“n”); printf(“array b:n”); for(i=0;12;i+) for(j=0;j<=1;j+) printf(“%5d”,bij); printf(“n”); 8 以下search函數(shù)的功能是利用順序查找法從數(shù)組a的10個(gè)元素中對(duì)關(guān)鍵字m 進(jìn)行查找。順序查找法的思路是:從第一個(gè)元素開始,從前向后依次與關(guān)鍵字你叫,直到找到此元素或查找到數(shù)組尾部時(shí)結(jié)束。若找到,返回此元素的下標(biāo);若仍未找到,則返回值-1。請(qǐng)?zhí)羁?#include int search(int a
15、10,int 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)的值是17 10 將任意輸入的一個(gè)偶數(shù)n分解為兩個(gè)素?cái)?shù)之和,并給出各種分解方法 #include main() int n,i; int check(i
16、nt x); do scanf(“%d”,&n); while(n%2!=0); for(i=3;i<=n/2;i+) if(check(i)&&18) printf(“%d=%d+%dn”,n,i,n-i); int check(int x) int i; for(i=2;iif(19) return(0); return(1); 11 函數(shù)調(diào)用語句:fgets(buf,n,fp);從fp指向的文件中讀入20個(gè)字符放到buf字符數(shù)組中。函數(shù)值為21 12 設(shè)數(shù)組a包括10個(gè)整型元素。下面程序的功能是求出a 中各相鄰元素的和,并將這些和存在數(shù)組b中,按每行3個(gè)元素
17、的形式輸出。請(qǐng)?zhí)羁?main() int a10,b10,i; for(i=0;i<10;i+) scanf(“%d”,&ai); for(22;i<10;i+) 23 for(i=1;i<10;i+) printf(“%3d”,bi); if(24=0) printf(“n”); 13 如果以下程序輸入的是we are students,則輸出的結(jié)果是25 #include “stdio.h” void main() char s81,*p; printf(“Input a sentence:n”);gets(s); for(p=s;*p;p+) if(*p=32)
18、 /空格鍵的ASCII值是32 if(*(p+1)!=32) printf(“n”); else putchar(*p); 05年9月等級(jí)考試二級(jí)C語言考前密卷2選擇題(1)(10)每小題2分,(11)-(50)每小題1分,共60分) 下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。 (1)算法分析的目的是_。 A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)找出算法中輸入和輸出之間的關(guān)系 C)分析算法的易懂性和可靠性D)分析算法的效率以求改進(jìn) 答案:D 評(píng)析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)掌級(jí),常用
19、時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率。 (2)n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有_。 A)n-1B)n(n-1)C)nD)n+l 答案:C 評(píng)析:在有向圖中,若任意兩個(gè)頂點(diǎn)都連通,則稱該圖是強(qiáng)連通圖,這樣的有向圖的形狀是環(huán)狀,因而至少應(yīng)有n條邊。 (3)已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是_。 A)堆排序B)直接插入排序 C)快速排序D)直接選擇排序 答案:B 評(píng)析:當(dāng)數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),說明數(shù)據(jù)表A按關(guān)鍵字值基本有序,在待排序序列基本有序的情況下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng)B
20、。 (4)用鏈表表示線性表的優(yōu)點(diǎn)是_。 A)便于插入和刪除操作B)數(shù)據(jù)元素的物理順序與邏輯順序相同 C)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少D)便于隨機(jī)存取 答案:A 評(píng)析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。 (5)下列不屬于結(jié)構(gòu)化分析的常用工具的是_。 A)數(shù)據(jù)流圖B)數(shù)據(jù)字典C)判定樹D)PAD圖 答案:D 評(píng)析:結(jié)構(gòu)化分析的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。而PAD圖是常見的過程設(shè)計(jì)工具中的圖形設(shè)計(jì)。 (6)軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命
21、周期劃分成_。 A)定義、開發(fā)、運(yùn)行維護(hù) B)設(shè)計(jì)階段、編程階段、測(cè)試階段 C)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試 D)需求分析、功能定義、系統(tǒng)設(shè)計(jì) 答案:A 評(píng)析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。 (7)在軟件工程中,白盒測(cè)試法可用于測(cè)試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是_。 A) 循環(huán)的集合B)地址的集合C)路徑的集合D)目標(biāo)的集合 答案:C 評(píng)析:軟件的白盒測(cè)試方法是把測(cè)試對(duì)象看做一個(gè)打開的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。 (8)
22、在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有_。 A)數(shù)據(jù)無 冗余 B)數(shù)據(jù)可共享 C)專門的數(shù)據(jù)管理軟件D)特定的數(shù)據(jù)模型 答案:D 評(píng)析:在文件系統(tǒng)中,相互獨(dú)立的記錄其內(nèi)部結(jié)構(gòu)的最簡單形式是等長同格式記錄的集合,易造成存儲(chǔ)空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描速數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系,這正是通過采用特定的數(shù)據(jù)模型來實(shí)現(xiàn)的。 (9)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點(diǎn)是_。 A)分布式B)數(shù)據(jù)冗余 C)數(shù)據(jù)分布性和邏輯整體性D)位置透明性和復(fù)制透明性 答案:B 評(píng)析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、
23、位置透明性和復(fù)制透明性的特點(diǎn),其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲(chǔ),數(shù)據(jù)也并非必須重復(fù)存儲(chǔ),主要視數(shù)據(jù)的分配模式而定。若分配模式是一對(duì)多,即一個(gè)片段分配到多個(gè)場(chǎng)地存放,則是冗余的數(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 評(píng)析:數(shù)據(jù)模型所描述的內(nèi)容有3個(gè)部分,它們是數(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)系,它們之間的制約與依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正
24、確、有效與胡容。 (11)在結(jié)構(gòu)化程序設(shè)計(jì)中,限制使用goto語句的原因是_。 A)提高程序的執(zhí)行效率 B)提高程序的清晰性和可靠性 C)便于程序的合成 D)該語句對(duì)任何結(jié)構(gòu)的程序都不適用 答案:B 評(píng)析:在c語言中,限制使用goto語句,其目的是為了提高程序的清晰性與可靠性,一般來說,除了從多重循環(huán)中跳出,一般不使用goto語句。 (12)以下選項(xiàng)中合法的實(shí)型常數(shù)是_。 A)5E20B)E-3C)2E0D)13E 答案:C 評(píng)析:以指數(shù)形式表示實(shí)數(shù)時(shí),字母e(或E)之前必須有數(shù)字,且e后面指數(shù)必須為整數(shù)。 (13)下列敘述中,正確的是_。 A)C語言中既有邏輯類型也有集合類型 B)c語言中沒
25、有邏輯類型但有集合類型 B)C語言中有邏輯類型但沒有集合類型 B)C語言中沒有邏輯類型也沒有集合類型 答案:B 評(píng)析:在c語言中只提供了整型、浮點(diǎn)型、字符型這幾種基本類型,c語言沒有提供邏輯類型,在c中一般用整型來表示邏輯類型。在自定義類型中,c提供了struct,enum及union類型,但沒有提供集合類型,在pascal中提供了集合類型set。 (14)已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量10l是_。 A)字符AB)字符aC)字符eD)非法的常量 答案:A 評(píng)析:八進(jìn)制101轉(zhuǎn)換為十進(jìn)制即為65,而字母A的ASCII碼是65,所以用八
26、進(jìn)制表示的字符常量101是A。 (15)設(shè)a和b均為double型常量,且a=55 、b=25,則表達(dá)式(int)a+bb的值是_。 A)6500000B)6C)5500000D)6000000 答案:D 評(píng)析:各類數(shù)值型數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則為:總是轉(zhuǎn)換為精度更大的數(shù)據(jù)類型,字符數(shù)據(jù)轉(zhuǎn)換為整數(shù),short型轉(zhuǎn)為int型,float型數(shù)據(jù)在運(yùn)算時(shí)轉(zhuǎn)換成雙精度型,以提高運(yùn)算精度。 (16)以下四個(gè)選項(xiàng)中不能看作一條語句的是_。 A);B)a=0,b:0,c=0;C)if(a>0);D)if(b=0)m=l;n=2; 答案:D 評(píng)析:
27、選項(xiàng)A為空語句,選項(xiàng)B是一個(gè)由逗號(hào)運(yùn)算符表達(dá)式形成的語句,選項(xiàng)c為一個(gè)條件語句,選項(xiàng)D有兩個(gè)分號(hào),是由兩個(gè)語句構(gòu)成,不能看成一條語句。 (17)已知i、j、k為int型變量,若從鍵盤輸入:1,2,3,使i的值為l、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是_。 A)scanf("2d2d2 dtt,&i,j,&k); B)scanf("ddd",&i,j,k); C)scanf("d,d,dfI,i,j,k); D)scanf("i=d,j=d,k=d-t,&i,&j,&k); 答案:C
28、評(píng)析:如果在"格式控制"字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(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:exit(O);2 exit(0); 答案:B 評(píng)析:在c中,goto語句后面的標(biāo)號(hào)的命名規(guī)則與c語言中標(biāo)識(shí)符的命名規(guī)則相同,在goto語句后面的標(biāo)號(hào)后不要加":"號(hào),在某一行上添加標(biāo)號(hào)時(shí),在標(biāo)號(hào)的后面要添加":"號(hào)。 (19)若有以下程序: main() in
29、t k=2,i=2,m; m=(k+=I*=k); printf("d,d、n",m,i); 執(zhí)行后的輸出結(jié)果是_。 A)8,6B)8,3C)6,4D) 7,4 答案:C 評(píng)析:在賦值符"="之前加上其它運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。此運(yùn)算為右結(jié)合性,即從右往左計(jì)算。I*=k即i=i*k=2*2=4,k=k+i=2+4=6,然后將k的值賦給m。 (20)以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。 #define N 10 void arrin(int xN) int i=0; while(i 在下劃線處應(yīng)填入的是_。 A)x+iB)&a
30、mp;xi+lC)x+(i+)D)&x+I 答案:C 評(píng)析:在c中 ,對(duì)于一維數(shù)組而言,數(shù)組變量表示數(shù)組中首元素的的地址。當(dāng)用scanf函數(shù)向數(shù)組x的第i個(gè)元素中輸入整型數(shù)據(jù)時(shí),只要執(zhí)行scanf("d"x+i):由于要循環(huán)輸入數(shù)組中和各個(gè)元素,必須要使其地址值不斷自增。故本題答案為c。 (21)已有定義:int x=3,y=4,z=5;,則表達(dá)式!(x+y)+z-l&y+z2的值是_。 A)6B)0C)2D)1 答案:D 評(píng)析:在本題中,運(yùn)算符的優(yōu)先級(jí)分別為:!>/>+,->&&即:!(3+4)+5-1&&
31、4+52=0+5-1&&4+2=4&&6=l。 (22)以下選項(xiàng)中,與k=11+完全等價(jià)的表達(dá)式是_。 A)k=n,n=n+1B)n=n+1,l(=nC)l(=什nD)k+-n+1 答案:A 評(píng)析:n+是自增運(yù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所指字符串的地址賦給指針p2 C)對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較 D)檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼蠴 答案:A
32、評(píng)析:由于在while循環(huán)的條件中執(zhí)行了*p2=*pl運(yùn)算,其作用是將*pl中的內(nèi)容復(fù)制到*p2中,而(*p2=*p1)!=0的作用是判斷當(dāng)前字符是否為字符串結(jié)束字符O。在循環(huán)體中p1+,p2+的目的是移動(dòng)字 (29)有以下程序 void fun(char*c,int 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); ) 程序運(yùn)行后的輸出結(jié)果是_。 A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A
33、,b 答案:D 評(píng)析:將a,b代入函數(shù)得+&b=。&b+1=a+l=b,所以打印出第一個(gè)字母b; a=a+l=A+l=B,打印出第二個(gè)字符B; a=A,輸出字母A; b由于是按地址傳到函數(shù)而被修改,為b,輸出字母b (30)以下程序中函數(shù)sort的功能是對(duì)a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序。 void sort(int a,im n) intiJ,t; for(i=O;ifor=i+1 0if(ai main() int aa10:1,2,3,4,5,6,7,8,9,10 ,i; sort(&aa3,5); for(i=0;iprintf("n")
34、; ) 程序運(yù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,10,D)l,2,10,9,8,7,6,5,4,3, 答案:C 評(píng)析:本題并不是對(duì)數(shù)組的所有元素進(jìn)行排序,而是對(duì)從a3開始往后的4個(gè)元素進(jìn)行排序。 (31)對(duì)于基類型相同的兩個(gè)指針變量,不能進(jìn)行的運(yùn)算是_。 A)<B)=C)+D) 答案:C 評(píng)析:對(duì)于指針變量,除了常規(guī)的*、&、=運(yùn)算外,還可以對(duì)其比較地址的大小,計(jì)算兩指針變量的差值,但對(duì)于地址執(zhí)行+、*、等算術(shù)運(yùn)算都是無意義的。 (32)有以下程序 main(
35、) char a=a,b,c,d,e,f,g,h,O;int I,J; i=sizeof(a);j=strlen(a); printf("d,dn",I,J); 程序運(yùn)行后的輸出結(jié)果是_。 A)9,9B)8,9C)1,8D)9,8 答案:D 評(píng)析:sizeof()函數(shù)是計(jì)算字符數(shù)組的長度,因?yàn)?也是一個(gè)字符,要計(jì)算在內(nèi)。strlen()是計(jì)算字符串長度的函數(shù),遇到0即認(rèn)為是字符串結(jié)束,不把空字符計(jì)入字符串的長度。 (33)以下不能正確定義二維數(shù)組的選項(xiàng)是_。 A)int a22=1,2B)int a2=l,2,3,4 C)int a22=l,2,3D)int a2=1,2,
36、3,4 答案:D 評(píng)析:在二維數(shù)組進(jìn)行初始化時(shí),可以省略數(shù)組的一個(gè)維度,但省略的維數(shù)只能是高維部分,不能是低維。對(duì)于多維數(shù)組的初始化時(shí),也是同樣處理,因此,本題答案應(yīng)選D,其它選項(xiàng)均能對(duì)數(shù)組進(jìn)行正確的初始化。 (34)有一函數(shù) l x>O y= O x=O -1 x以下程序段中不能根據(jù)x的值正確計(jì)算出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(xC)y=0;if(x>=0)if(x>O)y=1;else y=-l; D)if(x>=0)if(x>O)y
37、=l;else y=O;else y=-1; 答案:C 評(píng)析:本題應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系。從最內(nèi)層開始,else總是與它上面最近的(未曾配對(duì)的)if配對(duì)。 (35)以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。 void reverse(int a,im n) int i,t; for(i=O;it=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(b,8); for(i=6;i<10;i+)s+=bI; printf("dn",s
38、); 程序運(yùn)行后的輸出結(jié)果是 A)22B)10C)34D)30 答案:A 評(píng)析:本題并不是將整個(gè)數(shù)組中的內(nèi)容逆置,而是逆置前8個(gè)元素。逆置后的數(shù)組為:8,7,6,5,4,3,2,1,9,10通過for循環(huán)計(jì)算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 評(píng)析:由于本題中未對(duì)數(shù)組進(jìn)行初始化,因此程序運(yùn)行時(shí),數(shù)組s中各個(gè)元素的值都是不確定的,雖然在代碼中對(duì)sO進(jìn)行了賦值,但沒有對(duì)s1進(jìn)行賦值,故執(zhí)行l(wèi)(=s1+10;后,k的值不確定。 (37)有以下程序
39、 #include main() charp="abcde0fghjikO"; printf("dn",strlen(p); 程序運(yùn)行后的輸出結(jié)果是_。 A)12B)15C)6D)5 答案:D 評(píng)析:"0"是字符串結(jié)束標(biāo)志,當(dāng)遇到此標(biāo)志時(shí)字符串已結(jié)束。所以字符串的長度為5。 (38)程序中頭文件t)rpel_h的內(nèi)容是: #define N 5 #define Ml N*3 程序如下: #include"type 1.h" #define M2 N*2 main() int i; i=MI+M2; printf(&
40、quot;dn",i); 程序編譯后運(yùn)行的輸出結(jié)果是_。 A)lOB)20C)25D)30 答案:C 評(píng)析:宏定義就是用一個(gè)指定的標(biāo)識(shí)符(即名字)來代表一個(gè)字符串,它的一般形式為: #define標(biāo)識(shí)符字符串 這種方法使用戶能以一個(gè)簡單的名字代替一個(gè)長的字符串,因此把這個(gè)標(biāo)識(shí)符(名字)稱為"宏名"。 (39)若有以下的程序段,則在執(zhí)行for語句后,*(*(pt+1)+2)表示的數(shù)組元素是_。 int t33,*pt3,k; for(k=0;k<3;k+)ptk=&tkO; A)t20Bt22Ct12Dt21 答案:C 評(píng)析:在題面中定義了一個(gè)二維數(shù)組
41、l,及一個(gè)一維指針數(shù)組pt,在循環(huán)語句中分別對(duì)指針 數(shù)組賦值為二維數(shù)組t的第k行首元素的地址。*(pt+1),表示的是數(shù)組pt中下標(biāo)為1的元素的值,而該值為二維數(shù)組t的第l行(從第0行算起)的首元素的地址,故*(*(pt+1)+2)表示的是數(shù)組t中t12的元素的值。 (40)以下敘述中錯(cuò)誤的是_。 A)二進(jìn)制文件打開后可以先讀文件的末尾,而順序文件不可以 B)在程序結(jié)束時(shí),應(yīng)當(dāng)用fclose函數(shù)關(guān)閉已打開的文件 C)利用fread函數(shù)從二進(jìn)制文件中讀數(shù)據(jù),可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù) D)不可以用FILE定義指向二進(jìn)制文件的文件指針 答案:D 評(píng)析:每個(gè)被使用的文件都在內(nèi)存中開辟一個(gè)區(qū)
42、,用來存放文件的有關(guān)信息,這些信息是保存在一個(gè)名為FILE的結(jié)構(gòu)體類型的結(jié)構(gòu)體變量中的。而文件又分為ASCII文件和二進(jìn)制文件,所以,、可以用FILE定義指向二進(jìn)制文件的文件指針。 (41)有以下程序 #include main(int argc,char *argv) inti,len=0; for(i=1;iprintf("dn",len); ) 程序編譯連接后生成的可執(zhí)行文件是exlexe,若運(yùn)行時(shí)輸入帶參數(shù)的命令行是: exl abcd efg 10 則運(yùn)行的結(jié)果是_。 A)22B)17C)12D)9 答案:D 評(píng)析:本題主函數(shù)帶有兩個(gè)參數(shù),一個(gè)int型變量argc
43、,另一個(gè)是char型的一維一級(jí)指針數(shù)組argv。當(dāng)主函數(shù)被執(zhí)行時(shí),系統(tǒng)自動(dòng)將根據(jù)命令行的情況,分別給主函數(shù)的兩個(gè)參數(shù)賦值。argc用于存放命令行中命令字和參數(shù)的總和的個(gè)數(shù)4,argv用來存放命令行中命令字和所有參數(shù)的字符串,并規(guī)定 argv0存放命令字字符串exl,argv1用來存放第一個(gè)參數(shù)的字符串a(chǎn)bcd,argv21用來存放第二個(gè)參數(shù)的字符串e龜,argv 3用來存放第三個(gè)參數(shù)的字符串10。那么for循環(huán)將循環(huán)3次分別將argv數(shù)組中元素的長度累加到len中,所以答案為9。 (42)若有以下說明和定義:_。 fun(*C) main() int(*a)()=fun,(*b)(),w10,
44、c; 在必要的賦值后,對(duì)fun函數(shù)調(diào)用正確的是_。 A)a=a(w);B) (*a)(&C);C)b=*b(w);D)fun(b); 答案:B 評(píng)析:在主函數(shù)中定義了二個(gè)指向函數(shù)的指針a,b,其中指針a指向函數(shù)fun,指針b未初始化。對(duì)于選項(xiàng)A、c,其返回類型是錯(cuò)誤的,對(duì)于D,其調(diào)用的參數(shù)是錯(cuò)誤的,選項(xiàng)B是正確的,其相當(dāng)于調(diào)用函數(shù)fhll(&C);。 (43)有以下程序 intfa(intx、 returnx*x; int fb(intxl returnX*X*x; int f(int(*f1)(),int(*f2)(),int x) return f2(x)-fl(x);)
45、mai n() int i; i=f(fa,fb,2);printf("dn",i); 程序運(yùn)行后的輸出結(jié)果是 A) 4B)1C)4D)8 答案:C (28)已定義以下函數(shù): fun(char*p2,char*p1) while(*p2=*p1)!=0)pl+;p2+; 函數(shù)的功能是_。 A)將p1所指字符串復(fù)制到p2所指內(nèi)存空間 B)將pl所指字符串的地址賦給指針p2 C)對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較 D)檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼蠴 答案:A 評(píng)析:由于在while循環(huán)的條件中執(zhí)行了*p2=*pl運(yùn)算,其作用是將*pl中的內(nèi)容復(fù)制到*p2中,而(
46、*p2=*p1)!=0的作用是判斷當(dāng)前字符是否為字符串結(jié)束字符O。在循環(huán)體中p1+,p2+的目的是移動(dòng)字 (29)有以下程序 void fun(char*c,int 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); ) 程序運(yùn)行后的輸出結(jié)果是_。 A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b 答案:D 評(píng)析:將a,b代入函數(shù)得+&b=。&b+1=a+l=b,所以打印出第一個(gè)
47、字母b; a=a+l=A+l=B,打印出第二個(gè)字符B; a=A,輸出字母A; b由于是按地址傳到函數(shù)而被修改,為b,輸出字母b (30)以下程序中函數(shù)sort的功能是對(duì)a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序。 void sort(int a,im n) intiJ,t; for(i=O;ifor=i+1 0if(ai main() int aa10:1,2,3,4,5,6,7,8,9,10,i; sort(&aa3,5); for(i=0;iprintf("n"); ) 程序運(yùn)行后的輸出結(jié)果是_。 A)l,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6
48、,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 評(píng)析:本題并不是對(duì)數(shù)組的所有元素進(jìn)行排序,而是對(duì)從a3開始往后的4個(gè)元素進(jìn)行排序。 (31)對(duì)于基類型相同的兩個(gè)指針變量,不能進(jìn)行的運(yùn)算是_。 A)<B)= C)+D) 答案:C 評(píng)析:對(duì)于指針變量,除了常規(guī)的*、&、=運(yùn)算外,還可以對(duì)其比較地址的大小,計(jì)算兩指針變量的差值,但對(duì)于地址執(zhí)行+、*、等算術(shù)運(yùn)算都是無意義的。 (32)有以下程序 main() char a=a,b,c,d,e,f,g,h,O;int I,J; i=sizeof(a);j=st
49、rlen(a); printf("d,dn",I,J); 程序運(yùn)行后的輸出結(jié)果是_。 A)9,9B)8,9C)1,8D)9,8 答案:D 評(píng)析:sizeof()函數(shù)是計(jì)算字符數(shù)組的長度,因?yàn)?也是一個(gè)字符,要計(jì)算在內(nèi)。strlen()是計(jì)算字符串長度的函數(shù),遇到0即認(rèn)為是字符串結(jié)束,不把空字符計(jì)入字符串的長度。 (33)以下不能正確定義二維數(shù)組的選項(xiàng)是_。 A)int a22=1,2B)int a2=l,2,3,4 C)int a22=l,2,3D)int a2=1,2,3,4 答案:D 評(píng)析:在二維數(shù)組進(jìn)行初始化時(shí),可以省略數(shù)組的一個(gè)維度,但省略的維數(shù)只能是高維部分,不能是低維。對(duì)于多維數(shù)組的初始化時(shí),也是同樣處理,因此,本題答案應(yīng)選D,其它選項(xiàng)均能對(duì)數(shù)組進(jìn)行正確的初始化。 (34)有一函數(shù) l x>O y= O x=O -1 x以下程序段中不能根據(jù)x的值正確計(jì)算出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(xC)y=0;if(x>=0)if(x>O)y=1;else y=-l; D)if(x>=0)if(x>O)y=l;else y=O;else y=-1; 答案:C 評(píng)析:本題應(yīng)當(dāng)注
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 無人機(jī)配送貨物保險(xiǎn)服務(wù)協(xié)議
- 拼多多果園綠色種植技術(shù)托管及銷售合作協(xié)議
- 虛擬偶像虛擬形象IP授權(quán)與開發(fā)合同
- 伺服電機(jī)租賃與工業(yè)機(jī)器人性能檢測(cè)及優(yōu)化合同
- 集成電路(IC)封裝印刷電路板(PCB)定制合作協(xié)議
- 高清影視音樂版權(quán)合作及保密條款
- 智能家居系統(tǒng)數(shù)據(jù)安全與隱私保護(hù)責(zé)任書
- 智能家居數(shù)據(jù)庫使用權(quán)許可與家居安全合同
- DB42-T 2016-2023 土工格柵加筋土路基設(shè)計(jì)與施工技術(shù)規(guī)范
- 婦產(chǎn)護(hù)士年終總結(jié)模版
- 孕產(chǎn)婦妊娠風(fēng)險(xiǎn)篩查與評(píng)估
- 電梯維保服務(wù)投標(biāo)方案
- 畢業(yè)設(shè)計(jì)-3000t件雜貨碼頭結(jié)構(gòu)設(shè)計(jì)
- 合金鋼管道焊接熱處理
- 2022年中國石油大學(xué)《化工原理二》完整答案詳解
- 形勢(shì)與政策電氣 個(gè)人答案
- PHOTOSHOP圖形圖像處理課程標(biāo)準(zhǔn)
- 國開電大《Java語言程序設(shè)計(jì)》形考任務(wù)三答案
- 2022年全國大學(xué)生英語競賽C類試題
- 裝飾、裝修施工方案
- 遠(yuǎn)盛水工重力壩輔助設(shè)計(jì)系統(tǒng)用戶使用手冊(cè)
評(píng)論
0/150
提交評(píng)論