[2017年计算机二级c语言真题]2017年计算机二级C语言考前练习试题及答案5

副标题:2017年计算机二级C语言考前练习试题及答案5

时间:2023-11-15 16:55:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

  (21)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  2016年计算机二级C语言考前20天必做题(5)

  (22)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.02356

  B.0235

  C.235

  D.2356

  以下关于retllm语句的叙述中正确的是( )。

  A.一个自定义函数中必须有一条return语句

  B.一个自定义函数中可以根据不同情况设置多条retum语句

  C.定义成void类型的函数中可以有带返回值的return语句

  D.没有return语句的自定义函数在执行结束时不能返回到调用处

  (24)已定义以下函数:

  2016年计算机二级C语言考前20天必做题(5)

  fun函数的返回值是( )。

  一个整数

  B.不确定的值

  C.形参P中存放的值

  D.形参P的地址值(25)以下程序段完全正确的是( )。

  int * p;scanf(”%d”,&p);

  B.int*p;scanf(”%d”,P);

  C.int k,* P:&k;scanf(’’%d”,P);

  D.int k,*p;*P=&k;scanf(”%d”,P);

  (26)设有定义:

  double a[10],*s=a;

  以下能够代表数组元素a[3]的是( )。

  A.($s)[3]

  B.}(s+3)

  C.*s[3]

  D.}s+3

  27、有以下程序

  2016年计算机二级C语言考前20天必做题(5)

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

  A.6,2,3,4,5,

  B.2,2,3,4,5,

  C.1,2,3,4,5,

  D.2,3,4,5,6,

  (28)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

  2016年计算机二级C语言考前20天必做题(5)

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

  A.4

  B.34

  C.31

  D.32

  (29)以下选项中正确的语句组是( )。

  A.char*s;8={1.BOOK!”}i

  B.char*s;8=”BOOK!”;

  C.char S[10];S=”BOOK!”;

  D.char S[];S=”BOOK!”;

  (30)若有定义语句:

  char}sl=‘’0K”,:It s2=”ok”;

  以下选项中,能够输出“OK”的语句是( )。

  A.if(strcmp(sl,s2)!=0)puts(s2);

  B.if(strcmp(sl,s2)!=0)puts(s1);

  C.if(strcmp(sl,s2)==1)puts(s1);

  D.if(strcmp(sl,s2)==0)puts(s1);

  (31)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.11

  B.9

  C.6

  D.7

  (32)有以下程序(说明:字母A的ASCIl码值是65):

  2016年计算机二级C语言考前20天必做题(5)

  2016年计算机二级C语言考前20天必做题(5)

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

  A.BT

  B.YE

  C.YT

  D.BY

  (33)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.120

  B.11

  C.6

  D.21

  (34)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.A B E F

  B.C D E F

  C.A B C D

  D.C D A B

  (35)以下关于typedef的叙述错误的是( )。

  A.用typedef可以增加新类型

  B.typedef只是将已存在的类型用一个新的名字来代替

  C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

  D.用typedef为类型说明一个新名,通常可以增加程序的可读性

  (36)程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。

  2016年计算机二级C语言考前20天必做题(5)

  若有以下程序段:

  2016年计算机二级C语言考前20天必做题(5)

  该程序段实现的功能是( )。

  A.删除尾结点

  B.尾结点成为首结点

  C.删除首结点

  D.首结点成为尾结点

  (37)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.33

  B.197

  C.143

  D.28

  (38)若有以下程序段:

  2016年计算机二级C语言考前20天必做题(5)

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

  A.16

  B.8

  C.4

  D.2

  (39)以下叙述中错误的是( )。

  A.gets函数用于从终端读人字符串

  B.getehar函数用于从磁盘文件读人字符

  C.fputs函数用于把字符串输出到文件

  D.fwrite函数用于以二进制形式输出数据到文件

  (40)有以下程序:

  2016年计算机二级C语言考前20天必做题(5)

  以上程序执行后abc.dat文件的内容是( )。

  A.China

  B.Chinang

  C.ChinaBeijing

  D.BeijingChina

 

 

 

  (21)B【解析】第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j<=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j<=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。

  (22)C【解析】k的值为5,逐个对caBe语句进行匹配,均不匹配,执行defau1t下的语句n=0;k一一。再执行case2:ca804:后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k>0&&11<5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1;k一一;。再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:后面的语句n+=2;k一一;。执行break语句跳出循环体。打印n的值5。此时n不满足条件k>0&&n<5,所以结束循环。整个程序的打印结果为235。

  (23)B【解析】在函数中允许有多个Iett1r11语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,c选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误。因此B选项正确。

  (24)A【解析】返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。

  (25)C【解析】A选项中错在没有对指针进行初始化,是无效指针,并且在scanf(”%d”,&p)中无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针;D选项中语句+P=&k;的左端t pt是指针所指内存空间的值,&k是地址,应为P=&k。因此C选项正确。

  (26)B【解析】语句·s=a;表示指针变量s指向一维数

  组a的首地址。a[3]表示引用数组a的第4个元素,+(s+i)表示引用指针8所指数组a的第i+1个元素,选项A、C、D的表示方法错误,只有B选项正确。

  (27)A【解析】本题考查的是函数的地址调用,将数组名作为数组首地址进行传递,然后取首个数组元素值进行加1运算,循环5次。因此A选项正确。

  (28)C【解析】本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中的那个元素。因此C选项正确。

  (29)B【解析】A选项去掉大括号就正确了;c选项和D选项应在定义时赋初值。因此B选项正确。

  (30)B【解析】strcmp(s1,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比(按照ASCI1码值大小),-以第一个不相同的字符的大小作为比较结果。因为。O。<10.,所以strcmp(s1,s2)为负值,只有B选项正确。

  (31)C【解析】strcpy:字符串拷贝函数;str1en:求字符串长度函数(注意:不包含字符串结束标识符‘、0’);strcat:字符串连接函数。执行完语句strcat(P,r);后,P数组中存储的元素为a,b,c,d,a,b,C,d,8;执行语句strcpy(P+str1en(q),q);得到的结果是将q所指向的字符串拷贝至P+str1en(q)开始的存储位置,因为str1en的值为3,即从P+3开始存储q中的元素。所以执行完strcpy(P+str|en(q),q)语句后,字符数组P[20]的存储元素为a,b,c,a,b,o;所以str1en(P)的结果为6。因此C选项正确。

  (32)B【解析】本题中执行fun(a)时,会取字符串a的第一个字母B,因为字母B的ASCI1码值为66,所以不会输出字母8,函数只会输出ASCI1码值为奇数的字母,字母Y的ASCI1码值为89,字母T的ASCI1码值为84,字母E的ASCII码值为69。因此B选项正确。

  (33)D【解析】fun函数中的变量X为静态局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用上次X的值。fun函数被调用了5次,每次调用后的返回值累加到s上。5次调用后,x的值为6,8的值为1+2+3+4+5+6=21。因此D选项正确。

  (34)B【解析】本题考察的是变量的作甩范围。如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即不起作用:奉题中,在fun1()和main()函数内访问的是全局变量a和b,在fun2()函数中访问的是形参变量a和b。所以,main()函数中的prinff()函数输出的是在fun1()函数中被改变的全局变量a和b的值c、D,而fun2()函数中输出的是传递给它的实参值E、F。因此B选项正确。

  (35)A【解析】typedef并不是增加了新类型,面是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误:

  (36)D【解析】本题考查链表的操作,本题中首先是s指向了它的下个结点,题目中说明了s总是指向链表的第一个结点,然后whi1e循环找到链表的最后一个元素,然后最后一个元素指向了之前链表的头结点,之前头结点指向了空结点,所以本题实现的功能是使首结点成为尾结点。选项D正确。(37)C【解析】本题考查带参数的宏定义,s为带参数的宏定义,运行S(k+j)为4*(k+j)*k+j+1=143,选项C正确。

  (38)C【解析】本题考查位运算,属于基础知识,题目中将整型变量8,二进制表达为00(301000,右移一位为00000100,即4,选项c正确。

  (39)B【解析】本题考查字符处理函数和文件操作函数。属于基础知识,其中B选项9etchar函数是用于从终端读人一个字符。

  (40)B【解析】本题考查文件操作函数,fwrite和rewind函数,题目中先是将s2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入s1字符串,那么s1字符串就将前5个字符覆盖,所以最终结果为Chinan9,选项B正确。

2017年计算机二级C语言考前练习试题及答案5.doc

本文来源:https://www.wddqw.com/9NVO.html