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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)机试模拟试卷 133及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 2 下列叙述中正确的是 ( )。 ( A)有一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 3 下列关于二叉树的叙述中,正确的是 ( )。 ( A) 叶子结点总是比度为 2的结点少一个 ( B)叶子结点总是比度为 2的结点多一个 ( C)叶子结点数是度为 2

2、的结点数的两倍 ( D)度为 2的结点数是度为 1的结点数的两倍 4 软件生命周期中的活动不包括 ( )。 ( A)市场调研 ( B)需求分析 ( C)软件测试 ( D)软件维护 5 某系统总体结构图如下图所示: 该系统总体结构图的深度是 ( )。 ( A) 7 ( B) 6 ( C) 3 ( D) 2 6 程序调试的任务是 ( )。 ( A)设计测试用例 ( B)验证程序的正确性 ( C)发现程序中的 错误 ( D)诊断和改正程序中的错误 7 下列关于数据库设计的叙述中,正确的是 ( )。 ( A)在需求分析阶段建立数据字典 ( B)在概念设计阶段建立数据字典 ( C)在逻辑设计阶段建立数据

3、字典 ( D)在物理设计阶段建立数据字典 8 数据库系统的三级模式不包括 ( )。 ( A)概念模式 ( B)内模式 ( C)外模式 ( D)数据模式 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)投影 ( D)并 10 下列选项中 属于面向对象设计方法主要特征的是 ( )。 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 11 以下叙述中错误的是 ( )。 ( A)算法正确的程序可以有零个输入 ( B)算法正确的程序最终一定会结束 ( C)算法正确的程序可以有零个输出 ( D)算法正确的程序对于

4、相同的输入一定有相同的结果 12 以下叙述中正确的是 ( )。 ( A) C语句必须在一行内写完 ( B) C程序中的每一行只能写一条语句 ( C) C语言程序中的注释必须与语句写在同一行 ( D)简单 C语句必须 以分号结束 13 以下选项中关于 C语言常量的叙述错误的是 ( )。 ( A)经常被使用的变量可以定义成常量 ( B)常量分为整型常量、实型常量、字符常量和字符串常量 ( C)常量可分为数值型常量和非数值型常量 ( D)所谓常量,是指在程序运行过程中,其值不能被改变的量 14 以下选项中,不合法的 C语言用户标识符是 ( )。 ( A) ab ( B) AaBc ( C) a一一

5、b ( D) _1 15 若变量均已正确定义并赋值,以下合法的 C语言赋值语句是 ( )。 ( A) x=y=5; ( B) x=n 2 5; ( C) x+n=i; ( D) x=5=4+l: 16 设有定义: int a; float b; 执行 scanf(“ 2d f”, &a, &b); 语句时,若从键盘输入 876 543 0 则 a和 b的值分别是 ( )。 ( A) 87和 6 0 ( B) 876和 543 0 ( C) 87和 543 0 ( D) 76和 543 0 17 有以下定义语句,编译时会出现编译错误的是 ( )。 ( A) char a= x2d; ( B) c

6、har a= n; ( C) char a=a; ( D) char a=“aa”; 18 当变量 c的值不为 2、 4、 6时,值也为 ”真 ”的表达式是 ( )。 ( A) (c=2 c=2&c=2&c=0)y=sqrt(x); if(x=0)y=sqrt(x); else y=sqrt(一 x); ( C) y=sqrt(x); ( D) if(x main() int y=10; while(y一一 ); prinff(“y= d n”, y); 程序执行后的输出结果是 ( )。 ( A) y=一 1 ( B) y=0 ( C) y=1 ( D) while构成无限循环 21 有以下程

7、序: #include main() int i; for(i=1; i main() int s; scanf(“ d”, &s); while(s0) switch(s) case 1: prinff(“ d”, s+5); case 2: printf(“ d”, s+4); break; case 3: printf(“ d”, s+3); default: printf(“ d”, s+1); break; scanf(“ d”, &s); 运 行时,若输入 1 2 3 4 5 0,则输出结果是 ( )。 ( A) 66656 ( B) 6566456 ( C) 66666 ( D)

8、 6666656 23 以下叙述中错误的是 ( )。 ( A)用户定义的函数中可以没有 return语句 ( B)用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值 ( C)用户定义的函数中若没有 return语句,则应当定义函数为 void类型 ( D)函数的 return语句中可以没有表达式 24 有以下程序: #include void fun(char*c, intd) *c=*c+1: d=d+1: printf(“ e, e, ”, *c, d); main() char b=a, a=A; fun(&b, a); printf(“ c, c n”, b,

9、 a); 程序运行后的输出结果是 ( )。 ( A) b, B, b, A ( B) b, B, B, A ( C) a, B, B, a ( D) a, B, a, B 25 下列 选项中,能正确定义数组的语句是 ( )。 ( A) int Bum0 2008; ( B) int num; ( C) int N=2008; int nunN; ( D) #define N 2008 int RumN; 26 以下函数实现按每行 8个输出 w所指数组中的数据: #include void fun(int*w, int n) int i; for(i=0; i void fun(char*c)

10、while(*c) if(*c=a&*c,则程序运行后的输出结果是( )。 ( A) hello be, ijing ( B) Hello Beijing ( C) HELLO BEIJING ( D) hELLO Beijing 28 有以下程序: #include main() int a44=1, 4, 3, 2, 8, 6, 5, 7, 3, 7, 2, 5, 4, 8, 6, 1; int i, j, k, t; for(i=0; iaki) t=aji; aji=aki; aki=t; *按列排序 * for(i=0; i #include main() char a20=“ABC

11、D 0EFG 0”, b=“IJK”; streat(a, b); printf(“ s n”, a); 程序运行后的输出结果是 ( )。 ( A) IJK ( B) ABCDE OFG OIJK ( C) ABCDIJK ( D) EFGIJK 30 有以下程序段: char name20; int nun; scanf(“name= s Bum= d”, name, &hum); 当执行上述程序段,并从键盘输入: name=Lili num=1001后, name的值为( )。 ( A) name=Lili ntlm=1001 ( B) name=Lili ( C) Lili nHm= (

12、 D) Lili 31 有以下程序: #include main() char ch=“uvwxyz”, *pe; pc=ch; printf(“ c n”, *(pc+5); 程序运行后的输出结果是 ( )。 ( A) z ( B) 0 ( C)元素 ch5的地址 ( D)字符 y的地址 32 有以下程序: #include main() char S=“012xy“; int i, n=0; for(i=0; Si!=0; i+) if(si=a&si int fun(int n) if(n=1) return 1; else return(n+fun(n一 1); main() int

13、x; seanf(“ d”, &x); X=fun(x); prinff(“ d n”, x); 执行程序时,给变量 x输入 10,程序运行后的输出结果是 ( )。 ( A) 55 ( B) 54 ( C) 65 ( D) 45 34 有以下程序: #include int f(int m) static int n=0; n+=m: return n; main() int n=0; printf(“ d, ”, f(+n); prinff(“ d n”, f(n+); 程序运行后的输出结果是 ( )。 ( A) 3, 3 ( B) 1, 1 ( C) 2, 3 ( D) 1, 2 35 设

14、有以下 语句: typedef struet 1T char c; int a4; CIN; 则下面叙述中正确的是 ( ) ( A) CIN是 struct TT类型的变量 ( B) TT是 struct类型的变量 ( C)可以用 TT定义结构体变量 ( D)可以用 CIN定义结构体变量 36 有以下程序: #include struet ord int x, y; dt2=1, 2, 3, 4; main() struet ord*P=dt; prinff(“ d, ”, +(P一 x); prinff(“ d n”, +(P一 y); 程序运行后的输出结果是 ( )。 ( A) 3, 4

15、( B) 4, 1 ( C) 2, 3 ( D) 1, 2 37 有以下程序: #include #define SUB(a)(a)一 (a) main() int a=2, b=3, c=5, d; d=SUB(a+b)*c; prinff(“ d n”, d); 程序运行后的输出结果是 ( )。 ( A) 0 ( B)一 12 ( C)一 20 ( D) 10 38 有以下程序: #include main() int a: 2, b; b=a main() FILE*fp; int a10=1, 2, 3, 0, 0, i; fp=fopen(“d2 dat”, ”wb”); fwrit

16、e,(a, sizeof(int), 5, fp); fwrite(a, sized(int), 5, fp); fclose(fp); fp=fopen(“d2 dat”, “rb”); fread(a, sizeof(int), 10, fp); felose(fp); for(i=0; i #include #define N 5 #define M 8 int fun(char(*ss)M, char*t) int i; *found* for(i=0; i typedef struct list int data; struct list*next: LIST; int fun(LI

17、ST*h) LIST*P: *found* int t; P=h; *found* while(*p) *found* t=t+P data: P=(*P) next: return t: main() LIST a, b, c, *h; A)data=34; b data=51; c data=87; c next=0: h=&a; A)next=&b; b next: &c; printf(“总和 = d n”, fun(h); 四、程序设计题 43 编写函数 fun,其功能是:求 ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串 123412132,输入字符为 1,则输出

18、 3。 注意:部分源程序在文件 PROG1 C中。 清勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include #define M 81 int fun(char*ss, charc) main() char aM, ch; void NONO(); printf(“ nPlease enter a string: ”); gets(a); printf(“ nPlease enter a char: ”); ch=getchar(); printf(“ nThe number of the char is: d n”,

19、 fun(a, ch); NONO(); void NONO() *本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * int i; FILE*rf, *wf; char aM, hM, ch; rf=fopen(“in dat”, “r”); wf: fopen(“out dat”, “w”); for(i=0; i=2&c”后,将字符串 Lili赋给字符数组 name,整数 1001赋给变量 num。因此 D选项正确。 31 【正确答案】 A 【试题解析】 语句 pc=ch;使得指针变量指向字符数组 ch的首地址,即指向字符 u。则 pc+5指向的是字符向后移动

20、5位,指向字符 z。所以输出的 *pc+5的值即为 z。因此 A选项正确。 32 【正确答案】 B 【试题解析】 程序首先给字符数组 s赋值为 “012xy”, for循环语句的功能是遍历字符串,通过 if条件语句对字符串中的小写字母计数,在符串中小写字母为 2个,即 n=2。因此 B选项正确。 33 【正确答案】 A 【试题解析】 该 程序考察的是函数的递归调用。在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+8+9+10=55 。因此 A选项正确。 34 【正确答案】 D 【试题解析】 该题目中首先区别 +n和 n+,第一次调用 f函数时,

21、将 +n(n自增 1后再参与运算 )作为参数进行传递,此时变量 m的值为 1,执行 n+=m;后,n=1,将 1返回主函数,并输出。第二次调用 f函数时,将 n+(n参与运算后再自增 1)作为参数进行传递,此时变量 m的值为 1,执行语句 n+=m;,由于 n是静态存 储变量,因此 n=2,将 2返回主函数并输出。因此 D选项正确。 35 【正确答案】 D 【试题解析】 本题考查 typedef重新声明一种结构体类型,其中 CIN为结构体类型名,而不是结构体变量,所以 D选项正确。 36 【正确答案】 C 【试题解析】 本题考查结构体数组的相关操作, dt为结构体数组,那么指针 p指向了结构体

22、数组的一个元素,所以 p一 x为 1, p一 y为 2,结果为 2, 3。选项 C正确。 37 【正确答案】 C 【试题解析】 本题考查宏定义,宏定义只是做简单的替换,所以本题中SUB(a+b); *c=(a+b)一 (a+b)*c=一 20,所以答案为 C选项。 38 【正确答案】 D 【试题解析】 本题考查位运算符,题目中将 a向左移两位,左移两位表示乘以4,所以答案为 8,选项 D正确。 39 【正确答案】 C 【试题解析】 本题考查文件的概念,文件是由数据序列组成,可以构成二进制文件或文本文件,所以答案为 C选项。 40 【正确答案】 D 【试题解析】 本题考查文件操作函数,两次 fw

23、rite后, fp文件中已经写入 1,2, 3, 0, 0, 1, 2, 3, 0, 0然后将文件 fp中的内容重新写入数组 a中,最后输出 a为 1, 2, 3, 0, 0, 1, 2, 3, 0, 0,所以选项 D正确。 二、程序填空题 41 【正确答案】 (1)N (2)i (3) 一 1 【试题解析】 填空 1:变量 i是循环变量,它的取值范围是在 0到 N之间。 填空 2:如果 ss所指字符串数组中的字符串和 t所指字符串相同的话,则返回其下标值,即 return i;否则返回一 1,即 return1;。 填空 3:在 main函数中输出最后结果,判断函数返回值 n,如果 n=一

24、1,说明没有找到,否则输出 n。 三、程序修改题 42 【正确答案】 (1)int t=0; (2)while(p)或 while(p!=NULL) (3)t=t+p一 data。 【试题解析】 (1)题目中变量:是用来存放累加和的,因此必须初始化。 (2)题目中 *p是结构体,不能转化为 bool型。 (3)p是指针,只能用 p一 ,不能用 p。 四、程序设计题 43 【正确答案】 int fun(char*ss, char c) int i=0: for(; *ss!= 0; ss+) if(*ss=c) i+ *求出 ss所指字符串中指定字符的个数 * return i: 【试题解析】 本题考查: for循环语句遍历字符串,并通过 if条件语句,判断字符串是否结束。 从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是 0,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。

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