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

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

1、国家二级( C语言)笔试模拟试卷 222 及答案与解析 1 待排序的关键码序列为 (33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33被放到第 ( )个位置。 ( A) 3 ( B) 5 ( C) 7 ( D) 9 2 有三个关系 R、 S和 T如下: 由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 3 下列不属于软件工程的 3个要素的是 ( A)工具 ( B)过程 ( C)方法 ( D)环境 4 表达式 5-1的值是 (

2、)。 ( A)整数 4 ( B)字符 4 ( C)表达式不合法 ( D)字符 6 5 下列描述中正确的是 ( )。 ( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据和相关文档的集合 6 信息隐蔽的概念与下述 _概念直接相关。 ( A)软件结构定义 ( B)模块独立性 ( C)模块类型划分 ( D)模拟耦合度 7 下列关于栈的叙述正确的是 ( )。 ( A)在栈中只能插入数据 ( B)在栈中只能删除数据 ( C)栈是先进先出的线性表 ( D)栈是先进后出的线性表 8 应用数据库的主要目的是为了 ( ) ( A)解决数据的

3、保密问题 ( B)解决数据的共享问题 ( C)解决数据量大的问题 ( D)解决数据的完整性问题 9 系统软件中最重要的是 ( ) ( A)操作系统 ( B)语言处理程序 ( C)工具软件 ( D)数据库管理系统 10 栈和队列的共同点是 ( )。 ( A) 都是先进先出 ( B)都是先进后出 ( C)只允许在端点处插入和删除元素 ( D)没有共同特点 11 有下列程序: main() int t,a=1,b=5,c=-2; while(a b C) t=a;a=b;b=t;c+; printf(“%d,%d,%d“,a,b,c); 程序的输出结果是 ( )。 ( A) 1,5,0 ( B) 1

4、,5,-2 ( C) 5,1,-1 ( D) 5,1,-2 12 判断 char型变 量 cl是否为小写字母的正确表达式为 ( )。 ( A) a=a) while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break; printf(“n“) 从第一列开始输入以下数据 代表一个回车符。 2743 程序的输出结果是 ( A) 66877 ( B) 668966 ( C) 6677877 (

5、 D) 6688766 27 有以下 结构说明和变量定义,指针 p、 q、 r分别指向链表中的 3个连续结点。 struct node int data; struct node*next; *p, *q, *r; 现要将 q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是 ( )。 ( A) p- next=q- next; ( B) p-next=p- next-next; ( C) p- next=r; ( D) p=q- next; 28 有以下程序: #include main() int i=0, a=0; while(i 20) for(; ) if(i

6、 10)=0) break; else 1-; i+=11: a+=i; printf(“ d n“, a); 程序的输出结果是 ( )。 ( A) 62 ( B) 63 ( C) 33 ( D) 32 29 设变量均已正确定义,若要通过 scanf(“%d%c%d%c“, a1, c1, a2, c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1 和 c2赋字符 X和 Y。以下所示的输入形式正确的是 (注: 代表空格字符 )( )。 ( A) 10X20Y ( B) 10X20Y ( C) 10X ( D) 10X 20Y 20Y 30 下列二维数组的说明中,不 正确的是 (

7、 )。 ( A) float a4=0,1,8,5,9; ( B) int a34; ( C) #define N 5 ( D) int a29.5; float aN3; 31 设有定义: int a=2,b=3,c=4;,则以下选项中值为 0的表达式是 ( )。 ( A) (!a=1)gets(s2);gets(s3); puts(s1);puts(s2);puts(s3); 输入数据如下: (此处 CR代表回车符 ) aaa CR bbb CR ( A) aaa bbb ( B) aaa bbb ( C) aaa0bbb0 ( D) aaabbb 33 设 x和 y均为 int型变量,则

8、以下语句: “x+=y;y=x-y;x-=y;”的功能是 _。 ( A)把 x和 y按从大到小排列 ( B)把 x和 y按从小到大排列 ( C)无确定结果 ( D)交换 x和 y中的值 34 下列程序执行后的输出结果是 void func1(int i); void func2(int i); char st=“hello, friend!”; void func1(int i) printf(“%c“, sti); if(i 3)i+=2;func2(i); void func2(int i) printf(“%c“, sti); if(i 3)i+=2; func1(i); int i=0

9、; func1(i); printf(“n“); ( A) hello ( B) hel ( C) hlo ( D) hlm 35 若要对 a进行 +运算,则 a应具有下面说明 ( A) int a32; ( B) char*a“12“, “ab“; ( C) char(*a)3; ( D) int b10, *a=b; 36 有以下程序 #include string.h main() char p=a, b, c, ,q10=a, b, c; printf(“%d%dn“, strlen(p), strlen(q); 以下叙述中正确的是 ( A)在给 p和 q数组置初值时,系统会自动添加字

10、符串结束符,故输出的长度都为 3 ( B)由于 p数组中没有字符串结束符,长度不能确定,但 q数组中字符串长度为3 ( C)由于 q数组中没有字符串结束符,长度不能确定,但 p数组中字符串长度为3 ( D)由于 p和 q数组中都没有字符串结束符,故长度都不能确定 37 若 fp是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值是 ( ) ( A) EOF ( B) 0 ( C)非零值 ( D) NULL 38 请读程序段: char str=“ABCD“,*p=str;printf(“%dn“,*(p+4);程序段的输出结果是 _。 ( A) 68 ( B) 0 ( C

11、)字符 D的地址 ( D)不确定的值 39 下面程序的输出是 _。 mare() int x=3 y=6,a=0; while(x+!=(y=1) 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 40 有以下程序: int f(int n) if(n =1)return 1; else return f(n-1)+1; main( ) int i,j=0; for(i=1;i #include mai

12、n() char a=“clanguage“,t; int i,j,k; k=strlen(a); for(i=0;i=a和 c1y)后面的 “x-”是一个表达式而不是一个语句,所以在编译时会产生错误信息。 14 【正确答案】 B 【试题解析】 满足表达 13式 (c 2&c 6)的整型变量 c的值是 2, 3, 4,5, 6。当变量 c的值不为 2, 4, 6时,其值只能为 3或 5,所以表达式 c! 3和 c! 5中至少有一个为真,即不论 c为何值,表达式 B) 都为 “真 ”。 15 【正确答案】 D 【试题解析 】 在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为

13、单链表或线性链表。在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点 (即前件或后件 )。 16 【正确答案】 C 【试题解析】 正确的赋值语句的左值不能为常量或表达式。选项 A)中右值的表达式错;选项 B)的左值为表达式,错误;选项 D)的表达式 x4=1+2=3,是先执行赋值表达式 1+2=3,这本身就是错误的, 1+2不是变量 ,不能赋值。 17 【正确答案】 D 【试题解析】 赋值运算符的结合方向是自右至左,所以表达式 a+a-=a*a先运算最右边的 a*a得 9,再运算 a=a

14、-9,即 a=3-9,所以此时 a的值由 3变成了 -6,最后运算 a=a+(-6),即 a-(-6)+(-6)=-12。 18 【正确答案】 B 【试题解析】 程序中的 printf()函数的输出格式部分只说明了一个 %d,而输出成员列表却有两个成员 a和 b,在这里将只输出第一个成员 a值为 666,所以, 4个选项中选项 B 符合题意。 19 【正确答案】 A 【试题解析】 本题 int型占 2个字节,即 16位, unsigned int 所能表示的数据范围是 0 (216(上标 )-1),即 0 65535。 20 【正确答案】 A 【试题解析】 C语言的字符常量是用单引号 (即撇号

15、 )括起来的一个字符。如a,A,?,$等都是字符常量。注意: a和 A是不同的字符常量。除了以上形式的字符常量外, C还允许用 个 “开头的字符序列。如 ddd表示 1到 3位八进制数所代表的字符,而八进制是由 0到 7这几个数字组成的,所以选项 A是不合法的字符常量。 21 【正确答案】 B 22 【正确答案】 B 【试题解析】 dowhile 循环的执行过程如下: 执行 do后面的循环体中的语句。 计算 while后一对圆括号中表达式的值。当值为非 0时,转去执行步骤 ;当值为 0时,执行步骤 。 退出 dowhile 循环。对于本题变量 i的初始值等于“0”,接着执行 do后面的循环体中

16、的语句,输出变量 i的值 0。再判断 while后面括号中表达式 i+的值,其值为 0,所以循环结束。此时变量 i的值经过自加已经变为 1,所以再次输出 i的值 “1”。 23 【正确答案】 A 【试题解析】 本题主要考查定义结构体的几个特点: 结构的定义明确了结构的组成形式,定义了一种 C语言中没有而用户需要的新的数据类型。与其他的数据类型不同,在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间; 结构体的成员名可以与程序中的变量名相同; 结构体中的成员可以单独使用,它的作用相当于普通变量; 结构体可以嵌套定义。 24 【正确答案】 C 【试题解析

17、】 选项 A)char *a; *a=“china”应改为 a=china;,选项 B)应该是char str6; D)项表述方法有错误。 25 【正确答案】 B 【试题解析】 字符串连接函数 strcat的调用形式如下: strcat(s1,s2)。此函数将s2所指字符串的内容连接到 s1所指的字符串后面,并自动覆盖 s1串末尾的尾标,函数返回 s1的地址值。 26 【正确答案】 A 【试题解析】 本题主要考查了字符输入输出函数 getchar和 putchar的使用。getchar函数用来从标准输入设备上读入一个字符 ,putchar(c)函数是将字符变量 c中的字符输出到标准输出设备上

18、,并 且字符可以看作整数参与运算。 27 【正确答案】 D 【试题解析】 本题考查链表结点的删除, q- next中存放的是 r所指结点的首地址,将 r所指结点的茵地址存于 p- next中,则实现删除 q所指点的功能,并保持链表连续, p 所指点与 r所指结点相连。 28 【正确答案】 D 【试题解析】 本题考查 while循环。当 i 20 时,进入 while循环体循环体内的 for循环实现的功能是 i 10=0,也就是说当 i值为 0或者 10的倍数的时候,跳出循环,执行 i+=11; a+=i;,若 i值不是 10的倍数 ,则一直执行 for循环 i-。 当 i=0时,执行 i+=1

19、1; a+=i;, i=11, a=11; 判断 i=10时,跳出 for循环,执行 i+=11; a+=i;, i=21, a=32; 判断 i=21 20,不符和题意,结束循环。 29 【正确答案】 D 【试题解析】 当从键盘输入字符,并且在格式说明中未制定宽度时,输入字符(包括空格符、回车符、 Tab符 )将按顺序赋予各输入项。也就是说,输入字符之间没有间隔符,所以选项 D是正确的。 30 【正确答案】 D 【试题解析】 C语言规定,对于二维数组,只可 以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式;二维数组的一般定义格式是:类型说明符数组名 常量表达式 常量表达

20、式 。 31 【正确答案】 A 【试题解析】 选项 A中 (!a=1)&(!b=0)(!2 =1)&(!b=0)(0=1)&(!b=0)0&(!b=0)0(& 右边表达式 (!b=0)被 “短路 ”):选项 B中 (a b)&!c|1(2 3)&!4|11&0|10|11 ;选项 C中a&b2&31 ;选项 Da|b+b)&(c-a)2|(b+b)&(c -a)1(| 右边表达式(b+b)&(c-a)被 “短路 ”)。所以本题选 A。 32 【正确答案】 B 【试题解析】 scanf是标准输入函数,在输入字符串 a阻时,实际的内容为“aaa、 0”, “0”是由系统自动加入的; gets的功能

21、是从终端读入一行字符,即一直读到换行符为止,并由系统自动以 “、 0”代替换行符。 33 【正确答案】 D 【试题解析】 先将两个数的和赋给变量 x,即 x=x+y;再执行 y=x-y,相当于y=(x+y)-y=x, x的值已经换 给了 y;最后执行 x=x-y,相当于 x=(x+y)-x=y,这样不通过第 3个变量就可以将两个变量的值互换。 34 【正确答案】 C 【试题解析】 函数调用的一般形式为: 函数名 (实参列表 ) 首先调用函数 funcl(0),输出 st0=h。 i值变为 2,并调用函数 func2(2),输出st2=l。 i值此时变为 4,又调用函数 funcl(4),输出

22、st4=0。此时 i值大于等于3,执行完毕。因此,输出结果为 hlo。注意:函数调用的一般格式以及函数的返回值。 35 【正确答案】 A 【试题解析】 左移 1位,相当于乘以 2,题中的 x的值是一个八进制,转换为 +进制数是 32,再乘以 2, x的值为 64,以 %。八进制形式输出,显示为 100。 36 【正确答案】 A 【试题解析】 在给 p和 q 数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组 p和 q都有 3个字符,所以长度均为 3。 37 【正确答案】 C 38 【正确答案】 B 【试题解析】 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标

23、志 0,故指向字符数组的指针 p 的 *(p+4)的值 为 0。由于 0的编码值就是 0,所以本题输出为 0。 39 【正确答案】 D 【试题解析】 注意的是 x+中 x值的引用时,这里应当是先引用,后自加,具体执行过程如下:第一次 while循环:条件为真,执行 a=a+1=1此时, x的值已为4,判断 y x不成立,继续抽行循环;第二次 while循环:条件为假,此时 x的值已为 5,退出 while循环,执行 printf。 40 【正确答案】 B 【试题解析】 第一次调用 f( )函数,返回值为 1,第二次调用 f( )函数,牵涉到函数的递归调用,返回 值为 2。 40 【试题解析】

24、数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。 40 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。 41 【正确答案】 数据结构 【试题解析】 结构化分析方法主要包括:面向数据流的结构化分析方法,面向数据结构的 Jackson 方法和面向数据结构的结构化数据系统开发方法。 42 【正确答案】 时间 【试题解析】 算法的复杂度主要指时间复杂度和空间复杂度。 43

25、【正确答案】 数据和操作 44 【正确答案】 9 【试题解析】 p 是一个指针变量,指向数组 a的元素 a3,所以b=p5=a5+3=a8=9。 45 【正确答案】 1 46 【正确答案】 0。 【试题解析】 第一个循环的作用是求 a字符串的长度,因此填 0。 47 【正确答案】 查询 48 【正确答案】 逻辑 关系 49 【正确答案】 aIaj 【试题解析】 本题中的嵌套的循环结构用在了数组元素的排序上。本题需要注意的一点是 :由于题目只要求出下标值为偶数的元素从小到大排序 ,所以内外层 for循环的条件变量变更条件都是 +=2,最后通过条件 aiaj对元素大小进行判断并交换。 50 【正确

26、答案】 11 【试题解析】 程序中结构体数组 data 首地址 (即 &data0)赋值给结构体指针变量p, +(p- x)表示先将 p 所指向的结构体变量的成员 x值如 1,然后将此 x(即data0x)输出。 51 【正确答案】 X Z|y z 【试题解析】 本题考查逻辑运算符和逻辑表达式。 x或 y中至少有一个小于 z,即 X Z或 y z,是 “或 ”的关系。 52 【正确答案】 xii xi-1j-1+xi-1j或 xi-1j+xi-1j-1 【试题解析】 在程序中有两重循环。在第一层 for循环中将每行的第 0列赋值为1,对角线上的元素赋值为 1,显然在第一个空白处应该填入对角线上

27、的元素即xii,在第二重循环中给每行其他元素赋值,而在每行中除了第 0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空白处应该填入 xi-1j-1+xi-1j。 53 【正确答案】 i+或 +i strj-1 strj-1=m 【试题解析】 字符中逆序存放的算法是:将字符串中的第 i个字符和第strlen(str)-i个字符交换。然后交换字符串中第 i+1个字符和第 (strlen(str)-i)-1个字符,故循环变量 i的值应改变,且步长为 1,所以 18处应填 i+;读程序可知,循环中通过中间变量 m交换字符串中的第 i个字符和第 strlen(str)-i 个字符,所以题中第一、二处应分别填写 strj-1、 strj-1=m。 54 【正确答案】 p=j xip lineMax(x)

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

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

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