ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:62KB ,
资源ID:503330      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-503330.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C语言)笔试模拟试卷170及答案与解析.doc)为本站会员(赵齐羽)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、国家二级( C语言)笔试模拟试卷 170及答案与解析 1 软件生命周期中花费费用最多的阶段是 ( A)详细设计 ( B)软件编码 ( C)软件测试 ( D)软件维护 2 为了提高测试的效率,应该 ( A)随机选取测试数据 ( B)取一切可能的输入数据作为测试数据 ( C)在完成编码以后制定软件的测试计划 ( D)集中对付那些错误群集的程序 3 以下不是面向对象思想中的主要特征的是 ( A)多态 ( B)继承 ( C)封装 ( D)垃圾回收 4 下列叙述中,不符合良好程序设计风格要求的是 ( A)程序的效率第一,清晰第 ( B)程序的可读性好 ( C)程序中要有必要的注释 ( D)输入数据前要有

2、提示信息 5 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指 ( A)模块间的关系 ( B)系统结构部件转换成软件的过程描述 ( C)软件层次结构 ( D)软件开发过程 6 数据处理的最小单位是 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 7 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为 ( A) logn2 ( B) n2 ( C) O(n1.5) ( D) n(n-1)/2 8 在深度为 5的满二叉树中,叶子结点的个数为 ( A) 32 ( B) 31 ( C) 16 ( D) 15 9 数据库系统的核心是 ( A)数据库 (

3、B)数据库管理系统 ( C)模拟模型 ( D)软件工程 10 一个关系中属性 个数为 1时,称此关系为 ( A)对应关系 ( B)单一关系 ( C)一元关系 ( D)二元关系 11 下面各选项中,均是 C语言合法标识符的选项组是 ( A) 33 we auto ( B) _23 me _3ew ( C) _43 3e_ else ( D) ER-DF 32 12 可在 C程序中用作用户标识符的一组标识符是 ( A) and ( B) Date ( C) Hi ( D) case _2007 y-m-d Dr.Tom Bigl 13 以下对 C语言函数的有关描述中,正确的是 ( A)在 C语言中

4、调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值,否则不能使用函数 ( D)函数必须有返回值,返回值类型不定 14 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 ( A)函数的实参和其对应的形参共占同一存储单元 ( B)形参只是形式上的存在,不占用具体存储单元 ( C)同名的实参和形参占同一存 储单元 ( D)函数的形参和实参分别占用不同的存储单元 15 现有定义 int a; double b; float c; char k;,则表达式 a/b+c-k值的类型为 ( A) int ( B

5、) double ( C) float ( D) char 16 以下关于 long、 int和 short类型数据占用内存大小的叙述中正确的是 ( A)均占 4个字节 ( B)根据数据的大小来决定所占内存的字节数 ( C)由用户自己定义 ( D)由 C语言编译系统决定 17 有以下程序段 int j; float y; char name50; scanf(“%2d%f%s“, &j, &y,name); 当执行上述程序段,从键盘上输入 55566 7777abc后, y的值为 ( A) 55566.0 ( B) 566.0 ( C) 7777.0 ( D) 566777.0 18 若变量已

6、正确定义,有以下程序段 i=0; do printf(“%d, “, i; while(i+); Printf(“%dn“, i); 其输出结果 是 ( A) 0, 0 ( B) 0, 1 ( C) 1, 1 ( D)程序进入无限循环 19 下列程序的运行结果是 #include“stdio.h“ main() intx=-9, y=5, z=8; if(x y) if(y 0)z=0; else z+=1; printf(“%dn“, z); ( A) 6 ( B) 7 ( C) 8 ( D) 9 20 若程序执行时的输入数据是 “2473“,则下述程序的输 出结果是 #includestd

7、io.h void main() int cs; while(cs=getchar()!=, n) switch(cs=2) case0 case 1: putchar(cs+4); case 2: putchar(cs+4); break; case 3:putchar(cs+3); default: putchar(cs+2); ( A) 668977 ( B) 668966 ( C) 6677877 ( D) 6688766 21 以下程序的输出结果是 main() inta, i; a=0; for(i=1; i 5; i+) switch(i) case0: case 3: a+=2

8、; case 1: case 2: a+=3; default:a+=5; printf(“%dn“, a); ( A) 31 ( B) 13 ( C) 10 ( D) 20 22 现有如下程序段 #include“stdio.h“ main() int k30=12, 324, 45, 6,768, 98, 21, 34, 453, 456; int count=0, i=0; while(ki) if(ki%2=0ki%5=0)count+; i+; printf(“%d, %dn“, count, i); 则程序段的输出结果为 ( A) 7, 8 ( B) 8, 8 ( C) 7, 10

9、 ( D) 8, 10 23 若有以下程序 #include stdio.h int a=2, 4, 6, 8; main() int i; int *p=a; for(i=0; i 4; i+)ai=*p; printf(“%dn“, a2); 上面程序的输出结果是 ( A) 6 ( B) 8 ( C) 4 ( D) 2 24 有以下程序 #include stdio.h main() int i, j, m=55; for(i=1; i=3; i+) for(j=3; j =i; j+)m=m%j; printf(“%dn“, m); 程序的运行结果是 ( A) 0 ( B) 1 ( C)

10、 2 ( D) 3 25 已知字符 A的 ASCII码值是 65,字符变量 cl的值是 A, c2的值是 D。执行语句 Printf(“%d, %d“, c1, c2-2);后,输出结果是 ( A) A, B ( B) A, 68 ( C) 65, 66 ( D) 65, 68 26 下列程序是用来判断数组中特定元素的位置所在的。 #include conio.h #include stdio.h int fun(int *s, int t, int *k) int i; *k=0; for(i=0; it; i+) if(s*k si)*k=i; returns*k; main() int

11、a10=876, 675,896, 101, 301, 401, 980, 431, 451, 777, k; fun ( A) 7, 431 ( B) 6 ( C) 980 ( D) 6, 980 27 下面程序的文件名为 Lexe,在 DOS下输入的命令行参数为: t to meet me回车 则程序输出的结果是 #include”stdio.h” main(argc, argv) intargc;char*argv; int i; printf(“%dn“, argc); ( A) 3 ( B) 4 ( C) 2 ( D)以上答案都不正确 28 有如下程序 int a10=1, 2, 3

12、, 4, 5, 6, 7, 8, 9, 10; int*p=&a3,b; b=p5; 则 b的值是 ( A) 5 ( B) 6 ( C) 9 ( D) 8 29 以下叙述中错误的是 ( A)改变函数形参的值,不会改变对应实参的值 ( B)函数可以返回地址值 ( C)可以给指针变量赋一个整数作为地址值 ( D)当在程序的开头包含头文件 stdio.h时,可以给指针变量赋 NULL 30 下面程序的输出结果是 #include stdio.h main() int a=1, 2, 3, 4,5, 6, 7, 8, 9, 0, *p; p=a; printf(“%dn“, *p+9); ( A) 0

13、 ( B) 1 ( C) 10 ( D) 9 31 有下面程序段 #include“stdio.h“ #include“string h“ main() char a320=“china“, “isa“, “bigcountry!“; chark100=0, *p=k; int i; for(i=0; i 3; i+) p=strcat(p, ai); i=strlen(p); printf(“%dn“,“i); 则程序段的输出结果是 ( A) 18 ( B) 19 ( C) 20 ( D) 21 32 若有定义: char*st=“how are you“;,下列程序段中正确的是 ( A)

14、chara11, *p; strcpy(p=a+1, &st4); ( B) chara11; strcpy(+a, st); ( C) chara11; strcpy(a, st); ( D) chara, *p; strcpy(p=&a1, st+2); 33 有以下程序 #include stdio.h int fun(char s) int n=0; while(*s =9&*s =0) n=10*n+*s-0; s+; return(n); main() char s10=6, 1, *, 4, *, 9, *, 0, *; printf(“%dn“, fun(s); 程序的运行结果

15、是 ( A) 9 ( B) 61490 ( C) 61 ( D) 5 34 设有定义: charp=1, 2, 3, *q=p;,以下不能计算出一个 char型数据所占字节数的表达式是 ( A) sizeof(p) ( B) sizeof(char) ( C) sizeof(*q) ( D) sizeof(p0) 35 有以下函数 int aaa(char *s) char *t=S; while(*t+); t-; return(t-s); 以下关于 aaa函数的功能的叙述正确的是 ( A)求字符串 s的长度 ( B)比较两个串的大小 ( C)将串 s复制到串 t ( D)求字符串 s所占字

16、节数 36 当用户要求输入的字符串中含有空格时,应 使用的输入函数是 ( A) scanf() ( B) getchar() ( C) gets() ( D) getc() 37 下列选项中错误的说明语句是 ( A) char a=to, y,o,u,0; ( B) char a=“toyou0“; ( C) chara=“toyouO“; ( D) chara=toyou0; 38 以下程序的输出结果是 intf() static int i=0; int s=1; s+=i; i+; retumS; main() int i, a=0; for(i=0; i 5; i+)a+=f(); p

17、rintf(“%dn“,a); ( A) 20 ( B) 24 ( C) 25 ( D) 15 39 下列程序的输出结果是 #include“stdio.h“ #define M(x, y) x%y main() int a, m=12, n=100; a=M(n, m); printf(“%dn“, a-); ( A) 2 ( B) 3 ( C) 4 ( D) 5 40 假定当前盘符下有两个如下文本文件: 文件名 a1.txt a2.txt 内容 123# 321# 则下面程序段执行后的结果为 #include“stdio.h“ void fc(FILE*p) charc; while(c=

18、fgetc(p)!=#)putchar(c); main() FILE*fp; fp=fopen(“a1.txt“, “r“); fc(fp); fclose(fp); ( A) 123321 ( B) 123 ( C) 321 ( D)以上答案都不正确 40 需求分析的最终结果是产生 _。 40 为了便于对照检查,测试用例应由输入数据和预期的 _两部分组成。 40 数据结构分为逻辑结构与存储结构,线性链表属于 _。 40 某二叉树中度为 2的结点有 18个,则该二叉树中有 _个 叶子结点。 40 _是数据库设计的核心。 40 已有定义: char c= ; int a=1, b; (此处 c

19、的初值为空格字符 ),执行b=!c&a;后 b的值为 _。 40 设变量已正确定义为整型,则表达式 n=i=2, +i, i+的值为 _。 40 下面程序的功能是:计算 1 10之间的奇数之和与偶数之和,请填空。 #include stdio.h main() int a, b, c, i; a=C=0; for(i=0; i =10; i+=2) a+=i; _; c+=b; printf(“偶数之和 =%dn“, a); printf(“奇数之和 =%dn“, c-11); 40 以下函数 rotate的功能是:将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组的第 0列中,

20、把 a所指二维数组中的第 0行放到 b所指二维数组的最后一列中, b所指二维数组中其他数据不变。 #define N 4 void rotade(int aN, int bN) int i, j; for(i=0; i N; i+) biN-1= 9 ; 10 : aN-1i; 40 以下程序的输出结果是 _。 #include stdio.h void swap(int *a, int *b) int *t t=a; a=b; b=t main() int i=3, j=5, *p=&i,*q=&j; swap(p, q); printf(“%d %dn“, *p, *q); 40 下面程序

21、的运行结果是 _。 #include stdio.h #define SIZE 12 main() char sSIZE; int i; for(i=0; i SIZE; i+) si=A+i+321; sub(s, 7, SLZE-1); for(i=0; i SIZE; i+) printf(“%c“, si); printf(“n“); sub(char*a, int tl, int t2) char Ch; while (t1 t2) ch=*(a+t 40 以下程序的输出结果是 _。 #include stdio.h main() int a5=2, 4, 6, 8, 10, *p;

22、 p=a; p+; printf(“%d“, *p); 40 设有定义 “stmctint a; float b; char cabc, *p_abc=&abc; ”,则对结构体成员 a的引用方法可以是 abc.a和 p_abc_。 40 以下程序的运行结果是 _。 #include stdio.h main() FILE *fp; int a10=1, 2, 3, 0, 0, i; fp=fopen(“d2 dat“, “wbt“); fwtite(a, sizeof(int), 5, fp); fwlite(a, sizeof(int), 5, fp); fclose(fp); fp=fo

23、pen(“d2 dat“, “rb“); fread(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i 国家二级( C语言)笔试模拟试卷 170答案与解析 1 【正确答案】 D 【试题解析】 软件生命周期分为软件定义、软件开发 及软件运行维护 3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。 2 【正确答案】 D 【试题解析】 测试的目的是发现软件中的错误。经验表明,程序中存在错误的概率与该程序中

24、已发现的错误成正比。这一现象说明,为了提高测试效率,测试人员应该集中对待那些错误群集的程序。 3 【正确答案】 D 【试题解析】 面向对象思想中的三个主要特征是:封 装性、继承性和多态性。 4 【正确答案】 A 【试题解析】 当今主导的程序设计风格是 “清晰第一,效率第二 ”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而在实际应用中,人们更注重程序的可理解性。 5 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中,结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部

25、、软件和操作系统之间及软件与人之间如何通信;过程设计则是把 系统结构部件转换成软件的过程性描述。 6 【正确答案】 C 【试题解析】 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。 7 【正确答案】 D 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序要经过 n/2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n-1)/2。 8 【正确答案】 C 【试题解析】 满二叉树是指除最后一层外,每一层上的所有 结点都有两个叶子结点。在满二叉树中,层上的结点数都达到

26、最大值,即在满二叉树的第 k层上有2k-1个结点,且深度为 m的满二叉树有 2m-1个结点。 9 【正确答案】 B 【试题解析】 数据库管理系统 (Database Management System,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。 10 【正确答案】 C 【试题解析】 在关系模型数据库中,基本结构是二维表,这种二维表称 为关系。关系的列称为属性,一个具有 N个属性的关系称为 N元关系。 11 【正确答案】 B 【试题解析】 合法的标识符是由字母、数字和下划线组成,并且第一

27、个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项 A),数字不能为第一个字母, auto为关键字;选项 C)中,也是数字不能为第一个字母, else为关键字;选项 D)中负号不合法。 12 【正确答案】 A 【试题解析】 在 C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线 3种字符组成,且第一个字符必须为字母或下划线 。 C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项 B)和 C)中的横线以及点都不合法,选项 D)中的 case为 C语言关键字。 13 【正确答案】 A 【试题解析】 C语言中的函数可以进行递归调用,但是不能在函数中定义函数,函数

28、不用有返回值,若有返回值,则返回值类型必确定。 14 【正确答案】 D 【试题解析】 在内存中,实参单元与形参单元是不同的单元。在 C语言中,仅在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原 值。 15 【正确答案】 B 16 【正确答案】 D 【试题解析】 在 ANSI标准中, long、 int和 short分别占用 4、 2和 2个字节。但实际上对于某些 C编译系统, int和 short都占用 4个字节,所以说各种类型数据占用内存大小是由选择何种 C编译系统决定的。 17 【正确答案】 B 【试题解析】 本题考查通过 s

29、canf函数输入数据时的格式控制问题。变量 j的格式控制为 “%2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量 y中,因为 y为浮点型数据, 所以输出结果为选项 B)。 18 【正确答案】 B 【试题解析】 对于 dowhile 循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次 i的值 “0, ”,再接着判断表达式 i+的值,其值为 0,所以循环结束。此时变量 i的值经过自加已经变为 1,程序再次输出 i的值 “1”。 19 【正确答案】 D 【试题解析】 ifelse 语句的执行过程如下,首先计算 if后面一对圆括号内表达式的值,若表达式的值为

30、非 0,执行 if子句,然后跳过 else子句,去执行 if语句后的下一条语句;若表达式的值 为 0,跳过 if子句,去执行 else子句,接着去执行if语句后的下一条语句。 C语言的语法规定, else子句总是与前面最近的不带 else的 if匹配,与书写格式无关,本题目的后一个 if-else相当于嵌套在第一个 if子句里,相当于 x y&y 0时, z=0;当 x y&y =0时, z=2+1。 20 【正确答案】 A 【试题解析】 本题主要考查 switch语句的使用方法。 switch语句的执行过程为:进入 switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹

31、配的 case,以此作 为入口,执行 switch结构中后面的各语句,直到遇到break语句,则跳出 switch语句,如果各 case都不匹配时,则执行 default后面的语句。 21 【正确答案】 A 22 【正确答案】 D 23 【正确答案】 D 【试题解析】 在 C语言中,数组元素下标是从 0开始的;指针变量 p指向数组的首地址。 for循环语句中,指针变量 p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为 2。 24 【正确答案】 B 【试题解析】 本题考查循环语句的嵌套以及条件的判断问题 。在程序中,内层循环判断条件为 “j i”,而 j的初值为 3,故当 i的

32、值为 1和 2时,内层循环体都不会被执行。只有当 i和 j都等于 3时才会执行一次。 m的值为 55对 3取模,计算结果为 1。 25 【正确答案】 C 【试题解析】 在 C语言中,字符型数据在内存中的存储形式是 ASCII码值。当需要以整型格式输出字符时,输出的也是 ASCII码值。字符 A和 D的 ASCII码值分别为 65和 68。 26 【正确答案】 D 【试题解析】 本题中直接使用指针变量 k,但在使用时要注意对 k的指针运算。此外,一开 始应知道 *k的值为数组中的某一下标值,即 *k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。 27 【正确答案】 B 【试题解析

33、】 argc中存入的是命令行中字符串的个数。 argv是一个指向字符型的指针数组的指针。 28 【正确答案】 C 【试题解析】 P=&a3将指针指向数组 a的第 4个元素, p5指向数组 a的第 9个元素,而 a8=9,所以 b=9。 29 【正确答案】 C 【试题解析】 函数形参和实参分别占用不同的内存单元,改变形参的值不会影响对应实 参的值,选项 A)正确。指针类型的函数可以返回地址值,选项 B)正确。在文件 stdio.h中, NULL被定义为 void型的指针,选项 D)也正确。指针变量的值只能是存储单元地址,而不能是一个整数,选项 C)错误。 30 【正确答案】 C 【试题解析】 此

34、题考查了指针引用一维数组元素的方法。 *p+9因为运算符 “*”的优先级高于 “+”,所以输出结果为 p指向的元素 1,然后加 9,值为 10。 31 【正确答案】 B 【试题解析】 字符串连接函数 streat的调用形式如下: strcat(s1, s2)。此 函数将s2所指字符串的内容连接到 s1所指的字符串后面,并自动覆盖 s1串末尾的尾标,函数返回 s1的地址值。 32 【正确答案】 A 【试题解析】 本题综合考查字符数组的赋值和 strepy函数的用法。 C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的: strl=“China”,如果想把 “Chi- na”这 5个字

35、符放到数组 strl中,除了逐个输入外,还能使用 strepy函数,该函数的功能是将一个字符串复制到一字符数组中。例如: strepy(strl,“China”)或 strcpy(strl, str2);注意,不能企图用以下语句来实行赋值 (将 str2的值传给 strl): str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字 33 【正确答案】 C 【试题解析】 在 fun函数中, while循环的功能是:逐个取字符数组 s的字符判断其是否是数字。若是则将其作为个位数字保存到变量 n中, n的原数据的各个数位将相应左移一个 10进制位。当指针 s指向数组的第 3位时,循

36、环条件不成立,循环结束,返回 n的值,输出 n的值为 61。 34 【正确答案】 A 【试题解析】 在本题中 , p和 q同为指向字符类型数据的指针。 *q和 p0同为字符型数据。选项 B)、 C)和 D)都符合题目的要求;选项 A)计算得出的是指针类型数据所占的内存字节数。 35 【正确答案】 A 【试题解析】 循环开始前,指针 t和 s都指向字符串的起始位置,然后通过while循环判断 t指向的位置是否为空,同时让 t向右移动一位。 while循环结束时, t自减 1,此时 t指向的位置是字符串的结束标志, 0,处,故 t-s的值是字符串的长度,并不包括结束标志。 36 【正确答案】 C

37、【试题解析】 本题综合考 查了输入函数的使用。 scanf函数会将空格视为分隔符, getehar函数只能输入单个字符, gete函数是文件操作函数,显然都不符合题意。通过 gets函数输入字符串时,输入的空格被认为是字符串的一个字符。 37 【正确答案】 D 【试题解析】 通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项 B)和 C)后面的 0是多余的,在 C语言中,系统会自动在字符串的结尾处加上一个字符 0作为串的结束标记。 38 【正确答 案】 D 【试题解析】 函数的静态局部变量在编译时就赋初值,即只赋初值

38、一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。 39 【正确答案】 C 【试题解析】 带参数的宏定义命令行形式如下: #define宏名 (形参表 )替换文本 在编译的时候编译预处理程序用 “替换文本 ”来替换宏,即 M(n, m)被替换为n%m,之后计算,将计算的结果赋给 a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。 40 【正确答案】 A 【试题解析】 本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误, fopen函数将返回

39、 NULL。 40 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发小的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。 40 【试题解析】 测试用例 (Text Case)是为测试设计的数据。测试用例由测试输入数据和与之对应的预期输出结果两部分组 成。 40 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存睹空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 40 【试题解析】 在任意一棵二叉

40、树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。 40 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 40 【试题解析】 字符 空格的 ASCII码不为 0,所以本题中表达式 !c的值为 0,b=0&1的结果显然为 0。 40 【试题解析】 本题考查的是 C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先 i被赋值为 2,再自加 1,最后 i+的值计算为3。 40 【试题解析】 本题考查了 for循环

41、语句的执行过程。 i+=2是修正表达式,执行一次循环体后 i的值就增加 2, i的初始值为 0,每次加 2后的和累加至 a,所以 a的值就是 1 10之间的偶数之和 ; b的值是 1 11之间的奇数和,但在输出 b值时, c去掉多加的 11,即为 1 10之间的奇数之和。 40 【试题解析】 biN-1; s0i实现把 a所指二维数组中的第 0行放到 b所指二维数组的最后一列中, bi0= aN-1i门实现将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组中的第 0列。 40 【试题解析】 函数 swap(int*a, int*b)的功能是实现 *a和 *b,中两个数据的交换,在

42、主函数中调用 swap(p, q)后,参形指针变量 a和 b分别指向 i和 j,在swap(int*a, int*b)执行完后,指针变量 a和 b分别指向 j和 i,而指针变量 p, q所指向变量的值没有发生变化,所以输出结果为 3 5。 40 【试题解析】 本题主要考查了字符变量可参与的运算。因为字符在计算机中是以 ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的 ASCII码值比它对应的小写字母 ASCII码值小 32。 40 【试题解析】 在主函数中,语句 p=a; p+使用指针 p指向数组 a1,所以输出结果为 4。 40 【试题解析】 若结 构体变量 abc有成员 a,并有指针 p_abc指向结构变量abe,则引用变量 abe成员 s的标记形式有 abe.a和 p_abc- a。 40 【试题解析】 本题考查文件读写函数 fread和 fwrite的用法。 fwrite函数将数组a的前 5个元素输出到文件 fp中两次,共 10个字节,再调用 fread函数从文件 fp中读取这 10个字节的数据到数组 a中,此时数组 a的内容就变为 1, 2, 3, 0,0, 1, 2, 3, 0, ),最后的输出结果为 “1, 2, 3, 0, 0, 1, 2, 3, 0, 0, ”。

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