2016年计算机二级《C语言》基础练习题及答案(1)
1[简答题]下列给定程序中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句与表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 请改正程序中的错误,使它得出正确的结果、
注意:不要改动main函数,不得增行或删行,也不得更 改程序的结构! 试题程序:
参考解析: 【参考答案】
(1)t=*x;*X=Y;(2)return(t);或return t;
【考点分析】
本题考查:指针型变量的使用;通过return语句完成函数值的返回。 【解题思路】
首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x,最后确定返回值;依照代码b=fun(8a'b),能够明白返回值将赋给变量b,而b中应存放交换前*x中的值,因此函数应返回变量t。 2[单选题] 有以下程序
程序运行后的输出结果是 A、3B、1C、2D、4 参考答案:C
参考解析:本题考查函数的递归调用,将函数参数带入函数中,一步步递归即可得到结果,结果为2,选项C正确。
3[单选题] 以下叙述中正确的是( )
A、在算法设计时,能够把复杂任务分解成一些简单的子任务 B、在C语言程序设计中,所有函数必须保存在一个源文件中
C、只要包罗了三种基本结构的算法就是结构化程序 D、结构化程序必须包罗所有的三种基本结构、缺一不可 参考答案:A
参考解析:C语言的程序中,函数不一定都放在同一个源文件中,能够分不放在不同源文件中,通过#inClude命令来引用,因此B错误。结构化程序能够包罗三种基本结构中的一种或几种,因此C,D错误。
4[单选题] 若有语句:int a[3][4],(。P)[4];P=a;,则以下选项中叙述错误的是( )。
A、系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值B、P+1代表a[1][0]的地址C、P中将存放a数组的首地址D、P+2代表a数组最后一行的首地址
参考答案:A
参考解析:(+P)[4]定义了一个数组指针、P能够指向类似于arry[][4]的数组,题设中,P不是一个二维数组,只是能够指向这类二维数组,因此选项A错误、P+1代表了第一行第一个元素的地址,P=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确、故答案为A选项、 5[单选题] 有以下程序: 程序运行后的输出结果是( )、
A、11,11B、29,29C、26,29D、121、121 参考答案:B
参考解析:#define命令是c语言中的一个宏定义命令,标识符一般使用大写,为了区分其她标识符,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其她操作,仅仅只是替换标识符。S(k+j+2)=k+j+2}k+j+2/k+j+2,经计算可得29,s(j+k+2)=J+k+2}k+j+2/j+k+2,计算可得29。因此输出为29、29、答案为B选项、 6[单选题] 有三个关系R、S与T如下: