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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)笔试模拟试卷 214 及答案与解析 1 下列叙述中错误的是 ( )。 ( A)一种数据的逻辑结构可以有多种存储结构 ( B)数据的存储结构与数据的处理效率无关 ( C)数据的存储结构与数据的处理效率密切相关 ( D)数据的存储结构在计算机中所占的空间不一定是连续的 2 下列关于栈的描述中错误的是 ( )。 ( A)栈是先进先出的线性表 ( B)栈只能顺序存储 ( C)栈具有记忆作用 ( D)对栈的插入删除操作中,不需要改变栈底指针 3 对长度为 n的线性表进行顺序查找,在最坏 情况下需要比较的次数为 ( )。 ( A) 125 ( B) n 2 ( C) n ( D) n+

2、1 4 下列特征中不是面向对象方法的主要特征的是 ( )。 ( A)多态性 ( B)继承 ( C)封装性 ( D)模块化 5 设计软件结构是软件生命周期的 ( )。 ( A)软件定义期 ( B)软件开发期 ( C)软件维护期 ( D)以上 3个都不是 6 下列工具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) BFD ( C) N-S ( D) DFD 7 下列叙述中不正确的是 ( )。 ( A)在 C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 ( B)在 C的函数中,最好使用全局变量 ( C)外部变量可以在函数之间传递数据 ( D)自动变量实质上足一个

3、函数内部的局部变量 8 下列选项不符合良好程序设计风格的是 ( )。 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计原则是高耦合、高内聚 9 有下列程序: #include main() int a=6, b=7, m=1; switch(a 2) case 0: m+ break; case 1: m+; switch(b 2) default: m+; case 0: m+; break; printf(” d n”, m); 程序的运行结果是 ( )。 ( A) 3 ( B) 2 ( C) 4 ( D) 1 10 下列程序的运行结

4、果是 ( )。 main() int x=1, y=3, a=0; while(x+!=(y-=1) a+=1; if(y x) break; printf(“ d, d, d n“, x, y, a); ( A) 2, 3, 2 ( B) 2, 3, 1 ( C) 1, 3, 3 ( D) 3, 1, 2 11 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( )。 ( A) DB包含 DBS和 DBMS ( B) DBMS包含 DB和 DBS ( C) DBS包含 DB和 DBMS ( D)没有任何关系 12 下列合法的声明语句是 ( )。 ( A) int_ab

5、c=50; ( B) double int=3+5e2 5; ( C) long do=1L; ( D) float 3_asd=3e-3; 13 设 x、 y和 z是 int型变量,且 x=4, y=6, z=8,则下列表达式中值为 0的是( )。 ( A) x&y ( B) x =y ( C) xy+z&yz ( D) !(x y)&!z 1) 14 若 ch为 char型变量, k为 int型变量 (已知字符 a的 ASCII码是 97),则执行下列语句后输出的结果为 ( )。 ch=b; k=10; printf(“ x, o, “, ch, ch, k); printf(“k= d

6、n“, k); “ ( A)因变量类型与格式描述符的类型不匹配,输出无定值 ( B)输出项与格式描述符个数不符,输出为 0值或不定值 ( C) 62, 142, k= d ( D) 62, 142, k= 10 15 有下列程序: fun(int x, int y)return(x+y); ) main() int a=1, b=2, c=3, sum; sum=fun(a+, b+, a+b), c+); printf(“ d n“, sum); 执行后的输出结果是 ( )。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 16 假定 x和 y为 double型, 则表达式 x=2,

7、 y=x+3 2的值是 ( )。 ( A) 3 500000 ( B) 3 ( C) 2 000000 ( D) 3 000000 17 如下程序: main() int x=1, a=0, b=0; switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf(“a= d, b= d n“, a, b); 该程序的输出结 果是 ( )。 ( A) a=2, b=1 ( B) a=1, b=1 ( C) a=1, b=0 ( D) a=2, b=2 18 下列程序的输出结果是 ( )。 main() int i=1, j=2, k=3; if

8、(i+=1&(+j=3= k+=3) printf(“ d d d n“, i, j, k); ( A) 1 2 3 ( B) 2 3 4 ( C) 2 2 3 ( D) 2 3 3 19 下列程序的输出结果是 ( )。 #include main() int a=0, i; for(i=1; i 5; i+) switch(i) case 0: case 3: a+=1; case 1: case 2: a+=2; default: a+=3; printf(“ d“, i); ( A) 19 ( B) 1 ( C) 6 ( D) 8 20 有以下程序: main() int x, 1; f

9、or(i=1; i =50; i+) x=i; if(x 2=0) if(x 3=0) if(x 7=0) printf(“ d, i)“; 输出结果是 ( )。 ( A) 28 ( B) 27 ( C) 42 ( D) 41 21 以下程序的输出结果是 ( )。 void prt(int*m, int n) int 1; for(i=0; i n; i+)mi+; main() int a=1, 2, 3, 4, 5), i; prt(a, 5); for(i=0; i 5; i+) printf(“ d, “, ai); ( A) 1, 2, 3, 4, 5 ( B) 2, 3, 4, 5

10、, 6 ( C) 3, 4, 5, 6, 7 ( D) 2, 3, 4, 5, 1 22 有以下程序: void funl(char*p) char*q; q=p; while(*q!= 0) (*q)+; q+; main() char a=“Program“), *p; p=&a3; funl(p); printf(“ s n“, a); 程序执行后的输出结果是 ( )。 ( A) Prohsbn ( B) Prphsbn ( C) Progsbn ( D) Program 23 若有以下的说明和语句,则在执行 for语句后, *(*(pt+1)+2)表示的数组元素是 ( )。 int t

11、33, *pt3, k; for(k=0; k 3; k+)ptk=&tk0; ( A) t20 ( B) t22 ( C) t1E2 ( D) t21 24 有以下程序: main() union char ch2; int d; s; s d=0x4321; printf(“ x, x n“, s ch0, s ch1); 在 16位编译系统上,程序执行后的输出结果是 ( )。 ( A) 21, 43 ( B) 43, 21 ( C) 43, 00 ( D) 21, 00 25 以下程序的输出结果是 ( )。 main() int a=1, b; for(b=1b =10; b+) if(

12、a =8)break; if(a 2=1)a+=5; continue; a=3; printf(“ d n“, b); ( A) 3 ( B) 4 ( C) 5 ( D) 6 26 设有以下定义和语句: char str20=“Program“, *p: p=str; 则以下叙述中正确的是 ( )。 ( A) *p与 str0的值相等 ( B) str与 p的类型完全相同 ( C) str数组长度和 p所指向的字符串长度相等 ( D)数组 str中存放的内容和指针变量 p中存放的内容相同 27 有下列程序: #include main() int x=0; int y=0; while(x

13、7&+y) y-; x+; printf(“ d, d”, y, x); 程序的输出结果是 ( )。 ( A) 0, 7 ( B) 7, 7 ( C) 0, 6 ( D) 1, 6 28 下列程序的运行结果是 ( )。 #include main() int a=2, b=3, c=4; if(a b) if(b 0)c=0; else c+; printf(“ d n“, c); ( A) 2 ( B) 3 ( C) 5 ( D) 4 29 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏 定义语句为 ( )。 ( A) #define f(

14、x) 5*x*x+5*x+5 ( B) #define f5*x*x+5*x+5 ( C) #define f(a) (5*a*a+5*a+5) ( D) #define(5*x*x+5*x+5) f(x) 30 函数调用 strcat(strcpy(str1, str2), str3)的功能是 ( )。 ( A)将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后 ( B)将字符串 str1连接到字符串 str2之后再复制到字符串 str3之 后 ( C)将字符串 str2复制到字符串 str1之后再将字符串 str3连接到字符串 str1之后 ( D)将字符串 str2

15、连接到字符串 str1之后再将字符串 str1复制到字符串 str3中 31 若有定义 “double a; ”,则正确的输入语句是 ( )。 ( A) seanf(“ 1f“, a); ( B) scanf(“ f“, &a); ( C) scanf(“ 1f“, &a) ( D) scanf(“ le“, &a); 32 下列程序的输出结果是 ( )。 #include main() int a=0, i; for(i=1; i 5; i+) switch(i) case 0; case 3: a+=1; case 1: case 2: a=2; default: a+=3; printf

16、(“ d“, a); ( A) 19 ( B) 18 ( C) 6 ( D) 8 33 下列能正确定义且赋初值的语句是 ( )。 ( A) int n1=n2=1; ( B) char c=99: ( C) float f=f+1; ( D) double x=1 2E5 6; 34 下列程序的输出结果是 ( )。 main() int a=6, b=3, c; if(a b) c=a*b; printf(“ d d, d n“, b, a, c); else ( A) 3, 6, 18 ( B) 3, 6, 2 ( C) 6, 3, 18 ( D) 6, 3, 2 35 若有定义和语 句:

17、int* *pp, *p, a=20, b=10; pp=&p; p=&a; p=&b; printf(“ d, d n“, *p, * *pp); 则输出结果是 ( )。 ( A) 20, 10 ( B) 20, 20 ( C) 10, 20 ( D) 10, 10 36 下列程序的运行结果是 ( )。 #include void fun(int*s, int*p) static int t=3; *p=st; t-: void main() int a=2, 3, 4, 5, k; int x; for(k=0, k 4, k+) fun(a, &x); printf(“ d, “, x)

18、; ( A) 5, 4, 3, 2 ( B) 2, 3, 4, 5 ( C) 2, 2, 2, 2 ( D) 5, 5, 5, 5 37 下列程序的输出结果是 ( )。 #include main() struct st int y, x, z; ; union long i; int j; char k; un; printf(“ d, d n“, sizeof(struct st), sizeof(un); ( A) 6, 2 ( B) 6, 4 ( C) 8, 4 ( D) 8。 6 38 标准库函数 fgets(s, n, file)的功能是 ( )。 ( A)从文件 file中读取长

19、度为 n的字符串存入字符数组 s中 ( B)从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 S中 ( C)从文件 file中读到 n个字符串存入字符数组 s中 ( D)从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中 39 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动的元素的平均个数为 _。 40 软件设计模块化的目的是 _程序设计的复杂性。 41 在算法的 4个特性中,算 法必须能执行有限个步骤之后终止指的是算法的特性_。 42 设一棵完全二叉树共有 500个结点,则在该二叉树中有 _个叶子结点。 43 下

20、列表达式用于判断 y是否为闰年。闰年的判断条件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空: _。 44 若要使指针 p指向一个 double类型的动态存储单元,请填空。 p=_malloe(sizeof(double); 45 结构化分析方法是面向 _进行分析的方法。 46 以下程序的功能是打印以下杨辉三角形,请填空。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 main() static int m, n, k, b1010=10; b01=1; for(m=1; m 10; m+); for(n=1; n =m; n+

21、) bmn=_; printf(“ -5d“, bmn); printf(“ n“); 47 下面函数的功能是将一个字符串的内容颠倒过来,请填空。 void fun(char str) int i, j, k; for(i=0, j=_; i j; i+, j-) k=stri; stri=stri; strj=k; 48 若 x为 int类型,请写出与 !x 等价的 C语言表达式 _。 49 下列程序的运行结果是 _。 main() int a=1, b=10; do b-=a; a+while(b- 0); printf(“ d, d n“, a, b); 50 下列程序的运行结果是 _。

22、 main() int j, a10; a0=a1=1: for(i=2; i 5; i+) ai=ai-2+ai-1; for(i=0; i 5; i+) if(i 2=0) printf(“ n“); printf(“ d“, ai); 51 下列程序的输出结果是 _。 #include int fun(int x) int p; if(x=0x=1) return 3; else p=x-fun(x-2); return p; void main() printf(“ n d“, fun(11); 52 以下程序中,函数 fun的功能是计算 x2-2x+6,主函数中将调用 fun函数计算

23、: y1=(x十 8)2-(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空。 #include double fun(double x)return(x*x-2*x+6); main() double x, y1, y2; printf(“Enter x: “); scanf(“If“, &x); y1=fun(_) y2=fun(_) printf(“y1= 1f, y2=1f n“,y1, y2); 53 下面程序把从终端读入的文本 (用 作为 文本结束标志 )复制到一个名为 bi dat的新文件中,请填空。 #include FILE*fp; main() char ch

24、; if(fp=fopen(_)=NULL)exit(0); while(ch=getchar()!=)fputc(ch, fp); _; 国家二级( C语言)笔试模拟试卷 214 答案与解析 1 【正确答案】 B 【试题解析】 数据的存储结构分顺序存储结构和链式存储 结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素通过指针就联系在一起了,所以所占的存储空间不一定是连续的。 2 【正确答案】 B 【试题解析】 栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆

25、作用。栈可以采用顺序存储,也可以采用链式存储。 3 【正确答案】 C 【试题解析】 对长度为 n 的线性表进行顺序查找时,从表中的第一个元素开始,给定的值与表中逐个元 素的关键字进行比较,直到两者相符,查找完成。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素中的所有元素进行比较,因此比较次数为 n。 4 【正确答案】 D 【试题解析】 面向对象设计方法是使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。 5 【正确答案】 B 【试题解析】 本题是对软件设计结构的考查

26、。设计软件结构是软件概要设计阶段进行的,而概要设计属于软件开发 期。 6 【正确答案】 D 【试题解析】 需求分析常用的工具有 4种:数据流图 (DFD)、数据字典 (DD)、判断树和判定表。 PAD(问题分析图 )、 PFD(程序流程图 )、 NS(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 7 【正确答案】 B 【试题解析】 程序运行时局部变量所在的函数被调用时,编译系统根据需要临时分配内存,调用结束空间解放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存未知的情况下,最好不要使用全局变量。 8 【正确答案】 D 【试题解析】

27、 在程序设计中对于软件设计中的模块设计要保证高内聚和低耦合,源程序要有文档说明,同时对程序中 +; ”,将 m加 1,遇到 break语句跳出switch 语句,结束循环。不执行下面的 switch。 9 【正确答案】 B 【试题解析】 本题考查 switch 语句以及 break 的用法,第一个 switch 语句,因为 a=6, a%2=0,所以执行 “case 0, m+; ”,将 m+1遇到, break 语句跳出switch 语句,结束循环,不执行下面的 switch。 10 【正确答案】 D 【试题解析】 本题考查 whlle循环。第一次循环, y=y-1, y=2,循环条件成立,

28、x=1, x+后值为 1, x自加变成 2,进入循环, a=a+1=1,判断 if语句条件是否成立, y x不成立,接着执行下一次循环。第二次循环, x=2, y-1=1,循环条件成立,进入循环, a=a+1=2,判断 if语句的控制条件是否成立, y x成立,执行break 语句,退出循环。结果为 D。 11 【正确答案】 C 【试题解析】 数据库系统由如下 5个部分组成:数据库 (DB)、数据库管理系统(DBMS)、数据库管理员 (人员 )、系统平台之一 硬件平台 (硬件 )、系统平台之二 软件平台 (软件 )。其中 DB(DataBase)即数据库,是统一管理的相关数据的集合; DBMS

29、 即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问 DB 的方法。由以上可知选 C为正确答案。 12 【正确答案】 A 【试题解析】 标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。 B 选项 int不是表达变量类型的标识符,它不能再用做变量名和函数名。 C选项 do是 C语言的 个关键字。 D选项标识 符只能以字母或下划线开始。 13 【正确答案】 D 【试题解析】 本题考查逻辑运算符的使用。当 “&”的两个运算对象都是逻辑 1时,表达式返回值才是 1; “ ”的两个运算对象至少有一个是逻辑 1时,表达式返回值也是 1, x

30、y为 1, !z为 0 1&0为 1, 0为 1,因此, ! 1为 0。 14 【正确答案】 C 【试题解析】 第 1个 printf 函数,格式说明的个数是 2,而输出项的个数是 3,所以对于多余的输出项 k 不予输出;第 2个 printf函数,有两个说明,第 1个后面的字符要原样输出。本题考查 printf函数的格式。 “ x”和 “ o”分别表示以十六进制和八进制无符合型输出整型数据 (不带前导 ox或 0); prjntf函数中格式说明符之前插入的任何字符都原样输出; 格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对予多余的输出项不予输出。 15 【正确答案】

31、 C 【试题解析】 函数 fun(int x, int y)的功能是返回 x+y的值。在主函数中,变量a, b, c的初始值分别为 1, 2 3。因此逗号表达式 “a+, b+, a+b”的值等于5,表达式 c+的值为 3,调用于 函数的表达式为 “fun(5, 3); ”,其返回值等于8。 16 【正确答案】 D 【试题解析】 在 x=2, y=x+3 2中, 3 2=1, 2+1=3,因此表达式的值为 3,因为 x, y为 double 型变量,故选择 D选项。 17 【正确答案】 A 【试题解析】 当 x为 1时,执行 case 1, a自加等于 1,因为 case 1后没有break,

32、接着执行 case 2,此时 a的值为 2, b自加为 1,故选择 A选项。 18 【正确答案】 D 【试题解析】 本题考查自增运算符 “+”、逻辑与运算符 “&”和逻辑或运算符“ ”。自增运算符 “+”出现在变量之前,表示先使用变量的值加 1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加 1。当逻辑与运算符 “&”两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符 “ ”只要一个值为 1,值就为 1。根据运算符的优先级,题中应先计算内层括号中的值。 +j是先自加后运算。因此运算时 j的值等于 3,所以表达式 +j=3成立,即表达式的值为 1;

33、 1与任何数都为进行或 ( )运算,结果都为 1因此 k=3 的表达式 i+是先运算后自加,因 此运算时 i为 1,所以 i+=1成立,自加 1后 i=2。 if 语句的条件为真即 “1”,所以输出 i、 j、 k的值分别是 2,3, 3。 19 【正确答案】 A 【试题解析】 本题考查 switch 语句。当 i=1时,执行 case 1,因为没有遇到break 语句,所以依次往下运行, “a=a+2=2, a=a+3=5”;当 i=2时,执行 case 2,因为没有遇到 break 语句,所以依次往下执行, “a=a+2=7, a=a+3=10”;当 i=3时,执行 case 3, a=a

34、+1=11,因为没有遇到 break 语句所以依次往下运 行,a=a+2=13, a=a+3=i6;当 i=4时,执行 default, a=a+3=19,结束循环。 20 【正确答案】 C 【试题解析】 只有当 3个 if 条件同时成立,即能够同时被 2、 3、 7整除时,才输出 i的值,而从 0到 50能够同时被 2、 3、 7整除的数只有 42故选择 C选项。 21 【正确答案】 B 【试题解析】 函数调用时, prt函数的作用是为使 m数组中的数自增 1,因此数组下标从 0开始,每个元素都自加 1。 22 【正确答案】 A 【试题解析】 本题中使用了函数的调用,由 funl函数中的 w

35、hile循环可知,循环的作用是为了把 q所指向的内容增加 1,而从主函数传到函数时是从下标为 3开始传,因此当调用函数执行完后,传过去的字符串为 hsbn,前面不变。 23 【正确答案】 C 【试题解析】 从 for循环可知 pt是指向行的首地址的指针变量,因此由指针的表示方法可知: *(*(pt+1)+2)=pt12=t12。 24 【正确答案】 A 【试题解析】 s 是一个公用体, d的值分别与 ch 中的两个元素的值相同, d的高位放在 ch1中、低位放在 ch0中,因 此输出的结果为 21, 43。 25 【正确答案】 B 【试题解析】 当 b=1时, a=1,第二个 if语句成立,此

36、时 a=6,返回 for循环;当 b=2,两个 if语句都为假,此时 a=3,再返回循环;当 b=3,第二个 if成立,此时 a=8,继续循环;当 b=4第一个 if成立,退出 for循环体时 b为 4, a为 8。 26 【正确答案】 A 【试题解析】 本题中的 str为一个字符型数组, p为字符型指针变量其指向 str的首地址, *p的值为 str0中的字符,其类型、长度不同,但字符第一个相同。故答案选择 A。 27 【正确答案】 A 【试题解析】 本题考查 while循环。在 while循环申, y自加每次循环都加 1,在循环体内 y-每次减 1,所以总的 y值不变,当 x自加到 7时,

37、不满足循环条件,循环结束。 28 【正确答案】 C 【试题解析】 本题考查 ifelse 语句。第一个 if语句,先判断条件,发现 a b条件成立,则执行第二个 if语句,再判断条件,发现 b 0条件不成立。则执行与其配对的 else语句 c+, c自加 1得 c=5。 29 【正确答案】 C 【试题解析】 本题考查带参数宏的格式 : #define标识符 (彤参表 )形参表达式。其功能是:把预处理程序中出现的所有带实参的宏名,展开形成由实参组成的表达式。敌 C正确。 30 【正确答案】 C 【试题解析】 strcat(s1, s2)甬数的功能是把 s2字符串连接到 s1字符串末昆,strcp

38、y(s1 s2)是把 s2字符串复制到 s1字符串,要保证 s1的容量。 31 【正确答案】 D 【试题解析】 本题考查 scanf函数的调用形式: scanf(格式字符串,输入项地址表 )。题中定义变量 a为双精度型变量,双精度变量的格式符为 “le”; 变量的地垃用取地址符 “&”加变量名表示,所以选项 D正确。 32 【正确答案】 A 【试题解析】 本题考查 switch case开关语句 default退出继续循环。当 i=1时执行 case 1,因为没有 break 语句,所以依次往下运行, a=a+2=2,a=a+3=5;当 i=2时,执行 case 2,没有 break 语句,所

39、以依次往下运行,a=a+2=7, a=a+3=10;当 i=3时,执行 case 3,当 a=a+1=11,没有 break 语句,所以依次往下运行, a=a+2=13, a=a+3=16;当 i=4时。没有 case语句,则执行default, a=a+3=19, i=5不成立,循环结束。表达式的右边出现变量本身,选项 D中字母 E 后面的数应该为整数,所以不对。 33 【正确答案】 B 【试题解析】 在 C语言规定中,可以在定义变量的同时给变量赋初值,选项 A中 n2没有定义;选项 C中不能赋值表达式的右边出现变量本身,选项 D中字母 E后面的数应该为整数,所以不对。 34 【正确答案】

40、B 【试题解析】 本题考查 ifelse 语句。如果 if 条件成立则执行 if 下面的语句不成立则执行 else,判断条件 。发现 a b 不成立,则执行 else后面的语句,得 c=b a=2。 35 【正确答案】 D 【试题解析】 本题考查指针变虽的赋值。 * *pp 是定义一个指针变量,语句pp=&p 是将 pp指向指针 p, *p 和 * *pp 都是指针 p所指的内存空问的内容,即 b的值。 36 【正确答案】 A 【试题解析】 依据 fun 函数,可知其要实现的功能是将 s中第 (t+1)个元素以前的元素逆置赋给数组 p。由于 fun中函数定义了静态变量 t=3,因此, main

41、()函数中调用函数 fun(a &x)时,就是要将数组 a中前 4个元 素逆置赋给数 x,最后输出 x数组。 37 【正确答案】 B 【试题解析】 本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。 38 【正确答案】 B 【试题解析】 本题考查 fgets()函数的使用调用形式: fgets(s, n, fp)。 fgets函数参数说明: “s”可以是一个字符数组名,也可以是指向字符串的指针; “n”为要读取的最多的字符个数; “fp”是指向该文件型指 针。 fget

42、s函数的功能是:从 fp所指向的文件中读取长度不超过 n-1个字符的字符串,并将该字符串放到字符数组 s中,读入字符串后会自动在字符串末尾加入 “ 0“结束符,表示字符串结束。 39 【正确答案】 n/2。 【试题解析】 在线性表的任何位置插入一个元素概率相等,为 p=1/(n+1),则插入一个元素时所需移动元素的平均次数为。 40 【正确答案】 降低。 【试题解析】 模块化是指解决一个复杂问题时,自项向下逐层把软件系统划分成若干模块的过程,由此分解来降低程序设计的复杂性。 41 【正 确答案】 有穷性。 【试题解析】 本题考查算法的 4个基本特性;可靠性、确定性、有穷性和拥有足够的情报,其中

43、,算法的有穷性是指算法必须在有限的时间内完成,即算法必须执行有限个步骤之后终止。 42 【正确答案】 250。 【试题解析】 根据二叉树的性质:具有 n 个结点的完全二叉树,其父结点数为int(n 2),而叶子结点数等于总结点数减去父结点数。 43 【正确答案】 (y 4=0)&(y 100!=0) (y 400=0)。 【试题解析】 本题考查闰年的计算方法。年号能被整除 (y 4=0)但不能被 100整陈 (y 100!=0)两者都是与的关系。年号能被 400整除即 y 400=0,与前两项是或的关系。 44 【正确答案】 double*。 【试题解析】 p 是个指向 double变量的指针

44、,因此填 double*。 45 【正确答案】 数据流 【试题解析】 本题考查对结构化分析的理解,结构化分析方法的实质着眼于数据流,自上面下,逐层分解,建立系统的处理流程以数据流图和数据字典为主要工具,建立系统的逻辑模型。 46 【正确答案】 bm-1n-1+bm-1n。 【试题解析】 杨辉三角形第 3行开始非边缘的元素值是其上一行斜上方元素和正上方元素之和。所以填 bmn=bm-1n-1+bm-1n。 47 【正确答案】 strlen(str)-1。 【试题解析】 for循环的作用是再来完成字符串的遍历,应该先对循环条件初始化,所以应填 strlen(str)-1。 48 【正确答案】 x=

45、0。 【试题解析】 x为真, !x 的逻辑意思就是 x为假,帮 x=0,本题中 x为 int型,也就是整型数值,所以 !x为 0。 49 【正确答案】 2, 8。 【试题解析】 本题考查 dowhile语句的功能:先执行循环俸,再判断循环条件是否成立,若为真,则重复执行循环体,否则退出循环。程序开始时 a=1,b=10,经过操作 b-=a; a+后 b=9, a=2,判断条件 b- 0不成立,则退出循环,但 b 的菹被减 1,因此结果为 a=2, b=8。 50 【正确答案】 1 12 35(CR代表换行 )。 【试题解析】 本题专查 for循环,第一个 for循环 “for(i=2; i 5

46、; i+)”ai=ai-2+ai1;是将数组中前面两项的和赋值给数组当前元素,可知 a的值应为 1,1, 2, 3, 5。语句 if(i 2=0)printf(“ n“)是将数组中的元素以每行 2个的形式输出。 51 【正确答案】 4。 【试题解析】 本题考查函数的递归调用。在主函数中第 1坎调用 fun(1),如果 x等于 0或者 x等于 1刚返回 3,否则返回 11fun(9);第 2次调用函数 fun(9),返回 9-fum(7);第 3次是 fun(7),返回 7-fun(5);第 4次是调用 fun(5),返回 5-fun(3);第 5次调用 fun(3),返 回 3-fun(1);第 6次调用 fun(1),返回 3。总的返回值是: 11-(9-(7-(5-(3-3)=1。 52 【正确答案】 (x+8) sin(x)。 【试题解析】 fun 函数的功能是求 x2-2x+6的值,所以只要填 (x+8), sin(x)即可。注意优先级,所以要加上括号。 53 【正确答案】 “bi dat“, “w“ fclose(fp)。 【试题解析】 本题要求从终端读入文本到 bi dat文件中,故填 “bi dat“,“w“,输入完成

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