[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc

上传人:dealItalian200 文档编号:503449 上传时间:2018-11-29 格式:DOC 页数:33 大小:92.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc_第1页
第1页 / 共33页
[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc_第2页
第2页 / 共33页
[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc_第3页
第3页 / 共33页
[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc_第4页
第4页 / 共33页
[计算机类试卷]国家二级(C语言)笔试模拟试卷30及答案与解析.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 30及答案与解析 1 下列描述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 2 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 3 设有如下关系表: 则下列操作中,正确的是 ( )。 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R/S 4 下列叙述中正确的是 (

2、)。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 5 下列关于栈的描述正确的是 ( )。 ( A)在栈中只能插入元素而不能删除元素 ( B)在栈中只能删除元素而不能插入元素 ( C)栈是特殊的线性表,只能在一端插入或删除元素 ( D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素 6 下面的叙述正确的是 ( )。 ( A)程序设计就是编制程序 ( B)程序的测试必须由程

3、序员自己去完成 ( C)程序经份试改错后还应进行再测试 ( D)程序经调试改错后不必进行再测试 7 下列叙述中正确的是 ( )。 ( A)软件交付使用后还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 8 数据库设计的根本目标是要解决 ( )。 ( A)数据共享问题 ( B)数据安全问题 ( C)大量数据存储问题 ( D)简化数据维护 9 数据库系统的核心是 ( )。 ( A)数据模型 ( B)数据库管理系统 ( C)数据库 ( D)数据库管理员 10 在软件设计中,不属于过程设计工具的是 ( )。

4、( A) PDL(过程设计语言 ) ( B) PAD图 ( C) N-S图 ( D) DFD图 11 下列说法不正确的是 ( )。 ( A) C语言程序是以函数为基本单位的,整个程序由 函数组成 ( B) C语言程序的一条语句可以写在不同的行上 ( C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 ( D) C语言程序的每个语句都以分号结束 12 下列程序的执行结果是 ( )。 #include stdio.h main() int a,b,c; a=b=2; c=(a+)-1;printf(“%Ad,%d“,a,C) ; c+=-a+(+B) ;printf(“%

5、d,%d“,a,C) ; ( A) 3, 14, 1 ( B) 3, 14, 2 ( C) 2, 04, 1 ( D) 2, 14, 1 13 若 w、 x、 y、 z、 m均为 int型变量,则执行下列的语句后 m的值是 ( )。 w=2, x=3, y=4, z=5; m=(w x)?w:x; m=(m z)?m:z; m=(m y)?m:y; ( A) 2 ( B) 3 ( C) 5 ( D) 4 14 若有定义: int a=4,b=5;float x=3.4,y=2.1;,则下列表达式的值为 ( )。 (float)(a+B) /2+(int)x%(int)y ( A) 5.5 (

6、B) 55 ( C) 5.5 ( D) 55 15 在 ASCII代码表中每一个大写字母比它相应的小写字母的 ASCII码 ( )。 ( A)小 32 ( B)小 64 ( C)大 32 ( D)大 1 16 下列不是合法的 C语言语句是 ( )。 ( A) a=5 ( B) int i; i+; ( C); ( D) ; 17 下列写法正确的是 ( )。 ( A) main() int i=3,j; j=5 ( B) main() int i=3; ( C) main() ( D) main() ; 18 下列程序的输出结果是 ( )。 main() int a,b,d=25; a=d/10

7、%9; b=a ( A) 6,1 ( B) 2,1 ( C) 6,0 ( D) 2,0 19 下列程序的输出结果是 ( )。 #include stdio.h main() int a=3,b=2,c=1; if(a B) if(b 0) c=0; else c+; printf(“%dn“,C) ; ( A) 0 ( B) 2 ( C) 1 ( D) 3 20 下列程序的功能是给 r输入数据后计算半径为 r的圆面积 s。程序在编译时出错。 main() /* Beginning */ int r; float s; seanf(“%d“, s=*r*r; printf(“s=%fn“,s);

8、 出错的原因是 ( )。 ( A)注释语句书写位置错误 ( B)存放圆半径的变量 r不应该定义为整型 ( C)输出语句中格式描述符非法 ( D)计算圆面积的赋值语句中使用了非法变量 21 若 x和 y代表整型数,以下表达式中不能正确表示数学关系 |xy| 10的是( )。 ( A) abs(x-y) 10 ( B) x-y -10 *q=*(p+5); printf(“%d%dn“,*p,*q);程序运行后的输出结果是 ( )。 ( A)运行后报错觉 ( B) 6 6 ( C) 6 11 ( D) 5 10 23 下列条件语句中,功能与其他语句不同的是 ( )。 ( A) if(a) prin

9、tf(“%d n“ ,x); else printf(“% d n“ ,y); ( B) if(a =0) printf( “% d n“ ,y); else printf( “% d n“ ,x); ( C) if (a! =0) printf(“%d n“,x); else printf(“%d n“,y); , ( D) if(a=O) printf(“%d n“,x); else printf(“%d n“,y); 24 有以下程序 : #include stdio. h main ( ) inti=0.s=0; for(;) if( i = = 3 i = = 5 ) continu

10、e; if (i =6) break; i+; s+ =i; printf(“ % d n“ ,s);程序运行后的输出结果是 ( )。 ( A) 10 ( B) 13 ( C) 21 ( D)程序进入列 循环 25 以下能正确定义二维数组的是 ( )。 ( A) int a3; ( B) int a3 =2*3; ( C) int a3 =; ( D) int a23 =1,2,3,4: 26 有以下程序 :#include stdio.h main( ) char a,b,e,d; seanf(“% e,% e,% d,% d“ , printf(“% c,% c,% e,% c n“ ,a

11、,b,c,d);若运行时从键盘上输入 :6,5,65,66 回车,则输出结果是 ( )。 ( A) 6,5,A,B ( B) 6,5,65,66 ( C) 6,5,6,5 ( D) 6,5,6,6 27 s1和 s2已正确确定义并分别指向两个字符串。若要求:当 s1所指字符串大于s2所指字符串时,执行语句 S;则以下选项中正确的是 ( )。 ( A) if(s1 s2) S; ( B) if(strcmp(s1,s2) S; ( C) if(strcmp(s2,s1) 0) S; ( D) if(stremp(s1,s2) 0) S; 28 有以下程序 : #include stdio, h

12、main( ) int m =0256,n =256; printf( “% o % o n“ ,m,n); 程序运行后的输出结果是 ( ) 。 ( A) 0256 0400 ( B) 0256 256 ( C) 256 400 ( D) 400 400 29 若有以下说明和语句 : int c4 5 ,( * p) 5; p=e; 能够正确引用 c数组元素的是 ( )。 ( A) p+1 ( B) *(p+3) ( C) *(p+1)+3 ( D) *(p0+2) 30 有以下程序 : #include stdio. h int f(int a) return a% 2; main( ) i

13、nt s8 = 1,3,5,2,4,6 ,i,d =0; for (i=0;f(si);i+) d+ =si; prinff( “% d n“, d); 程序运行后的输出的结果是 ( ). ( A) 9 ( B) 11 ( C) 19 ( D) 21 31 有以下程序 : #include stdio, h main ( ) int a =666,b =888; printf( “%d n“, a,b); 程序运行后的输出结果是 ( )。 ( A)错误信息 , ( B) 666 ( C) 888 ( D) 666,888 32 设有定义语句 : int x6 = 2,4,6,8,5,7 , *

14、 p=x,i; 要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是 ( )。 ( A) for(i=0; i 6;i+) printf(“%2d“,* (p+); ( B) for(i =0;i 6;i + ) printf( “%2d“ , * (p +i); ( C) for(i =0;i 6;i + ) printf(“ %2d“ , * p + ); ( D) for(i =0;i 6;i + ) printf(“%2d“ ,( * p) + ); 33 有以下程序 : #include stdio. h main ( ) int a=3,b=4,c=5,d=2; if(a

15、b) if(b c)printf(“%d“,d+ +1); else printf( “% d“, + + d + 1 ); printf( “% d n“ ,d); 程序运行后的输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 43 ( D) 44 34 设有以下定义和语句 : int a3 2=1,2,3,4,5,6, * p3; p0 =a1; 则 (P0+1)所代表的数组元素是 ( )。 ( A) a01 ( B) a10 ( C) s11 ( D) a12 35 在函数调用过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数funA,则 ( )。 (

16、A)称为函数的直接递归调用 ( B)称为函数的间接递归调用 ( C)称为函数的循环调用 ( D) C语言中 不允许这样的递归调用 36 有以下程序: #include stdio. h main ( ) char s = “ABCD“, * p; for(p=s+1;p s+4;p+) pfintf(“ % s n“ ,p); ( A) ABCD BCD CD D ( B) A B C ( C) B C D ( D) BCD CD D 37 有以下程序 : #include stdio.h main( ) chars =“Yesn/No“,*ps=s; puts(ps +4); * (pa +

17、4) =0; puts(s); 程序运行后的输出结果是 ( )。 ( A) n/No Yes /No ( B) /No Yes ( C) /NO Yes /No ( D) n/No Yes 38 有以下程序 : #include stdio. h main( ) ehar str 10 = “China“ ,“ Beijing“ , * p = stro; printf( “% s n“, p + 10); 程序运行后的输出结果是 ( )。 ( A) China ( B) Beijing ( C) ng ( D) ing 39 以下叙述中正确的是 ( )。 ( A)局部变量说明为 static

18、存储类,其生存期将得到延长 ( B)全局变量说明为 static存储类,其作用域将被扩大 ( C)任何存储类的变量在未赋初值时,其值都是不确定的 ( D)形参可以使用的存储类说明符与局部变 量完全相同 40 设有定义语句: charc1=92, c2=92;则以下表达式中值为零的是 ( )。 ( A) c1 c2 ( B) c1 c2 ( C) c2 ( D) c1|c2 41 有以下程序: #include stdio.h main ( ) int i; for(i =0;i 3 ;i + ) switch (i) case 0: printf(“ % d“ ,i); case 2: pri

19、ntf(“ % d“ , i); default: printf( “% d“ , i);程序运行后的输出结果是 ( )。 ( A) 22111 ( B) 21021 ( C) 122 ( D) 12 42 若变量已正确定义,要求程序段完成求 5! 的计算,不能完成此操作的程序段是( )。 ( A) for(i=1,p=1;i =5;i+) p* =i; ( B) for(i=1;i =5;i+) p=1; p* =i; ( C) i=1;p=1;while(i =5)p* =i; i+; ( D) i=1;p=1;dop* =i; i+; while(i =5); 43 有以下程序 : #i

20、nclude stdio. h main( ) unsigned int a; int b=-1; a=b; printf(“ % u“, a);程序运行后的输出结果是 ( )。 ( A) -1 ( B) 65535 ( C) 32767 ( D) -32768 44 有以下程序 :#include stdio, h void fun(iht * a,int i,int j) int t; if(i j) t=ai;ai =aj ;aj=t; i+;j-; fun(a,i,j);main ( ) int x : 2,6,1,8 ,i; fun(x,0,3); for( i=0;i 4;i +

21、) printf( “%2d“ ,xi ); printf(“ n“); ( A) 1268 ( B) 8621 ( C) 8162 ( D) 8612 45 有以下说明和定义语句 :struct studentint age; char num8 ;struct student stu 3 = 20, “200401“ , 21, “200402“ , 19, “200403“ ;stract student * p = stu;以下选项中引用结构体变量成员的表达错误的是 ( )。 ( A) (p+) - num ( B) p- num ( C) ( *p).num ( D) stu3.ag

22、e 46 有以下程序 :#include stdio.h main( ) int a=7,b=8,* p,*q, *r; p=q= r=p; p=q;q=r; printf(“ % d,% d,% d,% d n“, * p, * q.a,b);程序运行后的输出结果是( )。 ( A) 8,7,8,7 ( B) 7,8,7,8 ( C) 8,7,7,8 ( D) 7,8,8,7 47 有如下程序 : #include stdio.h main ( ) FILE* fpl; fp1 = fopen(“ftxt“ ,“w“); fpfinff( fp1 ,“ abc“ ); fclose ( fp

23、1 ); 若文本文件 f1.txt中原有内容为: good,则运行以上程序后文件 f1.txt中的内容为 ( )。 ( A) goodabc ( B) abcd ( C) abc ( D) abegood 48 已有定义: int i, a10, *p;则合法的赋值语句是 ( )。 ( A) p=100; ( B) p=a5; ( C) p=a2+2; ( D) p=a+2; 49 以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。 #include stdlib.h stuct node char data; struet node *

24、 next; ; stntct node * CreatList(char * s) struet node *h,*p,*q; h = (struct node * ) malloc(sizeof(struct node) ); p=q=h; while( * s! =0) p = (struct node *) malloc ( sizeof(struct node) ); p - data = ( ) q- next=p; q=p; a+; p- next =0; return h; main( ) char str = “link list“; struet node * head;

25、head = CreatList(str); ( A) *s ( B) s ( C) *s+ ( D) (*s)+ 50 线性表 L=(a1, a2, a3, , ai, , an),下列说法正确的是 ( )。 ( A)每个元素都有一个直接前件和直接后件 ( B)线性表中至少要有一个元素 ( C)表中诸元素的排列顺序必须是由小到大或由大到小 ( D)除第一个元素和最后一个元素外,其余每个元素都有一个旦只有一个直接前件和直接后件 51 如果一个工人可管理多个设施,而一个设施只可被一个工人管理,则实体 “工人 ”与实体 “设备 ”之间存在【 】联系。 52 算法的复杂度主要包括【 】复杂度和空间复

26、杂度。 53 关系数据库管理系统能实现的专门关系运算包括选 择、连接和【 】。 54 若按功能划分,软件测试的方法通常分为白盒测试方法和【 】测试方法。 55 数据的逻辑结构在计算机存储空间中的存放形式称为数据的【 】。 56 使用结构体处理数据的场合是【 】。 57 有定义 char a,b;若想通过 case 1: case2: return 1; return (fib(g-1)+fib(g-2); main() long k; k=fib(5); printf(“k=%dn“,k); 59 strcmp函数的功能是【 】。 60 以下程序段中,错误的行号是【 】。 #include s

27、tdio.h main() char str14;str=“I love China!“; printf(“%s“,str); 61 将以下程序段写成三目运算表达式:【 】。 if(a b) max=a; else max=b; 62 设 x和 y均为 int型变量,且 x=1, y=2,则表达式 double(1+x/y)的值为【 】。 63 下面程序的功能是输出数组 s中最大元素的下标,请填空。 #include stdio.h main() int k, p,s=1, -9,7,2, -10,3; for(p =0,k =p; p 6; p+) if(sp sk) 【 】 printf(

28、“%dn“, k); 64 设有以下定义和语句,则 *(*(p+2)+1)的值为【 】。 int a32=10,20,30,40,50,60,(*p)2; p=a; 65 下面程序的运行结 果是【 】。 #include stdio.h #define N 10 #define s(x) x*x #define f(x) (x*x) main() int i1,i2; i1=1000/s(N); i2=1000/f(N); printf(“%d %dn“,i1,i2); 66 以下程序的输出结果是【 】。 #include stdio.h unsigned fun6(unslgned num)

29、 unsigned k=1; dok * =mum%10;num/=10; while (num); return k; main() unsigned n=26; printf(“%dn“,fan6(n); 67 下面函数要求计算两个整数 x, y之和,并通过形参返回该值,请填空。 add(int x, int y, 【 】 z) 【 】 =x+y; 68 以下程 序的功能是:删去一维数组中所有相同的数,使相同的数只剩一个。数组中的数已按由小到大的顺序排列,函数 fun返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9

30、10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。请填空。 #include stdio.h #define N 80 int fun(int a, int n) int i,j=1; for(i=1;i n;i+) if(aj-1 【 】 ai) aj+=ai; 【 】 ; main() int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19; printf(“The original data :n“); for(i=0;i n;i+) printf(“%3d“,ai); n=fun(a,n); pr

31、intf(“nThe data after deleted :n“); for(i=0; i n; i+) printf(“%3d“,ai); printf(“nn“); 国家二级( C语言)笔试模拟试卷 30答案与解析 1 【正确答案】 C 【试题解析】 软件工程是计算机软件开发和维护的工程学科,它采用工程的概念、原理、 技术和方法来开发和维护软件,它把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来。 2 【正确答案】 A 【试题解析】 二分法查找只适用于顺序存储的有序表。 3 【正确答案】 B 【试题解析】 由图可知,关系 T是关系 R和关系 S的简单合并,而合并的符号为

32、 ,所以答案为 T=R S。 4 【正确答案】 D 【试题解析】 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。采用不同的存储结构,其数据处理的效率不同。 5 【正确答案】 C 【试题解析】 栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入和删除只在线性表的一端进行。 6 【正确答案】 C 【试题解析】 程序调试的任务是诊断和改正程序中的错误,改正以后还需要再测试。 7 【正确答案】 A 【试题解析】 软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。而

33、软件生命周期是指软件产品从提出、实现、使用维护到停止使用的整个过程。 8 【正确答案】 A 【试题解析】 数据的集成性使得数据可为多个应用所共享,尤其是数据库与网络的结合扩大了数据关系的应用范围。数据的共享又可极大地减少数据冗余性,不仅减少了不必要的存储空间,并且可以避免数据的不一致性。因此,数据库设计的根本目标是要解决数据共享问题。 9 【正确答案】 B 【试题解析】 数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外 ,数据库管

34、理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。 10 【正确答案】 D 【试题解析】 软件设计工具包括:程序流程图, N-S, PAD, HIPO,判定表,PDL。而 DFD图 (数据流图 )属于结构化分析工具。 11 【正确答案】 C 【试题解析】 本题涉及 C语言的 3个基本知识点: C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数; C语言规定每个语句以分号结束,其书写格式是自由的,一条语 句可以写在不同的行上,或者一行也可以写多条语句; 注释行虽然对程序的运行不起作用,但是它可以方便程序

35、员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。 12 【正确答案】 A 【试题解析】 本题主要考查自加运算符 (+、 -)的使用。 前缀变量 “+i, -i”,在使用 i之前,先使 i的值加 1或者减 1,再使用此时的表达式的值参与运算; 后缀变量 “i+、 i-”,先使用此时的表达式的值参与运算,在使用 i之后,再使 i的值加 1或者减 1。题中计算表达式 c=(a+)-1时先使用 a的值进行计 算,结果为c=2-1=1,然后将 a的值加 1,即执行完此语句后 a的值是 3,表达式 c+=-a+(+B) 等价于 c=c+(-a+)+(+B) , c=1+(-3)+3=1,

36、此时 a=4, b=3。 13 【正确答案】 A 【试题解析】 条件表达式 “a?b:c”的含义是;当 a为真时,其值等于表达式 b的值;当 a为假时,其值等于表达式 c的值。表达式运算过程:第 1个表达式: w=2 x=3为真,所以返回 w的值,即 m=w=2;第 2个表达式: m=2 z=5为真,所以返回 m的值,即 m=2;第 3个表达式: w=2 y=4为真,所以返回 m的值,即m=2。 14 【正确答案】 C 【试题解析】 在计算 (float)(a+B) /2时,由于通过强制类型转换将 (a+B) 转换成了float型,所以应先将 2转换成 float型,再进行计算,得 4.500

37、000。在计算(int)x%(int)y时,先将 x和 y通过强制类型转换成 int型,再进行求余运算,得1。又因为 4.500000是 float型,所以将 1和它相加时,先将 1换成 float型,再计算,得到 5.500000。注意:类型转换的一般规则是;低级类型服从高级类型,并进 行相应的转换数据类型的级别由低到高的排序表示为:charintunsignedlongfloatdouble 。 15 【正确答案】 A 【试题解析】 本题考查大小写字母的 ASCII码值的关系。大写字母比它相应的小写字母的 ASCII码小 32。 16 【正确答案】 A 【试题解析】 选项 A) 是一个表达

38、式,它后面没有分号结尾 (C语言中规定语句必须以分号结束 ),所以它不是语句;选项 B) 用一个花括号把几条语句括起来了,这是一个复合语句;选项 C) 中只有一个分号,是一个空语句;选项 D) 是个复合语句,也是一个空语句。 17 【正确答案】 D 【试题解析】 本题考查语句的基本构成。选项 A)中 j=5后面少了一个分号;选项 B)中少了 “”;选项 C)不是一个完整的函数定义格式,一个完整的函数定义格式还包括一对花括号;选项 D)正确,是一个空语句。 18 【正确答案】 B 【试题解析】 算术运行符 “/”“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:

39、a=25/10%9=2%9=2:当逻辑运算符“&”两边的值都是非零时,逻辑表达式的值才为真 (即为 1)。所以 b=2&(-1)=1, 19 【正确答案】 C 【试题解析】 本题考查 if语句第一个 if语句,先判断条件,发现 a b不成立,不再执行下列的语句,直接执行最后的 printf输出语句,然后结束程序,整个过程 c的值没有发生变化。 20 【正确答案】 D 【试题解析】 在 C语言程序中,可以用一个符号名来代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的 “指定 ”,并符合标识符的命令规则。在本题中圆周串 n是一个符号常量,但在程序中并没有指定其值,所以编译器找不到其值就

40、会 报错。所以选项 D)正确。 21 【正确答案】 C 【试题解析】 选项 A)中, abs本身就是求绝对值的函数,所以是正确的;选项 B)是把 |x-y| 10表示成了数学表达式中的 -10 (x-y) 10,然后再用 C语言规则表示出来的;选项 D)相当于把 |x-y| 10两边同时平方,此处表达也是正确的;而选项 C)中 !(x-y) -10相当于 (x-y) = -10, !(y-x) 10相当于 (x-y) =-10,故选项 C)相当于 (x-y) =-10,所以错误。 22 【正确答案】 A 【试题解析】 程序中将指针 q赋予 NULL,即指向了空地址,而对空地址所对应的内容赋值

41、*q =*(p+5)虽然可以输出结果 6 11,但最后是会报错的,即输出提示Null pointer assignment。 23 【正确答案】 D 【试题解析】 选项 A)的语句表示若 a非 0,则输出 x的值,否则输出 y的值;选项 B)的语句表示如果 a等于 o,则输出 y的值,否则输出 x的值,与选项 A)等价;选项 C)的语句表示如果 a不等于 0,则输出 x,否则输出 y,与选项 A)、 B)相同;选项 D)的语句表示如果 a为 0,则输出 x,否则输出 y, 与前三个选项都不同。 24 【正确答案】 D 【试题解析】 程序第 1次执行 for循环时, i=0,两条 if语句中的表

42、达式都不成立,执行 i+; s+ =i;此时 i为 1, s为 1第 2次循环,两条 if语句中的表达式也不成立,执行 i+, s+=i,此时 i为 2, s为 3; ;当 i=3时,执行 continue,结束本轮循环,不执行 i+;继续执行下一轮循环,这样一来 i值始终为 3,继续continue,无终止条件,进入死循环。 25 【正确答案】 A 【试题解析】 本题考查二维数组的定义。选项 B)不符合二 维数组的定义规范;选项 C)企图给数组赋空值,错误;选项 D)定义的 a2)3说明 a是一个 2行 3列的数组,而初始化却赋了 3行,所以选项 D)错误。 26 【正确答案】 A 【试题解

43、析】 本题考查格式字符的输入和输出。字符常量在内存中是以其 ASCII码形式存储的,字符型数据既可以 字符形式输出,也可以整数形式输出。程序中变量 a, b是以字符型常量输入的,在内存中存储的是字符 6和字符 5对应的ASCII码;变量 c, d是以整型常量输入的,在内存中存储的就是整型常量 65和66。输出是以字符形式输出 a, b, c, d,所以,将字符常量 6和 5所对应的 ASCII码译成字符常量 6和 5输出,将整型数 65和 66对应的字符常量即, A 和 B 输出。 27 【正确答案】 D 【试题解析】 字符串的比较不能直接用关系运算符,可用字符串比较函数strcmp(char

44、. s1, char *s2)实现,其比较规则是对两个字符串自左至右逐个字符按其对应的 ASCII码值进行比较,直到出现不同的字符或遇到 0为止。若对应字符都相同,则两字符串相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。比较的结果由函数 值带回。当 s1 s2时,返回负数;当 s1=s2时,返回 0;当 s1 s2时,返回正数。所以在此题中要使得 s1所指串大于 s2所指串,就必定使得 strcmp(s1, s2) 0。 28 【正确答案】 C 【试题解析】 o格式符是以八进制形式输出整数。此题 m已是八进制数 (256前面的 0表示此数是八进制数 ), n是十进制数,所以输

45、出时,直接输出 m的值, n的值需要转换成八进制数 400后再输出。 29 【正确答案】 D 【试题解析】 (*p)5中 p是一个行指针,指向一个包含 5个元素的一维数组, p的值是 该一维数组的首地址。当用行指针访问二维数组时,行指针每增加 1,表示指针指向二维数组的下一行,此题中的 p+i将指向数组的第 i行。选项 A)的意思是指向数组 c的第 1行,不是引用 c数组的元素;选项 B)中 p+3是指向数组元素的第 3行,。 (P+3)是指第 3行第 0个元素的地址;选项 C)可由对选项 A)、选项 B)的解释知,它指的是第 1行第 3列元素的地址;选项 D)中 p0 +2是指第 0行第 2

46、列元素的地址,再加个 *就表示第 0行第 2列的元素,即 c02。 30 【正确答案】 A 【试题解析】 在主函数 main中, f(si)为 for语句的循环终止条件,当 f函数返回非零值时,则继续执行循环,否则终止循环,输出 d的值。程序的运行步骤为:当 i=0时, f(si)返回值为 1,执行 d+=1, d=1;当 i=1时,将 s1; 3传给形参变量 s, f函数返回 a%2=1,执行 d=d+ s1=1+3=4;当 i=2时,将 s2=5传给形参变量 a, f函数返回 a%2=1,执行 d=d+s2= 4+5=9;当 i=3时,将 a3=2传给形参变量 a, f函数返回 a%2=0,终止循环,输出 d的值 9。 31 【正确答案】 B 【试 题解析】 在 printf函数中,当格式转换说明符个数少于输出项个数时,多余的输出项不予输出。 32 【正确答案】 D 【试题解析】 *p=x的作用是将 x的首地址赋

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1