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

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

1、国家二级( C语言)笔试模拟试卷 263 及答案与解析 1 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行算法需要的内存空间 2 对线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 ( C)线性表以链式方式存储,并按关键码值排好序 ( D)线性表以链式方式存储,并按关键码的检索频率排好序 3 关系数据库管理系统能实现的专门 关系运算包括 ( )。 ( A)排序、索引、统计 ( B)选择、投影、连接 ( C)关联、更新、

2、排序 ( D)显示、打印、制表 4 对长度为 n的线性表进行顺序查找,在最坏的情况下需要比较的次数为 ( )。 ( A) 125 ( B) n/2 ( C) n ( D) n+1 5 下列程序 (注意: ch0在低字节, ch1在高字节 )的输出结果是 _。 #include stdio.h union pw int i; char ch2; a; main () a.ch0=13; a.ch1=0; printf(“%dn“, a i); ( A) 13 ( B) 14 ( C) 208 ( D) 209 6 下述关于数据库系统的叙述中正确的是 ( A)数据库系统减少了数据冗余 ( B)数据

3、库系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型一致 ( D)数据库系统比文件系统能管理更多的数据 7 下列有关数据库的描述,正确的是 ( ) ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C) 关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 8 关系表中的每一行称为一个 ( )。 ( A)元组 ( B)字段 ( C)属性 ( D)码 9 对长度为 n的线性表进行顺序查找,在最坏的情况下需要比较的次数

4、为 ( )。 ( A) 125 ( B) n/2 ( C) n ( D) n+1 10 在 Windows环境下,单击当前窗口中的按钮 “ ”,其功能是 ( A)将当前应用程序转为后台运行 ( B)退出 Windows后再关机 ( C)终止当前应用程序的运行 ( D)退出 Windows后重新启动计算机 11 若 x=2, y=3,则 x int x=0,y=2,z=0; if(c 0) x=x+y; if(a =0) if(b 0) if(c =0) y= x - y; else if(c 0) y=x-y; else z= y; printf(“%d,%d,%dn“, x, y, z);

5、( A) 2,2,0 ( B) 2,2,2 ( C) 0,2,0 ( D) 2,0,2 14 若以下选项中的变量已正确定义,则正确的赋值语句是 _。 ( A) x1=26.8%3; ( B) 1+2=x2; ( C) x3=0x12; ( D) x4=1+2=3; 15 下列可用于 C语言用户标识符的一组是 ( A) void, define, WORD ( B) a3_b3, _123, Car ( C) For, -abc, IF Case ( D) 2a, DO, sizeof 16 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所

6、占的存储空间 ( D)算法执行过程中所需要的存储空间 17 若有定义: float x=1.5; int a=1, b=3, c=2;则正确的 switch 语句是 ( )。 ( A) switch(x) case 1.0: printf(“*n“); case 2.0: printf(“*n“); ( B) switch(int)x); case 1: printf(“*n“); case 2: printf(“*n“); ( C) switch(a +b) case 1: printf(“*n“); case 2+1: printf(“*n“); ( D) switch(a+ b) cas

7、e 1: printf(“*n“); case c: printf(“*n“); 18 下列程序 的输出结果是 _。 #include stdio.h main () printf(“%dn“,NULL); ( A)不确定 (因变量无定义 ) ( B) 0 ( C) -1 ( D) 1 19 下列用于 printf函数的控制字符常量中,代表 “竖向跳格 ”的转义字符常量是 ( A) b ( B) t ( C) v ( D) f 20 下列属于合法的 C语言无符号短整型常数的选项是 ( ) ( A) -2 ( B) 65536 ( C) 123L ( D) 50000 21 下列关于 C语言用户

8、 标识符的叙述中正确的是 ( A)用户标识符中可以出现下划线和中划线 (减号 ) ( B)用户标识符中不可以出现中划线,但可以出现下划线 ( C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 ( D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 22 有如下程序: main() int s=0, a=1,n; scanf(“% d“, do s+=1; a=a-2; while(a!=n) printf(“% dn“, s); 若要使程序输出 2,则应该从键盘输入的值是 _。 ( A) -1 ( B) -3 ( C) -5 ( D) 0 23 已有定义: cha

9、r a=“xyz“b=x, y, z);,以下叙述中正确的是 _。 ( A)数组 a和 b的长度相同 ( B) a数组长度小于 b数组长度 ( C) a数组长度大于 b数组长度 ( D)上述说法都不对 24 下面程序段中,输出 *的个数是 char *s=“ta018bc“; for(; *s!=0;s+)printf(“*“); ( A) 9 ( B) 5 ( C) 6 ( D) 7 25 有下列函数: int fun(char*S) char*t=s; while(*t+ +); return(t-s); 该函数的功能是 ( )。 ( A)比较两个字符串的大小 ( B)计算 s所指字符串占

10、用内存字节的个数 ( C)计算 s所指字符串的长度 ( D)将 s所指字符串复制到字符串 t中 26 在 下列给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (!E 0) ( B) (E 0E 0) ( C) (E 0) ( D) (E! 0) 27 执行语句 “for(i=1; i+ 4; ); ”后,变量 i的值是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D)不定 28 以下错误的叙述是 _。 ( A)使用 while和 do-while循环时,循环变量的初始化应该在循环语句之前完成 ( B) while循环是先判断表达式,后执行循环语

11、句 ( C) do-while和 for循环均是先执行循环体语句,后判断表达式 ( D) for、 while和 do-while循环中的循环体均可以由空语句构成 29 能将高级语言编写的目标程序转换为可执行的应用程序的是 _。 ( A)连接程序 ( B)解释程序 ( C)编译程序 ( D)编辑程序 30 以下能正确进行字符串赋值、赋初值的语句是 _。 ( A) char s5: a, e, i, o, u; ( B) char *s; s=“good“; ( C) char s5=“good“; ( D) char s5; s=“good“; 31 以下选项中,正确的整型常量是 _。 ( A

12、) 12 ( B) -20 ( C) 1,000 ( D) 456 32 有以下程序 :#include stdio.h struet STU charname10; int num; float TotalSeore; ;void f(struet STU * p) struet STU s 2 = “SunDan“ ,20044,550 , “Penghua“ ,20045,537 , * q = s; +p; +q; *p= *q;main( ) struct STU s3 = “YangSan“ ,20041,703 , “LiSiGuo“ ,20042,580 ; f(s) ;pri

13、ntf(“% s % d % 3.Ofn“ ,s 1. name, s 1. num ,s 1. TotalScore);程序运行后的输出结果是 ( )。 ( A) SunDan 20044 550 ( B) Penghua 20045 537 ( C) LiSiGuo 20042 580 ( D) SunDan 20041 703 33 有以下程序 main() int c=35; printf(“%dn”, c c= b= 程序在执行了 “c= b=”语句后,表达式 “*c”的值是 ( )。 ( A)变量 a的地址 ( B)变量 b中的值 ( C)变量 a中的值 ( D)变量 b的地址 3

14、6 有以下程序 main() char a=a, b, c, d, e, f, g, h, 0; int i, j; i=sizeof(a); j=strlen(a); printf(“%d, %db“, i, j); 程序运行后的输出结果是 ( A) 9, 9 ( B) 8, 9 ( C) 1, 8 ( D) 9, 8 37 有以下程序 void ss(char*s, char t) while(*s) if(*s=t)*s=t-a+A; s+; main() char strl100=“abcddfefdbd“, c=d; ss(str1, c);printf(“%sn“, strl);

15、程序运行后的输出结果是 ( A) ABCDDEFEDBD ( B) abcDDfefDbD ( C) abcAAfefAbA ( D) Abcddfefdbd 38 C语言中,组成数据文件的成分是 _。 ( A)记录 ( B)数据行 ( C)数据块 ( D)字符 (字节 ) 序列 39 有以下程序 main() char s=“n123“; printf(“%d,%dn“,strlen(s),sizeof(s); 执行后输出结果是 ( A)赋初值的字符串有错 ( B) 6, 7 ( C) 5, 6 ( D) 6, 6 40 请读程序: # include stdio h void fun(in

16、t * s) static int j 0; do sj+ sj+1 while( + + j 2); main( ) int k, a10l, 2, 3, 4, 5; for(k l; k 3; k+ +)fun(a); for(k 0; k 5;k+)prinf(“%d“, ak); 上面程序的输出结果是 ( ) ( A) 34756 ( B) 23445 ( C) 35745 ( D) 12345 41 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 ( )。 ( A) EOF ( B)非 0值 ( C) 0 ( D) NULL 42 设一棵完全

17、二叉树共有 700个结点 ,则在该二叉树中有【 】个叶子结点 。 43 数据库保护分为 :安全性控制、【 】、并发性控制和数据的恢复。 44 一棵二叉树第六层 (根结点为第一层 )的结点数最多为【 】个。 45 若按功能划分,软件测试的方法通常分为白盒测试方法和【 】测试方法。 46 存储 300个 1616点阵的汉字信息需要【 】字节。 46 若有下列定义: int a=1,2,3,4,5,6,7,8,9,10,*p=a;,则值为 3的表达式为:_。 47 以下程序中调用 scanf函数给变量 a输入数值的方法是错误的,其错误原因是 main() int*p, *q, a, b; p= st

18、ruct node *next; a,b 51 设变量已正确定义为整型 ,则表达式 n=i=2,+i,i+的值为【 】。 52 以下程序运行后的输出结果是 _。 main() char a=“123456789“,*p; int i=0; p=a; while(*p) if (i%2 = 0) *p=*; p+; i+; puts(a); 53 以下程序的输出结果是【 】。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main() int i=2, j=3; printf(“%dn“,MCRB(j,MCRA(i); 54 有以下程序: #

19、include stdio.h main() char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-0; n2=n1*10+(ch2-0); printf(“%dn“,n2); 程序运行时输入 12回车,执行后输出结果是【 】。 55 以下程序的功能是【 】。 main( ) int num10 10, 1, -20, -203, -21, 2, -2, -2, 11, -21; int sum 0, i; for(i 0; i 10; i+ +) if(numi 0) sum numi+ sum; printf(“sum

20、%6d“, sum); 56 以下程序运行后的输出结果是 。 #include #includc #include main() char*p; int i; P=(char*)malloc(sizeof(char)*20): strcpy(p “welcome”): for(i=6; i=0; i一一 ) putchar(*(p+i); printf(“ n”); free(P); 国家二级( C语言)笔试模拟试卷 263 答案与解析 1 【正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指

21、执行这个算法所需要的内存空间。 2 【正确答案】 A 【试题解析】 对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频 率排序。 3 【正确答案】 B 【试题解析】 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。 4 【正确答案】 C 【试题解析】 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。 5 【正确答案】 A

22、 6 【正确答案】 A 【试题解析】 数据库系统的 数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。 7 【正确答案】 D 8 【正确答案】 A 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。关系表中的每一行称为一个元组。 9 【正确答案】 C 【试题解析】 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这 两种情况都需要将这个元素与表中的所有元素进行比较,因此比较

23、次数为 n。 10 【正确答案】 C 【试题解析】 在 Windows 环境下,单击当前窗口中的按钮 “x”,其功能是终止当前应用程序的运行,关闭当前窗口。 11 【正确答案】 B 【试题解析】 本题主要考查按位与 (完整性控制 :保证数据库中数据及语义的正确性和有效性 ,防止任何对数据造成错误的操作 ;并发控制 :正确处理好多用户、多任务环境 下的并发操作 ,防止错误发生 ;数据的恢复 :当数据库被破坏或数据不正确时 ,使数据库能恢复到正确的状态。 数据库的其他用途 ,如数据定义、数据操作和数据管理等。 44 【正确答案】 32 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至多有

24、 2i-1个结点,得到第六层的结点数最多是 26-1=32。 45 【正确答案】 黑盒 【试题解析】 软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看 成一个 “黑盒 ”,即不关心程序内部是如何实现的,只是检查程序是否符合它的 “功能说明 ”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。 46 【正确答案】 800 【试题解析】 一个 16x16点阵的字形码需要 16x16/8=32字节的存储空间,所以300个汉字信息需要 9600个字节。 46 【试题解析】 由题可知 a

25、2=3,因此只要使指针 p指向 a3,然后再引用指针的值就可以。 47 【正确答案】 B 48 【正确答案】 A 49 【正确答案】 选择结构 【 试题解析】 程序设计语言仅仅使用顺序、选择和重复 (循环 )三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。 50 【正确答案】 a.next=ab 【试题解析】 选项 A)中 ,指针变量 q保存的就是变量 b的地址 ,选项 B)中的 p 是指针变量 ,应该是 p-next=在选项 D)中 ,用 *运算符取出结构体

26、变量 ,并且保存的就是 b 的地址。 51 【正确答案】 3 【试题 解析】 本题考查的是 C语言逗号表达式的相关知识。程序在计算逗号表达式时 ,从左到右计算由逗号分隔各表达式的值 ,整个逗号表达式的值等于其中最后一个表达式的值。本题中 ,首先 i被赋值为 2,再自加 1,最后 i+的值计算为 3。 52 【正确答案】 *2*4*6*8* 【试题解析】 程序中定义了一个字符数组 a,并初始化为 123456789,接着定义了一个指针 p并让它指向数组 a,紧接着执行了一个 while循环,此循环的作用是:当 i为偶数时,将 “*”赋给 ai, p指向数组末尾,循环结束,此时数组中a0、 a2、

27、 a4、 a6和 a8的值都为 “*”,所以最后调用 puts()函数输出的 a的值为 *2*4*6*8* 53 【正确答案】 16 【试题解析】 首先用 j和 MCRA(i)替换 MCRB(n, m)中的参数 n和 m,变成2*MCRA(j)+MCRA(i),再用 j和 i替换 MCRA (m)中的参数 m,变成2*2*j+2*i=2*2*3+2*2=16。 54 【正确答案】 12 【试题解析】 字符类型的数据在内存中以相应的 ASCII码存放,在 C语言中,字符数据可以等价为与其相应的 ASCII码的整数 ,还可以作为整数参加运算。在本题中, n1=ch1-0=1-0=49-48=1, n2=n1*10+(ch2-0)=1*10+(2-0)=10+2=12,所以,最后输出为 12。 55 【正确答案】 计算数组 num中大于零的数据之和 56 【正确答案】 emoclew

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

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

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