首页 - 网校 - 万题库 - 美好明天 - 直播 - 导航
您现在的位置: 考试吧 > 计算机等级考试 > 计算机二级考试 > C语言 > 模拟试题 > 正文

2017年12月计算机二级C语言考试考前预测卷(2)

来源:考试吧 2017-12-07 9:05:49 要考试,上考试吧! 万题库
“2017年12月计算机二级C语言考试考前预测卷(2)”供考生参考。更多计算机等级考试内容请访问考试吧计算机等级考试网。
第 1 页:选择题
第 3 页:程序修改题
第 4 页:程序设计题

  一、选择题(每小题1分,共40分)

  1[单选题] 有以下程序:

2017年12月计算机二级C语言考试考前预测卷(2)

  程序运行后的输出结果是( )。

  A.12 7

  B.12 12

  C.11 11

  D.11 7

  参考答案:D

  参考解析:本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(2)=(2*N+1)=11,执行f(1+1)=(1+1*N+1)=7。选项D正确。

  2[单选题] 有以下程序:

2017年12月计算机二级C语言考试考前预测卷(2)

  执行后的输出结果是(  )。

  A.28,0

  B.28,1

  C.16,0

  D.16,-1

  参考答案:D

  参考解析:分析程序可知,d0语句1…whi1e(语句2),每次循环在语句1中a的值减1,在语句2中判断a的值后,a的值又减1,所以在每次循环体执行完后,b累加的a的值分别为7,5,3,1,a的值分别为6,4,2,0,最后当a为O时,whi1e判断条件为fa1se,此时a的值再减1,为-1,到此循环结束,所以b的值为16,a的值为-1,故答案选D。

  3[单选题] 设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的人栈与退栈操作后,top=50,则栈中的元素个数为(  )。

  A.1

  B.0

  C.50

  D.49

  参考答案:A

  参考解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插人一个新元素,退栈运算即取出栈顶元素赋予指定变量。栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=51,当top=50时,则栈中S(50:51)存储着元素,51-50=1.元素个数为l。故本题答案为A选项。

  4[单选题] 程序执行后的输出结果是( )。

2017年12月计算机二级C语言考试考前预测卷(2)

  A.1

  B.2

  C.3

  D.4

  参考答案:C

  参考解析:该程序中int * p1=&a,*p2=&b,*P=&c;指定义三个指针变量,并赋值,即使p1指向a;p2指向 b;p指向c。*P=*p1*(*p2);该条语句是给P所指的存1储单元c赋值,就是p1所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a×b,等价于c=1×3=3;因此C选项正确。

  5[单选题] 以下不能使指针s所指存储单元的值增1的选项是(  )。

  A.(*s)++;

  B.*s=*s+1;

  C.*s++;

  D.++*s;

  参考答案:C

  参考解析:选项A首先获取s指向的存储单元的值,使用完该值后,将该值自增1,正确;选项B首先获取s指向的存储单元的值,并将该值加1后重新赋给该存储单元,正确;选项D首先获取s指向的存储单元的值,然后将该值自增1,再使用加1后的新值,正确;选项C中,*s++的含义是首先获取s指向的存储单元的值,然后再将指针s向后移动一位,所以答案为C。

  6[单选题] 以下选项中关于程序模块化的叙述错误的是(  )。

  A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

  B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

  C.把程序分成若干相对独立的模块,可便于编码和调试

  D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

  参考答案:A

  参考解析:程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中“自底向上”的说法是错误的。

  7[单选题] 以下选项中,当X为大于1的奇数时,值为0的表达式是(  ):

  A.x%2==0

  B.x/2

  C.x%2!=0

  D.x%2==1

  参考答案:A

  参考解析:算术运算符的优先级高于关系运算符的优先级,所以当X为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。

  8[单选题] 若有定义语句:

  int a[2][3],*p[3];

  则以下语句中正确的是( )。

  A.p=a;

  B.p[0]=8;

  C.p[0]=&a[1][2];

  D.p[1]=&a;

  参考答案:C

  参考解析:A选项错误,因为p是指向一个指针数组,作为数组名,不能指向别的地方。B选项错误,因为p[0]是一个int指针,也就是int*;而a是一个指向指针的指针int**。C选项正确,因为p[0]是一个int*a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,P[1]是int*,&a是int***,类型不对。因此C选项正确。

  9[单选题] 以下不合法的字符常量是( )。

  A.'\\'

  B.'\"'

  C.'\018'

  D.'\xcc'

  参考答案:C

  参考解析:转义字符中,八进制的表示形式为\ddd,但是八进制中不能包含数字8,所以C选项不合法。

  10[单选题] 设有以下语句:

2017年12月计算机二级C语言考试考前预测卷(2)

  则下面叙述中正确的是( )。

  A.CIN是struct TT类型的变量

  B.TT是struct类型的变量

  C.可以用TT定义结构体变量

  D.可以用CIN定义结构体变量

  参考答案:D

  参考解析:本题考查typedef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  11[单选题] 有以下程序:

2017年12月计算机二级C语言考试考前预测卷(2)

  执行后的输出结果是(  )。

  A.678

  B.666

  C.654

  D.456

  参考答案:C

  参考解析:由于main函数for循环中k的取值为0,1,2,所以for循环三次调用fun()函数,每次调用函数fun,形参a的值为2(实参a传人),局部变量b初始化为2(fun函数中初始化),静态局部变量c保留上一次函数调用结束后的值,所以第一次调用fun(),形参a=2,b=2,c=2,然后执行b自增1,c自减1,返回值为:2+3+l=6;第二次调用fun(),形参a=2,b=2,c=1,然后执行b自增1,c自减1,返回值为:2+3+0=5;第三次调用fun(),形参a=2,b=2,c=0,然后执行b自增1,c自减1,返回值为:2+3-1=4,所以结果为:654,答案为C。

  12[单选题] 有以下程序::

2017年12月计算机二级C语言考试考前预测卷(2)

  程序运行后的输出结果是( )。

  A.0

  B.1

  C.4

  D.8

  参考答案:C

  参考解析:fun函数中的x为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,X的定义相当于不存在,直接使用X的值。主函数中调用两次fun函数:第一次调用:x=1,x=x*2=2,s=2;第二次调用:(直接用上次x的值)x=x*2=4,s=4。因此C选项正确。

  13[单选题] 若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(  )。

  A.int a[5+5];

  B.int n=10,a[n];

  C.#define n 5 int a[2*n];

  D.#define N 10int a[N];

  参考答案:B

  参考解析:一维数组的定义方式为:类型说明符数组名[常量表达式];注意定义数组时,元素个数不能是变量。因此应该选B选项。

  14[单选题] 有以下程序:

2017年12月计算机二级C语言考试考前预测卷(2)

  程序运行后的输出结果是(  )。

  A.7

  B.8

  C.9

  D.10

  参考答案:C

  参考解析:首先main函数中的局部变量a和f()函数中的静态局部变量a的作用域都只限在其所在的函数中,相互之间不影响,看作两个不同的变量即可。另外,f()函数中的静态局部变量a只在第一次调用f()函数时初始化一次,其他调用都会保留上一次调用结束时的值。分析main函数可知,第一次调用时将f(a)的返回值赋给s,所以语句可以改写为:s=f(a)+f(a),即main函数中调用两次f(a),传人的参数a取值都为3,第一次调用时,静态局部变量初始化为1,所以n=4并返回,a自增为2;第二次调用时静态局部变量a取上一次调用结束时的值2,所以n=5并返回,a自增为3。所以在main()函数中,s=4+5=9,所以函数执行完输出结果为9,答案为C。

  15[单选题] 有以下程序:

2017年12月计算机二级C语言考试考前预测卷(2)

  程序运行后的输出结果是(  )。

  A.0

  B.-1

  C.1

  D.7

  参考答案:B

  参考解析:a--的含义是先用后减1,所以当a的值为0时,跳出循环,但是仍要执行a--,a的值变为-1。

  16[单选题] 以下选项中能正确定义二维数组的选项是(  )。

  A.double a[][3]={2*3};

  B.double a[][3];

  C.double a[][3]={};

  D.double a[2][3]={{1.0},{2.0},{3.0,4.0}};

  参考答案:A

  参考解析:如果第一维的长度没有指定.则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小;若不能整除,则所得的商加l作为第一维的大小,所以选项A相当于:double a[1][3]={6};其中a[0][0]=6,其他元素赋值0,故选项A正确,答案为A。

  17[单选题] 有定义语句:int i;char s1[10],s2[10]=“Program”;则能正确给s1数组赋字符串的语句是(  )。

2017年12月计算机二级C语言考试考前预测卷(2)

  参考答案:A

  参考解析:首先字符数组只有在初始化的时候整体赋值,否则只能对字符数组逐个赋值,所以选项B错误;字符数组名s1、s2是常量,不能改变,故选项C错误;字符串 “Program”包含结尾的‘\0’,选项D中在处理到s2[i]=‘\0’时,跳出循环,未将‘\0’赋给s1,所以选项D也是错误的;由于“Program”包含结尾的‘\0’总共有8个字符,所以选项A是正确的,答案为A。

  18[单选题] 以下叙述中正确的是(  )。

  A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

  B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

  C.C语言中的文件是流式文件,因此只能顺序存取数据

  参考答案:A

  参考解析:文件一旦使用完毕,应该使用关闭文件函数把文件关闭,以避免出现文件数据丢失等错误,所以选项A正确;若使用fopen打开文件函数打开文件时,指定打开方式为 ‘a’,则可以向文件追加信息,而不是覆盖原文件内容,故B选项错误;在文件被打开后,使用文件定位函数rewind或fseek函数,可以将文件指针移到文件的任何位置,所以在写操作完成后,可以直接将文件指针定位到文件首,接着读数据,而不需要先关闭文件,再打开读取,故C选项错误;使用文件定位函数可以随机读写文件,故D选项错误。所以本题答案为A。

  19[单选题] 关于程序模块化,以下叙述错误的是(  )。

  A.程序模块化可以提高程序运行的效率

  B.程序模块化可以提高程序编制的效率

  C.程序模块化可以提高程序代码复用率

  D.程序模块化可以提高调试程序的效率

  参考答案:A

  参考解析:程序模块化的目的是为了降低程序的复杂度,使程序设计、调试和维护等操作简单化,降低程序的复杂度可以提高程序的编制效率和调试效率,每个模块可以复用,提高了程序代码的复用率,故选项B、C、D正确;程序的运行效率与程序的算法、实现有关,与程序模块化无关,故答案选A。

  20[单选题] 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。

  

2017年12月计算机二级C语言考试考前预测卷(2)

  程序运行后的输出结果是( )。

  A.1,2,3,4,5,6,7,8,9,10,

  B.3,4,5,6,7,2,1,8,9,10,

  C.5,4,3,2,1,6,7,8,9,10,

  D.10,9,8,7,6,5,4,3,2,1,

  参考答案:B

  参考解析:本题重点考察函数的参数传递,函数的参数传递分为传值和传地址两种情况。本题就是结合数组考查参数传递的情形。函数f完成的功能是对数据进行排序,语句f(&a[2],5,0)的作用是对从a[2]开始的5个元素进行从大到小排序。注意:这里传递的是地址&a[2],所以排序操作可看作是直接对数组a操作,执行后的结果为5,4,7,6,3,2,1,8,9,10。语句f(a,5,1)对数组a的前5个元素从小到大排序,排序后数组为:3,4,5,6,7,2,1,8,9,10。因此B选项正确。

1 2 3 4 下一页

  相关推荐:

  2017年12月计算机等级考试考前必做题汇总

  【考试吧整理】计算机等级考试各科目历年真题

  2017年12月计算机等考成绩查询入口|免费查分提醒

  2017年计算机等级考试综合查询网常见问题汇总

  计算机等级考试成绩评定流程及标准|合格证书样本及证书说明

0
收藏该文章
0
收藏该文章
文章责编:Quchangwei  
看了本文的网友还看了
文章搜索
万题库小程序
万题库小程序
·章节视频 ·章节练习
·免费真题 ·模考试题
微信扫码,立即获取!
扫码免费使用
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。
Copyright © 2004- 考试吧计算机等级考试网 出版物经营许可证新出发京批字第直170033号 
京ICP证060677 京ICP备05005269号 中国科学院研究生院权威支持(北京)
在线模拟试题
考证通关杀器
考试最新资讯
一次通关技巧