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

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

1、国家二级( C语言)笔试模拟试卷 130及答案与解析 1 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 ( A) PAD图 ( B) N-S图 ( C)结构图 ( D)数据流图 2 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)白底向上 ( D)信息隐蔽 3 为了使模块尽可能独立,要求 ( A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要 尽量低,且各模块间的耦合程度要尽量弱 ( D)模块的内聚程度要尽量低,且各模块间的耦合程度

2、要尽量强 4 下列叙述中,不属于软件需求规格说明书的作用的是 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 5 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 6 已知数 据表 A中每个元素距其最终位置不远,为节省时间,应采用的算法是 ( A)堆排序 ( B)直接插入排序 ( C)快速排序 ( D) )和 ) 7 如果进栈序列为 e1, e2, e3, e4

3、,则可能的出栈序列是 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 ( C) e3, e4, e1, e2 ( D)任意顺序 8 数据库设计包括两个方面的设计内容,它们是 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 9 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然连接, ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC

4、(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 以下不正确的叙述是 ( A)在 C程序中,逗号运算符的优先级最低 ( B)在 C程序中, APH和 aph是两个不同的变量 ( C)若 a和 b类型相同,在计算了赋值表达式 a=b后, b中的值将放入 a中,而 b中的值不变 ( D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 12 下列可用于 C语言用户标识符的一组是 ( A) void, define, WORD ( B) a3_b3, _123, Car

5、 ( C) For, -abc, IF Case ( D) 2a, DO, sizeof 13 以下选项中,不能作为合法常量的是 ( A) 1.23E+04 ( B) 1.234e0.4 ( C) 1.23E+04 ( D) 1.23E+00 14 若有语句: char*line5;,以下叙述中正确的是 ( A)定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量 ( B)定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组 ( C)定义 line是一个指针数组,语句中的。号称为间址运算符 ( D)定义 line是一个指向字符型函数的指针 15 若变量均已

6、正确定义并赋值,以下合法的 C语言赋值语句是 ( A) x=y=5; ( B) x=n%2.5; ( C) x+n=i; ( D) x=5=4+1; 16 有以下程序段 char ch; int k; ch=a; k=12; printf(“%c, %d, “,ch, ch, k); printf(“k=%dn“, k); 已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是 ( A)因变量类型与格式描述符的类型不匹配输出无定值 ( B)输出项与格式描述符个数不符,输出为零值或不定值 ( C) a, 97, 12k=12 ( D) a, 97, k=12 17 已知字母 A的

7、ASCII代码值为 65,若变量 kk为 char型,以下不能正确判断出kk中的值为大写字母的表达式是 ( A) kk =A for (p=s+1;ps+4;p+ )printf(“%sn“,p); 程序运行后的输出结果是 _。 ( A) ABCD BCD CD D ( B) A B C D ( C) B C D ( D) BCD CD D 22 有以下程序: main() int x=1,3,5,7,2,4,6,0,i,j,k; for(i=0;i 3;i+) for (j=2;j =i;j-) if (xj+1) xj)k=xj;xj;xj+1);xj+1=k; for (i=0;i 3;

8、i+) for (j=4;j 7-i;j+) if (xj xj+1)k=x j;xj=xj+1;xj+1)=k; for(i=0;i8;i+)printf(“%d“,xi); printf(“n“); 程序运行后的输出结果是 _。 ( A) 75310246 ( B) 1234567 ( C) 76310462 ( D) 13570246 23 有以下程序: main() int i=0,s=0; for(;) if(i=3|i=5)continue; if(i=6)break; i+; s+=i; ; printf(“%dn“,s); 程序运行后的输出结果是 _。 ( A) 10 ( B)

9、 13 ( C) 21 ( D)程序进入死循环 24 以下叙述中错误的是 _。 ( A)对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出 ( B)数组名代表的是数组所占存储区的首地址,其值不可改变 ( C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出 “下标越界 ”的出错信息 ( D)可以通过赋初值的方式确定数组元素的个数 25 以下能正确定义一维数组的选项是 _。 ( A) int num; ( B) #define N 100 int numN; ( C) int num0100; ( D) int N=100; int numN; 26 有以下程序

10、: # include stdio.h main() char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; scanf(“%s %s“,p,q);printf(“%s %sn“,p,q); 若从键盘输入 ;abc def回车 ,则输出结果是 _。 ( A) def def ( B) abc def ( C) abe d ( D) d d 27 以下不能正确定义二维数组的选项是 _。 ( A) int a22=1,2; ( B) int a2=1,2,3,4; ( C) int a22=1,2,3; ( D) int a2=1,2,3,4; 28

11、已知 i、 j、 k为 int型变量,若从键盘输入: 1,2,3回 车,使 i的值为 1、 j的值为 2、 k的值为 3,以下选项中正确的输入语句是 _。 ( A) sanf(“%2d %2d %2d“, ( B) scanf(“%d %d %d“, ( C) scanf(“%d,%d,%d“, ( D) scanf(“i=%d,j=%d,k=%d“, int i,j; for(i=0;i n-1;i+) for(j=i+1;jn;j+) if(strcmp(pi,pj) 0)t=pi;pi=pjpj=t; main() char *p5=“abc“,“aabdfg“,“abbd“,“dcdb

12、e“,“cd“; f(p,5); printf(“%dn“,strlen(p1); 程序运行后的输出结果是 _。 ( A) 2 ( B) 3 ( C) 6 ( D) 4 30 有以下程序: # include string.h main() char str20=“Hello“,“Beijing“,*p=str; printf(“%dn“,strlen(p+20); 程序运行后的输出结果是 _。 ( A) 0 ( B) 5 ( C) 7 ( D) 20 31 有以下程序: main() char s=“Yesn/No“,*ps=s; puts(ps+4); *(ps+4)=0; puts(s)

13、; 程序运行后的输出结果是 (选项 D中的第一行是空行 ) _。 ( A) n/No Yes /No ( B) /No Yes Yes ( C) n/No /No ( D) Yes /No 32 _语言负责数据的模式定义与数据的物理存取构建。 ( A)数据操纵语言 (DML) ( B)数据控制语言 (DCL) ( C)结构化查询语言 (SQL) ( D)数据定义语言 (DDL) 33 以下数据库除 _外,均为严格意义上的 DBMS系统。 ( A) Oracle ( B) Access ( C) Sybase的 PowerBuilder ( D) SQL Server 34 设函数 fun的定义

14、形式为: void fun(char ch,float x) 则以下对函数 fun的调用语句中,正确的是 _。 ( A) fun (“abc“,3.0); ( B) t=fun(D,16.5); ( C) fun(65,2,8); ( D) fun(32,32); 35 有以下程序: void sum(int a) a0=a-1)+a1; main() int a10=(1,2,3,4,5,6,7,8,9,10; sum( return y; main() int a=9,b=8,c=7; printf(“%cn“,fun(fun(a,b),fun(b,c) ); 程序的执行结果是 _。 (

15、A)函数调用出错 ( B) 8 ( C) 9 ( D) 7 38 有以下程序: void sum(int *a) a0= a1; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; for(i=2;i =0;i-)sum( 执行后的输出结果是 _。 ( A) 4 ( B) 3 ( C) 2 ( D) 1 39 设有定 义: int n1=0,n2,*p=,以下赋值语句中与 n2=n1;语句等价的是 _。 ( A) *p=*q; ( B) p=q; ( C) *p= 40 在 C语言中,函数的隐含存储类别是 _。 ( A) auto ( B) static ( C)

16、extern ( D)无存储类别 41 测试的目的是暴露错误,评价程序的可靠性;而【 】的目的是发现错误的位置并改正错误。 42 下面程序的运行结果:【 】。 int f(int a, int n) if(n 1) return a0+f( else return ao; main() int aa3=1, 2, 3, s; s=f( printf(“% dn“, s); 43 以下函数 rotate的功能是:将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组的第 0列中,把 a所指二维数组中的第 0行放到 b所指二维数组的最后一列中, b所指二维数组中其他数据不变 。 # de

17、fine N 4 void rotate(int aN, int bN) int i, j; for(i=0; i N; i+) biN-1=a0i;【 】 =aN-1i; 44 有以下程序: main() int t=1, i=5; for(; i =0; i-)t*=i; printf(“% dn“, t); 执行后的输出结果是【 】 。 45 已知字符 A的 ASCII代码值为 65,以下程序运行时若从键盘输入: B33回车,则输出结果是【 】。 # include main() char a, b; a=getchar(); scanf(“% d“, a=a-A+0; b=b*2; p

18、rintf(“% c % cn“, a, b); 46 若有以下程序: main() int p, a=5; if(p=a!=0) printf(“% dn“, p); else printf(“% dn“, p+2); 执行后的输出结果是【 】。 47 以下主程序运行后的输出结果是【 】。 main() int i, m=0, n=0, k=0; for(i=9; i =ii; i+) switch(i/10) case 0:m+; n+; break; case 10:n+; break; default:k+; n+; printf(“% d % d % dn“, m, n, k); 4

19、8 设在主函数中有以下定义和函数调用语句,且 fun函数为 void类型 ;请写出fun函数的首部【 】,要求形参名为 b。 main() double s1022; int n; fun(s); 49 以下程序中, fun函数的功能是求 3行 4列二维数组每行元素中的最大值,请填空。 void fun(int, int, int(*)4, int*); main() int a34=12, 41, 36, 28, 19, 33, 15, 27, 3, 27, 19, 1, b3, i; fun(3, 4, a, b); for(1=0; i 3; i+)printf(“% 4d“, bi);

20、 printf(“n“); void fun(int m, int n, int ar4, int * bar) int i, j, x; for(i=0; i m; i+) x=ari0; for(j=0; j n; j+)if(x arij)x=arij; 【 】 =x; 50 以下程序的输出结果是【 】。 # define MCNA(m)2*m # define MCNB(n, m)2*MCRA(n)+m # define f(x)(x*x) main() int i=2, j=3; printf(“% dn“, MCRB(j, MCRA(i); 51 以下程序运行后的输出结果是【 】。

21、 fun(int a) int b=0; static int c=3; b+; c+; return(a+b+c); main() int i, a=5; for(i=0; i 3; i+)printf(“% d % d“, i, fun(a); printf(“n“); 52 以下程序运行后的输出结果是【 】。 # include string. h cbar *ss(char *s) char *p, t; p=s+1; t=*s; while(-p)*(p-1)=*p; p+; *(p-1)=t; return s; main() char *p, str10=“abcdefgh“;

22、p=ss(str); printf(“% sn“, p); 53 下面程序 的功能:将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。 # include stdio. h # include string. h main() char a=“clanquage“, t; int i, j, k; k=strlen(A) ; for(i=0; i =k-2; i+=2) for(j=i+2; j k; j+=2) if(【 】 ) t=ai; ai=aj; aj=t; puts(A) ; printf(“n“); 54 下面程序的功能:输出 100以内能被 3整除且个位数为

23、 6的所有整数,请填空。 # include stdio. h main() int i, j; for(i=0; i 10或 i =9; i+) j=i*10+6; if(【 】 )continue; printf(“% d“, j); 国家二级( C语言)笔试模拟试卷 130答案与解析 1 【正确答案】 B 【试题解析】 N-s图是由 Nassi和 Shneiderman提出的一种符合程序化结构设计原则的图形描述工具。它的提出是为了避免流程图在描述程序逻辑时的灵活性。 2 【正确答案】 C 【试题解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软

24、件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。 3 【正确答案】 B 【试题解析】 模块的独立程度可以由两个定性标准度量:耦合性和内聚性。耦合性是衡量不同模块彼此间互相依赖 (连接 )的紧密程度;内聚性是衡量一个模块内部各个元素彼此结合的紧密程度。一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。 4 【正确答案】 D 【试题解析】 软件需求规格说明书 (Software Requirement Specification, SRS)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用: 便于用户、开发人员

25、进行理解和交流; 反映 出用户问题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据。 5 【正确答案】 A 【试题解析】 算法具有 5个特性: 有穷性:一个算法必须 (对任何合法的输入值 )在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的; 确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义; 可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现; 输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合; 输出:一个算法有 一个或多个输出。 6 【正确答案】 B 【试题解析】 堆排序的比较

26、次数为 nlog2n;直接插入排序的比较次数为 n(n-1)/2;快速排序的比较次数为 nlog2n。 7 【正确答案】 B 【试题解析】 由栈 “后进先出 ”的特点可知: A) 中 e1不可能比 e2先出, C) 中 e1不可能比 e2先出, D) 中栈是先进后出的,所以不可能是任意顺序。 B) 中出栈过程如下图所示: 8 【正确答案】 A 【试题解析】 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。 9 【正确答案】 D 【试题解析】 在关系运算中,交的定义如下:设 R1和 R2为参加运算的两个关系,它们具有相同的度 /1,且相对应的属性值取自同一个域,则 R1R2为交运算,

27、结果仍为度等于 n的关系,其中,交运算的结果既属于 R1,又属于 R2。 10 【正确答案】 C 【试题解析】 “选课 SC”表是 “学生 S”表和 “课程 C”表的映射表,主键是两个表主键的组合。 11 【正确答案】 D 【试题解析】 在 C语言所有的运算符中,逗号运算符的优先级最低。 C语言中区分大小写,所以 APH和 aph是两个不同的变量。赋值表达式 a b表示将 b的值赋给 a,而 b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项 D) 中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。 12 【正确答案】 B

28、【试题解析】 C语言规定标识符只能由字母、数字和下画线 3种字符组成,且第一个字符必须为字母或下画线,排除选项 C) 和 D) ; C语言中还规定标识符不能为 C语言的关键字,而选项 A) 中 void为关键字,故排除选项 A) 。 13 【正确答案】 B 【试题解析】 C语言 的语法规定,字母 e(E)之前必须有数字,且 e(E)后面的指数必须是整数,而选项 B) 中, e(E)后面的指数是小数,所以不合法。 14 【正确答案】 A 【试题解析】 C语言中 比 *优先级高,因此 line先与 5结合,形成 line5形式,这是数组形式,它有 5个元素,然后再与 line前面的 “*”结合,表

29、示此数组是一个指针数组,每个数组元素都是一个基类型为 char的指针变量。 15 【正确答案】 A 【试题解析】 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项 C和 D错误。 “%”运算符两侧都应当是整型数据,选项 B错误。 16 【正确答案】 D 【试题解析】 输出格式控制符 %c表示将变量以字符的形式输出;输出格式控制符 %d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a, 97;第二个输出语句输出的结果为 k 12。 17 【正确答案】 B 【试题解析】 C语言的字符以其 ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的

30、ASCII码在 “A”和 “Z”之间就可以了,选项 A和 C符合要求。函数 isalpha用来确定一个字符是否 为字母,大写字母的 ASCII码值的范围为 65-90,所以如果一个字母的 ASCII码小于 91,那么就能确定它是大写字母。 18 【正确答案】 B 【试题解析】 满足表达式 (c 2&c 6)的整型变量 c的值是 2, 3, 4, 5,6。当变量 c的值不为 2, 4, 6时,其值只能为 3或 5,所以表达式 c! 3和 c! 5中至少有一个为真,即不论 c为何值,选项 B中的表达式都为 “真 ”。 19 【正确答案】 B 【试题解析】 条件运算符要求有 3个操作对象,称三日 (

31、元 )运算符,它是 C语言中唯一的一个三目运算符。 条件表达式的一般形式为:表达式 17表达式 2:表达式 3。其求解顺序是:先求解表达式 1,若为非 0(真 )则求解表达式 2,此时表达式2的值就作为整个条件表达式的值。若表达式 1的值为 0(假 ),则求解表达式 3,表达式 3的值就是整个条件表达式的值,注意 +、 -的用法。 20 【正确答案】 D 【试题解析】 本题考查 switch语句,首先, x 1符合条件 case 1,执行 switch(y)语句。 y 0符合 case 0语句,执行 a抖并跳出 switch(y)语句,此时 a 1。因为case 1语句后面没有 break语句

32、,所以向后执行 case 2语句,执行 a+, b+,然后跳出 switch(x),得 a=2, b=1。 21 【正确答案】 D 【试题解析】 第一次执行 for循环时, p指向 s1=B,故输出 BCD;第二次执行for循环时, p指向 s2=C,故输出 CD;第三次执行 for循环时, p指向 s 3=D,故输出 D。正确答案为 D。 22 【正确答案】 A 【试题解析】 本题中第一次执行 for循环后,数组 x中的前四个元素按由大到小的次序排序,即 x0=7、 x1=5、 x2=3、 x3=1、 x4=2、 x5=4、 x6=6、x7=0;第二次执行 for循环后,数组 x中的后 4个

33、元素按由小到大的次序排序,即此时 x0=7、 x1=5、 x2=3、 x3=1、 x4=0、 x5=2、 x6=4、 x7=6。故正确答案为 A。 23 【正确答案】 D 【试题解析】 本题考查 break语句和 continue语句的用法, continue语句是结束本次循环,当 i=3时, i+语句不再被执行,程序进入死循环。 24 【正确答案】 A 【试题解析】 double型的数组也是可以直接用数组名对数组进行整体输入或输出的。 25 【正确答案】 B 【试题解析】 C语言不允许对数组进行动态定义,选项 D错误;选项 A没有指定数组元素的个数;选项 C中定义格式错误;正确答案为选项 B

34、,其中 N是符号常量。 26 【正确答案】 A 【试题解析】 本题考查 %s控制符在 scanf函数中的应用。 scanf函数中 %s控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句 scanf(“%s%s“, p,q)时 ,从键盘输入 abc def回车后,指针变量 p指向字符串 “abc0“, q指向字符串 “def0“,但是由于 p和 q指向同一个存储单元,所以存储单元中存放的是“def0“, printf函数的输出结果为 def def。 27 【正确答案】 D 【试题解析】 选项 D在定义数组 a时没有指定第

35、二维的长度,错误。 28 【正确答案】 C 【试题解析】 scanf函数的格式控制部分中的非格式字符按原样输入,本题指出键盘输入为: 1,2,3回车,各个数据之间用 “,”分隔,所以 scanf函数中应包含“,”,选项 D中虽然包括 “,”号,但是还包含非格式字符 i=、 j=和 k=,正确答案为选项 C。 29 【正确答案】 D 【试题解析】 strcmp(s1,s2)是比较两个字符串的大小, s1 s2时值为正数, s1s2时值为负数, s1 s2时值为 0。调用 f(p,5)函数的功能是将存储字符串的数组 p中的字符串从小到大进行排列。最后的排列结果为: p5=“aabdfg“, “ab

36、bd“, “abc“,“cd“,“dcdbe“,最后要求输出的是 “abbd“的长度。 30 【正确答案】 C 【试 题解析】 本题中定义了一个 220的二维字符数组 str,并且初始化为str0=“Hello“, str1=“Beijing“, p是指向 char型的指针变量,并指向 str数组的首地址, strlen(p+20)=strlen(str1)=7。 31 【正确答案】 B 【试题解析】 本题中 ps指向符号串 “Yen/No“,ps+4表示 “/”的地址,故puts(ps+4)输出符号串 /No,执行语句 *(ps+4)=0后,字符数组 s中的符号串为“Yesn0No“, 0是

37、字符串的结束标志,故 puts(s)输出 Yes。 32 【正确答案】 D 【试题解析】 数据库管理系统一般提供以下 3种数据语言 (Data Language),来完成它的功能。 (1)数据定义语言 (DDL, Data Definition Language)。该语言负责数据的模式定义与数据的物理存取构建。显然 D为正确答案。 (2)数据操纵语言(DML,Data Manipulation Language)。该语言负责数据的操纵,包括查询及增、删、改等操作。 (3)数据控制语言 (DCL, Data Control Language)。该语言负责数据完整性、安全性的定义与检查以及并发控制

38、、故障恢复等功能,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。 33 【正确答案】 B 【试题解析】 目前流行的 DBMS均为关系数据库系统,如 ORACLE、 Sybase的Power Builder及 IBM的 DB2、微软的 SQL Server等,它们均为严格意义上的DBMS系统。另外有一些小型的数据库,如微软的 Visual FoxPro和 Access等,它们只具备数据库管理系统的一些简单功能,不是严格意义上的 DBMS系统。 34 【正确答案】 C 【试题解

39、析】 A选项 “abc“的表示字符串,与参数类型不一样。 B选项 fun没有返回值,不能将其用来赋值。 D选项第一个 32不是字符,与参数类型不一样。 35 【正确答案】 A 【试题解析】 调用 sum(&a2)时, a0=a2=3, a-1=a1=2, a1)=a3=4,因此 a2=6,可以看到 sum函数的功能是将数组的一项的值改成其前一 项的值与后一项的值之和。 36 【正确答案】 A 【试题解析】 数据库系统的主要目的是尽量减少和避免数据的冗余。数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间内在联系与复杂的关系,从而构成数据的全局结构模式。数据库中的数

40、据具有 “集成 ”、 “共享 ”的特点,即是数据库集中了各种应用的数据,进行统一的构造与存储,而使它们可被不同应用程序所使用。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一数据在系统的不同副本处有不同的值。 37 【正确答案】 D 【试题解析】 本题 a=9, b=8, c=7,函数调用 fun(a,B) 的返回值为 8,fun(b,c)的返回值为 7,所以 fun(fun(a,b), fun (b,c)=fun(8,7)=7。 38 【正确答案】 A 【试题解析】 分析函数调用即得。 39 【正确答案】 A 【试题解析】 由定义 *p=&n2,*q=

41、&n1,p指向 n2的地址, q指向 n1的地址,即*p=n2,*q=n1,B、 C、 D选项只是让 p也指向 n1的地址,都没有将 n1赋值给 n2。 40 【正确答案】 C 【试题解析】 C语言规定,只要在定义函数时不进行存储类型的显式说明,函数的存储类型就隐含为外部类型,即 extern型,外部类型允许其他文件中的函数调用。 41 【正确答案】 调试 【试题解析】 程序调试的任务是诊断和改正程序中的错误。它与软件测试不同。软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。由程序调

42、试的概念可知,程序调试活动由两部分 组成:其一是根据错误的迹象确定程序中错误的确切性质、原因和位置;其二,对程序进行修改,排除这个错误。 42 【正确答案】 6 【试题解析】 s=f(&aa0, 3)=aa0+aa1+aa2=1+2+3=6。 43 【正确答案】 bi0 【试题解析】 因为要将 a的最后一行放在 b的第 0列中,【 】应填 b的第 0列的元素。 44 【正确答案】 0 【试题解析】 for循环执行完成后 t=543210=0。 45 【正确答案】 1B 【试题解析】 从键盘输入后,有 a=B, b=33。 a=a-A+0=B-A+0=1,b=b*2=66,在输出时均需要把 a,

43、 b转化为字符型,因此输出为 1B。 46 【正确答案】 1 【试题解析】 本题考查 C语言中的 if-else语句。 if语句中的条件表达式 p=a!=0是一个赋值语句,将关系表达式 a!=0的结果赋值给变量 p。因 a=5,所以 a!=0的结果为 1,即 p=1,条件为真,所以执行 if后面的语句 printf(“%dn“, p),输出结果为 1。 47 【正确答案】 1 3 2 【 试题解析】 本题 for循环语句的执行过程为: 第一次循环: i=9, 9/10=0,执行 m+、 n+得 m=1、 n=1、 k=0; 第二次循环: i=10, 10/10=1,执行 k+、 n+得 m=1

44、、 n=2、 k=1; 第三次循环: i=11, 11/10=1,执行 k+、 n+得 m=1、 n=3、 k=2; 即执行完 for循环后 m=1、 n=3、 k=2。 48 【正确答案】 void fun(double b22) 【试题解析】 函数调用语句 fun(s)中的实参是一个二维数组名,因此 函数 fun的形参必为二维数组名,同时题目已经指出 fun的类型为 void,因此正确的定义形式为; void fun(double b22),其中 b数组的第一维可以不指定长度。 49 【正确答案】 bari 【试题解析】 fun函数中的内层 for循环,求出了每一行中的最大值 x,内循环结

45、束后就需要把最大值放在存储每行最大值的数组 bari中,因此应填 bari。 50 【正确答案】 16 【试题解析】 本题定义了两个宏 MCRA(m)和 MCRB(n, m),展开宏 MCRB(n, m),得到: MCRB(j, MCRA(i)=2*MCRA(j)+MCRA(i)=22j+2i=43+22=12+4=16,因此 printf函数的输出结果为 16。 51 【正确答案】 0 10 1 11 2 12 【试题解析】 函数 fun里有一个静态变量 c,调用 fun时,只对 c进行一次赋值,以后再调用时 c为上次调用函数的值,因此 i=0时, fun(5)=5+1+4=10, i=1时

46、, fun(5)=5+1+5=11, i=2时, fun(5)=5+1+6=12。 52 【正确答案】 bcdefgha 【试题解析】 while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。 53 【正确答案】 aj ai 【试题解析】 本题考查排序算法,题目中通过双循环嵌套来实现,外层循环跳出待排序的元素,内层循环具体实现 ai到 ak-2之间偶数下标元素的排序,每次将最小的放在 ai中。所以空中填 aj ai。 54 【正确答案】 j%3!=0或 j%3 【试题解析】 题目要求输出 100以内能被 3整除且个位数为 6的所有整数,且通过 for循环实现 ,循环体内 j=i*10+6;这也就满足了个位数为 6的条件,所以第 1个空格填入 i 10或 i =9; if语句中的 continue说明如果条件不成立则不输出 j,所以第 2空填 j%3!=0或 j%3。

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

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

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