![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2018年10月江蘇省計算機二級C語言真題第1套 |
1. 下列PC使用的CPU系列產(chǎn)品中,不屬于Intel公司的是_______. A. Celeron系列 B. Pentium系列 C. Core系列 D. FX系列 D 解析:Intel公司推出的CPU,包括入門級的Celeron系列,高于Celeron的Pentium系列,性能比較高的Core系列。 2 2. 掃描儀是目前常用的圖像輸入設(shè)備。下列相關(guān)敘述中,錯誤的是______。 A. 手持式掃描只適用于—行—行地掃描文字稿 B. 目前平板式掃描儀在家庭和辦公自動化領(lǐng)域得到了廣泛應(yīng)用 C. 滾筒式掃描儀的技術(shù)性能較高,大多數(shù)應(yīng)用于專業(yè)印刷排版領(lǐng)域 D. 掃描儀均可以選擇黑白、灰度或彩色工作模式,但不可以設(shè)置灰度級數(shù)或色彩的位數(shù) D 解析: 掃描儀可以選擇黑白、灰度或彩色工作模式,也可以設(shè)置灰度級數(shù)或色彩的位數(shù) 。 2 3. 在音頻信號的數(shù)字化過程中,人的說話聲音頻帶較窄(僅為300~3400Hz),通常語音的取樣頻率為8kHz、量化位數(shù)為8位,這時未壓縮的碼率大約為____。 A. 8kb/s B. 64kb/s C. 300kb/s D. 1411kb/s B 解析:根據(jù)公式 波形聲音的碼率=取樣頻率*量化位數(shù)*聲道數(shù) 。 5 4. 下列有關(guān)智能手機常用操作系統(tǒng)的敘述中,錯誤的是_____. A. iPone手機使用由蘋果公司開發(fā)的iOS操作系統(tǒng),其系統(tǒng)內(nèi)核是—種“類Unix"系統(tǒng) B. Android是—個以Linux內(nèi)核為基礎(chǔ)的開放源代碼的操作系統(tǒng),早先由Android公司開發(fā) C. 我國內(nèi)地銷售的Android智能手機,—般都使用Android所附帶的用戶界面和應(yīng)用程序(即GMS) D. iOS和Android屬于兩種不同的操作系統(tǒng),其平臺上的應(yīng)用程序也不相同,不能相互通用 C 解析: 我國內(nèi)地銷售的Android智能手機,—般不使用Android所附帶的用戶界面和應(yīng)用程序(即GMS) 。 2 5. 字符集及其編碼是計算機中表示、存儲、處理和交換文本信息的基礎(chǔ)。下列有關(guān)漢字編碼標(biāo)準(zhǔn)的敘述中,錯誤的是______。 A. 我國1981年頒布的GB2312標(biāo)準(zhǔn)僅包含6000多個漢字和600多個非漢字圖形字符 B. 我國1995年發(fā)布的GBK,標(biāo)準(zhǔn)與GB2312標(biāo)準(zhǔn)兼容,且將漢字?jǐn)U充到20000多個 C. 我國在2000年和2005年兩次發(fā)布GB18030編碼標(biāo)準(zhǔn),它與原先的國家標(biāo)準(zhǔn)GBK兼容 D. 無論是ISO組織制定的UCS、還是一些公司聯(lián)合制定的Unicode,其漢字部分均與GB 18030兼容 D 解析: GB18030是我國頒布的,也是當(dāng)前包含的漢字是最多的, UCS是國際標(biāo)準(zhǔn)化組織發(fā)布的,與其等同的是由微軟等公司共同制定的工業(yè)標(biāo)準(zhǔn)Unicode, GB18030與Unicode兩者的漢字編碼有很大區(qū)別 。 5 6. 程序設(shè)計語言處理系統(tǒng)是一種重要的系統(tǒng)軟件。下列相關(guān)的敘述中,錯誤的是____。 A. 機器語言也需要語言處理系統(tǒng),其作用是將程序代碼轉(zhuǎn)換成二進制指令代碼 B. 不同的程序設(shè)計語言需要有不同的語言處理系統(tǒng),它們通常是不通用的 C. 解釋程序通常適合于交互方式工作的、或在調(diào)試狀態(tài)下運行的程序 D. 編譯程序的作用是將高級語言翻譯為機器語言(或匯編語言) A 解析: 機器語言就是二進制指令代碼, ,所以不需要語言處理系統(tǒng) 。 3 7. 下列關(guān)于常見輔助存儲器的敘述中,錯誤的是_______。 A. 通!獕K硬盤由1張或幾張盤片組成,其數(shù)據(jù)需要用柱面號、扇區(qū)號和磁頭號等參數(shù)來定位 B. U盤又稱為優(yōu)盤、閃存盤,其寫入速度—般慢于讀出速度,且寫入次數(shù)有—定的限制 C. 目前有些PC使用混合硬盤(SSD+HDD)的做法,以提高系統(tǒng)的整體性能 D. 光盤分為只讀盤片、—次可寫盤片和可擦寫盤片,CD-R、DVD-R和BD-R均為只讀盤片 D 解析: CD-R, DVD-R和BD-R是只寫入一次光盤片,CD-ROM,DVD-ROM,BD-ROM是只讀型光盤片。 2 8. 下列有關(guān)智能手機及其功能的敘述中,錯誤的是_____。 A. 從第2代移動通信開始,所有的手機均可以上互聯(lián)網(wǎng),因此均被稱為智能手機 B. 所謂”雙卡雙待”手機,是指手機同時可以安裝兩張SIM卡,且兩張卡均可處于待機狀態(tài) C. 全網(wǎng)通手機可以接入國內(nèi)三大運營商的所有4G、3G和2G網(wǎng)絡(luò),支持多種不同的網(wǎng)絡(luò)制式 D. 國內(nèi)三大運營商采用的4G技術(shù)并不相同,移動采用TD-LTE,電信和聯(lián)通采用LTE-FDD A 解析: 第一代通信技術(shù)采用模擬技術(shù),第二代通信技術(shù)采用數(shù)字技術(shù),第三代通信技術(shù)3G,第4代通信技術(shù)稱為4G, 按照手機的功能劃分為笨手機、功能手機、智能手機,其中智能手機是指可以像PC個人電腦一樣安裝第3方軟件,不斷擴充其功能,而功能手機一般不能隨意安裝和卸載軟件,第二代手機屬于功能手機,不屬于智能機。 2 9. 下列有關(guān)PC主板及其中的功能部件的敘述中,錯誤的是____。 A. 目前許多擴充卡的功能可以部分或全部集成在主板上,因而從外觀上看主板的結(jié)構(gòu)越來越簡化 B. 主板上的BIOS芯片是一種閃速存儲器,PC啟動時最先運行BIOS中的軟件 C. 主板上的CMOS存儲器是—種非易失性存儲器,其中存儲的配置信息永不丟失 D. 主板上的芯片組早期是由兩片集成電路構(gòu)成的,目前大多為單芯片的芯片組 C 解析: CMOS屬于易失性存儲器,需要由主板上的電池供電 。 2 10. 通俗地說,算法就是解決問題的方法和步驟。在設(shè)計算法時有一些基本要求,下列相關(guān)敘述中錯誤的是_____。 A. 每個算法至少有—個輸入,輸出有且僅有—個 B. 算法中的每—步操作必須有確切的含義,不能有二義性 C. 一個算法總是在執(zhí)行了有限步的操作后終止 D. 算法中有待實現(xiàn)的操作都應(yīng)該是計算機可執(zhí)行的 A 解析: 算法的基本要素:確定性、有窮性、能行性、輸出,算法可以沒有輸入,但必須有輸出。 3
1(單選題): 若有預(yù)處理命令“#include<string. h>"和聲明“char sl[80]=”world cup”,s2[80]=”2018”;”,則以下庫函數(shù)調(diào)用中錯誤的是________。 A. strlen(s1); B. strcpy(s1,s2); C. strcat(s1,s2); D. strcmp(s1[0],s2[0]); D 解析: A選項返回s1內(nèi)存空間中字符個數(shù)9,B選項將s2中內(nèi)存空間的值拷貝給s1內(nèi)存空間,C選項表示將s2內(nèi)存空間的值放到s1內(nèi)存空間原有數(shù)值第1個結(jié)束標(biāo)志符\0的后面,題目中s1內(nèi)存空間形成world cup2018,D選項錯誤,strcmp(表達式1,表達式2)的作用是比較表達式1指向的內(nèi)存空間中的字符串與表達式2指向的內(nèi)存空間中的字符串是否相等,因為strcmp要求表達式必須是內(nèi)存編號,而s1[0]返回的是w,s2[0]返回的是2,不是內(nèi)存編號,如果修改為strcmp(s1,s2)就對了,因為在C語言中,只寫數(shù)組的名字表示該數(shù)組的起始內(nèi)存編號;strlen,strcpy,strcat,strcmp都要求參數(shù)是內(nèi)存編號, 因文字解析不如視頻清晰,詳細(xì)見視頻詳細(xì)講解。 7 己有聲明“double a=1.23456;int i;”,現(xiàn)要求使變量a中實數(shù)的十進制表示經(jīng)過四舍五入處理后僅保留2位小數(shù)(即將a值變?yōu)?/SPAN>1.23000),以下表達式中能實現(xiàn)該功能的是_______。 A. i=a*100+0.5,a=i/100.0 B. a = (a*100+0.5)/100.0 C. a=((int)a*100+0.5)/100.0 D. a=(a/100+0.5)/100.0 A 解析:因為i是整型,所以i=a*100+0.5得到i=123.456+0.5,得到i=123,然后執(zhí)行a=i/100.0后得到1.23000,注意這里的i/100.0不能寫成i/100,因為i是整型,100是整型,整型除以整型得到整型,所以i/100的結(jié)果是1而不是1.23 ,寫100.0才表示雙精度型,所以i/100.0才正確,另外C選項首先執(zhí)行(int)a得到1,然后(1*100+0.5)/100.0得到結(jié)果1.005000 。 4 以下聲明中正確的是______。 A. int a[]; B. int a[10]=0; C. int a[10+1]={0}; D. int a[3l={1,2,3,4}; C 解析:聲明數(shù)組時,數(shù)組大小必須是常量,A選項錯誤,修改為 int a[]={1,2,3};這類格式就對了;B選項錯誤,給int,double,float類型初始化數(shù)組賦值時,不能直接不加{}就賦值,修改為int a[10]; 或者int a[10]={1,2};這類格式就對了;D選項錯誤, int a[3]大小是3塊內(nèi)存空間,而{1,2,3,4}有4個值了。 7 若有聲明“int a=l,x=3,y=4:”,則下列語句中除_______外,其他三條語句功能均相同。 A. if(a) printf("%d ",x); else printf("%d",y); B. if(a == 0) printf("%d",y); else printf("%d”,x); C. if(a! =0) printf("%d",x); else printf('%d",y); D. if(a==0) printf("%d",x); else printf(“%d”,y); D 解析:在C語言中,0表示假值,非0表示真值,因為a=1,所以ABC選項直接輸出x值。 5 若有聲明“int a[4],j;”及語句“for(j=0;j<4;j++) p[j]=a+j;”,則標(biāo)識符p應(yīng)聲明為_______。 A. int p[4]; B. int (*p)[4]; C. int **p[4]; D. int *p[4]; D 解析:A選項是指普通數(shù)組,聲明可以盛放4個int型數(shù)值的內(nèi)存空間區(qū);B選項是指向一維數(shù)組的指針變量;C選項是二級指針數(shù)組,里面盛放的是一級指針的內(nèi)存編號;D選項是指針數(shù)組, 聲明可以盛放4個int型內(nèi)存編號的內(nèi)存空間區(qū), 因文字解析不如視頻清晰,詳細(xì)見視頻詳細(xì)講解 。 10 6(填空題 <3空> ) : 以下程序運行時輸出結(jié)果中第一行是____________ ,第二行是____________ ,第三行是____________ 。 #include<stdio.h> void change(int x, int m) { char ch[]={"0123456789ABCDEF"},b[80]; int i=0,r; while(x) { r=x%m; x/=m; b[i++]=ch[r]; } for(--i;i>=0;i--) printf("%c",b[i]); } int main() { change(10,2); printf("\n"); change(20,8); printf("\n"); change(30,16); return 0; } 1010@24@1E 7 (填空題 <2空> ) : 以下程序運行時輸出結(jié)果中第一行是____________ ,第二行是____________ 。 #include<stdio.h> int func(int a) { static int c=1; c*=a; return c; } int main() { int b=1, i; for(i=2;i<4;i++) { b=b+func(i); printf("%d\n",b); } return 0; } 3@9 8(填空題 <2空> ) : 以下程序運行時輸出結(jié)果中第一行是____________ ,第二行是____________ 。 #include<stdio.h> int f(int a,int b); int main( ) { printf("%d\n%d",f(3,5), f(9,6)); return 0; } int f(int a,int b) { if(a==b) return a; else if(a>b) return f(a-b,b); else return f(a,b-a); } 1@3 9 (填空題 <3空> ) : 以下程序運行時輸出結(jié)果中第一行是____________ ,第二行是____________ ,第三行是____________ 。 #include<stdio.h> int main( ) { int a[3][3]={0},i,j,k,n=3; j=n/2; i=n-1; a[i][j]=1; for(k=2;k<=n*n;k++) { i++;j++; if(i>n-1&&j>n-1) { i=i-2; j--; } else { if(i>n-1) i=0; if(j>n-1) j=0; } if(a[i][j]==0) a[i][j]=k; else { i=i-2; j--; a[i][j]=k; } } printf("%d\n%d\n%d ",a[2][1], a[0][2], a[1][1]); return 0; } 1@2@5 1(完善程序): 完善程序(共12分,每空3分) 【要求】 1.打開T盤中文件myf0.c,按以下程序功能完善文件中的程序。 2.修改后的源程序仍保存在T盤myf0.c文件中,請勿改變myf0.c的文件名。 【程序功能】 函數(shù)f的功能是計算并返回F(x)值,其中x不等于0。 計算F(x)中的無窮級數(shù)時,當(dāng)通項(-1)nx2n/(2n)!的絕對值小于等于10-6時停止累加。 【測試數(shù)據(jù)與運行結(jié)果】 測試數(shù)據(jù):x = 1 輸出:f(1.000000)=1.278868 【待完善的源程序】 #include<stdio.h> #include<conio.h> #include<math.h> double f(double x) { int n=1,sign=-1; double term= 【1】 ,sum=term; while( 【2】 >1e-6) { term=term*sign*x*x/ 【3】 ; sum=sum+term; n++; } sum=3.14159/2-cos(x)/x* 【4】 ; return sum; } int main() { double x=1; printf("f(%f)=%f\n",x,f(x)); getch(); return 0; } 1@fabs(term)@((2*n-1)*(2*n))@sum (1)1 (2)fabs(term) (3)((2*n-1)*(2*n)) (4)sum 2(改錯題): 改錯(共16分,每錯4分) 【要求】 1.打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。 2.可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加變量聲明或預(yù)處理命令,但不能增加其他語句,也不能刪去整條語句。 3.修改后的源程序仍保存在T盤myf1.c文件中,請勿改變myf1.c的文件名。 【程序功能】 在一個一維數(shù)組中存儲的N個互不相同的整數(shù)中找出最小值和最大值,將最小值移到第一個數(shù)之前,將最大值移到最后一個數(shù)之后,其他數(shù)保持相對位置不變。 【測試數(shù)據(jù)與運行結(jié)果】 測試數(shù)據(jù):8,5,6,9,4,1,-1,7,3,2 輸出:-1,8,5,6,4,1,7,3,2,9 【含有錯誤的源程序】 #include <stdio.h> #include<conio.h> #define N 10 void crl(int *a) { int i,j,max=0,min=0,temp; for(i=1;i<N;i++) if(a[min]>a[i]) min=i; temp=a[min]; j=min; while(j<0) { a[j]=a[j-1]; j--; } a[0]=temp; for(i=1;i<N;i++) if(a[max]<a[i]) max=i; temp=a[max]; j=max; while(j<N-1) { a[j]=a[j-1]; j++; } a[N-1]=temp; } int main() { int a[N]={8,5,6,9,4,1,-1,7,3,2}; int i; crl(int a); for(i=0;i<N;i++) printf("%5d",*a+i); printf("\n"); getch(); return 0; } while(j<0) 修改為 while(j>0)@ a[j]=a[j-1]; 修改為 a[j]=a[j+1];@ crl(int a); 修改為 crl(a);@ printf("%5d",*a+i); 修改為 printf("%5d",*(a+i)); (1) while(j<0) 修改為 while(j>0) (2) a[j]=a[j-1]; 修改為 a[j]=a[j+1]; (3) crl(int a); 修改為 crl(a); (4) printf("%5d",*a+i); 修改為 printf("%5d",*(a+i)); 3(編程題): 編程(共22分) 【要求】 1.打開T盤中文件myf2.c,在其中輸入所編寫的程序。 2.數(shù)據(jù)文件的打開、使用、關(guān)閉均用C語言標(biāo)準(zhǔn)庫中緩沖文件系統(tǒng)的文件操作函數(shù)實現(xiàn)。 3.請勿改變myf2.c的文件名。 【程序功能】 在一個字符串中所有數(shù)字子串前插入指定字符。例如,原字符串為"AB1CD12EF123GH",在所有數(shù)字字符子串前插入一個指定字符'-'后字符串變?yōu)?/SPAN>"AB-1CD-12EF-123GH"。 【編程要求】 1.編寫void insert(char *p)函數(shù)。函數(shù)功能:在p指向的字符串中所有數(shù)字字符子串前插入一個字符‘-’。 2.編寫main函數(shù)。函數(shù)功能:聲明1個一維數(shù)組并用測試數(shù)據(jù)初始化,用數(shù)組作實參調(diào)用insert函數(shù)對數(shù)組中字符串做處理,將處理后的字符串輸出到顯示器屏幕及文件myf2.out中。最后將考生本人的準(zhǔn)考證號輸出到文件myf2.out中。 【測試數(shù)據(jù)與運行結(jié)果】 測試數(shù)據(jù):"AB1CD12EF123GH" 輸出:AB-1CD-12EF-123GH #include <stdio.h> void insert(char *p) { char *t,*q; int judge=0; q=p; while(*p) { if(*p>='0' && *p<='9' && judge==0) { while(*q) q++; for(t=p;t<q;q--) { *q=*(q-1); } *t='-'; judge=1; } if(*p>='A' && *p<='Z' || *p>='a' && *p<='z') { judge=0; } p++; } } int main() { FILE *fp; char c[100]={"AB1CD12EF123GH"}; insert(c); fp=fopen("myf2.out","w+"); printf("%s",c); fprintf(fp,"%s\n",c); fprintf(fp,"My Exam is 001122"); fclose(fp); }
|