1、计算机二级(C)30 及答案解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序: main( ) int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=aA.0,0B.0,1C.1,0D.1,12.数据的存储结构是指_。 (分数:1.50)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示3.以下程序的功能是按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ) int n,
2、k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f“,score);sum+=score; ave=sum/4.0; printf(“NO%d:%f/n“,n,ave); 上述程序运行后结果不正确,调试中发现有条语句出现在程序中的位置不正确。这条语句是( )。 (分数:1.50)A.sum=0.0;B.sum+=score;C.ave=sum/4.0;D.printf(“NO%d:%f/n“,n,ave);4.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+
3、; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:1.50)A.1,1B.2,2C.3,3D.4,45.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.abcdB.abbaC.abcD.abca6.有以下程序 void swap(char *x,char *y) char t; t=*x;*x
4、=*y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。 (分数:1.50)A.123,abcB.abc,123C.1bc,a23D.321,cba7.在 DOS 环境下,为了得到 TYPE 命令的帮助信息,正确的 DOS 命令为( )。(分数:1.50)A.TYPEB.TYPE/HC.TYPE/*D.TYPE/?8.有以下程序 main( ) char k; int I; for(i=1;i3;i+) scanf(“%c”, switch(k) case 0:
5、printf(“another/n”); case 1: printf(“number/n”); 程序运行时,从键盘输入:01,程序执行后的输出结果是( )。 (分数:1.50)A.another numberB.another number anotherC.another number numberD.number number9.有以下程序 main() int c=35;printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:1.50)A.0B.70C.35D.110.在 Windows 环境下,能实现窗口移动的操作是( )。(分数:1.50)A.用鼠标拖动窗口中的任何部位
6、B.用鼠标拖动窗口的边框C.用鼠标拖动窗口的控制按钮D.用鼠标拖动窗口的标题栏。11.若以下选项中的变量已正确定义,则正确的赋值语句是( )。(分数:1.50)A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3;12.有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;iA.35B.37C.39D.397513.有以下程序: main() int a,b,d=25; a=d/10%9; b=a printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。 (分数:1.50)A.6
7、,1B.2,1C.6,0D.2,014.若有以下说明和定义 typedefint * INTEGER; INTEGER p,* q; 以下叙述正确的是( )。 (分数:1.50)A.p 是 int 型变量B.p 是基类型为 int 的指针变量C.q 是基类型为 int 的指针变量D.程序中可用 INTEGER 代替 int 类型名15.以下叙述中正确的是_。 (分数:1.50)A.调用 printf 函数时,必须要有输出项B.使用 putchar 函数时,必须在之前包含头文件 stdio.hC.在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用 getchar 函数读入字符
8、时,可以从键盘上输入字符所对应的 ASCII 码16.有以下程序: main( ) int aa44= 1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6 ; int i,s=0; for(i=0;i4;i+) s+=aai1; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:1.50)A.11B.19C.13D.2017.有以下程序: void sum(int a) a0=a-1+a1; main() int a10= 1,2,3,4,5,6,7,8,9,10; sum( printf(“%d/n“,a2); 程序运行后的输出结果是_。 (分数:1.
9、50)A.6B.7C.5D.818.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2) static int a=4; t+=a+; else static int a=5; t+=a+; return t+a+; main() int s=a,i; for(i=0;iA.26B.28C.29D.2419.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:1.50)A.
10、10,A,10B.10,a,10C.10,a,0D.10,A,020.有以下程序: main( ) int i,n=0; for(i=2;iA.n=5B.n=2C.n=3D.n=421.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 (分数:1.50)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b;22.所谓 “裸机”是指( )。(分数:1.50)A.单片机B.单板机C.不装备任何软件的计算机D.只装备操作系统的计算机23.数据库 DB、数据库系统 DBS、数据库管理系统
11、DBMS 之间的关系是_。 (分数:1.50)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系24.以下符合 C 语言语法的实型常量是( )。(分数:1.50)A.1.2B.3.14.159EC.0.0005D.E1525.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。 (分数:1.50)A.*p= scanf(“%lf“,p);B.*p= scanf(“%f“,p);C.p= scanf(“%lf“,*p);D.p= scanf(“%lf“,p);26.若整型变量
12、a、b、c、d 中的值依次为 1、4、3、2。则条件表达式 aname); (分数:40.00)填空项 1:_65.设函数 findbig( )已定义为求 3 个数中的最大值。以下程序将利用函数指针调用 findbig 函数。请填空。 main( ) int findbig(int,int,int); int (*f)( ),x,y,z,big; f= 1; scanf(“%d%d%d“, big=(*f)(x,y,z); printf(“big=%d/n“,big); (分数:40.00)填空项 1:_66.为了便于对照检查,测试用例应由输入数据和预期的 1 两部分组成。(分数:-1.00)
13、填空项 1:_67.软件结构是以 1 为基础而组成的一种控制层次结构。(分数:-1.00)填空项 1:_68.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:-1.00)填空项 1:_69.顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数:-1.00)填空项 1:_70.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件 的 1。 (分数:-1.00)填空项 1:_计算机二级(C)30 答案解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下
14、程序: main( ) int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=aA.0,0B.0,1C.1,0 D.1,1解析:2.数据的存储结构是指_。 (分数:1.50)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。3.以下程序的功能是按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ) int n,k; float score,sum,ave; sum=0.0; fo
15、r(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f“,score);sum+=score; ave=sum/4.0; printf(“NO%d:%f/n“,n,ave); 上述程序运行后结果不正确,调试中发现有条语句出现在程序中的位置不正确。这条语句是( )。 (分数:1.50)A.sum=0.0; B.sum+=score;C.ave=sum/4.0;D.printf(“NO%d:%f/n“,n,ave);解析:本题中 sum 用来保存每位学生的总成绩,所以在计算不同学生的总成绩时,应将 sum 重新赋值 初值 0,即语句 sum=0.0;,它应在第二个 for
16、 语句前执行。4.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:1.50)A.1,1B.2,2C.3,3 D.4,4解析:5.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.abcdB.abba C.ab
17、cD.abca解析:6.有以下程序 void swap(char *x,char *y) char t; t=*x;*x=*y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。 (分数:1.50)A.123,abcB.abc,123C.1bc,a23 D.321,cba解析:此题考核的知识点是指针变量值的交换。C 语言中,字符串常量在内存中是以字符数组的形式进行 存放的,因此字符指针 x 和 y 指向的是各字符串的首地址,也就是字符串第一个字符的地址,则*x 与*
18、y 交 换的是字符串的第一个字符,即字符“a”与“1”的交换,而字符串中其它字符保持不变,所以答案选 C。7.在 DOS 环境下,为了得到 TYPE 命令的帮助信息,正确的 DOS 命令为( )。(分数:1.50)A.TYPEB.TYPE/HC.TYPE/*D.TYPE/? 解析:8.有以下程序 main( ) char k; int I; for(i=1;i3;i+) scanf(“%c”, switch(k) case 0: printf(“another/n”); case 1: printf(“number/n”); 程序运行时,从键盘输入:01,程序执行后的输出结果是( )。 (分数
19、:1.50)A.another number B.another number anotherC.another number numberD.number number解析:9.有以下程序 main() int c=35;printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:1.50)A.0B.70C.35 D.1解析: 按位“与”时,1 解析:12.有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;iA.35B.37C.39 D.3975解析:此题考核的是指针数组。题目中定义的指针数组“*p”相当
20、于一个两行四列的数组。执行 for()语句 i=0,j=0,pij=p00=3,满足 while 循环条件,执行循环体中的 if 语句得 num=3,j=2,此时 pij=p02=9, 满足循环条件,执行 while 循环体得 num=39,j=4,判断 while 条件且不符合并退出 while 循环;再次执行 for()语句 i=1,j=0,pij=p10=2,满足 while 条件,执行循环体中的 if 语句,但不符合 if 条件,所以 num 不进行运算, j 进行加 2 运算 j=2,此时 pij=p12=4,if 条件还是为假,num 不进行运算,j 进行加 2 运算 j=4,再执
21、行 while 语句条件不符合退出循环。所以结果为 39。13.有以下程序: main() int a,b,d=25; a=d/10%9; b=a printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。 (分数:1.50)A.6,1B.2,1 C.6,0D.2,0解析:本题中“a=d/10%9;”的值为 25/10%9=2;“b=a”为 2i+) s+=aai1; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:1.50)A.11B.19 C.13D.20解析:17.有以下程序: void sum(int a) a0=a-1+a1; main()
22、int a10= 1,2,3,4,5,6,7,8,9,10; sum( printf(“%d/n“,a2); 程序运行后的输出结果是_。 (分数:1.50)A.6 B.7C.5D.8解析:本题将主函数中 a2的地址传递给了 sum 函数中的形参 a,使得 sum 函数中的(a+0)为主函数中 a2的地址,所以 a-1即*(a-1)的值为主函数中 a1的值;a1即*(a+1)的值为主函数中 a3的值,故函数 sum 中 a0=2+4,由于此函数中的 a 是指向主函数中的 a2,所以主函数中的 a2的值即为 6。18.有以下程序: int a=2; int f(int n) static int
23、a=3; int t=0; if(n%2) static int a=4; t+=a+; else static int a=5; t+=a+; return t+a+; main() int s=a,i; for(i=0;iA.26B.28C.29 D.24解析:解本题要弄清楚这样几点:1、定义“int a=2;”中的全局变量 a,其作用范围是从定义此变量的位 置开始到本源文件结束;2、“static int a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其 只赋一次初值,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值;3、复合语句“ static i
24、nt a=4; t+=a+; ”和“ static int a=5; t+=a+; ”中定义的两个变量 a 属于复合语句中定义的变量,作用范围只在其本身所在的复合语句内。对于本程序来讲,第三行定义的静态局部变量并不 会对四、五两行的复合语句产生作用,这是因为复合语句中也定义了与其同名的静态局部变量。19.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:1.50)A.10,A,10 B.10,a,10C.10,a,0D.10,A,0解析:2
25、0.有以下程序: main( ) int i,n=0; for(i=2;iA.n=5B.n=2C.n=3D.n=4 解析:21.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 (分数:1.50)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)a D.w=a=b;解析:22.所谓 “裸机”是指( )。(分数:1.50)A.单片机B.单板机C.不装备任何软件的计算机 D.只装备操作系统的计算机解析:23.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。 (分数:1.5
26、0)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、系统平台(硬件平台和 软件平台)。24.以下符合 C 语言语法的实型常量是( )。(分数:1.50)A.1.2B.3.14.159EC.0.0005 D.E15解析:25.若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是_。 (分数:1.50)A.*p= scanf(“%lf“,p);B.*p= scanf(“%f“,p);C.p= scanf(“%
27、lf“,*p);D.p= scanf(“%lf“,p); 解析:p=”,它等效于:int *p; p=, scanf()语句的格式是“scanf(格式控制,地址表列)”, 在选项 D 中,“p”本身就代表着一个地址,故选项 D 正确。26.若整型变量 a、b、c、d 中的值依次为 1、4、3、2。则条件表达式 a A.TXT)解析:62.在面向对象方法中 1 描述的是具有相似属性与操作的一组对象。(分数:40.00)填空项 1:_ (正确答案:类)解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以, 类是对象的抽象,它描述了属于该对象类型的所有对象的性质
28、,而一个对象则是其对应类的一个实例。63.有以下程序 void f( int y,int *x) y=y+*x; *x=*x+y; main( ) int x=2,y=4; f(y, printf(“%d %d/n”,x,y); 执行后输出的结果是 1。 (分数:40.00)填空项 1:_ (正确答案:8 2)解析:64.以下程序的运行结果是 1 #include string.h typedef struct student char name10; long sno; float score; STU; main( ) STU a=“zhangsan”,2001,95,b=“Shangxi
29、an”,2002,90, c=“Anhua”,2003,95,d,*p= d=a; if(strcmp(a.name,b.name)0) d=b; if(strcmp(c.name,d.name)0) d=c; printf(“%ld%s/n”,d.sno,p-name); (分数:40.00)填空项 1:_ (正确答案:2002ShangXian)解析:65.设函数 findbig( )已定义为求 3 个数中的最大值。以下程序将利用函数指针调用 findbig 函数。请填空。 main( ) int findbig(int,int,int); int (*f)( ),x,y,z,big; f
30、= 1; scanf(“%d%d%d“, big=(*f)(x,y,z); printf(“big=%d/n“,big); (分数:40.00)填空项 1:_ (正确答案:findbig)解析:66.为了便于对照检查,测试用例应由输入数据和预期的 1 两部分组成。(分数:-1.00)填空项 1:_ (正确答案:输出结果)解析:本题主要考查测试的步骤。67.软件结构是以 1 为基础而组成的一种控制层次结构。(分数:-1.00)填空项 1:_ (正确答案:模块)解析:采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解,模块化使得软件容易测试和调试,因而有利于提高软件的可靠性,也有利于软
31、件的组织管理,大型程序可由不同的程序员编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的部分。68.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:-1.00)填空项 1:_ (正确答案:逻辑结构中相邻的结点在存储结构中仍相邻)解析:顺序存储结构的主要特点是数据元素按线性表的逻辑次序,依次存放在一组地址连续的存储单元中。在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。69.顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数:-1.00)填空项 1:_ (正确答案:相邻)解析:常用的存储表示方法有 4 种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。 70.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件 的 1。 (分数:-1.00)填空项 1:_ (正确答案:可重用性)解析:本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1