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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C语言机试(选择题)模拟试卷 39 及答案与解析 一、选择题 1 下列关于栈叙述正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先被删除 2 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)以上说法均不正确 3 某二叉树共有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在第 1层 )( )。 ( A

2、) 3 ( B) 4 ( C) 6 ( D) 7 4 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)学生成绩管理系统 ( B) C语言编译程序 ( C) UNIX 操作系统 ( D)数据库管理系统 5 结构化程序所要求的基本结构不包括 ( )。 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 6 下面描述中错误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) P

3、AD图是软件详细设计的表示工具 7 负责数据库中查询操作的数据库语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 8 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联系 ( D) m: n联系 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)并 ( C)交 ( D)差 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( )。 ( A) 369

4、 ( B) 369 ( C) 0.369 ( D)整数集合 1,2,3,4,5 11 以下叙述中错误的是 ( A) C程序在运行过程中所有计算都以二进制方式进行 ( B) C程序在运行过程中所有计算都以十进制方式进行 ( C)所有 C程序都需要编译链接无误后才能运行 ( D) C程序中字 符变量存放的是字符的 ASCII值 12 以下关于 C语言的叙述中正确的是 ( A) C语言的数值常量中夹带空格不影响常量值的正确表示 ( B) C语言中的变量可以在使用之前的任何位置进行定义 ( C)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 ( D) C语言中的注释不可以夹在变量名或关键

5、字的中间 13 以下不合法的字符常量是 ( A) ( B) “ ( C) 018 ( D) xcc 14 以下选项中正确的定义语句是 ( A) double, a, b; ( B) double a=b=7; ( C) double a; b; ( D) double a=7, b=7; 15 若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是 ( A) a=(b=4)=3; ( B) a=b=c+1; ( C) a=(b=4) +c; ( D) a=1+(b=c=4); 16 若有定义: int a,b; 通过语句 scanf(“%d;%d“, 能把整数 3赋给变

6、量 a, 5赋给变量 b的输入数据是 ( A) 3 5 ( B) 3,5 ( C) 3;5 ( D) 35 17 已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。以下不能将变量 c中的大写字母转换为对应小写字母的语句是 ( A) c=(A+c)%26-a ( B) c=c+32 ( C) c=c-A+a ( D) c=(c-A)%26 +a 18 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( A) (E 0|E 0) ( B) (E=0) ( C) (! E=0) ( D) (E!=0) 19 以下程序段中,与语句: k=a b?(

7、b c ? 1 : 0) : 0; 功能相同的是 ( A) if(a b)|(b c) k=1; else k=0; ( B) if(a b) else k=0; ( C) if(a =b) k=0; else if(b =c) k=1; ( D) if(a b)k=1; else if(b c)k=1; else k=0; 20 有以下程序 #include main() int a=1, b=2; for( ;a 8;a+) b+=a; a+=2; printf(“%d,%dn“,a,b); 程序运行后的输出结果是 ( A) 9,18 ( B) 8,11 ( C) 7,11 ( D) 10

8、,14 21 有以下程序 #include main() int i,j, m=55; for(i=1;i =3;i+) for(j=3; j =i; j+) m=m%j; printf(“%dn “, m); 程序的运行结果是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 22 有以下程序 #include main() int x=8; for( ; x 0; x- ) if(x%3) printf(“%d,“, x-); continue ; printf(“%d,“, -x); 程序的运行结果是 ( A) 7,4,2, ( B) 8,7,5,2, ( C) 9,7,6,4,

9、( D) 8,5,4,2, 23 以下叙述中错误的是 ( A) C程序必须由一个或一个以上的函数组成 ( B)函数调用可以作为一个独立的语句存在 ( C)若函数有返 回值,必须通过 return语句返回 ( D)函数形参的值也可以传回给对应的实参 24 有以下程序 #include main() int a=1, b=3, c=5; int *p1= *p =*p1*(*p2); printf(“%dn“,c); 执行后的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 25 有以下程序 #include void f(int *p,int *q); main() int m

10、=1,n=2,*r= f(r, printf(“%d,%d“,m,n); void f(int *p,int *q) p=p+1; *q=*q+1; 程序运行后的输出结果是 ( A) 2,3 ( B) 1,3 ( C) 1,4 ( D) 1,2 26 若有定义语句: int a23,*p3; 则以下语句中正确的是 ( A) p=a; ( B) p0=a; ( C) p0= ( D) p1= 27 以下程序中函数 f的功能是:当 flag为 1时,进行由小到大排序;当 flag为 0时,进行由大到小排序。 #include void f(int b, int n, int flag) int i

11、,j,t; for (i=0; i n-1; i+) for (j=i+1; j n; j+) if (flag ? bi bj : bi main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0; i 12; i+) csi+; for(i=1; i 5; i+) printf(“%d “,ci); printf(“n“); 程序的运行结果是 ( A) 2 3 4 4 ( B) 4 3 3 2 ( C) 1 2 3 4 ( D) 1 1 2 3 29 以下能正确定义字符串的语句是 ( A) char str=“x43“; ( B) char

12、 str=“0“; ( C) char str=; ( D) char str=064; 30 以下关于字符串的叙述中正确的是 ( A)空串比空格打头的字符串小 ( B)两个字符串中的字符个数相同时才能进行字符串大小的比较 ( C)可以用关系运算符对字符串的大小进行比较 ( D) C语言中有字符串类型的常量和变量 31 有以下程序 #include void fun( char *a, char *b ) while( *a=* ) a+; while( *b=*a ) b+;a+; main() char *s=“*a*b*“ , t80; fun(s,t); puts(t); 程序的运行结

13、果是 ( A) ab ( B) a*b ( C) *a*b ( D) a*b* 32 下列函数的功能是 void fun(char *a,char *b) while(*b=*a)!=0) a+; b+; ( A)将 a所指字符串赋给 b所指空间 ( B)使指针 b指向 a所指字符串 ( C)将 a所指字符串和 b所指字符串进行比较 ( D)检 查 a和 b所指字符串中是否有 0 33 有以下程序 #include int fun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p; main() printf(“%dn“,f

14、un(7); 执行后的输出结果是 ( A) 2 ( B) 3 ( C) 7 ( D) 0 34 有以下程序 #include int fun() static int x=1; x*=2; return x; main() int i,s=1; for(i=1;i =2;i+) s=fun(); printf(“%dn“,s); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 4 ( D) 8 35 以下结构体类型说明和变量定义中正确的是 ( A) struct REC ; int n; char c; ; REC t1,t2; ( B) typedef struct int n

15、; char c; REC; REC t1,t2; ( C) typedef struct REC; int n=0; char c=A; t1,t2; ( D) struct int n; char c; REC; REC t1,t2; 36 假定已建立以下链表结构,且指针 p和 q已指向如图所示的结点: 则以下选项中可将 q所指结点从链表中删除并释放该结点的语句组是 ( A) p- next=q- next; free(q); ( B) p=q- next; free(q); ( C) p=q; free(q); ( D) (*p).next=(*q).next; free(p); 37

16、有以下程序 #include #include struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=1001,“ZhangDa“,1098.0; f (A); printf(“%d,%s,%6.1fn“, a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行后的输出结果是 ( A) 1002, ZhangDa,1202.0 ( B) 1002,ChangRong,1202.0 (

17、C) 1001, ChangRong,1098.0 ( D) 1001,ZhangDa,1098.0 38 有以下程序 #include #define N5 #define MN+1 #define f(x) (x*M) main() int i1, i2; i1 = f(2) ; i2 = f(1+1) ; printf(“%d %dn“, i1, i2); 程序的运行结果是 ( A) 12; 7 ( B) 12; 12 ( C) 11; 11 ( D) 11; 7 39 有以下程序 #include main() int a=5,b=1,t; t=(a 2)|b; printf(“%dn

18、“,t); 程序运行后的输出结果是 ( A) 1 ( B) 11 ( C) 6 ( D) 21 40 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp) 的返回值为 ( A) 0 ( B) 0 ( C)非 0值 ( D) NULL 国家二级 C语言机试(选择题)模拟试卷 39 答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择 A)。 2 【正确答案】 C 【试题解析】 栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操 作

19、,所以选择 C)。 3 【正确答案】 D 【试题解析】 根据二叉树的基本性质 3:在任意一棵二叉树中,多为 0的叶子结点总比度为 2的结点多一个,所以本题中度为 2的结点为 1 1 0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共 7个结点共 7层,即度为 7。 4 【正确答案】 A 【试题解析】 软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B)、 C)、 D)都是系统软件,只有 A)是应用软件。 5 【正确 答案】 B 【试题解析】 1966年 Boehm和 Jacopini 证明了程序设计语言

20、仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。 6 【正确答案】 A 【试题解析】 详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以 A)错误。 7 【正确答案】 C 【试题解析】 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、 删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 8 【正确答案】 D 【试题解析】 因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授所以他

21、们之间是多对多的关系,可以表示为 m: n。 9 【正确答案】 D 【试题解析】 关系 T中的元组是关系 R中有而关系 S 中没有的元组的集合,即从关系 R中除去与关系 S 中相同元组后得到的关系 T。所以做的是差运算。 10 【正确答案】 B 【试题解析】 只有 B)选项 369可以用无符号整数来表示和存储。 A)选项 369有负号,选项 C)0.369是小数都不能用无符号整数类存储。选项 D)是一个整数集合得用数组来存储。 11 【正确答案】 B 【试题解析】 C程序在运行过程中的所有计算都以二进制方式进行 ,所以 B选项错误。 12 【正确答案】 D 【试题解析】 C语言的数值常量中不能

22、夹带空格 ,所以 A错误, C语言中的变量都必须先定义再使用 ,对变量的定义通常放在函数体内的前部 ,但也可以放在函数外部或复合语句的开头 ,不能随便放置 ,所以 B错误,在 C语言中运算符两侧的运算数据类型可以不一致 ,且结果与精度较 高的保持一致 ,所以 C错误。 13 【正确答案】 C 【试题解析】 转义字符中 ,八进制的表示形式为 ddd,但是八进制中不能包含数字8,所以 C选项不合法。 14 【正确答案】 D 【试题解析】 A选项中变量类型符 double后面不能有逗号, B 选项中变量 b不能先使用再定义 ,应该写成选项 D中的格式, C选项中变量 a后面应该是逗号而不是分号。 1

23、5 【正确答案】 A 【试题解析】 不能将变量或常量赋给一个表达式 ,所以 A选项中 (b=4)=3是错误的。 16 【正确答案】 C 【试 题解析】 输入数据的格式必须与 scanf()的格式控制串完全匹配 ,所以输入时必须在 3和 5之间输入 “;“。 17 【正确答案】 A 【试题解析】 根据题意可知 ,小写字母比与之对应的大写字母的 ASCII码大 32,A选项中字符 A加上 c表示的大写字符再对字母个数 26取余 ,本身这个表达式没有任何含义所以选择 A选项。 18 【正确答案】 B 【试题解析】 while语句中条件表达式 E 的值不为 0即为真 ,认为满足条件 ,所以与B 选项中

24、表达式的含义正好相反 ,选择 B 选项。 19 【正确答案】 B 【 试题解析】 条件表达式的含义是 ,如果表达式 1成立 ,结果为表达式 2的值 ,如果不成立为表达式 3的值,所以题干中 k 的值这样取值 :如果 ab 且 bc,k 值结果为1,如果 ab,且 bb 与 bc中只要有一个条件不成立 ,k的值就为 0,所以选择 B选项。 20 【正确答案】 D 【试题解析】 第一次循环 a的值为 1,满足条件 ,执行 b+=a,与 a+=2,则 b 的值变为3,a的值变为 3?执行 a+,a的值为 4,满足条件进入第二次循环 ,执行完循环体后 b的值为 7,a的值为 6,执 行 a+,a的值为

25、 7,满足条件进入第三次循环 ,执行完循环体后b 的值为 14,a的值为 9,执行 a+,a的值变为 10,所以选择 D选项。 21 【正确答案】 B 【试题解析】 第一次执行外循环 i的值为 1,满足条件 ,判断第一次内循环 ,j的值为3,不满足条件 ,跳出内循环,第二次执行外循环 i 的值为 2,同理也不满足内循环条件 ,跳出内循环,第三次执行外循环 i的值为 3,此时进入内循环判断条件时 ,条件成立 ,执行 m=m%j,m的值为 1,跳出内循环 ,跳出外循环打印 m的值。 22 【正确答案】 D 【试题解析】 coutinue的作用是跳出循环体中剩余的语句而进行下一次循环 ?第一次循环

26、x的值为 8,循环体中 if条件成立 ,打印 x的值 8后将 x减 1,再执行continue语句 ,跳出本次循环 ?第二次判断循环条件时 ,x的值变为 6,不满足循环体内if 条件 ,执行打印 - -x的操作 ,即打印 5后跳出循环 ?第三次判断循环条件时 x的值为4,满足循环体中 if条件 ,执行打印 x- -的操作 ,即打印 4,后将 x值减一 ,执行 continue语句 ,跳出本次循环 ?第四次判断循环条件时 x的为 2,满足循环体中 if条件 ,打印 x- -,即打印 2后将 x减一 ,执行 continue语句 ,跳出本次循环,在进行 for条件表达式中第三个表达式 x- -的操

27、作后 x的值为 0,不满足条件结束循环 ?所以打印结果为8,5,4,2。 23 【正确答案】 D 【试题解析】 形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。在 C语言中,实参向形参传送数据的方式是 “值传递 “。因此 D选项正确。 24 【正确答案】 C 【试题解析】 该程序中 int *p1=指定义三个指针变量,并赋值,即使 p1指向 a;p2指向 b;p指向 c。 *p=*p1*(*p2);该条语句是给 p 所指的存储单元 c赋值,就是 p1所指的存储单元的值,即 a的值,与 p2所指的存储单元 b的值相乘,也就是 c=a*b,等价于 c=

28、1*3=3;因此 C选项正确。 25 【正确答案】 B 【试题解析】 在 f(int *p,int*q)函数中,执行 p=p+1是将 p 所对应的地址加 1,而 *q=*q+1是将 q所指向的 n的地址所对应的值加 1,所以 m的得知所对应的值没有变,而 n的值则为 3了。因此 B选项正确。 26 【正确答案】 C 【试题解析】 A选项 错误,因为 p是指向一个指针数组,作为数组名,不能指向别的地方。 B选项错误,因为 p0是一个 int指针,也就是 int*;而 a是一个指向指针的指针 int*。 C选项正确,因为 p0是一个 int*, a12是 int, b+;,指针 a、 b分别指向下

29、 一个字符单元。再判断循环条件,如果成立,继续把指针 a所指向的字符赋给指针 b所在内存单元,直到遇到结束标识为止。因此 A选项正确。 33 【正确答案】 A 【试题解析】 因为 fun(int x)是一个递归函数,所以主函数中 fun(7)经过 3次递归调用,其过程可以描述为 “fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5-(3-3)=7-5=2“,所以最后输出结果为 2。因此 A选项正确。 34 【正确答案】 C 【试题解析】 fun 函数中的 x为 静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调

30、用 fun函数, x的定义只在第一次调用时有效,从第二次调用开始, x的定义相当于不存在,直接使用 x的值。主函数中调用两次 fun 函数:第一次调用: x=1,x=x*2=2,s=2;第二次调用:(直接用上次 x的值) x=x*2=4,s=4。因此 C选项正确。 35 【正确答案】 B 【试题解析】 本题考查结构体的相关知识,选项 A中 struct REC后面不能有分号, C选项中 typedef struct REC 的后面也不能 有分号,选项 D中 REC已经是结构体变量,不能当做结构体类型来使用。 36 【正确答案】 A 【试题解析】 本题考查删除链表中的节点操作,其方法是将要删除节

31、点的上个节点的下个节点指向要删除节点的下个节点,然后释放该要删除节点,所以选项 A正确。 37 【正确答案】 D 【试题解析】 本题考查结构体的相关操作以及传值、传址的区别,该题中调用 f函数后,会生成参数 a的一个副本,而不会改变 a的值,所以 a值维持原值,选项 D正确。 38 【正确答案】 D 【试题解析】 本题考查宏定义的用法,宏 定义只是做个简单的替换,所以本题中执行 f(2)=(2*N+1)=11,执行 f(1+1)=(1+1*N+1)=7。选项 D正确。 39 【正确答案】 D 【试题解析】 本题考查位运算,以及按位或操作,将 a左移一位相当于是将 a乘以了 4,所以 a2等于 20,二进制表示为 00010100,与 b 按位或得到 00010101,即21,所以选项 D正确。 40 【正确答案】 C 【试题解析】 本题考查文件的定位, feof 函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符), eof函数值为非零值, 否则为 0,所以选项 C正确。

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