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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)笔试模拟试卷 54及答案与解析 1 在计算机中,算法是指 ( ) ( A)加工方法 ( B)解题方案的准确而完整的描述 ( C)排序方法 ( D)查询方法 2 线性表若采用链式存储结构时,要求内存中可用存储单元的地址 ( ) ( A)必须是连续的 ( B)部分地址必须是连续的 ( C)一定是不连续的 ( D)连续不连续都可以 3 循环链表的主要优点是 ( ) ( A)不再需要头指针了 ( B)从表中任一结点出发都能访问到整个链表 ( C)在进行插入、删除运算时,能更好 的保证链表不断开 ( D)已知某个结点的位置后,能够容易的找到它的直接前件 4 以下不属于对象的基本特点的

2、是 ( ) ( A)分类性 ( B)多态性 ( C)继承性 ( D)封装性 5 开发软件时对提高开发人员工作效率至关重要的是 ( ) ( A)操作系统的资源管理功能 ( B)先进的软件开发工具和环境 ( C)程序人员的数量 ( D)计算机的并行处理能力 6 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( ) ( A)抽象和信息隐蔽 ( B)局部化和封装化 ( C)内聚性和耦合性 ( D)激活机制和控制方法 7 需求分析阶段的任务是确定 ( ) ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 8 数据库设计包括两个方面的设计内容,它

3、们是 ( ) ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 9 “年龄在 1825之间 ”这种约束是属于数据库当中的 ( ) ( A)原子性措施 ( B)一致性措施 ( C)完整性措施 ( D)安全性措施 10 为了合理组织数据,应遵循的设计原则是 ( ) ( A) “一事一地 ”的原则,即一个表描述一个实体或实体之间的一种联系 ( B)用外部关键字保证有关联的表之间的联系 ( C)表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段 ( D)以上各原则都包括 11 下列选项中属于 C语言构造类型的是

4、( ) ( A)指针类型 ( B)空类型 ( C)枚举类型 ( D)数组类型 12 表达式 (double)(20 3)的值为 ( ) ( A) 6 ( B) 6 ( C) 2 ( D) 3 13 设有定义: long x 123456L;,则以下能够正确输出变量 x值的语句是 ( ) ( A) printf(“x %dn“, x); ( B) printf(“x %ldn“, x); ( C) printf(“x %8dLn“, x); ( D) printf(“x %LDn“, x); 14 下列不正确的表达式是 ( ) ( A) a b c ( B) c-, +b, a+ 1 ( C)

5、a=c+b n-m k ( D) p+ 15 以下选项中非法的字符串常量是 ( ) ( B) X0011 ( C) t“ ( D) n007n 16 若有说明语句 “int a; float b;”,以下输入语句正确的是 ( ) ( A) scanf(“%f%f“, b+; printf(“a=%d, b=%dn“, a, B) ; 程序运行后的输出结果是 ( ) ( A) a 2, b 1 ( B) a 1, b=1 ( C) a=1, b=0 ( D) a=2, b=2 24 以下选项中,正确的 if-else语句是 ( ) ( A) if(x! 0) printf(“%d“, x) el

6、se printf(“%d“, -x); ( B) if(x! 0) x x+y; printf(“%d“, x); else printf(“%d“, -x); ( C) if(x!=0) x x+y; printf(“%d“, x); else printf(“%d“,-x); ( D) if(x!=0) x x+y; printf(“%d“, x); else printf(“%d“, -x); 25 有以下程序段 int n=0, p; do scanf(“%d“, 则以下正确的叙述是( ) ( A)两处的 *p含义相同,都说明给指针变量 P赋值 3 ( B)在 “double r 9

7、9, *p 7; *p=r; ”中,把 r的地址赋给了 p所指的存储单元 ( C)语句 “*p r; ”把变量 r的值赋给指针变量 p ( D)语句 “*p=r; ”把变量 r的值放回 P中 34 设有 char str10, 下列语句正确的是 ( ) ( A) scanf(“%s“0, 则程序运行后的输出结果是( ) ( A) 12345 ( B) 1234567 ( C) 12345678 ( D) 123456 38 以下叙述中错误的是 ( ) ( A)局部变量的定义可以在函数体和复合语句的内部 ( B)全局变量的定义可以在函数以外的任何部位 ( C)同一程序内局部变量和全局变量不允许同

8、名 ( D)函数的形参属于局部变量 39 以下叙述中错误的是 ( ) ( A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 ( B)在程序结束时,应当用 fclose函数关闭已 打开的文件 ( C)在利用 fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 ( D)不可以用 FILE定义指向二进制文件的文件指针 40 若 fp是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值是 ( ) ( A) EOF ( B) 0 ( C)非零值 ( D) NULL 41 若有如下程序: sub(p, n) int(*p)3, n; int i; fo

9、r(i=0; i =n; i+) printf(“%d“, *(*(p+i)+n); main() int s33 1, 2, 3, 4, 5, 6, 7, 8,9; sub(s, 2); 则程序运行后的输出结果是 ( ) ( A) 3 6 9 ( B) 2 4 8 ( C) 4 5 6 ( D) 7 8 9 42 有以下的程序 #include stdio.h void fun(char *fname, char *st) FILE *myf; int i; myf=fopen(fname, “w“); for(i=0; i strlen(st);i+)fputc(sti, myf); fc

10、lose(myf); main() fun(“test.t“, “new world“);fun(“test.t“, “hello, “); 程序执行后,文件 test t中的内容是 ( ) ( A) hello, ( B) new worldhello, ( C) new world ( D) hello, rld 43 若有以下说明和定义 fun(int *C) main() int(*A) () fun, *b(), w10,c; 在必要的赋值之后,对 fun函数的正确调用语句是 ( ) ( A) a a(w); ( B) (*a) (*b=c; main() cha, a, b; a

11、A; b B; sub3(putchar(b); a A; b=B; sub2(putchar(a); putchar(b); a A; b=B; sub1(a, b) ; putchar(a); putchar(b); 程序运行后的输出结果是( ) ( A) BABBAB ( B) ABBBBA ( C) BABABA ( D) BAABBA 45 有以下程序 void ss(char * s, char t) while(*s) if(*s=t)*s t-a+A; s+; main() char str1100 “abcddfefdbd“, c d: ss(str1, C) ; print

12、f(“%sn“, str1); 程序运行后的输出结果是 ( ) ( A) ABCDDEFEGDBD ( B) abcDDfefDbD ( C) abcAAfefAbA ( D) Abcddfefdbd 46 有如下说明 int a10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p=a; 则数值为9的表达式是 ( ) ( A) *p+9 ( B) *(p+8) ( C) *p+ 9 ( D) p+8 47 下面函数的功能是 ( ) sss(s, t) char *s, *t; while(*s)too; DATE max; 则下列语句的执行结果是( ) printf(“%d

13、“, stzeof(struct date)+sizeof(max); ( A) 25 ( B) 30 ( C) 18 ( D) 8 49 fwrite函数的一般调用形式是 ( ) ( A) fwrite(buffer, count, fp, size); ( B) fwrite(fp, size, count, buffer); ( C) fwrite(fp, count, size, buffer); ( D) fwrite(buffer, size, count, fp); 50 以下程序的输出结果是 ( ) struct HAR int x, y; struct HAR *p; h2;

14、 main() h0.x 1; h0.y=2; h1.x 3; h1.y 4; h0.p= 57 下列程序的输出结果是 16 00,请填空 : main() int a=9, b=2; float x=【 】 ,y=1 1, z; z=a/2+b*x/y+1/2; printf(“%5.2fn“,z); 58 用以下语句调用库函数 malloc,使字符指针 st指向具有 11个字节的动态存储空间,请填空。 st=(char*)【 】; 59 下列程序段的输出结果是【 】。 main() char b=“Hello, you“; b5=0; printf(“%sn“, B); 60 下列程序段的

15、输出结果是【 】。 int n=c; switch(n+) default:printf(“error“); break; case a: case A: case b: case B: printf(“good“);break; case c: caseC: printf(“pass“); case d: caseD: printf(“warn“); 61 以下程序通过函数指针 p调用函数 fun,请在填空栏内写出定义变量 p的语句。 void fun(int*x,int*y) main() int a=10,b=20; 【 】: p=fun; p( 63 下列程序的输出结果是【 】。 vo

16、id fun(int *n) while(*n)-); printf(“%d“, +(*n); main() int a=100; fun( 65 以下程序运行后的输出结果是【 】。 main() char a=“Language“,b=“Programe“; char, p1, *p2; int k; p1=a,p2=b; for(k=0; k =7; k+) if*(p1+k)=*(p2+k)printf(“%c“, *(p1+k); 66 下面程序把从终端读入的文本 (用 作为文本结束标志 )输出到一个名为 bi dat的新文件中,请填空。 #include “stdio h“ FILE

17、 *fp; main() char ch; if(fp=fopen( 【 】 )=NULL)exit(0); while(ch=getchar()!=)fputc(ch,fp); fclose(fp); 67 若变量 n中的值为 24,则 prnt函数共输出【 】行。 void prnt(int n, int aa) int i; for(i=1; i =n; i+) printf(“%6d“, aai); if!(i%5)printf(“n“); printf(“n“); 68 以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。 main() int i,a20,

18、sum,count; sum=count=【 】; for(i=0; i 20; i+)scanf(“%d“,【 】 ); for(i=0; i 20; i+) if(ai 0) count+: sum+=【 】; printf(“sum=%d,count=%dn“,sum.count); 国家二级( C语言)笔试模拟试卷 54答案与解析 1 【正确答案】 B 2 【正确答案】 D 3 【正 确答案】 B 4 【正确答案】 C 5 【正确答案】 B 6 【正确答案】 C 7 【正确答案】 D 8 【正确答案】 A 9 【正确答案】 C 10 【正确答案】 D 11 【正确答案】 D 12 【正

19、确答案】 B 13 【正确答案】 B 14 【正确答案】 C 15 【正确答案】 4 16 【正确答案】 C 17 【正确答案】 C 18 【正确答案】 A 19 【正确答案】 D 20 【正确答案】 D 21 【正确答案】 D 22 【正确答案】 A 23 【正确答案】 A 24 【正确答案】 B 25 【正确答案】 D 26 【正确答案】 B 27 【正确答案】 A 28 【正确答案】 C 29 【正确答案】 C 30 【正确答案】 C 31 【正确答案】 A 32 【正确答案】 D 33 【正确答案】 D 34 【正确答案】 D 35 【正确答案】 A 36 【正确答案】 C 37 【正

20、确答案】 D 38 【正确答案】 C 39 【正确答案】 D 40 【正 确答案】 C 41 【正确答案】 A 42 【正确答案】 A 43 【正确答案】 B 44 【正确答案】 A 45 【正确答案】 B 46 【正确答案】 B 47 【正确答案】 B 48 【正确答案】 B 49 【正确答案】 D 50 【正确答案】 D 51 【正确答案】 log2n 52 【正确答案】 存储结构 53 【正确答案】 对象类 54 【正确答案】 软件开发 55 【正确答案】 数据库管理系统 56 【正确答案】 2, 1 【试题 解析】 本题中,执行 a=a+b时, a=1, b=2, a=1+2=3,b=

21、a-b时, a=3,b=2, b=3-2=1; a=a-b时, a=3, b=1, a=3-1=2;因此,本题的输出是 2, 1 57 【正确答案】 6.6 【试题解析】 本题,已知结果 z=16.00,即 16.0=a/2+b*x/y+1/2,分别把 a、 b,代入,得到 16.0=9/2+2*x/1.1+1/2。因为 a=9, a是整型,所以 9/2的值在没有进行类型转换时,等于 4, 1/2同理,等于 0。代入求一元一次方程,很容易就可以得出 x=6.6。 58 【正确答案】 malloc(11) 【试题解析】 malloc函数的格式是 void*(或 char*)malloc(size

22、), size表示应分配的存储区,此题要分配 11字节的单元,把 11代入即可。 59 【正确答案】 Hello 【试题解析】 字符串中,数值 0或符号 /0表示字符串的结束。本题中, b5被赋了 0值,表明字符串 b的第六个字符就是结束标志。因此,只输出前五个字符,即 Hello。 60 【正确答案】 passwarn 【试题解析】 n+是在执行完其所在的语句后 再加 1,因此,在执行 case的时候, n的值依然为 c,执行 casec后面的语句,先打印出 “pass”;在执行完 casec后,未遇到 break跳出 switch,便接着执行下面的语句,又打印出 warn。所以此题输出结果

23、是 passwarn。 61 【正确答案】 void(*p)(); 【试题解析】 要定义 p为指向函数的指针变量,需写成 void(*p)();,注意 *p两侧的括弧不可以省略,表示 P先与 *结合,是指针变量,再与后面的 ()结合,表示此指针变量指向函数,这个函数无返回值 (同 fun()函数 )。 62 【正确答案】 24 【试题解析】 本题程序定义了一维数组 p,有七个数组元素,整型变量 i, j初值分别为 0,当 while的条件表达式 (i 7,如:当 i=0时, i 7为真, pi%2=11%2=1,表达式 (pi%2=1)的值为真,所以整个表达式 (i 7&pi%2=1)的值为真

24、,执行 j=j+pi+=0+11=11,i=1;,依此类推可以得出答案 24。 63 【正确答案】 0 【试题解析】 在函数 fun()中, while(*n)-)是先引用 *n的值,再做 (*n)-运算,所以循环结束时 *n的值为 0,再做 (*n)-运算后, *n的值为 -1;执行 +(*n)后, *n的值是 0。 64 【正确答案】 10 【试题解析】 整型指针最初被赋的值是数组 arr的头指针,即指向数组的第一个元素 30, p+后,指针指向数组的下一个元素,即 *p=arr1=25,在执行 *(p+3)时,则相当于 a1+3,即 10。因此,输出应为 100。 65 【正确答案】 g

25、ae 【试题解析】 本题定义了两个字符串 数组 a, b,字符型指针变量 p1和 p2,且分别指向字符串数组 a和 b,抽打 for循环,当 if(*(p1+k)=*(p2+k)条件为真,执行输出 *(p1+k)对应的字符。即当 k=0时, *(p1+k)对应的字符串数组 a中的字符L, *(p2+k)对应的字符串数组 b中字符 P,因此 if(*(p1+k)=*(p2+k)条件为假,不执行 printf语句,依此类推,将字符串数组 a和 b中对应位置上的字符 比较,如果对应位置上的字符相同,则输出该字符。 66 【正确答案】 dat“,“w“或 “bi.dat“, “w+“或 “bi.dat

26、“,“r+“ 【试题解析】 本题的考点是 fopen()函数,此函数的格式是 fopen(文件名,使用文件方式 ),题目的要求是将从键盘读入的文本写到文件中,因此选择的打开方式应该是 “w“(只写 )。或者是读写 “r+”或 “w+”。 67 【正确答案】 5 【试题解析】 本题的关键在于 if(!(i%5)printf(n),这句,即如果 i可被 5整除时,则换行。 i值为 24,可以被 5整除 4次,并余 4,因此, prnt函数共输出 5行,最后一行有 4个数。 68 【正确答案】 0 &ai ai 【试题解析】 本题要求从终端读入数据到数组中,统计其中正数的个数,井计算它们的和。程序中首先要对存放正数个数的变量 count及存放和值的变量 sum初始化为 0,所以第一空应填 0。接着要求从终端读入数据到数组中,可以通过scanf函数实现,因此第二空应填 &ai。最后通过 sum+=ai;语句累加正数 ai的值到 sum中,因此第三空应填 ai。

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