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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)笔试模拟试卷 53及答案与解析 1 在待排序的元素序列基本有序的前提下,效率最高的排序方法是 ( ) ( A)冒泡排序 ( B)选择排序 ( C)快速排序 ( D)归并排序 2 非空的循环单链表 head的尾结点 (由 p所指向 ),满足 ( ) ( A) p next NULI ( B) p NULL ( C) p- next=head ( D) p head 3 线性表的顺序存储结构和线性表的链式存储结构分别是 ( ) ( A)顺序存取的存储结构、顺序存取的存储结构 ( B)随机存取的存储结构、顺序存取的存储结构 ( C)随机存取的存储结构、随机存取的存储结构 ( D)

2、任意存取的存储结构、任意存取的存储结构 4 结构化程序设计所规定的三种基本控制结构是 ( ) ( A)输入、处理、输出 ( B)树形、网形、环形 ( C)顺序、选择、循环 ( D)主程序、子程序、函数 5 下列不属于软件调试技术的是 ( ) ( A)强行排错法 ( B)集成测试法 ( C)回溯法 ( D)原因排除法 6 软件生命周期中花费时间最多的阶段是 ( ) ( A)详细设计 ( B)软件编码 ( C)软件测试 ( D)软件维护 7 软件设计中,有利于提高模块独立性的一个准则是 ( ) ( A)低内聚低耦合 ( B)低内聚高耦合 ( C)高内聚低耦合 ( D)高内聚高耦合 8 数据库的故障

3、恢复一般是由 ( ) ( A)数据流图完成的 ( B)数据字典完成的 ( C) DBA完成的 ( D) PAD图完成的 9 下列关系运算的叙述中,正确的是 ( ) ( A)投影、选择、连接是从二维表行的方向进行的运算 ( B)并,交、差是从二维表的列的方向来进行运算 ( C)投影、选择、连接是从二维表列的方向进行的运算 ( D)以上 3种说法都不对 10 在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 ( ) ( A)等于原来关系中的元组个数 ( B)大于原来关系中的元组个数 ( C)小于原来关系中的元组个数 ( D)不能确定元组个数 11 C语言程序的基本单位是 ( ) ( A)

4、函数 ( B)过程 ( C)字符 ( D)语句 12 下列正确的变量声明是 ( ) ( A) int m; n; k; ( B) unsigned int m, n, k; ( C) double int m, n, k; ( D) int m, n, k 13 已知大写字母 B的 ASCII码值是 66,小写字母 b的 ASCII码值是 98,则用八进制表示的字符常量 142是 ( ) ( A)字符 B ( B)字符 b ( C)字符 a ( D)非法的常量 14 以下叙述中错误的是 ( ) ( A)在 C程序中, APH和 aph是两个不同的变量 ( B) C程序中的变量,代表内存中的一个

5、存储单元,它的值可以根据需要随时修改 ( C)在 C程序中,无论是整数还是实数,都能准确无误地表示 ( D)在 C程序中,一个正整数可以用十进制、八进制和十六进制的形式来表示 15 设 a、 b和 c都是 int型变量,且 a 3, b 4, c 5,则下列值为 0的表达式是( ) ( A) a k=(+a =0) printf(“%d%d%dn“ ,k,a, B) ; ( A) 1 0 4 ( B) 0 0 4 ( C) 1 0 3 ( D) 0 0 3 22 有以下程序 main( ) int a=0,i; for(i=1;i 5; i+) switch (i) case 0 case 3

6、:a+ =2; case 1; case 2;a+=3; default, a+=5; printf(“%dn“,a) ; ( A) 31 ( B) 13 ( C) 10 ( D) 20 23 假定所有变量均已正确说明,下列程序段运行后 x的值是 a=d=c=0;x=35; if(! a) x=-1, else if(b) ; if(c) x=3; else x=4; ( A) 34 ( B) 4 ( C) 35 ( D) 3 24 程序段如下 int k -20; while (k=0)k=k+1; 则以下说法中正确的是 ( ) ( A) while循环执行 20次 ( B)循环是无限循环

7、( C)循环体语句一次也不执行 ( D)循环体语句执行一次 25 当输入为 “quert?”时,下面程序的执行结果是 ( ) #indude stdio.h main() char c; c=getehar(); while(c=getchar()!=?)putchar(+c) ; ( A) Quert ( B) vfsu ( C) quert? ( D) rvfsu? 26 在调用函数时,如果实参是简单变量,它与对应形参之间 的数据传递方式是 ( ) ( A)地址传递 ( B)单向值传递 ( C)由实参传给形参,再由形参传回实参 ( D)传递方式由用户指定 27 下面能正确进行字符串赋值操作

8、的语句是 ( ) ( A) char s5 “ABCDE“ ( B) char s5=A, B, C, D, E; ( C) char *s; s=“APCDEF“ ( D) char *s;scanf(“%s“, s); 28 若以下程序所生成的可执行文件名为 file1.exe, main(int argc, char *argv) while(argc- 0) +argv; printf(“%s“, * argv); 当键入以下命令执行该程序时: FILE1 CHINA BEUING SHANGHAI程序的输出结果是 ( ) ( A) CHINA BEIJIANG SHANGHAI (

9、B) FILE1 CHINA BEIJING ( C) C B S ( D) F C B 29 C语言规定,函数返回值的类型是由 ( ) ( A) return语句中的表达式类型所决定 ( B)调用该函数时的主调函数类型所决定 ( C)调用该函数时系统临时决定 ( D)在定义该函数时所指定的函数类型决定 30 以下各组选项中,均能正确定义二维实型数组 a的选项是 ( ) ( A) float a34; float a4; float a3=1, 0; ( B) float a(3, 4); float a34; float a=0, 0; ( C) float a34 static float

10、 a4=0, 0; ( D) float a34; float a3; 31 以下程序运行后,输出结果是 ( ) #include stdio.h ss(char *s) char*p s; while(*p) p+ return(p-s); main() char *a=“abded“ int i; i=ss(a) ; printf(“%dn“, i); ( A) 8 ( B) 7 ( C) 6 ( D) 5 32 若有如下程序: int sub() static int n 1; int x=1; x*=n;n+; return x; main() int n, t 1; for(n 1;

11、 n 6;n+)t* sub(); printf(“%dn“,t); 则程序运行后的输出结果是 ( ) ( A) 15 ( B) 120 ( C) 34560 ( D) -30976 33 在 C语言中,函数的隐含存 储类别是 ( ) ( A) static ( B) auto ( C) extern ( D) register 34 有以下程序; int f1(double A) return a*a; int f2(double x, double y) double a, b; a n(x); b=f1(y); return a+b; main() double w; w f2(1.1,

12、 2.0); 变量 w中的值是 ( ) ( A) 5.21 ( B) 5 ( C) 5 ( D) 0 35 下面被调用函数 sub的函数值的类型是 ( ) sub(float A) float b; b=a*a+1; return b; ( A)单精度型 ( B)双精度型 ( C)空类型 ( D)整型 36 若有以下定义语句: double a5; int i 0; 能正确给 a数组元素输入数据的语句是 ( ) ( A) scanf(“%lf%lf%lf%lf%lf, a) ; ( B) for(i=0;i =5;i+)scanf(“%lf, a+i); ( C) while(i 5)scan

13、f(“%lf“, : printf(“%dn“, sizeof(stru), ( A) 2 ( B) 4 ( C) 8 ( D) 10 40 若有如下定义: int s3 则下面表达式中不能代表数组元素 s1的地址的是( ) ( A) int f2(int x, int y) return x y? y:x; main() int a 4,b=3, c 5, d, e, f; d=f1(a, B) ;d=f1(d, C) ; e=f2(a, B) ;e f2(e, C) ; f=a+b+c-d-e;printf(“%d, %d, %d“, d, f, e); ( A) 3, 4, 5 ( B)

14、 5, 3, 4 ( C) 5, 4, 3 ( D) 3, 5, 4 42 分析下面 函数 swap(int *p1, *p2) int *p; *p *p1; *p1 *p2; *p2=*p; 则该程序功能为 ( ) ( A)交换 *p1和 *p2的值 ( B)正确,但无法改变 *p1和 *p2的值 ( C)交换 *p1和 *p2的地址 ( D)可能造成系统故障,因为使用了空指针 43 有以下程序 main() int n3, i, j; for(i 0; i 3; i+)ni 0; for(i=0;i 2,i+) for(j=0;j 2;j+)nj=ni+1; printf(“%dn“,

15、n1); 程序运行后的输出结果是 ( ) ( A) 2 ( B) 1 ( C) 0 ( D) 3 44 有如下程序段: int a=14, b 15, x, char c=A; x=(a 其中 t是该函数的形参,要求通过 t把动态分配存储单元的地址传回主调函数,则形参 t的正确定义应该是 ( ) ( A) int *t ( B) int *t ( C) long *t ( D) long *t 49 以下对枚举类型名的定义中正确的是 ( ) ( A) enum a=one, two, three; ( B) enum aone=9, two=-1, three=200; ( C) enum a

16、 “one“, “two“, “four“; ( D) enum a“nine“, “two“, “three“; 50 C语言规定如果调用 fpute函数输出成功,则返回值是 ( ) ( A) 1 ( B)输出的字符 ( C) 0 ( D) TRUE 51 栈的基本运算有三种:入栈、退栈和【 】。 52 在面向对象方法中,信息隐蔽是通过对象的【 】性来实现的。 53 数据流的类型有【 】和事务型。 54 数据库系统中实现各种数据管理功能的核心软件称为【 】。 55 关系模型的数据操纵即是建立在关系上的数据操纵,一般有【 】、增加、删除和修改四种操作。 56 表示 “整数 x的绝对值大于 5“

17、时值为 “真 “的 C语言表达式是【 】。 57 以下程序的输出结果是 【 】 。 main() unsigned short a=65536; int b; printf(“%dn“, b=A) ; 58 若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b中的值是【 】。 c=(a-=(b-5); c=(a%11)+(b=3); 59 以下程序运行后的输出结果是【 】。 main() int p=30; printf(“%dn“,(p/3 0?p/10:p%3); 60 函数 pi的功能是根据以下近似公式求 值: (*)/6=1+1/(2*2)+1/(3*3)+1(

18、n*n) 现在请你在下面的函数中填空,完成求 的功能。 #include “math.h“ double s=0.0; long i; for(i=1; i =n; i+)s=s+【 】; return(sqrt(6*3); 61 函数 pi的功能是根据以下公式近似求得的: pi*pi/6=1+1/(2*2)+1/(3*3)+1/(n*n) 请在下面的函数中填空,完成求 pi的功能。 #include math.h double pi(long n) double s=0.0,long i; for(i=1; i =n; i+)s=s+【 】。 return(sqrt(6*s); 62 若输入

19、字符串; abcde,则以下 while循环体将执行【 】次。 while(ch=getchar()=e)printf(“*“); 63 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 void func(int x,int y,【 】 z) *z=x+y; 64 若有以下定义,则不移动指针 p,且通过指针 p引用值为 98的数组元素的表达式是【 】。 int w10=23,54,10,33,47,98,72,80,61), *p=w; 65 设在主函数中有以下定义和函数调用语句,且 fun函数为 void类型;请写出fun函数的首部【 】。要求形参名为 b。 main() dou

20、ble s1022; int n; fun(s); 66 有以下程序: int f(int n) if(n 1)return 1; else return f(n-1)+1; main() int i,j=0; for(i=1; i 3;i+)j+=f(i); printf(“%dn“,j); 程序运行后的输出结果是【 】。 67 以下程序的输出结果是【 】。 void fun() static int a=0; a+=2; printf(“%d“, a) ; main() int cc; for(cc=1; cc 4; cc+)fun(); printf(“n“); 68 以下程序的输出结果

21、是【 】。 #define MAX(x,y) (x) (y)?(x):(y) main() int a=5, b=2, c=3, d=3, t; t=MAX(a+b, c+d) *10; printf(“%dn“,t); 69 实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中 (相当于 copy命令 ),假定文件在当前目录下。 请补全程序。 #include stdio.h void main(int argc,char*argv) FILE*f1, *f2; if(argc【 】 ) printf(“parameter error!n“); exit(0

22、); f1=fopen(argv1, “r“); f2=fopen(argv2, “w“); while(【 】 )fputc(fgetc(f1),f2); fclose(f1); fclose(f2); 国家二级( C语言)笔试模拟试卷 53答案与解析 1 【正确答案】 A 2 【正确答案】 C 3 【正确答案】 B 4 【正确答案】 C 5 【正确答案】 B 6 【正确答案】 D 7 【正确答案】 C 8 【正确答案】 C 9 【正确答案】 C 10 【正确答案】 A 11 【正确答案】 A 12 【正确答案】 B 13 【正确答案】 B 14 【正确答案】 C 15 【正确答案】 D 1

23、6 【正 确答案】 D 17 【正确答案】 D 18 【正确答案】 C 19 【正确答案】 A 20 【正确答案】 C 21 【正确答案】 C 22 【正确答案】 A 23 【正确答案】 B 24 【正确答案】 C 25 【正确答案】 B 26 【正确答案】 B 27 【正确答案】 C 28 【正确答案】 A 29 【正确答案】 D 30 【正确答案】 C 31 【正确答案】 D 32 【正确答案】 B 33 【正确答案】 C 34 【正确答案】 C 35 【正确答案】 D 36 【正确答案】 C 37 【正确答案】 A 38 【正确答案】 B 39 【正确答案】 D 40 【正确答案】 D

24、41 【正确答案】 C 42 【正确答案】 D 43 【正确答案】 D 44 【正确答案】 A 45 【正确答案】 D 46 【正确答案】 C 47 【正确答案】 A 48 【正确答案】 B 49 【正确答案】 B 50 【正确答案】 B 51 【正确答案】 读栈顶元素 【试题解析】 栈 的基本运算有三种:入栈、退栈和读栈顶元素。 入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一 (即 top加 1),然后将新元素插入到栈顶指针指向的位置。 退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素 (栈顶指针指向的元素 )赋给一个指定

25、的变量,然后将栈顶指针退一(即 top减 1)。 读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。 52 【正确答案】 封装 【试题解析】 软件工程的基本原则抱 括抽象,信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。信息隐蔽是指采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 53 【正确答案】 变换型 【试题解析】 典型的数据流类型有两种:变换型和事务型。 变换型:是指信息沿输入通路进入系统,同时由外部形式变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。 事务型:在很

26、多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做 事务。 54 【正确答案】 数据库管理系统 或 DBMS 【试题解析】 数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库系统的核心。 55 【正确答案】 查询 【试题解析】 关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操作。 数据查询:用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。 数据删除的基本单位是一个关系内的元组,它的功能是将

27、指定 关系内的指定元组删除。 数据插入双对一个关系而言,在指定关系中插入一个或多个元组。 数据修改是在一个关系中修改指定的元组和属性。 56 【正确答案】 x 5|x -5, x -5或 x -5|x 5 【试题解析】 要使整数 x的绝对值大于 5,则 x大于 5或 x小于 5,用 C语言表示即为: x 5|x -5或者 x -5|x 5。故本题答案为; x 5|x -5或者 x -5|x5。 57 【正确答案】 0 【试题解析】 对于一个 unsigned short来说,它能取的最大值是 65535。这里 给a赋值 65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它

28、(全零 )。所以 a的值实际为 0。 58 【正确答案】 3 【试题解析】 这里: b-5=4, a- 4之后 a的值为 6,并把它赋给 c。此时 b的值并未被改变。在第 2个表达式中,也只有赋值表达式 b=3改变了 b的值。所以两行语句执行完毕, b的值应该为 3。 59 【正确答案】 3 【试题解析】 条件表达式的一般形式为;表达式 1?表达式 2:表达式 3条件运算符的执行顺序:先求解表达式 1,若为非 0(真 )则求解表达式 2,此时表达式 2的值就作为整个条件表达式的值;若表达式 1的值为 0(假 ),则求解表达式 3,表达式 3的值就是整个条件表达式的值。 30/3=10 0,所以

29、执行 p/10,结果为 3。 60 【正确答案】 1.0/(i*i)或 (double)1/(i*i) 【试题解析】 表达式 1+1/(2*2)+1/(3*3) +1(n*n) 可写为1/(1*1)+1/(2*2)+1/(3*3)+1(n*n) n 即; 1(ii) i=1 对应的 C语言的表达式 s=s+1.0/(i*i)。注:必须要写成 1.0的形式, 否则 1/(i*i)返回值为其值截尾取整,即恒为 0。 61 【正确答案】 0/i/i 或 1.0/(i*i) 【试题解析】 由题面中提供的计算 pi的公式可知;在第 i项其值为 1/(i*i),考虑到运算结果为浮点数,故必须要将 1转化为

30、浮点数或采用 1.0/(i*i)的形式。故本题应填 1.0/(i*i)或其等效形式。 62 【正确答案】 0 【试题解析】 函数 getchar()是从键盘得到用户输入的一个字符。用户输入的第 1个字符是 a,不管后面输入的是什么 ch的值都是 a,因此条件(ch=getchar()=e,为假,这个循环不会被执行。 63 【正确答案】 int * 【试题解析】 从题中代码可知: z应该是一个整型指针,因此应填 int*。 64 【正确答案】 p5或 *(p+5) 【试题解析】 98是数组 w的第 5个元素 (最开始的为第 0个 ),而通过 *p=w已经将 p指向了数组 w,要想不移动指针 p而

31、引用 98,可以有以下两种写法: p5、*(p+5)。 65 【正确答案】 void fun(double b1022) 【试题解析】 本题答案: void fun(double b1022)。 66 【正确答案】 3 【试题解析】 i=1时, f(1)=1,j=j+f(1)=0+1=1;i=2时,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是 3。 67 【正确答案】 246 【试题解析】 循环 for(cc=1; cc 4, cc+)被执行了 3次。在函数 fun中,由于a是 static型变量,所以函数第 1次调用后, a=2;第

32、2次调用后, a=4;第 3次调用后, a=6。 68 【正确答案 】 7 【试题解析】 在 C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d) *10进行替换后,表达式变为 (a+b) (c+d) ?(a+b) : (c+d) *10。在这个条件表达式中, (a+b) (c+d) 为真,所以用 (a+b) 的值作为整个表达式的值(否则用 (c+d) *10的值作为整个表达式的值 ),而 (a+b) 的值为 7。所以整个表达式的值为 7。 69 【正确答案】 3 !feof(f1) 【试题解析】 要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故 argc的值至少为 3,因此第一空应填 3。 while循环中语句 fputc(fgetc(f1),f2);的目的是将 f1中的字符依次读出并写入到 f2对应的文件中去,直至文件 f1结束为止,因此第二空为 !feof(f1)。

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