江苏省高等学校计算机等级考试 二级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
|