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

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

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

  (21)有以下程序:


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


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


  A、1*1=1 1$2=2 1*3=3


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


  (22)有以下程序:


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


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


  A,*2*6


  B.}3*5一


  C.}5


  D.*7


  (23)有以下程序:


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


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


  A.500


  B.401


  C.503


  D.1404


  (24)若有以下函数首部:


  int fun(double x[10],int*n)


  则下面针对此函数的函数声明语句中正确的是( )。


  int fun(double,int);


  B.int fun(double木,int*);


  C.int mn(double*x,int n);


  D.int fun(double x,intint*n)


  (25)有以下程序:


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


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


  A.2,1,1,2


  B.1,2,1,2


  C.2,1,2,1


  D.1,2,2,1


  (26)若有以下定义:


  int x[10],* pt=x;


  则对x数组元素的正确引用是( )。


  A.pt+3


  B.}&x[10]


  C.*(pt+10)


  D.*(x+3)


  (27)有以下程序:


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


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


  A.20


  B.25


  C.45


  D.36


  (28)有以下程序:


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


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


  A.1,O,7,0,


  B.1,2,3,4,


  C.1,4,5,9,


  D.3,4,8,10,


  (29)设有定义:char*C;以下选项中能够使C正确指向一个字符串的是( )。


  A.char str( )=”strin9”;C=str;


  B.scanf(”%s”,C.;


  C.c=getchar( );


  D.*c=”strin9”;


  (30)若有定义语句:


  char S[10]=”1234567\0\0”;则strlen(s)的值是( )。


  A.7


  B.8


  C.9


  D.10


  (31)有以下程序:


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


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


  A.11


  B.9


  C.6


  D.7


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


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


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


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


  A.BT


  B.YE


  C.YT


  D.BY


  (33)有以下程序:


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


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


  A.120


  B.11


  C.6


  D.21


  (34)有以下程序:


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


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


  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天必做题(4)


  若有以下程序段:


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


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


  A.删除尾结点


  B.尾结点成为首结点


  C.删除首结点


  D.首结点成为尾结点


  (37)有以下程序:


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


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


  A.33


  B.197


  C.143


  D.28


  (38)若有以下程序段:


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


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


  A.16


  B.8


  C.4


  D.2


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


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


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


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


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


  (40)有以下程序:


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


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


  A.China


  B.Chinang


  C.ChinaBeijing


  D.BeijingChina




  (21)A【解析】外循环第一次i的值为1,内循环第一次j的初值为1,打印1 *1=1;内循环第二次j的值为2,打印1$2=2;内循环第三次J的值为3,打印1}3=3,打印回车换行,退出内循环。外循环第二次i的值为2,内循环第一次j的初值为2,打印2*2=4;内循环第二次j的值为3,打印2。3=6,打印回车换行,退出内循环。外循环第三次i的值为3,内循环第一次j的初值为3,打印3*3=9,打印回车换行,退出内循环。


  (22)D【解析】d0...whi1e语句是先执行后判断,所以第一次先执行循环体,判断i%3==1的条件,由于i为5,所以余数为2,条件不成立,执行i++,i的值为6,判断whi1e条件为真;第二次执行循环体,同第一次循环的执行过程一样,i的值变为7,判断whi1e条件为真;第三次执行循环体,此时i%3==1,条件成立,再判断i%5==2也成立,打印*与i的值,即*7,然后执行break语句,跳出循环。所以选择D选项。


  (23)C【解析】本题重点考察函数的定义和调用,第一次循环,a=0,i=0,返回值a=0*0+1+0=1;第二次循环,a=1,i=10,返回值a=10*10+1+1=102;第三次循环,a=102,i-20,返回值a=20*20+1十102=503;第四次循环,a=503,i=30;不符合i<30,跳出循环,最后结果输出a=503。


  (24)B【解析】函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为int fun(doub1e x[10],int*n),因此B选项正确。


  (25)D【解析】intm=1,n=2,* P=&m,。q=&I1,*r;即指针变量P指向m,指针变量q指向n,r=P;P=q;q=。;即


  通过指针变量r,将指针P和指针q的指向交换。因此最后输出1,2,2,1。


  (26)D【解析】没有A选项的引用形式。+与&放在一起作用抵消,所以B选项错误,只能引用到X[9]。+(pt+i)表示引用指针pt所指元素后的第i个元素,所以c选项错误,只能为+(pt+9)。因此D选项正确。


  (27)B【解析】统计1~9九个数中的奇数和,此题考察指向数组的指针。C语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此·(t+i)代表数组的第i+1个元素。程序运行的结果是1+3+5+7+9=25。


  (28)A【解析】该程序首先在定义变量时,对二维数组a[][N]进行赋值操作;调用函数fun,函数fun的功能是将二维数组中的a[0儿0]、a[1][1]、a[2][2]和a[3][3]赋值给一维数组,最后将一维数组元素1,0,7,0,输出。


  (29)A【解析】A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。


  (30)A【解析】str1en()函数在计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中字符串,从第一个字符开始,遇到第一个结束标识‘\0’为止,注意‘\0’不占字符串长度,所以字符串长度为7。因此A选项正确。


  (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选项getchar函数是用于从终端读人一个字符。


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

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

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