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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)笔试模拟试卷 66及答案与解析 1 设有栈 S和队列 Q,其初始状态为空,元素 a1、 a2、 a3、 a4、 a5、 a6依次入栈,出栈的元素进入队列 Q,若 6个元素出队列的顺序是 a2、 a4、 a3、 a6、 a5、a1,则栈的容量至少是 _。 ( A) 6 ( B) 4 ( C) 3 ( D) 2 2 一个存储结点存放一个 _。 ( A)数据项 ( B)数据元素 ( C)数据结构 ( D)数据类型 3 在数据结构中,从逻辑结构上看可以分成 _。 ( A)动态结构和静态结构 ( B)线 性结构和非线性结构 ( C)内部结构和外部结构 ( D)紧凑结构和非紧凑结构 4

2、 若待排序序列中元素非常多,而且它们的排列是完全无序的,那么最好选用下列排序方法中的 _。 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)快速排序 5 软件文档不仅是软件开发各阶段的重要依据,而且也影响软件的 _。 ( A)可维护性 ( B)可移植性 ( C)可扩展性 ( D)可用性 6 设有系和学生 2个实体集,一个学生只能在一个系里注册,而一个系有很多学生。系和学生的关系是 _。 ( A)多对多联系 ( B)多对一联系 ( C)一对多联系 ( D)一对一联系 7 下列程序的输出结果是 _。 main() int n; (n=6*4, n+6), n*2; print

3、f(“n=%dn“, n); ( A) 22 ( B) 23 ( C) 24 ( D) 25 8 下列描述中,错误的一条是 _。 ( A) C语言中,二维数组或多维数组的排列顺序是按行存放的 ( B)赋值表达式 b12=a23/2*a00是正确的 ( C)表达式 3=4 2!=5 2的值为 0 ( D)数组名后的方括弧内可以为常量表达式,也可以为变量 9 下列程序 (注意: ch0在低字节, ch1在高字节 )的输出结果是 _。 #include stdio.h union pw int i; char ch2; a; main () a.ch0=13; a.ch1=0; printf(“%d

4、n“, a i); ( A) 13 ( B) 14 ( C) 208 ( D) 209 10 下列程序的输出结果是 _。 #include stdio.h main() int i, j, k, a=3,b=2; i=(-a=b+)?-a; +b; j=a+; k=b; printf(“i=%d, j=%d, k=%dn“,i, j, k); ( A) i=2, j=1, k=3 ( B) i=1, j=1, k=2 ( C) i=4, j=2,k=4 ( D) i=1, j=1, k=3 11 设有如下的变量定义,以下符合 C语言语法的表达式是 _。 int i=8, k,a, b; uns

5、igned long w=5; double x=1, 42, y=5.2; ( A) a+=a-=(b=4)*(a=3); ( B) x%(-3); ( C) a=a*3=2; ( D) y=float(i); 12 设语句 int a=3;,当执行了以下语句后,变量 a的值是 _。 a+=a-=a*a; ( A) 3 ( B) 0 ( C) 9 ( D) -12 13 C语言中运算对象必须是整型的运算符是 _。 ( A) %= ( B) / ( C) = ( D) = 14 若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后, a的值是_。 ( A) -3 ( B)

6、9 ( C) -12 ( D) 6 15 下列程序的运行结果为 _。 main() int n; for (n=1; n =10; n+) if(n%3=0) continue; printf(“%d“, n); ( A) 12457810 ( B) 369 ( C) 12 ( D) 12345678910 16 用语句 scanf(“%c%c%c“, ,则 x数组的行数为 _。 ( A) 2 ( B) 3 ( C) 4 ( D)无确定值 24 以下能正确进行字符串赋值操作的是 _。 ( A) char *sss;*sss=“hello!“; ( B) char *sss;sss=“hello

7、!“; ( C) char sss8;sss=“hello!“; ( D) char sss8;*sss=“hello!“; 25 若调用一个函数,且此函数中没有 return语句,则以下正确的说法是 _。 ( A)该函数没有返回值 ( B)该函数返回若干个系统默认值 ( C)该函数能返回一个用户所希望的函数值 ( D)该函数返回一个不确定的值 26 若定义 static int a22=1,2,3,4,则 a数组的各数组元素分别为 _。 ( A) a00=1,a01=2,a10=3,a11=4 ( B) a00=1,at01=3,a10=2,a11=4 ( C) a00=4,a01=3,a1

8、0=2,a11=1 ( D) a00=4,a01=2,a10=3,a11=1 27 下列语句中,不正确的是 _。 ( A) static char a=“Jack“; ( B) static char a=“Jack“; ( C) printf(“%s“,a0); ( D) scanf(“%s“,a); 28 给出以下定义: char x=“abcdefg“; char y=a,b,c,d,e,f,g;则正确的叙述为 _。 ( A)数组 x和数组 y等价 ( B)数组 x和数组 y的长度相同 ( C)数组 x的长度大于数组 y的长度 ( D)数组 x的长度小于数组 y的长度 29 已知 p为指

9、针变量, a为数组名, i为整型变量,下列语句中,不正确的是_。 ( A) p= ( B) p=a; ( C) p= ( D) p=10; 30 在 C程序中,可把整型数以二进制形式存放到文件中的函数是 _。 ( A) fprintf 函数 ( B) fread 函数 ( C) fwrite 函数 ( D) fputc 函数 31 以下程序段运行时 _。 char x10,y=“China“; x=y; printf(“%s“,x); ( A)将输出 China ( B)将输出 Ch ( C)将输出 Chi ( D)编译出错 32 下列程序段的输出结果是 _。 void fun(int *x,

10、int *y) printf(“%d %d“,*x,*y);*x=3;*y=4; main() int x=1,y=2; fun( printf(“%d %d“,x,y); ( A) 2 1 4 3 ( B) 1 2 1 2 ( C) 1 2 3 4 ( D) 2 1 1 2 33 以下叙述中不正确的是 _。 ( A) C程序中的预处理命令行都以 #号开始 ( B)宏定义中的宏名可用大写字母或小写字母 ( C)宏替换不占用运行时间,只占用编译时间 ( D)使用带参数的宏时,参数的类型应与宏定义时的一致 34 设有语句: “int a=1,b=2,*p1=”,则使指针 p1指向变量 b的赋值语句

11、是 _。 ( A) p1=*p2 ( B) *p1=p2 ( C) p1=p2 ( D) *p1=*p2 35 以下程序的输出结果是 _。 #include stdio.h main() int k=4,m=1,p; p=func(k,m); printf(“%d,“,p); p=func(k,m); printf(“%dn“,p); func(a,b) int a,b; static int m=0,i=2; i+=m+1;m=i+a+b;return(m); ( A) 8, 17 ( B) 8, 16 ( C) 8, 20 ( D) 8, 8 36 若有以下定义和语句: int a10=1

12、,2,3,4,5,6,7,8,9,10,*p=a;则不能表示 a数组元素的表达式是 _。 ( A) *p ( B) a10 ( C) *a ( D) ap-a 37 以下程序的输出结果是 _。 #define TIMES(X) X*X main() int a=16,k=2,m=1; a/=TIMES (k+m)/TIMES(k+m); printf(“dn“,a); ( A) 16 ( B) 2 ( C) 9 ( D) 1 38 下列程序的输出结果是 _。 main() char a10=1,2,3,4,5,6,7,8,9,0,*p=a+5; printf(“%d“,*-p); ( A)非法

13、 ( B) a4的地址 ( C) 5 ( D) 7 39 以下程序的运行结果为 _。 main() int x,*p,*q; x=10;p=q= printf(“%dn“,*q); ( A) 10 ( B) 9 ( C) 8 ( D) 11 40 下列定义不正确的有 _。 ( A) #define PI 3.141592 ( B) #define S 345; ( C) int max(x, y); int x,y; ( D) int max(int,int); 41 设有结构体类型定义: struct try int one; float two; *str;若要动态开辟一 个结构单元,使指

14、针 str指向其首地址,正确的语句是 _。 ( A) str=(try*)malloc(sizeof(try); ( B) *str=(struct try*)malloc(sizeof(struct try); ( C) str=(strucy try*)malloc(sizeof(struct try); ( D) str=(struc try)malloc(sizeof(struct try); 42 以下对结构体变量 mix中成员 x的正确引用是 _。 struct int t;int x; mix,*p; p= ( A) (*p).mix.x ( B) (*p).x ( C) p-

15、mix.x ( D) p.mix.x 43 设有以下语句: struct stint n;struct st*next; static struct st a3=5, p=则表达式的值是 6的为 _。 ( A) p+- n ( B) p- n+ ( C) (*p).n+ ( D) +p- n 44 以下程序的输出结果是 _。 long fun(int n) long s; if(n=1|n=2) s=2; else s=n-fun(n-1); return s; main() printf(“%1dn“,fun(3); ( A) 1 ( B) 2 ( C) 3 ( D) 4 45 以下对 C语

16、言函数的有关描述中,正确的是 _。 ( A)在 C程序中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 ( B)函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值,否则不能使用函数 ( D) C程序中有调用关系的所有函数必须放在同一个源程序文件中 46 以下程序的输出结果是 _。 fun(int *s,int p23) *s=p11; main() int a23=1,3,5,7,9,11,*p; p=(int *)malloc(sizeof(int); fun( printf(“%dn“,*p); ( A) 1 ( B) 7 ( C) 9 ( D) 11 47 若有以

17、下定义和语句,则对 w数组元素非法引用的是 _。 int w23,(*pw)3;pw=w; ( A) w0+2 ( B) *(pw+1)2 ( C) pw00 ( D) *(pw1+2) 48 设有以下定义: char *st=“how are you“;下列程序段中正确 的是 _。 ( A) char a11,*p;strcpy(p=a+1, ( B) char a11;strcpy(+a,st); ( C) char a11;strcpy(a,st); ( D) char a,*p;srtcpy(p= 49 以下函数返回 a所指数组中最小的值所在的下标值: fun(int *a,int n

18、) int i,j=0,p; p=j; for(i=j;i n;i+) If(ai ap) _, return(p); 在横线处应填入的是 _。 ( A) i=p ( B) ap=ai ( C) p=j ( D) p=i 50 下面程序的输出结果是 _。 main() int a=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%dn“,*(p+9); ( A) 0 ( B) 1 ( C) 10 ( D) 9 51 一张 3.5英寸软盘大约能存储 140万个 ASC 字符,若存放汉字大约能存放【 】个。 52 一个算法的空间复杂度是指该算法所耗费的【 】。 53 当所

19、有结点的权值都相等时,用这些结点构造的二叉排序树是【 】。 54 软件危机的核心问题是【 】和软件开发效率低。 55 栈满时,再作入栈操作会产生【 】,栈空时,删除操作会产生【 】。 56 程序的运行结果为【 】。 main() char c1=a,c2=b,c3=c; printf(“a%cb%ctc%cn“,c1,c2,c3); 57 执行下面程序段后, k值是【 】。 k=1;n=263; do k*=n%10;n/=10; while(n); 58 函数 mystrlen(char *s)的功能是求字符串 s的长度,请填空。 mystrlen(char *s) char *t: t=s

20、; while(【 】 )t+; return(t-s); 59 在对文件进行操作的过程 中,若要求文件的位置回到文件的开头,应当调用的函数是【 】函数。 60 设有以下定义的语句: int a32=10,20,30,40,50,60,(*p)2; p=a; 则 *(*(P+2)+1)值为【 】。 61 下列程序的输出结果是【 】。 void fun(int *n) while(*n) printf(“%d“,(*n)-); main() int a=10; fun( 62 下面程序是把从终端读入的 20个字符作为字符串放在字符数组中,然后利用指针变量输出上述字符串,请填空。 #include

21、 stdio.h main() int i;char s21,*p; for(i=0;i 20;i+) si=getchar(); si=【 】 ; p=【 】 ; while(*p) putchar(【 】 ); 63 阅读程序,填空补充程序。 #define【 】 30 main() 【 】 ; num=10; total=num*PRICE; printf(“total=%d,num=%dn“,【 】 ); 64 funl函数的调用语句为 funl(。它将 3个整数按由大到小的 JI匣序调整后依次放入 a, b, c三个变量中, a中放最大数,请填空。 void fun2(int *x,

22、int *y) int t; t=*x;*x;*y;*y=t; void funl(int *pa,int *pb,int *pc) if(*pc *pb) fun2(【 】 ); if(*pa *pc) fun2(【 】 ); if(*pa *pb) fun2(【 】 ); 国家二级( C语言)笔试模拟试卷 66答案与解析 1 【正确答案】 C 2 【正确答案】 B 3 【正确答案】 B 4 【正确答案】 D 5 【正确答案】 A 6 【正确答案】 C 7 【正确答案】 C 8 【正确答案】 D 9 【正确答案】 A 10 【正确答案】 D 11 【正确答案】 A 12 【正确答案】 B 1

23、3 【正确答案】 A 14 【正确答案】 C 15 【正确答案】 A 16 【正确答案】 C 17 【正确答案】 A 18 【正确答案】 A 19 【正确答案】 C 20 【正确答案】 B 21 【正确答案】 B 22 【正确答案】 C 【试题解析】 每一个 C语言程序都是由若干个函数构成的。 23 【正确答案】 B 【试 题解析】 计算行数的方法是用数组的元素个数除以列数,尾数为小数直接进一位。 24 【正确答案】 B 25 【正确答案】 D 【试题解析】 函数体可以没有 return语句,程序执行到末尾为 “”时结束,然后返回调用函数,但没有确定的函数值返回。 26 【正确答案】 A 【试

24、题解析】 C语言中二维数组数组元素的排列顺序是按行依次存放的,所以 A是正确选项。 27 【正确答案】 C 【试题解析】 当用 %s格式符输出字符串时, printf中的输出项是字符数组名,不是数组元素名。 28 【正确答案】 C 【试题解析】 在 C语言中,字符串以 0作为结束符,因此数组 x的长度为7+1=8,而数组 y的长度等于 7。 29 【正确答案】 D 【试题解析】 不能把一个整数赋给指针变量,只能将变量已分配的地址赋给指针变量。 30 【正确答案】 C 【试题解析】 fprintf是格式文件格式化输出函数, fread是读文件, fputc输出单个字符到文件。只有 fwrite可

25、以通过参数来设置以二进制形式写文件。 31 【正确答案】 D 【试题解析】 数组名可以认为是一 个存放地址值的指针变量,这个指针变量中的地址值不可改变。因此,可以认为数组名是一个地址常量,所以不能将它随意改变。 32 【正确答案】 A 【试题解析】 实参的个数必须与形参的个数一致,实参可以是表达式,在类型上应按位置与形参一一对应匹配。 33 【正确答案】 D 【试题解析】 宏替换和函数调用有相似之处,但在替换时,对参数没有类型的要求。 34 【正确答案】 D 【试题解析】 对于定义 int *p, *q;,可以通过赋值语句 p=q;,把指针变量 q中的地址值赋给指针变量 p,从而使 这两个指针

26、变量指向同一地址。 35 【正确答案】 A 36 【正确答案】 B 【试题解析】 选项 B越界,因为该数组元素只有 a0 a9。 37 【正确答案】 B 【试题解析】 宏定义的作用是进行字符的替换,应先将赋值语句的右边进行宏替换,即等号右边为: k+m*k+m/k+m*k+m=2+1*2+1/2+1*2+1=2+2+0+2+1=7,然后计算 a/=7,即 a=a/7=16/7=2。 38 【正确答案】 C 【试题解析】 p是一个指向字符的指针,在定义时,指向 a5。执行 -p时, p就指向了 a4,那么 *-p就是 5。 39 【正确答案】 A 【试题解析】 程序中的 p指向变量 x, q被定

27、义为二级指针,即指向指针的指针,其值为指针 p的地址,因此, *q即是 x,打印结果为 10。 40 【正确答案】 C 【试题解析】 定义函数时,函数头后不能加分号。 41 【正确答案】 C 【试题解析】 由于在 ANSI C中 malloc函数返回的地址为 void,故在调用函数时,必须利用强制类型转换将其转换成所需的类型。 42 【正确答案】 B 【试题 解析】 结构体变量中的成员有 3种引用方式: 结构体变量名成员名; 指针变量名 -成员名: (*指针变量名 )成员名。 43 【正确答案】 D 【试题解析】 本题主要考查结构体变量的定义和应用,以及运算符的优先级。 44 【正确答案】 A

28、 【试题解析】 本题两次执行 fun函数,第一次执行得 f(3)=s=n-f(n-1)=3-f(2):第二次执行得 s=2,通过传递返回值 f(2)=2,所以 s=3-2=1,即 f(3)=1。 45 【正确答案】 A 【试题解析】 在 C语言中,提供了许多 库函数供用户使用,因此选项 D错误。 46 【正确答案】 C 47 【正确答案】 B 【试题解析】 选项 A表示元素 w02,选项 C表示元素 w00,选项 D表示元素 w12,而选项 B中 pw+1表示第 2行元素的地址, (pw+1)2相当于(pw+1)+2,表示第 4行元素的地址,显然超出该二维数组的范围。 48 【正确答案】 A

29、【试题解析】 选项 A表示把 st所指串的第 5个字符开始的后面的元素赋值给数组 a的第 2个元素开始的后面元素,形式正确;选项 B中出现对数组名进行自加运 算,因此错误:选项 C中 st所指字符串有 11个字符,再加上 0,有 12个字符,超过数组长度,所以也是错误的;选项 D的情况和选项 C相似,也是形式正确,但超过了数组的长度。 49 【正确答案】 D 【试题解析】 首先, p=0是假设数组的第 1个元素为最小,然后在循环里将数组中的每一个元素 ai与当前最小元素 ap比较,如果前者小,那么就要更新 p的值,使 p=i。 50 【正确答案】 A 【试题解析】 p指向 a0,则 p+9指向

30、 a9, *(p+9)=a9=0。 51 【正确答 案】 70万 52 【正确答案】 存储空间 【试题解析】 空间复杂度是指算法在执行过程中临时占用的存储空间大小,包括: 算法本身所占用的存储空间; 算法的输入输出数据所占用的存储空间; 算法在运行过程中临时占用的存储空间。 53 【正确答案】 右子树 (单支树 ) 【试题解析】 二叉排序树对于任意新结点,若大于等于根结点,则在右子树上建立。 54 【正确答案】 软件质量差 【试题解析】 大约在 20世纪 60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件 危机的存在。软件危机的核心问题是软件开发的质量太差和软件

31、系统开发的效率太低。 55 【正确答案】 上溢 下溢 56 【正确答案】 aabb cc 【试题解析】 printf函数先输出 a,遇 %c,接着输出变量 c1的值 a,然后输出bb,遇 %t,从第 9个位置开始输出 cc。 57 【正确答案】 36 【试题解析】 本题循环体共执行了 3次。第一次: k=3, n=26:第二次: k=18,n=2;第三次: k=36, n=0。 58 【正确答案】 *t 【试题解析】 通过 while循环扫描 字符串,遇到字符 0结束,并用 t统计字符串的长度。 59 【正确答案】 rewind()或 fseek() 60 【正确答案】 60 【试题解析】 p

32、是指向整型数组的指针变量, p=a使得 p指向数组 a的第 1行。p+2是数组 a第 3行的地址, *(p+2)是数组 a第 3行 50,60,其实 *(p+2)为数组 a第 3行的首地址, *(p+2)+1为数组 a第 3行第 2个元素的地址,那么 *(*(P+2)+1)就是数组 a第 3行第 2个元素,即 60。 61 【正确答案】 1.09877e+010 62 【正确 答案】 0 s *p+ 【试题解析】 本题先通过 for循环从键盘接收 20个字符,然后在串尾赋一空值0作为串结束标志。再使指针 p指向串的首地址。最后通过 while循环对字符串进行扫描并输出。 63 【正确答案】 PRICE int num, total total, num 【试题解析】 程序中出现了变量 num, total以及宏 PRICE,因此应在相应位置说明它们。 64 【正确答案】 pc, pb或 pb, pc pc, pa或 pa, pc pb, pa或 pa, pb 【试题解析】 本题主要考查形参为指针变量时,形参和实参间的数据传递。系统为 fun2的两个形参开辟了对应的基类为 int型的临时指针变量,并通过空格处的实参把地址传递给形参 x, y。

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