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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)机试模拟试卷 18及答案与解析 一、选择题 1 下面关于算法的叙述中,正确的是 ( )。 ( A)算法的执行效率与数据的存储结构无关 ( B)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( C)算法的空间复杂度是指算法程序中指令 (或语句 )的条数 ( D)以上三种描述都正确 2 下列二叉树描述中,正确的是 ( )。 ( A)任何一棵二叉树必须有一个度为 2的结点 ( B)二叉树的度可以小于 2 ( C)非空二叉树有 0个或 1个根结点 ( D)至少有 2个根结点 3 如果进 栈序列为 A, B, C, D,则可能的出栈序列是 ( )。 ( A) C, A, D,

2、B ( B) B, D, C, A ( C) C, D, A, B ( D)任意顺序 4 下列各选项中,不属于序言性注释的是 ( )。 ( A)程序标题 ( B)程序设计者 ( C)主要算法 ( D)数据状态 5 下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )。 ( A)内模式 ( B)外模式 ( C)概念模式 ( D)逻辑模式 6 下列叙述中,不属于软件需求规格说明 书的作用的是 ( )。 ( A)便于用户,开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 7 下列不属

3、于软件工程 3个要素的是 ( )。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 8 数据库系统在其内部具有 3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是 ( )。 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 9 将 ER图转换到关系模式时,实体与联系都可以表示成 ( )。 ( A)属性 ( B)关系 ( C)记录 ( D)代码 10 某二叉树中度为 2的结点有 10个,则该二叉树中有 ( )个叶子结点。 ( A) 9 ( B) 10 ( C) 11 ( D) 12 11 以下叙述中正确的是 ( )。 ( A) C程序中注释部分可以出现在程序中任

4、意合适的地方 ( B) C程序的书写格式是固定的,每行只能写一条语句 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D) 在对 C语言程序进行编译时,可以发现注释行中的拼写错误 12 下面的程序在编译时产生错误,其出错原因是 ( )。 #include main() int 1_case; float printF; printf(“请输入 2个数: “); scanf(“ d f“, &1 case, &printF); printf(“ d fn“, 1_case, printF); ( A)定义语句出错, 1_case不能作为变量名 ( B)定义语句 出错, pr

5、intF不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 1_case的值 13 以下不正确的转义字符是 ( )。 ( A) ( B) d ( C) s ( D) 088 14 下面程序的运行结果是 ( )。 y=5; x=14; y-(x=3*y, x+6), x1); printf(“x= d, y= d“, x, y); ( A) x=27, y=27 ( B) x=12, y=13 ( C) x=15, y=14 ( D) x=y=27 15 sizeof(char)是 ( )。 ( A)一种函数调用 ( B

6、)一个整型表达式 ( C)一个字符型表达式 ( D)一个不合法的表达式 16 下列 4个程序中,完全正确的是 ( )。 ( A) #include main(); /*programming*/ pfintf(“programming!n“); ( B) #include main() /*/programming/*/ printf(“programming!ha“); ( C) #include main() /*/programming*/*/ printf(“programming!n“); ( D) include main() /*programming*/ printf(“pro

7、gramming!n“); 17 设变量均已正确定义,若要通过 scanf(“ d c d c“, &a1, &c1, &a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。下列所示的输入形式中正确的是 (注: 代表空格字符 )( )。 ( A) 10DX20Y ( B) 10X20Y ( C) 10X20Y ( D) 10X20Y 18 两次运行下面的程序,如果从键盘上分别输入 3和 2,则输出结果是 ( )。 #include main() intx; scanf(“ d“, &x); if(x+2)printf(“ d“, x); else

8、 pfintf(“ dn“, X-); ( A) 4和 3 ( B) 4和 2 ( C) 4和 1 ( D) 3和 2 19 以下叙述中不正确的是 ( )。 ( A)在不同的函数中可以使用相同的名字的变量 ( B)函数中的形式参数是局部变量 ( C)在一个函数内定义的变量只在本函数范围内有效 ( D)在一个函数内的复合语句中定义的变量在本函数范围内有效 20 运行下面的程序, 输入字符串 Microsoft Visual Studio,则程序的执行结果是( )。 #include main() char chr20; scanf(“ s“, &chr); printf(“ sn“ chr);

9、( A) Microsott Visual Studio ( B) M ( C) Microsoft ( D) MicrosoftVisualStudio 21 若有 “double a; ”,则正确的输入语句是 ( )。 ( A) scanf(“ 1f“, a); ( B) scanf(“ f“, &a); ( C) scanf(“ lf“, &a) ( D) scanf(“ le“, a); 22 if语句的基本形式为: if(表达式 )语句,其中 “表达式 ”( )。 ( A)可以是任意合法的表达式 ( B)必须是逻辑表达式 ( C)必须是逻辑表达式或关系表达式 ( D)必须是关系表达式

10、 23 若 i、 j已定义成 int型,则以下程序段中内循环体的总执行次数是 ( )。 for(i=6; i0; i-) for(j=0 j int m=13; int fun(int x, int y) intm=2; retum(x*ym); main() int a=7, b=6; printf(“ d“, fun(a, b)/m); ( A) 1 ( B) 3 ( C) 7 ( D) 10 26 下面程序运行后的输出结果是 ( )。 #include main() int a5=1, 0, 4, 2, 0, b5=1, 2,3, 4, 5), i, s=0; for(i=0; i ma

11、in() char p4=“ABC“, “DEF“, “GHI“; int i; for(i=0; i #include main() char*s1=“abDuj“; char*s2=“ABdUG“: int t; t=strcmp(s1, s2); printf(“ d“, t); ( A)正数 ( B)负数 ( C)零 ( D)不确定的值 30 已知: int c34;,则对数组元素引用正确的是 ( )。 ( A) c1l4 ( B) c1 50 ( C) c1+00 ( D)以上表达都错误 31 以下程序: #include #include main() char str=“abcd

12、n123xab“; printf(“ d“, strlen(str); 运行后的输出结果是 ( )。 ( A) 10 ( B) 9 ( C) 7 ( D) 14 32 C语言中允许用外部说明来指定变 量、函数和其他标识符的特征,这里所说的外部指的是 ( )。 ( A)冠以关键字 extern ( B)位置在函数体外部 ( C)作用范围是全程的 ( D)位置在函数的外部 33 有以下程序: #include int fun(int x, int y) if(x=y)retum(x); else retum(x+y)/2); main() int a=1, b=2, c=3; printf(“ d

13、n“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 34 若有 char s33=“AAA“, “BBB“, “CCC“;说明语句,则与它等价的语句是( )。 ( A) char*s=“AAA“, “BBB“, “CCC“; ( B) char*s31=“AAA“, “BBB“, “CCC“; ( C) char s5: “AAA“, “BBB“, “CCC“; ( D) char s3=“AAA“, “BBB“, “CCC“; 35 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是

14、( )。 ( A) C语言程序仅可以编译执行 ( B) C语言程序仅可以解释执行 ( C) C语言程序既可以编译执行又可以解释执行 ( D)以上说法都不对 36 若有如下说明,且 int类型占两个字节,则正确的叙述为 ( )。 struct st int a; int b2; a; ( A)结构体变量 a与结构体 成员 a同名,定义是合法的 ( B)程序只在执行到该结构体时才为结构体 st分配存储单元 ( C)程序运行时为结构体 st分配 8字节存储单元 ( D)类型名 struct st可以通过 extern关键字提前引用 37 有以下程序: #include int fun(int*k)

15、int b=0; b=*k+b: return(b); main() int a10=1, 2, 3, 4, 5, 6, 7, 8, i; for(i=2; i #include #include #define N 9 long ctod(char*s) long d=0; while(*s) if(isdigit(*s) /*found*/ d=d*10+*s一 _1_ ; /*found*/ _ 2 _ ; ) return d; long fun(char*a, char*b) /*found*/ return _ 3_ ; main() char s1N, S2N; do print

16、f(“Input string s1: “); getS(s1); while(Strlen(s1)N); do printf(“Input string s2: “); gets(S2); ) while(strlen(s2)N); printf(“The result is: idn“, fun(s1, s2); 三、程序修改题 42 给定程序 MODI1 C中函数 fun的功能是:将长整型数 s中每一位上为偶数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。 例如,当 s中的数为: 87653142时, t中的数为: 8642。 请改正程序中的错误,使它能得出正确的结果

17、。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include void fun(long s, long*t) int d; long s1=1; *t=0; while(s0) d=s 10; /*found*/ if(d 2=0) *t=d*s1+*t; s1*=10; ) /*found*/ s=10; msin() long s, t ; printf(“nPlease enter s: “); scanf(“ ld“, &s); fun(s, &t); printf(“The result is: idn“, t); 四、程序设计题 43 编写函数 f

18、un,它的功能是计算下列级数和,和值由函数值返回。例如,当 n=10, x=0 3时,函数值为 1 349859。 注意:部分源程序在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include#irioludedouble fun(double x, int n)msin() void NONO(); printf(“ fn“, fun(0 3, 1 0); NONO(); void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp, *wf; int i,

19、n; double s, x; fp=fopen(“in dat“,“r“); wf=fopen(“out dat“, “W“); for(i=0; i 国家二级( C语言)机试模拟试卷 18答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤后结束。 2 【正确答案】 B 【试题解析】 二叉树是由 n0个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。二叉树可以是空集合,根可以有空的左子树或空的右子树。二又树不是树的特殊情况

20、,它们是两个概念。 二叉树具有如下两个特点: 非空二叉树只有一个根结点。 每一个结点最多 有两棵子树,且分别称为该结点的左子树与右子树。 3 【正确答案】 B 【试题解析】 栈的操作原则为后进先出。选项 B)中出栈顺序可按 “A进, B进,B出, C进, D进, D出, C出, A出 ”实现。 4 【正确答案】 D 【试题解析】 注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。 5 【正确答案】 A

21、【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。 外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。 6 【正确答案】 D 【试题解析】 软件需求规格说明书有以下几个方 面的作用: 便于用户、开发人员进行理解和交流。 反映出用户问题的结构,可以作为软件开发工作的基础和依据。 作为确认测试和验收的依据。 7 【正确答

22、案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。 8 【正确答案】 B 【试题解析】 概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户应用公共数据视图。它 不涉及具体的硬件环境与平台,与具体的软件环境也无关。 9 【正确答案】 B 【试题解析】 E-R图由实体、实体的属性和实体之间的联系 3个要素组成,关系模型的逻辑结构:是一组关系模式的集合,将 E R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。如表 4-1所示。1

23、0 【正确答案】 C 【试题解析】 根据二叉树的性质 3:对任何一棵二叉树,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。 11 【正确答案】 A 【试题解析】 本题考查的是 C语言程序设计的初步知识。选项 A),程序中/*/ 表示注释部分,注释只是给人看的,对程序的编译和运行不起作用,可以在程序中的任何位置;选项 B), C语言的书写格式自由,一行可以写多条语句,一条语句也可以写在不同行上;选项 C),一个 C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户白行命名;选项 D),程序的注释仅仅是提供阅读之用,并不参与程序的编译,所以编译也就不会发现注释行中的错

24、误。 12 【正确答案】 A 【试题解析】 C语言变量名可由数字,字母,下划线构成,但首字符不能 为数字。 13 【正确答案】 D 【试题解析】 是反斜线符, d是整型变量转义字符, s是字符串型转义字符, C语言中没有规定 088为转义字符。 14 【正确答案】 C 【试题解析】 本题考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式 2,直到表达式 N的值。整个逗号表达式的值就是最后一个表达式 N的值。表达式 (x=3*y,x+6)中, x=15。表达式 y=x1=14。 15 【正确答案】 B 【试题解析】 sizeoffchar)是一个 C语言的关键字,它不是

25、函数调用。 sizeof的功能是计算出运算对象在计算机的内存中所占用的字节数量,该表达式的返回值是一个整数,而不是一个字符型表达式。 16 【正确答案】 B 【试题解析】 选项 A)中, main()函数后面的分号是错误的, C语言在函数名后面不能有分号;在 C语言中注释内容必须放在 “/*”和 “*/”之间, “/*”和 “*/”必须成对出现,按语法规定在注释之间不可再嵌套 “/*”和 “*/”,选项 C)的程序段中注释语句之间有嵌套; C语言用 #include命令行来实现 文件包含的功能。 #include命令行的形式为: #include“文件名 ”,选项 D)中的 include前面

26、少了一个 #符号。 17 【正确答案】 A 【试题解析】 在使用 scanf函数进行输入数据时,输入的数据之间必须用空格、回车符、制表符 (Tab键 )等间隔符隔开。 18 【正确答案】 A 【试题解析】 本题考查 if-else语句。首先, scanf函数通过键盘读入 x的值。当x=3时,第一个 if语句先判断条件,取 x的值 3和 2比较,然后将 x的值加 1, if条件成立,执行下面的 printf语句,输出 x的值 4。当 x=2时,第一个 if语句先判断条件,先取 x的值 2和 2比较,然后将 x的值加 1(x的值变为 3), if条件不成立,执行下面的 else语句,先输出 x的值

27、 3,再将 x的值减 1。 19 【正确答案】 D 【试题解析】 此题考查的是变量的作用范围。选项 D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。 20 【正确答案】 C 【试题解析】 当从键盘输入 Microsoft VisualStudio时,由于 scanf输入函数的特点是遇到空格时结束读入字符,因此,该程序只将 Microsoft这 9个字符送到了字符数组 strr中,并在其后自动加上结束符 “0”。 21 【正确答案】 C 【试题解析】 scanf函数的调用形式是: scanF(“格式字符串 “,输入项地址表 )。其中

28、, “格式字符串 ”是要输入的变量的格式符; “输入项地址表 ”是要输入的变量的地址。 a是 double型数据,格式字符串可以用 lf, f是浮点型。题中定义变量 a为双精度型变量,双精度变量的格式符为 “ 1f”;变量的地址川取地址符 “&”加 变量名表示,变量 a的地址为 “&a”。 22 【正确答案】 A 【试题解析】 本题考查 if表达式。 if(表达式 )中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号 (=)误写为赋值号 (=)时不会报错的,但是其值恒为 1。 23 【正确答案】 B 【试题解析】 本题考查的是嵌套 for循环执行次数。对于外层

29、 i的循环中任何一个 i,内层 i的循环中的 j都要从 0变化到 3, i=4时退出循环;然后外层 i循环的 i减少 1,内层循环的 j仍要从 0变化到 3, j=4时退出循 环 直到外层 i循环的 i变为 0,退出 i循环。所以执行多重循环时,对外层循环变量的每一个值,内层循环的循环变量都要从初始值变化到终值。对外层循环的每一次循环,内层循环要执行完整的循环语句。外层 for语句执行 6次,内层 for语句执行 4次,所以内循环体执行 6*4=24次。 24 【正确答案】 B 【试题解析】 选项 A)表示的是反斜杠字符;一般可以用 1 3位八进制数表示的字符,而选项 B)中 0201有 4位

30、八进制数,所以错误;选项 C)是用两位十六进制数 AA表示的 ASCII码字符;选项 D)表示的是字 符 0对应的 ASCII码值。 25 【正确答案】 B 【试题解析】 本题考查的是函数调用时的参数的作用域。在函数调用时,当全局变量和局部变量的名称相同时,在局部变量的作用域内,局部变量起作用,因而在 fun函数内 m的应该等于 2, main中的 m为 13,所以返回值为 76 2=40,而fun(a, b)/m值为 40/13=3。 26 【正确答案】 A 【试题解析】 这道题目是计算一维数组 b中某些元素的和。这些元素的下标值是一维数组 a中元素值。 s=0+b1+b0+b4+b2+b0

31、=2+1+5+3+1=12。 27 【正确答案】 D 【试题解析】 本题考查函数调用时的参数传递。 fun函数的调用形式为fun(int*b, int m, int n, int data),而调用数组时,用数组名表示一个指向数组第一个元素的指针,因此调用时的形式为 fun(a, 4, 5, 1)。 28 【正确答案】 C 【试题解析】 本题首先定义了一个字符串数组 p,通过 for循环输出 p0、p1、 p2的值。 29 【正确答案】 A 【试题解析】 本 题考查字符串比较函数和字符串的比较原则的两个知识点: 原则是依次比较两个字符串同一位置的一对字符,若它们的 ASCII码值相同,则继续比

32、较下一对字符,若它们的 ASCII码值不同,则 ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部 i个字符与另一个字符串的前 i个字符相同,则字符串较长的较大。 strcmp(s1, s2)的返回值,当 str1str2,返回值 0。 30 【正确答案】 C 【试题解析】 此题考查的是数组元素的引用。对于已定义的数组 aMN,数组元素的正确引用必须满足行下标小于 M,列下标小于 N,且为正整数。因此,选项 A)中列下标溢出;选项 B)中行下标出现小数;选项 C)满足要求。 31 【正确答案】 C 【试题解析】 本题考查字符串的长度,需注意转义字符串,

33、例如, “n”表示换行,为一个长度, “123”表示 3位八进制数 123表示的字符,为一个长度, “xab”表示二位十六进制数 ab表示的字符,也为一个长度。 32 【正确答案】 D 【试 题解析】 C语言中允许用位置在函数外部的说明来指定变量、函数和其他标识符的特征。 33 【正确答案】 A 【试题解析】 fun(b,c)即 fun(2, 3), 2 1=3,所以返回 (2+3)/2=2; fun(2*a, 2)即fun(2, 2), 2=2,所以返回 2。 34 【正确答案】 D 【试题解析】 二维字符数组在定义时可省略第一维的维数,根据初始化有 3个字符串,所以选项 D)中数组有 3行

34、,与已知说明语句等价。 35 【正确答案】 A 【试题解析】 C语言作为计算机 高级语言,用它编写的程序必须经过 C语言的编译器编译后,转换为二进制的机器码来运行。 36 【正确答案】 A 【试题解析】 本题主要考禽结构体的用法: 结构体变量 a与结构体成员 a同名,定义合法: 在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间; int a 占 2个字节 int b2占 4个字节,共 6个; 类型名 struct st不可以通过 extern关键字提前引用。 37 【正确答案】 C 【试题解析】 b是局部变最,因此当 i=2时, fun的返回值值为

35、 3, i=3时 fun返回值为 4。 38 【正确答案】 D 【试题解析】 本题主要考查的知识点是联合体的内存使用。联合体与结构体的定义相 M,其本质区别就存于内存使用方式的不同。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量伞部是从低地址方向开始使用内存单元;联合体中的空间在某一时刻只能保持某一个成员的数据,所以本题执行完一系列赋值后,只得到最后执行的字符 R。 39 【正确答案】 B 【试题解析】 本题主要考查按位与 (&)运算的知识点。 “&”是对两个运算量相应的位进行逻辑与, “&”的规则与逻辑与 “&”卡 H同。 x=2的二进制为 00000010,y=3的二进制为

36、00000011, x&v=00000010,转化为十进制即为 2。 40 【正确答案】 B 【试题解析】 数据块输入 /输出函数的调用形式为: fread(buffei, size,count,fp)。 fread函数参数说明: “buffer”是一个指针,对 fread来说,它是读入数据的存放地址。对 fwrite来说,是要输 数据的地址。 “size”是要读写的字节数; “count”是要进行读写多少个 size字节的数据项; “fp”是指文件型指针。选项 B)中 bi是一个数组,不是指针,需改为 &bi。 注意:完成一次读操作 (fread()后,如果没有关闭流 (fclose(),则

37、指针 (FILE*fp)自动向后移动前一次读写的长度,不关闭流则继续下一次读操作,接着上次的输出继续输出。 二、程序填空题 41 【正确答案】 (1)0 (2)s+ (3)ctod(a)+ctod(b) 【试题解析】 第一空:举例说明 ctod内循环的作用,例如将字符串 “123”转换为数字时:第一次进入循环时, *s等于字符 “1”, d应等于 0*10+1,第一空处是将字符变成数字,字符 “1”变成数字 1可由字符 “1”减去字符 “0”得到,故第一空处应为“0”。; 第二空: s是数组指针,在循环中 s不断往后移动直至到达数组结束,故第二空处应为 “s+”。 第三空:由审题分析可知,在

38、fun函数内两次调用 ctod函数完成字符串到整数的变换,然后求和,故第三空处为 “ctod(a)+ctod(b)”。 三、程序修改题 42 【正确答案】 (1)if(d 2=0) (2)s/=10; 【试题解析】 (1)第一个标识是判断 d是否是偶数,即比较 d 2是否等于 0,在C语言中, “=”表示的是 “等于 ”,而 “: ”是赋值,因此第一个标识下 “if(d 2=0)”应改为 “if(d 2=0)”。 (2)第二个标识下的 “s=10; ”是对 a的截取,这里的 “”本意应该是除号,但这个在C语言中是不可识别的,所以第二个标识下 “s=10; ”应该改为 “s/=10; ”。 四、程序设计题 43 【正确答案】 double s =1 0, y=x; int i ; long k=1; for(i=1; i=n ; i+) k=k*i; s += y / k ; y*=x ; return s ; 【试题解析】 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第n项是 n。 (2)在循环中求得每一项,然后对其进行累加求和。

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