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

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

1、国家二级( C语言)笔试模拟试卷 106及答案与解析 1 算法的空间复杂度是指 _。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列关于栈的叙述中正确的是 _。 ( A)在栈中只能插入数据 ( B)在栈中只能删除数据 ( C)栈是先进先出的线性表 ( D)栈是先进后出的线性表 3 在深度为 5的满二叉树中,叶子结点的个数为 _。 ( A) 32 ( B) 31 ( C) 16 ( D) 15 4 对建立良好的程序设计风格,下面描述正确的是 _。 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名要符合

2、语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 5 下面对对象概念描述错误的是 _。 ( A)任何对象都必须有继承性 ( B)对象是属性和方法的封装体 ( C)对象间的通讯靠消息传递 ( D)操作是对象的动态性属性 6 下面不属于软件工程的 3个要素的是 _。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 7 程序流程图 (PFD) 中的箭头代表的是 _。 ( A)数据流 ( B)控制流 ( C)调用关系 ( D)组成关系 8 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 _。 ( A)数据库系统 ( B)

3、文件系统 ( C)人工管理 ( D)数据项管理 9 用树形结构来表示实体之间联系的模型称为 _。 ( A)关系模型 ( B)层次模型 ( C)网状模型 ( D)数据模型 10 关系数据库管理系统能实现的专门关系运算包括 _。 ( A)排序、索引、统计 ( B)选择、投影、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 11 有如下程序 main() char ch25=“6937“, “8254“, *p2; int i,j,s=0; for(i=0; i 2; i+) pi=chi; for(i=0; i 2; i+) for(j=0; pij, 0; j+=2) s=10*s+(

4、pij-0); printf(“%dn“,s); 该程序的输出结果是 _。 ( A) 69825 ( B) 63825 ( C) 6385 ( D) 693825 12 以下叙述不正确的是 _。 ( A)分号是 C语言的必要组成部分 ( B) C程序的注释可以写在句的后面 ( C)函数是 C程序的基本单位 ( D)主函数的名字不一定用 main表示 13 若变量已正确定义并赋值,下面符合 C语言的表达式是 _。 ( A) a: =b+1 ( B) a=b=c+2 ( C) int 18.5%3 ( D) a=a+7=c+b 14 C语言运算对象必须是整型的运算符是 _。 ( A) %= ( B

5、) / ( C) = ( D) = 15 下面一组中都是 C语言关键字的是 _。 ( A) double Int for ( B) main while goto ( C) volatile break static ( D) malloc sizeof new 16 若已定义 x和 y为 double类型,则表达式 x=1,y=x+3/2的值是 _。 ( A) 1 ( B) 2 ( C) 2 ( D) 2.5 17 执行语句 for(i=1; i+ 4; );后变量 i的值是 _。 ( A) 3 ( B) 4 ( C) 5 ( D)不定 18 若变量 a、 i已正确定义,且 i已正确赋值,合

6、法的语句是 _。 ( A) a 1 ( B) +i; ( C) a=a+=5; ( D) a=int(i); 19 有如下程序 main() int y=3, x=3, z=1; printf(“%d%dn“, (+x,y+),z+2); 运行该程序的输出结果是 _。 ( A) 3 4 ( B) 4 2 ( C) 4 3 ( D) 3 3 20 运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为 _。 main() int m, n; printf(“Enter m, n: “); scanf(“%d%d“, ( A) ap-a ( B) *( for(;i 6;ci=getcha

7、r(),i+); for(i=O; i 6; i+)putchar(ci); printf(“n“); 如果从键盘上输入: ab回车 c回车 def回车 则输出结果为_。 ( A) a ( B) a ( C) ab ( D) abcdef b b c c c d d d e f 27 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。 ( A)地址传递 ( B)单向值传递 ( C)由实参传递给形参,再由形参传递给实参 ( D)传递方式由 用户指定 28 以下程序 #include stdio.h #include string.h main() char*pl=“abc“,

8、 *p2=“ABC“,str50=“xyz“; strcpy(str+2,strcat(p1,p2); printf(“%sn“,str); 的输出是 _。 ( A) xyzabcABC ( B) zabcABC ( C) yzabcABC ( D) xyabcABC 29 以下程序 int aa33=2, 4, 6; main() int i,*p=i+) if(i=0)aaii+1=*p+1; else +p; printf(“%d“,*p); 的输出是 _。 ( A) 23 ( B) 26 ( C) 33 ( D) 36 30 以下程序的输出结果是 _。 #include stdio.h

9、 #include string.h fun(char*w,int n) char t,*s1, *s2; s1=w;s2=w+n-1; while(s1 s2) t=*s1+: *sl=*s2-; *s2=t; main() char*p; p=“1234567“; fun(p,strlen(p); puts(p); ( A) 1234567 ( B) 7654321 ( C) 1711717 ( D) 7177171 31 下面程序 main() int x=100,a=10,b=20,ok1=5,ok2=O; if(a B) if(b!=15) if(!ok1) x=1; else if

10、(ok2)x=10; x=1; printf(“%dn“,x); 的输出是 _。 ( A) -1 ( B) 0 ( C) 1 ( D)不确定的值 32 下面程序 main() int x=32; printf(“%dn“,x=x 1); 的输出是_。 ( A) 100 ( B) 160 ( C) 120 ( D) 64 33 设有以下定义和语句,输出的结果是 (用 small模式编译,指针变量占 2个字节 )_。 struct date long*cat; struct date *next; double dog; too; printf(“%d“,sizeof(too); ( A) 20

11、( B) 16 ( C) 14 ( D) 12 34 以下程序的输出结果是 _。 #include stdio.h #defineFUDGE(y) 2.84+y #define PR(A) printf(“%d“, (int)(A) ) #definePRINT1(A) PR(A) ;putchar(n) main() int x=2; PRINT1(FUDGE(5)*X); ( A) 11 ( B) 12 ( C) 13 ( D) 15 35 以下程序段给数组所有的元素输入数据,请选择正确答案填入: #includestdio.h main() int a10, i=0; while(i 1

12、0)scanf(“%d“、_); : : ( A) a+(i+) ( B) j 4;j+) i=j; if(i 2)i=3-j; s+=bij; return s; main() int a44=1, 2, 3, 4, 0, 2, 4, 6, 3, 6,9, 12, 3, 2, 1, 0; printf(“%dn“f(A) ); ( A) 22 ( B) 11 ( C) 18 ( D) 16 40 不能把字符串 “Hello!”赋给数组 b的语句是 _。 ( A) char b10=H, e, 1, l, o, !; ( B) chsr b10=h, e, 1, 1, o, !; ( C) c

13、har b10;strcpy(b, “Hello!“); ( D) chgr b10=“Hello!“; 41 下面程序的输出是 _。 main() int x=3,y=6,a=0; while(x+!(y=|) a+=1; if(y x)break; printf(“x=%d,y=%d,a=%dn“,x,y,A) ; ( A) x=4,y=4, a=1 ( B) x=5,y=5, a=1 ( C) x=5, y=4, a=3 ( D) x=5, y=4, a=1 42 若有程序: fun(int a, int B) static int c=0; c+=a+b; return c; main

14、() int x=5,y=3,z=7,r r=fun(y,x+y),z); r=fun(x,y); printf(“%dn“,r); 上面程序的输出结果是 _。 ( A) 23 ( B) 15 ( C) 19 ( D) 18 43 下面程序的输出是 _。 main() char*s=“12134211“; int v1=0,v2=0, v3=0, v4=0,k; for(k=0; sk; k+) switch(sk) default:v4+; case1: v1+; case3: v3+; case2: v2+; printf(“v1=%d,v2=%d,v3=%d,v4=%dn“,v1,v2,

15、v3,v4); ( A) v1=4,v2=2,v3=1,v4=1 ( B) v1=4,v2=9,v3=3,v4=1 ( C) v1=5,v2=8,v3=6,v4=1 ( D) v1=8,v2=8,v3=8, v4=8 44 下面程序的输出是 _。 main() int k=11; printf(“k=%d,k=%o,k=%xn“,k,k,k); ( A) k=11,k=12,k=11 ( B) k=11,k=13,k=13 ( C) k=11,k=013,k=0xb ( D) k=11,k=13,k=B 45 下面程序段中 c的二进制值是 _。 char a=3,b=6,c; c=ab 1;

16、( A) 1011 ( B) 1111 ( C) 11110 ( D) 11100 46 以下叙述中正确的是 _。 ( A) C语言比其他 语言高级 ( B) C语言可以刁;用编译就能被计算机识别执行 ( C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 ( D) C语言出现的最晚,具有其他语言的一切优点 47 下列司用于 C语言用户标识符的一组是 _。 ( A) void define WORD ( B) a3_b3 _123 Car ( C) For _abc IFCase ( D) 2a DO sizeof 48 fgetc函数的作用是从指定文件读入一个字符,该文件的打开

17、方式必须是_。 ( A)只读 ( B)追加 ( C)读或读写 ( D)以上均正确 49 请选出正确的程序段 _。 ( A) int*p ( B) int*s,k;scanf(“%d“,p); *s=100; ( C) int*s,k; ( D) int*s,k;char*p, c; char*p, e; s=p= *s=1 ; 50 若有下面的说明和定义,则 sizeof(structaA) 的值是 _。 struct aa intrl; double r2; float r3; union uuchar u15; long u22ua; mya; ( A) 30 ( B) 29 ( C) 2

18、4 ( D) 22 51 算法的复杂度主要包括时间复杂度和【 】复杂度。 52 数据的物理结构在计算机存储空间中的存放形式称为数据的【 】。 53 若按功能划分,软件测试的方法通常分为【 】测试方法和黑盒测试方法。 54 数据库三级模式体系 结构的划分,有利于保持数据库的【 】。 55 在关系运算中,查找满足一定条件的元组的运算称之为【 】。 56 若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y后, y的值为【 】。 57 若 x和 y都是 double型变量,且 x的初值为 3.0, y的初值为 2.0,则表达式pow(y,fabs(x)的值为【 】。 58 设有 ch

19、ar a,b;,若要通过 a main() int a=7,b=5; printf(“%dn“,fun(a,b) /m); 61 下列程序执行后输出的结果是 【 】 。 main() int arr10, i,k=0; for(i=O; i 10; i+)arri=i; for(i=1; i 4; i+)k+=arri+i; printf(“%dn“,k); 62 下列程序执行后输出的结果是 【 】 。 struct s int x,y; data2=10, 100,20,200; main() struct s*p=data; printf“%dn“,+(p- x); 63 下面程序有两个

20、printf语句,如果第一个 printf语句输出的是 194,则第二个printf语句的输出结果是 【 】 。 main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *p; p=a; printf(“%xn“,p); printf(“%xn“, p+9); 64 以下函数的功能是计算 s=1+1/2!+1/3!+1/n! ,请填空。 double fun(int n) double s=0.0 ,fac=1.0; int i,k=1; for(i=1; i =n;i+); 【 】 ; fac=fac/k s=s+fac; 65 下面程序的运行结果是 【 】

21、 。 main() unsigned a=0112,x; x=a 3; printf(“x=%o“,x); 66 函数 delete(s,i,n)是作用是从字符串 s中删除从第 i个字符开始的 n个字符,请填空。 void delete(char s,int i, int n) int j,k,length=0; while(slength) 【 】 ; -i; j=i if( 【 】 ) k=i+n; if(i+n =length) while(k length) sj+=sk+; sj=0; 67 下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。 int wor

22、d(char*s) int num=0, flag=0; while(*s) if( 【 】 =) flag=0; else if( 【 】 )flag=1;num+ return 【 】 ; 国家二级( C语言)笔试模拟试卷 106答案与解析 1 【正确答案】 D 【试题解析】 个算法的空间复杂度, 般是指执行这个算法所需的内存空间。个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 2 【正确答案】 D 【试题 解析】 栈是限定在 端进行插入与删除的线性表。栈是按照 “先进后出 ”的或 “后进先出 ”的原则组织数据的,因此,栈也被

23、称为 “先进后出 ”表或 “后进先出 ”表。 3 【正确答案】 C 【试题解析】 所谓满二叉树是指除最后一层外,每层上的所有结点都有两个子结点。也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第 K层上有 2k-1个结点,且深度为 m的满二叉树有 2m个结点在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为 5,故叶子结点数为 25-1=24=16。 4 【正确答案】 A 【试题解析】 要形成良好的程序设计风格,主要应注重和考虑下述 些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非

24、对效率有特殊要求,程序编写要做到清晰第一,效率第二。 5 【正确答案】 A 【试题解析】 对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。 6 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法 、工具和过程。 7 【正确答案】 B 【试题解析】 程序流程图 (PFD)是 种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。 8 【正确答案】 A 【试题解析】 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是

25、数据系统。 9 【正确答案】 B 【试题解析】 层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、 层次分明。 10 【正确答案】 B 【试题解析】 关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。 11 【正确答案】 C 【试题解析】 本题 “ch25=“6937“,“8254“用于 2行 5列的二维数组初始化,ch00-ch04的值分别为: 6, 9, 3,7, 0; ch10-ch14的值分别为: 8,2, 5, 4, 0;第一个 for循环用于将数组指针分别指向二给数组的第一行和

26、第二行;第二个 for嵌套循环用于取出 p00, p02, p10, p12四个存储单元的数组成一个四位数进行输出。 12 【正确答案】 D 【试题解析】 C语言的程序是由主函数 main()开始运行,由主函数来调用其他函数,所以 D是错误的。 13 【正确答案】 B 【试题解析】 选项 A和 C一望而知其错:对于表达式 a=a+7=c+b(答案 D),是先执行赋值表达式 a+7=c+b,再把这个表达式的值赋给 a,显然,表达式 a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。 14 【正确答案】 A 【试题 解析】 在 C语言中,模运算 (即取余运算 %)的运算对象必须是整型数据

27、(常量、变量或表达式 )。 15 【正确答案】 C 【试题解析】 C语言中的关键字有 32个关键字 (参见 C语言教程 ),本题中只有C符合题意。 16 【正确答案】 C 【试题解析】 这是一个逗号表达式,它的值应为表达式式 y=3/2的值,而前一个表达式已给 x赋值 1,在没有进行类型转换的情况下, 3/2的值为 1,所以 x+3/2的值应为 2.0。 17 【正确答案】 C 【试题解析】 for语句的一般形式为: for(表达式 1;表 达式 2;表达式 3)语句,循环结束的条件是 i+ 4,所以当 i+=4 时,循环结束,此时变量 i的值为 5。 18 【正确答案】 B 【试题解析】 选

28、项 D显然是错的,而选项 A没有分号结束,不是 C语句;a+=5违反了赋值表达式工侧必须为一个变量 (不能是常量或表达式 )的规定。 19 【正确答案】 D 【试题解析】 逗号表达式 (+x,y+)的值应该是 y+的值,由于 y+是先引用后自增,所以 y+的值是 3。 20 【正确答案】 C 【试题解析】 分析程序可知,该程序实现的功能是对数 m,n求其最大公约数。在本题中 m与 n的值分别为 65与 14,其最大公约数为 1,故其输出结果为 m=1。 21 【正确答案】 D 【试题解析】 选项 A: a”求的是每一项的值,所以 k的值应为 n!,在求 n!的时候,可以用上次循环阶乘的值乘 i

29、,就可以直接得此次 n!,故本题填 k=k*i。 65 【正确答案】 x=11 【试题解析】 在对无符号数的右移是高位补 0。 66 【正确答案】 length+ i length 【试题解析】 第一个循环极有可能是计算串 的长度,在 i =length时字符才被删除,被删除的是从第 i个到第 i+n或最后一个间的所有字符。删除前,应判断 i=length。由于已经进行了 -i运算,故实际应填入 i length。 67 【正确答案】 *s+ flag=0 或 *(s-1)= num 【试题解析】 在统计字符串单词个数的算法中,本题的 flag是为了记录一个单词是否结束。第 18空应填 *s+;如果某个字符不是空格,则必需判断它是否是单词,如是,则使得 flag的标志为 1, num的值加 1。本题判断方法是:先判断 s所指向的字 符是否为空格,如果是则使得 flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是一个单词的开始,将 flag标志为 1, num的值加 1,如果不是,则不必记录。故第 19空应 flag=0或 *(s-1)=;最后一个空格需填写的是返回的单词的个数,即 num。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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