1、国家计算机二级(C)94 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序: main( ) unsigned char a,b,c; a=0x3; b=a|0x8; c=b 1; printf(“%d%d/n“,b,c); 程序运行后的输出结果是( )。 (分数:60.00)A.-11 12B.-19C.12 24D.11 222.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是( )。(分数:60.00)A.字符
2、 AB.字符 aC.字符 eD.非法的常量3.有以下程序 int fun(int X,int n) static int sum=0,i; for(i=0;iA.45B.50C.60D.554.设变量 X和 Y均已正确定义并赋值。以下 if语句中,在编译时将产生错误信息的是【 】。(分数:60.00)A.if(X+);B.if(Xy if(ij) t=ai; ai=aj;aj=t; f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(“%d,”,aai); printf(“/n”); 执行后输出
3、结果是( )。 (分数:60.00)A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,7.有下列程序: #include stdio.h #include “string.h“ void tim(char *s,int n) char *t;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%
4、s,%s/n“,ss0,ss4); 程序的运行结果是( )。 (分数:60.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc8.设有如下三个关系表,下列操作中正确的是【 】。 (分数:60.00)A.T=RSB.T=RSC.T=RxSD.T=RS9.有以下程序: main( ) int a33,*p,i; p= for(i=0;iA.3B.6C.9D.210.以下选项中正确的定义语句是(分数:60.00)A.double a;b;B.double a=b=7;C.double a=7,b=7;D.double,a,b;11.在面向对象方法中,不属于
5、“对象”基本特点的是(分数:60.00)A.一致性B.分类性C.多态性D.标识唯一性12.有以下程序 #include main() char p20=a,b,c,d,q=“abc“,r:“abcde“; strcpy(P+strlen(q),r);strcat(p,q); printf(“ddn“,sizeof(p),strlen(p); 程序运行后的输出结果是【 】。 (分数:60.00)A.209B.99C.2011D.111113.以下叙述中正确的是【 】。(分数:60.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数
6、据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失14.有以下程序 main() int a 32=0,(* ptr 2,i,j; for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);pb+; for(i=0;i3;i+) for(j=0;j2;j+)printf(“%2d“,aij); printf(“/n“); 若运行时输入:123回车,则输出结果是【 】。(分数:60.00)A.产生错误信息B.10C.12D.1015.下列选项中,不能用作标识符
7、的是( )。(分数:60.00)A._1234_B._1_2C.int_2_D.2_int_16.数据库技术的根本目标是要解决数据的【 】。(分数:60.00)A.存储问题B.共享问题C.安全问题D.保护问题17.下列叙述中正确的是( )。(分数:60.00)A.在 Windows环境下,最大化的窗口是不能移动的B.在 Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C.在 Windows环境下,只有最小化的窗口才能关闭D.在 Windows环境下,不能关闭最小化窗口18.下列叙述中正确的是【 】。(分数:60.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C
8、.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试19.在 Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按( )。(分数:60.00)A.Ctrl+Printscreen键B.Alt+Printscreen键C.Shift+Printscreen键D.Printscreen键20.有以下程序 #include main() FILE * fp;int k , n,a6=1,2,3,4, 5,6; fp=fopen(“d2.dat“,“W“); fprintf(fp,“dddn“,a0,a1,a2);fprintf(fp,“dddn“,a3,a4,aS); f
9、close(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“dd“,B.ch=62+3;C.ch=NULL;D.ch=/xaa;23.设变量已正确定义并赋值,下列正确的表达式是( )。(分数:60.00)A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,+yD.x=25%5.024.已知字母 A的 ASCII代码值为 65,若变量 kk为 char型,下列不能正确判断出比中的值为大写字母的表达式是( )。(分数:60.00)A.kk=A for(i=0;i4;i+) pi= printf(“%d“,pi0); printf(“/n“); (分数
10、:40.00)填空项 1:_59.以下程序运行时,若从键盘输入:10 20 30回车,输出的结果是 1。 #includestdio.h main2 int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d%d%d/n“,i,j,k); (分数:40.00)填空项 1:_60.以下程序运行后的输出结果是 1。 main( ) char m; m=B+32; printf(“%c/n“,m); (分数:40.00)填空项 1:_61.以下程序运行后的输出结果是 1。 main( ) int a=1,b=3,c=5; if (c=a+b) printf(“yes/n
11、“); else printf(“no/n“); (分数:40.00)填空项 1:_62.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:40.00)填空项 1:_国家计算机二级(C)94 答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序: main( ) unsigned char a,b,c; a=0x3; b=a|0x8; c=b 1; printf(“%d%d/n“,b,c); 程序运行后的输出结果是( )。 (分数:60.00)A.-11 12B.-19C.
12、12 24D.11 22 解析:用数字 0和字母 x(或大写字母 X)开头的数表示十六进制数。2.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是( )。(分数:60.00)A.字符 A B.字符 aC.字符 eD.非法的常量解析:字符,/101,所对应的八进制数为 101,转换成十进制数为 65。3.有以下程序 int fun(int X,int n) static int sum=0,i; for(i=0;iA.45B.50C.60 D.55解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调
13、用该函数时,以前调用时的数值仍然保留着。Fun(a,5)的值是 15,再次调用后 sum=15,所以 Fun(b,4):45,s=45+15=60。4.设变量 X和 Y均已正确定义并赋值。以下 if语句中,在编译时将产生错误信息的是【 】。(分数:60.00)A.if(X+);B.if(Xy if(ij) t=ai; ai=aj;aj=t; f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(“%d,”,aai); printf(“/n”); 执行后输出结果是( )。 (分数:60.00)A.5
14、,4,3,2,1, B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,解析:7.有下列程序: #include stdio.h #include “string.h“ void tim(char *s,int n) char *t;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4);
15、 程序的运行结果是( )。 (分数:60.00)A.xy,aaaacc B.aaaacc,xyC.bcc,aabccD.aabcc,bcc解析:从 main函数入手,定义了指向字符串的指针数组,并赋予了初始值,调用 fun()函数,函数的功能是:比较数组中各个元素的长度,按元素长度从小到大排列数组元素,所以执行 fun(ss,5)函数后,*ss =“xy“,“bcc“,“bbcc“,“aabcc“,“aaaacc“,所以调用 printf函数输出 ss0,ss4的值分别为xy,aaaacc。8.设有如下三个关系表,下列操作中正确的是【 】。 (分数:60.00)A.T=RSB.T=RSC.T=
16、RxS D.T=RS解析:对于两个关系的合并操作可以用笛卡尔积表示。设有 n元关系 R和 m元关系 S,它们分别有 p和 q个元组,则 R与 S的笛卡儿积记为 RS,它是一个 m+n元关系,元组个数是 pq,由题意可得,关系 T是由关系 R与关系 S进行笛卡尔运算得到。9.有以下程序: main( ) int a33,*p,i; p= for(i=0;iA.3B.6 C.9D.2解析:10.以下选项中正确的定义语句是(分数:60.00)A.double a;b;B.double a=b=7;C.double a=7,b=7; D.double,a,b;解析:定义变量 a和变量 b为 doubl
17、e类型,并对其赋初值。变量之间应以“,”分隔,定义关键字与变量名之间应以空格分隔,语句应以“;”结尾。11.在面向对象方法中,不属于“对象”基本特点的是(分数:60.00)A.一致性 B.分类性C.多态性D.标识唯一性解析:对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性。故本题答案为 A)。12.有以下程序 #include main() char p20=a,b,c,d,q=“abc“,r:“abcde“; strcpy(P+strlen(q),r);strcat(p,q); printf(“ddn“,sizeof(p),strlen(p);
18、 程序运行后的输出结果是【 】。 (分数:60.00)A.209B.99C.2011 D.1111解析:函数 strlen()返回的是数组的实际长度,而 sizeof返回的是数组定义的总长度。因为字符数组p20定义为 20字节长度,所以 sizeof(p)的值为 20。“strcpy(p+strlen(q),r);“语句的功能把字符数组r拷贝到字符数组 p从 p3开始到 p7的位置中,这时字符数组 p的有效字符长度为 8。然后再执行“streat(p,q);“语句(字符串连接),即把字符数组 q连接到字符数组 p后面,这时字符数组 p的有效长度为 11。13.以下叙述中正确的是【 】。(分数:
19、60.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 解析:如果以写方式打开一个已经存在的文件,则在打开时将该文件删除,然后重新建立一个同名的新文件。14.有以下程序 main() int a 32=0,(* ptr 2,i,j; for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);pb+; for(i=0;i3;i+) for(j=
20、0;j2;j+)printf(“%2d“,aij); printf(“/n“); 若运行时输入:123回车,则输出结果是【 】。(分数:60.00)A.产生错误信息B.10 C.12D.10解析:二维数组 a,通过 a32=0将数组中的各个元素初始化为 0,指针变量 ptr,指向包含 2个元素的一维数组。a00=1,a10=2,故本题的输出选 B。 15.下列选项中,不能用作标识符的是( )。(分数:60.00)A._1234_B._1_2C.int_2_D.2_int_ 解析:16.数据库技术的根本目标是要解决数据的【 】。(分数:60.00)A.存储问题B.共享问题 C.安全问题D.保护问
21、题解析:由于数据的集成性使得数据可被多个应用程序所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据库的应用范围,所以数据库技术的根本目标是解决数据的共享问题。17.下列叙述中正确的是( )。(分数:60.00)A.在 Windows环境下,最大化的窗口是不能移动的 B.在 Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C.在 Windows环境下,只有最小化的窗口才能关闭D.在 Windows环境下,不能关闭最小化窗口解析:18.下列叙述中正确的是【 】。(分数:60.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试
22、 D.程序经调试改错后不必进行再测试解析:程序调试的任务是诊断和改正程序中的错误,改正以后还需要再测试。 19.在 Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按( )。(分数:60.00)A.Ctrl+Printscreen键B.Alt+Printscreen键C.Shift+Printscreen键D.Printscreen键 解析:20.有以下程序 #include main() FILE * fp;int k , n,a6=1,2,3,4, 5,6; fp=fopen(“d2.dat“,“W“); fprintf(fp,“dddn“,a0,a1,a2);fprint
23、f(fp,“dddn“,a3,a4,aS); fclose(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“dd“, B.ch=62+3;C.ch=NULL;D.ch=/xaa;解析:23.设变量已正确定义并赋值,下列正确的表达式是( )。(分数:60.00)A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,+y D.x=25%5.0解析:在赋值表达式中,赋值符号“=”的左边只能为要赋值的变量,不能为表达式,右边可以为常量或者是表达式,故选项 A错误,选项 C正确:在取余运算中,运算符“%”两边都必须是整型数据,所以选项 B、D 错误。24.已
24、知字母 A的 ASCII代码值为 65,若变量 kk为 char型,下列不能正确判断出比中的值为大写字母的表达式是( )。(分数:60.00)A.kk=A for(i=0;i4;i+) pi= printf(“%d“,pi0); printf(“/n“); (分数:40.00)填空项 1:_ (正确答案:2, 2 4 6 8)解析:p 为指向数组的指针变量,数组 x1为数组 x 的第二个元素,值为 2:进入 for循环 i=0时,p0= printf(“%d%d%d/n“,i,j,k); (分数:40.00)填空项 1:_ (正确答案:10300)解析:在 scanf格式控制符中,如果在%后有
25、一个“*“附加说明符,表示跳过它指定的列数。本题中“%d%*d“表示将 10赋给 i,%*d表示读入整数但不赋给任何变量,然后再读入整数 30赋给变量 j,那么变量 k并没有重新赋值,仍为初始值 0。所以输出的结果为 10300。 60.以下程序运行后的输出结果是 1。 main( ) char m; m=B+32; printf(“%c/n“,m); (分数:40.00)填空项 1:_ (正确答案:b)解析:61.以下程序运行后的输出结果是 1。 main( ) int a=1,b=3,c=5; if (c=a+b) printf(“yes/n“); else printf(“no/n“); (分数:40.00)填空项 1:_ (正确答案:yes)解析:62.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:40.00)填空项 1:_ (正确答案:关系)解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1