江蘇省高等學校計算機等級考試 二級C考試(樣卷) (本試卷完成時間 120分鐘) 第一部分 計算機信息技術基礎知識
本題目的視頻講解見:http://school.njwww.net/kecheng/detail_946748 選擇題(共20分,每題2分) 1.下列關于數字技術與微電子技術的敘述中,錯誤的是______ 。 A.數字技術的處理對象是"比特",一個觸發器可以存儲2個比特 B.在數據通信時,遠距離傳輸或者無線傳輸時需要用比特對載波進行 C.現代集成電路使用的半導體材料主要是硅 D.我國第2代居民身份證中使用了非接觸式IC芯片 2.下列關于臺式PC芯片組的敘述中,錯誤的是______ 。 A.芯片組是主板上最為重要的部件之一,存儲器控制、I/O控制等功能主要由芯片組實現 B.芯片組與CPU同步發展,有什么樣功能和速度的CPU,就需要使用什么樣的芯片組 C.芯片組決定了主板上能安裝的內存最大容量及可使用的內存條類型 D.同CPU一樣,用戶可以很方便、很簡單地更換主板上的芯片組 3.下列關于I/O設備的敘述中,錯誤的是______。 A.目前平板電腦、智能手機的觸摸屏大多為"多點觸摸屏",可同時感知屏幕上的多個觸控點 B.掃描儀可分為手持式、平板式和滾筒式等類型,目前普通家用/辦公用掃描儀大多為滾筒式 C.目前一些型號的數碼相機已具有拍攝視頻和進行錄音的功能 D.為了降低成本,目前許多PC采用集成顯卡,其顯示控制器被集成在芯片組中 4.下列關于PC外存儲器的敘述中,錯誤的是____。 A.目前PC采用的硬盤,其盤片的直徑通常為3.5英寸、2.5英寸或1.8英寸 B.U盤和存儲卡都是采用閃爍存儲器制作的,目前其容量大多為幾GB至幾十GB C.目前固態硬盤的存儲容量大多為數百GB,但其讀寫速度遠不如傳統硬盤(硬磁盤) D.藍光光盤是目前最先進的大容量光盤,單層盤片的存儲容量可達25GB 5.下列關于Windows操作系統功能的敘述中,錯誤的是______。 A.對于多任務處理,系統一般采用按時間片輪轉的策略進行處理器調度 B.系統采用了虛擬存儲技術進行存儲管理,其頁面調度算法為"最近最少使用"( LRU)算法 C.系統支持多種文件系統(如FAT32、NTFS、CDFS等)以管理不同的外存儲器 D.系統支持任何I/O設備的"即插即用"和"熱插拔" 6.下列關于程序設計語言的敘述中,錯誤的是____。 A.雖然機器語言不易記憶、機器語言程序難以閱讀和理解,但目前還有很多人使用其編寫程序 B.匯編語言與計算機的指令系統密切相關,不同類型的計算機,其匯編語言通常不同 C.VBScript語言是VB的子集,用其編寫的程序可以嵌入在HTML文檔中以擴充網頁的功能 D.Java語言是一種適用于網絡環境的程序設計語言,目前許多手機軟件就是用Java編寫的 7.下列關于通信技術的敘述中,錯誤的是______。 A.調制與解調技術主要用于模擬通信,在數字通信中不需要使用調制與解調技術 B.使用多路復用技術的主要目的是提高傳輸線路的利用率,降低通信成本 C.在數據通信中采用分組交換技術,可以動態分配信道資源,提高傳輸效率和質量 D.數據通信網絡大多采用分組交換技術,但不同類型網絡的數據包格式通常不同 8.Internet使用TCP/IP協議實現了全球范圍的計算機網絡的互連,連接在 Internet上的每一臺主機都有一個IP地址。目前使用的是IPv4標準(32位地 址),下一代互聯網將會采用IPv6標準,其IP地址為____。 A.48位 B.64位 C.96位 D.128位 9.下列關于字符編碼標準的敘述中,錯誤的是____。 A.在ASCII標準中,每個字符采用7位二進制編碼 B.在絕大多數情況下,GB2312字符集包含的1萬多個漢字足夠使用 C.Unicode字符集既包含簡體漢字,也包含繁體漢字 D.中文版Windows XP及其后的Windows系列操作系統均支持國標GB18030 10.由于采用的壓縮編碼方式及數據組織方式的不同,圖像文件形成了多種不同的文件格式。在下列四種圖像文件中,常用于網頁上發布并可具有動畫 效果的是 。 A. BMP B.JPEG C.GIF D. TIF 參考答案: 1.A 3.B 2.D 4.C 5.D 6.A 7.A 8.D 9.B 10.C
第二部分 C語言程序設計 一、選擇題(共10分,每題2分) 1.以下語句中有語法錯誤的是____。 A. printf(”%d”,OxAB); B. printf(”%f”,3.45E2.5); C.printf(”%d”,037); D.printf(”%c”,'\\'); 2.已有聲明“int x=5,y.float z=2;”,以下表達式中語法正確的是___ 。 A.y= x%z B.x >0? y=x:y=-x C.y =x/2 =z D.y =x =z/2 3.-元二次方程ax2 +bx +c =0有兩個相異實根的條件是a≠0且b2— 4ac >0,以下選項中能正確表示該條件的C語言表達式是 。 A.a!=0,b*b-4*a*c >0 B.a!=0 11 b*b -4*a*c >0 C.a && b*b -4 *a*c >0 D.!a&& b*b -4*a*c >0 4.若有一函數定義為“int f(int x,int *y){return x/*y;}”,聲明該函數的 正確形式是 A.void f(int, int); B.int *f(int ,int *); C.int f(int * ,int *); D.int f(int, int *); 5.已有定義和聲明: struct student { int no; char name[20]; struct{ int year, month, day;}birth; } s;
若要求將日期“1989年11月12日”保存到變量s的birth成員中,則能實 現這一功能的程序段是 ______ 。 A. year=1989; month=11; day=12; B. s.year=1989; s.month=11; s.day=12; C. birth.year=1989; birth.month=11; birth.day=12; D. s.birth.year =1989; s.birth.month=11; s.birth.day=12; 二、填空題(共20分,每空2分) 1.以下程序運行時輸出到屏幕的結果中第一行是 ___(1)___ 第二行是 ___(2)___ 。 #include < stdio.h > int main( ) { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j; for(i=0;i<12 ;i++ ) { j=s[i]; c[j]++; } for(i=1;i<5;i++) printf( "%d:%d\n" ,i,c[i]) ; return 0 ; } 2.以下程序運行時輸出到屏幕的結果中第一行是___(3)___,第二行是 ___(4)___ 。
#include int fun( int x) {static int c,y; if(c==0)y=1; else y=y+x; c++; return y; } int main() {int i; for(i=0;i<2;i++) printf(”%d\n", fun(2)); return 0; } 3.以下程序運行時輸出到屏幕的結果中第一行是 ___(5)___ 第二行是 ___(6)___ 。 #include void fun(int * a,int b) { while( b >0) { *a+=b; b-- ; } } int main( ) { int x=0,y=3; fun(&x,y); printf( "%d\n%d" ,x,y) ; return 0 ; } 4.以下程序運行時輸出到屏幕的結果是 ___(7)___ 。 #include < stdio. h > int f(int x) { if( x ==0||x == 1) return 3 ; return x * x - f(x-2) ; }
int main( ) { printf( " %d\n" , f(3)) ; return 0;} 5.以下程序運行時輸出到屏幕的結果中第一行是 ___(8)___ ,第二行是 ___(9)___ ,第三行是___(10)___ 。算法提示:將Fibonacci數列(1,1,2, 3,5,8,13,...)前6個數填入a數組。 #include #define N 3 int main( ) { int i,j,a[N][N] ={1} ,f1 =0,f2 =1,temp; for(i=1;i for(j=0;j<=i;j++) { if(j<=i) {a[i][j]=f1+f2; temp = f1 ; f1 = f2 ; f2 = f1 +temp; } } for(i =0;i {for(j=0;j printf(”]”,a[i][j]); printf(”\n”); } return 0; } 三、操作題(共50分) 1.完善程序(共12分,每空3分) 【要求】 1.打開T盤中的文件myf0.c,按以下程序功能完善文件中的程序。 2.修改后的源程序仍保存在T盤myf0.c文件中。 【程序功能】 根據輸入的年份及該年中的第幾天,計算并輸出這一天的“年/月/日”。例如, 若輸入“2010,100”,則輸出“2010/4/10(表示2010年的第100天是4月10日)”。 提示:能被4整除并且不能被100整除的年份是閏年,能被400整除的年份 也是閏年,其他年份是平年。
【待完善的源程序】 #include #include int leap( int year) { int y; y = year% 4 == 0 && ___(1)___ || year@0==0; return y; } void month_day ( int year,int yearday, int * month , int * day) { int k,p; int tab[2][13] = { {0,31,28, 31,30,31,30,31,31,30,31,30,31} , {0,31, 29, 31,30,31,30,31,31,30,31,30,31} } ; p =leap( year); for( k =1; yearday > ___(2)___ ;k++ ) yearday = yearday - tab[p][k] ; *month = k; * day =___(3)___; } int main( ) { int year,days,month,day ; printf( "Input year and days ! \n" ) ; scanf( "%d, %d" , &year, &days) ; if(leap( year) ==1 && days <= 366 || leap( year) == 0 && days <= 365) { month_day(year,days,___(4)); printf("\n%d/%d/%d",year,month,day); } else puts("days is Wrong!"); getch(); return 0; } 2.改錯(共16分,每個錯4分) 【要求】 1.打開T盤中的文件myf1.c,按以下程序功能改正文件中程序的錯誤。 2.可以修改語句中的一部分內容,調整語句次序,增加少量的變量說明或 編譯預處理命令,但不能增加其他語句,也不能刪去整條語句。 3.修改后的源程序仍保存在T盤myf1.c中。 【程序功能】 下列程序中函數wordsearch的功能是將a指向的字符串中所有回文單詞復 制到b指向的二維數組中(一個回文單詞存儲在b數組的一行中),函數返回b 數組中回文單詞的個數。 回文單詞是指:一個單詞自左向右讀與自右向左讀相同(字母不區分大小 寫)。例如,Dad是回文單詞。 【測試數據與運行結果】 測試數據 :Dad left home at noon. 屏幕輸出:found 2 words Dad noon 【含有錯誤的源程序】 #include #include #include int wordsearch( char a[ ] , char b[ ][10] ) { int i,j,k,m,n,t,c =0,d; for(i=0;a[i];i++) { for(j =i, k =i;isalpha(a[k]);k++ ) ; m =j;n = k -1; while (toupper(a[m] )==toupper(a[n]) && m<=n) {m++; n--;} if(m==n) { for(d=0, t=j;t b[c][d]=a[t]; b[c][d]='\0'; c++; } i=k; } return c ; } int main( ) { char s1 = " Dad left home at noon. " ; char s2[10] [10] ; int i,j; puts(s1) ; j = wordsearch( s1 , s2) ; printf( "found % d words\n" ,j) ; for(i=0;i puts ( s2) ; getch(); return 0; } 3.編程(共22分) 【要求】 1.打開T盤中的文件myf2.c,在其中輸入所編寫的程序,輸出結果數據文 件取名myf2. out。 2.數據文件的打開、使用、關閉均用C語言標準庫中緩沖文件系統的文件 操作函數實現。 【程序功能】 判斷一個NxN矩陣是否為幻方陣。 幻方陣是指一個矩陣中每行元素之和、每列元素之和及左右主對角線上元 素之和均相等。 【編程要求】 1.定義符號常量N代表5。 2.編寫函數int judge( int a[N][N])。函數功能是判斷a指向的一個N行N 列二維數組中存儲的矩陣是否為幻方陣,如果是則函數返回1,否則返回0。 3.編寫main函數。函數功能是聲明二維數組x并用測試數據初始化,用x 數組作為實參調用judge函數進行判斷,將x數組中數據及以“yes”或“no”表示 的判斷結果輸出到屏幕及文件myf2.out中。最后將考生本人準考證號字符串 輸出到文件myf2.out中。 【測試數據與運行結果】 測試數據: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 屏幕輸出: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 yes
參考答案: 第一部分 計算機信息技術基礎知識 選擇題 1.A 3.B 5.D 7.A 9.B 2.D 4.C 6.A 8.D 10.C 第二部分 C語言程序設計 一、選擇題 (1)B (2)D (3)C (4)D (5)D 二、填空題 (1)1:4 (2)2:3 (3)1 (4)3 (5)6 (6)3 (7)6 (7)1 0 0 (9)1 2 0 (10)3 5 8
三、操作題 1.完善程序 #include #include int leap( int year) { int y; y = year% 4 == 0 && year% 100 !=0 || year% 400 == 0; return y; } void month_day(int year,int yearday, int * month,int * day) { int k,p; int tab[2][13] = {{0,31,28,31,30,31,30,31,31,30 ,31,30,31} , {0,31,29,31,30,31,30,31,31,30,31,30,31} } ; p =leap(year) ; for(k =1; yearday > tab[p][k] ; k++ ) yearday = yearday - tab[p][k]; * month = k ; * day = yearday ; int main ( ) {int year, days , month , day ; printf( "Input year and days! \n" ) ; scanf( "%d, %d" , &year, &day) ; if(leap(year) == 1 && days <= 366 || leap( year) == 0 && days<= 365 ) { month_day(year, days, &month , &day ) ; printf( " \n %d/%d/%d " , year,month , day) ; } else puts( " days is ,wrong! " ) ; getch( ) ; return 0; }
2.改錯
#include < stdio.h > #include < conio.h > #include < ctype.h > int wordsearch( char a[ ] , char b[ ][10] ) { int i,j,k,m,n,t,c =O,d; for(j=i, k=i;isalpha(a[k]) ;k++ ) ; m =j;n = k -1; while(toupper(a[m])== toupper(a[n]) && m <= n) {m++;n--;} if(m==n) /*改為if(m>n) */ { for(d=0,t=j; t b[c][d]=a[t]; /*改為b[c][d++]=a[t]; */ b[c][d]='\0'; c++ ; } i= k; } return c ; }
int main( ) { char s1 = " Dad left home at noon. " ; /*改為 char s1[ ] = " Dad left home at noon. " ; */ char s2[10][10] ; int i,j; puts(s1) ; j = wordsearch(s1 , s2) ; printf( " found % d words\n" ,j) ; for(i=0; i puts( s2) ; /*改為 puts(s2[i]) ; */ getch( ) ; return 0; }
3.編程
#include < stdio. h > #define N 5 int judge(int a[N][N]) { int i,j,b[N+N+2] = {0} , * p1, *p2; for(i=0; i for(j=0; j b[i]+=a[i][j]; for(j=0;j for(i=0;i b[N+j]+=a[i][j]; for(i=0;i b[N+j]+=a[i][i]; for(i=0;i b[N+1+j]+=a[i][N-1-i]; p1=b; p2=b+N+N+1; while(p1 if( * p1 != * ( p1 + 1)) return 0; else p1++ ; return 1 ; int main( ) { int i,j,x[N][N] = {{ 17,24,1,8,15 } , { 23,5,7,14,16 } , {4,6,13 ,20,22} , {l0 ,12 ,19 ,21,3 } , {11,18 ,25,2,9 } } ; FILE *fp; fp = fopen( " myf2.out" , "w" ) ; for(i=0;i { for(j=0;j { printf("M",x[i][j]); fprintf( fp, " % 4d" ,x[i] [j] ) ; } } printf( " \n" ) ; fprintf( fp , " \n" ) ; if(judge( x)) { fprintf( fp , " yes" ) ; printf( " yes" ) ; } else { printf( "no" ) ; fprintf( fp, " no" ) ; } fprintf( fp , " \nMy exam numbler is :0112400123 " ) ; fclose( fp) ; return 0 ; }
本套題目的視頻講解: http://school.njwww.net/kecheng/detail_946748
|