![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2018年3月江蘇省計(jì)算機(jī)二級(jí)C語(yǔ)言真題第1套 |
1. 高級(jí)語(yǔ)言編寫的程序可以由編譯程序?qū)⑵浞g轉(zhuǎn)換為可執(zhí)行程序,這些程序在Windows環(huán)境下查看其類型時(shí)顯示為“MS-DOS應(yīng)用程序”“應(yīng)用程序”或“應(yīng)用程序擴(kuò)展”,顯示為” 應(yīng)用程序”的文件,其文件擴(kuò)展名通常是__________。 A. COM B. APP C. EXE D. DLL C 解析:APP是iOS手機(jī)可執(zhí)行程序的簡(jiǎn)稱, EXE顯示為應(yīng)用程序,DLL是應(yīng)用程序擴(kuò)展。 3 2. 下列關(guān)于IP地址(IPv4)和路由器的敘述中,錯(cuò)誤的是______ A.IP地址中包含有網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩個(gè)內(nèi)容,由IP地址與子網(wǎng)掩碼進(jìn)行邏輯加運(yùn)算可得到網(wǎng)絡(luò)號(hào) B. IP地址(IPv4)長(zhǎng)度僅為32位,大約只有40億個(gè)地址可用,目前已分配完畢 C. 路由器除了在兩個(gè)不同網(wǎng)絡(luò)之間傳輸IP數(shù)據(jù)報(bào),通常還具有流量控制、性能管理等功能 D. 目前家用無(wú)線路由器是一種將以太網(wǎng)交換機(jī),無(wú)線AP和路由器等集成在一起的產(chǎn)品 A 解析: IP地址中包含有網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩個(gè)內(nèi)容,由IP地址與子網(wǎng)掩碼進(jìn)行邏輯與運(yùn)算可得到網(wǎng)絡(luò)號(hào) 。 4 3. 在有些HTML文檔中,嵌入了動(dòng)態(tài)修改網(wǎng)頁(yè)內(nèi)容或控制文檔展現(xiàn)的腳本程序,許多腳本程序是采用_________語(yǔ)言編寫的。 A. VBA B. VBScript C. Objective-C D. Python B 解析:VBA是嵌入到office中的編程語(yǔ)言,VBScript是嵌入到HTML中的腳本語(yǔ)言,Objective-C主要是應(yīng)用于蘋果操作系統(tǒng)中的編程語(yǔ)言,Python是一門編程語(yǔ)言。 3 4. 在現(xiàn)代通信系統(tǒng)中,為了能有效地提高數(shù)據(jù)鏈路的利用率、降低通信成本,一般使用多路復(fù)用技術(shù)讓多路信號(hào)同時(shí)共用一條傳輸線進(jìn)行傳輸,在使用光纖傳輸信息時(shí),主要是采用____________技術(shù)。 A. TDM B. WDM C. FDM D. CDM B 解析: 時(shí)分多路復(fù)用(TDM)是各終端設(shè)備按不同時(shí)間來(lái)輪流使用同一線路來(lái)傳輸數(shù)據(jù),是計(jì)算機(jī)網(wǎng)絡(luò)傳輸使用的主要方式,頻分多路復(fù)用(FDM)是將不同信源發(fā)出的信號(hào)調(diào)制在不同頻率的載波上(例如收音機(jī)與電視機(jī)),波分多路復(fù)用(WDM)是在一根光纖傳輸不同波長(zhǎng)的光波。 4 5. 下列圖像文件格式中,_________格式在高檔的數(shù)碼相機(jī)中使用較多,它不但包含未經(jīng)處理的像素?cái)?shù)據(jù),而且還記錄了拍攝時(shí)相機(jī)的一些設(shè)置信息。 A. BMP B. RAW C. JPEG D. TIF B 解析: RAW文件格式在數(shù)碼相機(jī)中使用較多,其含義是未經(jīng)加工的圖像,包含了感光器件捕獲到的未經(jīng)處理的像素?cái)?shù)據(jù),還包含了拍攝照片時(shí)的很多參數(shù) 。 5 6. 下列關(guān)于常用操作系統(tǒng)(產(chǎn)品)的敘述中,錯(cuò)誤的是_________ 。 A. UNIX操作系統(tǒng)是廣泛的操作系統(tǒng)之一,目前已經(jīng)研制和開(kāi)發(fā)了若干不同分支的UNIX產(chǎn)品 B. Linux內(nèi)核是最有名的自由軟件之一,目前全球已有上百個(gè)Linux操作系統(tǒng)發(fā)行版 C. 目前Linux已經(jīng)被移植到多種硬件平臺(tái),但該類操作系統(tǒng)還不能用于大型和超級(jí)計(jì)算機(jī) D. 目前PC不僅可以使用Windows操作系統(tǒng),也可以使用Linux操作系統(tǒng) C 解析: 目前Linux已經(jīng)被移植到多種硬件平臺(tái),該類操作系統(tǒng)可以應(yīng)用于大型和超級(jí)計(jì)算機(jī) 。 3 7. 通俗地說(shuō),算法就是解決問(wèn)題的方法和步驟,下列關(guān)于算法表示及算法分析的敘述中,錯(cuò)誤的是______ A. 與采用文字描述算法相比,采用流程圖表示算法則更簡(jiǎn)明、更容易理解 B. 在設(shè)計(jì)算法時(shí)人們常用偽代碼表示算法,這比采用具體的程序設(shè)計(jì)語(yǔ)言表示更方便,效率更高 C. 從算法復(fù)雜度來(lái)看,若算法的復(fù)雜度為常數(shù)階則效率更高,若為指數(shù)階則效率極低 D. 一個(gè)問(wèn)題的求解可以有多種不同的算法,通過(guò)算法優(yōu)化,其時(shí)間和空間復(fù)雜度相差通常不大 D 解析: 一個(gè)問(wèn)題的求解可以有多種不同的算法, 其時(shí)間和空間復(fù)雜度通常相差很大 。 3 8. 通俗地說(shuō),算法就是解決問(wèn)題的方法和步驟,下列相關(guān)敘述中,錯(cuò)誤的是______ A. 算法的一個(gè)顯著特征是,其解決的是一類問(wèn)題而不是一個(gè)特點(diǎn)的問(wèn)題 B. 所謂設(shè)計(jì)算法,就是尋找解決問(wèn)題的方法與規(guī)則,并將其表示成算法 C. 算法設(shè)計(jì)一般采用由細(xì)到粗,由具體到抽象的逐步求精的方法 D. 枚舉性、迭代法、遞推法、回溯法等都是用于算法設(shè)計(jì)的基本方法 C 解析: 算法設(shè)計(jì)一般采用由粗到細(xì),由抽象到具體的逐步求精的方法 。 3 9. 計(jì)算機(jī)繪制的圖像也稱為矢量圖形,用于繪制矢量圖形的軟件稱為矢量繪圖軟件。下列軟件中,屬于矢量繪圖軟件的是______。 A. ACDSee B. CorelDraw C. Photoshop D. Lightroom B 解析:流行的矢量繪圖軟件包括AutoCAD、CorelDraw,Illstrator, FreeHand,Visio等。 5 10. 字符集及其編碼是計(jì)算機(jī)中表示、存儲(chǔ)、處理和交換文本信息的基礎(chǔ),但由于歷史原因,目前不同系統(tǒng)或應(yīng)用中使用的字符編碼方案并不統(tǒng)一。目前在Windows中文版操作系統(tǒng)中,通常使用_______來(lái)表示和處理文本,在數(shù)據(jù)文件需要保存到外存時(shí)會(huì)轉(zhuǎn)換成操作系統(tǒng)所默認(rèn)的本地編碼(方案)。 A. ASCII B. UTF-8 C. UTF-16 D. GB18030 C 解析: UCS有兩種標(biāo)準(zhǔn)UTF-8和UTF-16,UTF-8采用ASCII碼用1個(gè)字節(jié)編碼,拉丁字母,標(biāo)點(diǎn)符號(hào)等采用2字節(jié)編碼,漢字采用3個(gè)字節(jié)編碼,其他極少字符采用4字節(jié)編碼,UCS-16是指ASCII和漢字都采用2字節(jié)編碼,其他不常用字符采用4字節(jié)編碼,在Windows中文版上現(xiàn)在使用UTF-16,也是Java,.NET軟件開(kāi)發(fā)環(huán)境等默認(rèn)的編碼標(biāo)準(zhǔn)。 5 以下程序段中第_______行有語(yǔ)法錯(cuò)。 int x; //第1行 int f(int y) //第2行 { return w; } //第3行 int w=1; //第4行 int main() //第5行 { int z=2; f(z) ; return 0; } //第6行 A. 2 B. 3 C. 4 D. 6 B 解析:函數(shù)f中有一個(gè)w變量,因?yàn)?/SPAN>w值的聲明在f函數(shù)的下方,根據(jù)C規(guī)定,變量的作用域是從聲明處開(kāi)始的,所以會(huì)報(bào)錯(cuò)。 8 以下程序的輸出結(jié)果是______。 #include #define H(x) x/(x-1) int main() { int a=1, b=2; printf ("%d\n", H (a-b)) ; return 0; } A. 2 B. 0.5 C. 0 D. -4 A 解析:H(a-b)調(diào)用#define H(x)后換算為1-2/(1-2-1),根據(jù)C語(yǔ)言運(yùn)算順序,首先執(zhí)行2/(1-2-1)結(jié)果是-1,然后用1減去-1,結(jié)果即2 。 3 已有如下數(shù)據(jù)類型定義和變量聲明: struct person { int num; char name[20],sex; struct { int year,month,day; }birthday; }a={20,"Li ning",'M',{1998,1,1}},*p=&a; 以下語(yǔ)句中正確的是____ A. printf("%s",a->name); B. printf("%d",p->birthday.year); C. printf("%s",*p.name); D. printf("%d",p-> birthday->year); B 解析: 運(yùn)算符->要求左邊必須是內(nèi)存編號(hào),運(yùn)算符.要求左邊必須是變量;A選項(xiàng)中的a是普通變量,不是其所在的內(nèi)存編號(hào),所以a->name錯(cuò)誤,A選項(xiàng)修改為a.name就對(duì)了;B選項(xiàng)中,因?yàn)?SPAN lang=EN-US>p是指針變量,所以p->birthday返回普通變量,然后通過(guò).year獲取值,所以正確;C選項(xiàng)中.的優(yōu)先級(jí)高于*,所以實(shí)際是*(p.name),因?yàn)?SPAN lang=EN-US>p是指針變量,所以不能用.,修改為(*p).name就對(duì)了;D選項(xiàng)錯(cuò)誤的原因參考B選項(xiàng)。 11 已有聲明“int k,a,b; unsigned long y=5;double x=10;”,以下表達(dá)式中語(yǔ)法正確的是______。 A. x%5 B. x=*y C. k=(a+1)++ D. a+=(a=3)*(b=2) D 解析:A錯(cuò),運(yùn)算符%要求左右兩邊都是整數(shù),不能是double或float類型;B錯(cuò),表達(dá)式*y因?yàn)?/SPAN>*處于表達(dá)式的第1個(gè)位置,所以要求y必須是一個(gè)指針變量,不能是普通常量 ,修改為x*=y,表示x=x*y;就可以了;C錯(cuò),++必須放到變量的前面或后面,不能放到表達(dá)式或常量的前面或后面; D選項(xiàng)執(zhí)行后,a的值是9。 3 以下跳轉(zhuǎn)語(yǔ)句中可以選擇不唯一的跳轉(zhuǎn)目的地的語(yǔ)句是______。 A. continue B. break C. goto D. return C 解析:continue表示直接跳轉(zhuǎn)到循環(huán)開(kāi)始處;break表示跳出所在的循環(huán)或switch過(guò)程;return表示返回函數(shù)調(diào)用處;通過(guò) goto 可以調(diào)轉(zhuǎn)到指定的位置。 6 6(填空題 <2空> ) : 以下程序運(yùn)行時(shí), 輸出結(jié)果中第一行是____________ ,第二行是____________ 。 #include int f(int a[],int m,int b[],int n,int c[]) { int i,j,k=0,t; for(i=0;i { for(t=0,j=0;j if( a[i]==b[j] ) { t=1; break; } if(t) c[k++]=a[i]; } return k; } int main() { int x[]={7,2,3,6,1},y[]={5,10,7,9,8,6},z[10],w,j; w=f(x,5,y,6,z); for(j=0;j printf("%d\n",z[j]); return 0; } 7@6 解析: 因?yàn)槲淖置枋霾蝗缫曨l講解清楚,詳細(xì)見(jiàn)視頻講解 8 7(填空題 <3空> ) : 以下程序運(yùn)行時(shí),輸出結(jié)果中第一行是____________ ,第二行是____________ ,第三行是____________ 。 #include int main() { int a,b,j,k,w,s[4]; for(a=10;a<=16;a++) { b=2*a; s[0]=a/10; s[1]=a; s[2]=b/10; s[3]=b; w=1; for(j=0;j<3;j++) for(k=0;k<4;k++) if(s[k]==0||j!=k && s[j]==s[k] )w=0; if(w) printf("%d\n",a); } return 0; } 13@14@16 解析: 因?yàn)槲淖置枋霾蝗缫曨l講解清楚,詳細(xì)見(jiàn)視頻講解 7 8 (填空題 <2空> ) : 以下程序運(yùn)行時(shí), 輸出結(jié)果中第一行是____________ ,第二行是____________ 。 #include #include int main() { char *p1="student",p2[]="student"; if(p1==p2) puts("yes"); else puts("no"); if(!strcmp(p1,p2)) puts("yes"); else puts("no"); return 0; } no@yes 解析: 因?yàn)槲淖置枋霾蝗缫曨l講解清楚,詳細(xì)見(jiàn)視頻講解 10 9 (填空題 <3空> ) : 以下程序運(yùn)行時(shí),輸出結(jié)果中第一行是____________ ,第二行是____________ ,第三行是____________ 。 提示:函數(shù)int toupper(int ch)功能是將小寫字母轉(zhuǎn)換為對(duì)應(yīng)大寫字母。 #include #include long fun(char *s) { long n, sign, base=10,t; for(; *s==' ';s++); sign=(*s=='-')?-1:1; if(*s=='+'||*s=='-') s++; if(*s=='0'&& s++) { if(*s=='x'||*s=='X') { base=16; s++; } else base=8; } for(n=0,t=1;t &&(isdigit(*s)||isalpha(*s));s++) switch(base) { case 10: if(isdigit(*s)) n=n*base+*s-'0'; else t=0; break; case 8: if(*s >='0'&& *s <='7') n=n*base+*s-'0'; else t=0; break; case 16: if(isdigit(*s)) n=n*base+*s-'0'; else if(toupper(*s)>='A' &&toupper(*s)<='F') n=n*base+toupper(*s)-'A'+10; else t=0; } return sign*n; } int main() { char c1[]="0xc",c2[]="015",c3[]="-17"; printf("%ld\n%ld\n%ld",fun(c1),fun(c2),fun(c3)); return 0; } 12@13@-17 解析: 因?yàn)槲淖置枋霾蝗缫曨l講解清楚,詳細(xì)見(jiàn)視頻講解 10
1(完善程序): 【要求】 1.打開(kāi)T盤中文件myf0.c,按以下程序功能完善文件中的程序。 2.修改后的源程序仍保存在T盤myf0.c文件中,請(qǐng)勿改變myf0.c的文件名。 【程序功能】 已知main函數(shù)內(nèi)結(jié)構(gòu)數(shù)組p中前3個(gè)元素值已按成員index升序排列。以下程序先在p數(shù)組前3個(gè)元素中插入結(jié)構(gòu)變量s1中保存的數(shù)據(jù),再輸出p數(shù)組前4個(gè)元素的值。要求插入s1數(shù)據(jù)后p數(shù)組前4個(gè)元素值仍按成員index升序排列。 【測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果】 測(cè)試數(shù)據(jù):p數(shù)組中原始數(shù)據(jù)為 {5,"wang",},{10,"li",},{15,"zhao"} s1變量中數(shù)據(jù)為 {3,"zhang"} 輸出: 3 zhang 5 wang 10 li 15 zhao 【待完善的源程序】 #include #include typedef struct s { int index; char name[10]; }ST; int insert(ST *p, ST s, int n) { int k,j; if(s.index>p[n-1].index) { p[n]=s; return n+1; } for(k=0;k if( 【1】 >s.index ) break; for(j=n; 【2】 ;j--) p[j]=p[j-1]; 【3】 =s; return n+1; } int main() { int n=3; ST p[8]={{5,"wang",},{10,"li",},{15,"zhao"}},s1={3,"zhang"},*q; n = insert( 【4】 ); for(q=p;q printf("%d %s\n",q->index,q->name); getch(); return 0; } p[k].index@j>k@p[k]@p,s1,n (1)p[k].index (2)j>k (3)p[k] (4)p,s1,n
2(改錯(cuò)題): 3(編程題): |