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

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

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