计算机二年级考试C语言练习题及答案
计算机二年级考试C语言
练习题及答案
The latest revision on November 22, 2020
一、选择题
1). 下列叙述中正确的是( )。
A.调用printf( )函数时,必须要有输出项
B.使用putchar( )函数时,必须在之前包含头文件stdio.h
C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D.调节getchar( )函数读入字符时,可以从键盘上输入字符所对应的ASCII码
正确答案:B
答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。
2). 以下结构体类型说明和变量定义中正确的是( )
A.typedef struct { int n; char c; } REC; REC t1,t2;
B.struct REC ; { int n; char c; }; REC t1,t2;
C.typedef struct REC; { int n=0; char c=′A′; } t1,t2;
D.struct { int n; char c; } REC; REC t1,t2;
正确答案:A
答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形
式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。
3). 若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )
A.一对一
B.一对多
C.多对一
D.多对多
正确答案:B
答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。
4). 关于C语言的变量,以下叙述中错误的是( )
A.所谓变量是指在程序运行过程中其值可以被改变的量
B.变量所占的存储单元地址可以随时改变
C.程序中用到的所有变量都必须先定义后才能使用
D.由三条下划线构成的符号名是合法的变量名
正确答案:B
答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。
5). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )
A.(c==2)||(c==4)||(c==6)
B.(c>=2 && c<=6)&& !(c%2)
C.(c>=2 && c<=6)&&(c%2!=1)
D.(c>=2 && c<=6) || (c!=3) || (c!=5)
正确答案:D
答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。
6). 在C语言中,函数返回值的类型最终取决于
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
正确答案:A
答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按
整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。
二、程序填空题
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[o]中,接着把a_所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。
例如,若a所指数组中的数据最初排列为:9、1…4 2 3、6、5、8、7;则按规则移动后,数据排列为:1、9.2、8:3、7、4、6、5。形参13.中存放a所指数组中数据的个数。‘
规定fum函数中的max存放当前所的最大值,px存放当前所最大值的下标。请在程序的下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】(1)a[i](2)a[j](3)a[j]
【考点分析】
本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,财不执行下面的语句。
【解题思路】
填空1:for循环语句循环体中将数组元素a[i]赋值给变量max和变量rain。
填空2:通过一次for循环,到数组中的最大值,if语句的条件表达式是mu
填空3:同理,此处if语句的条件表达式是min>a[j]。
【解题宝典】
求最大值或者最小值的题目,一般都是假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。
三、程序修改题
下列给定程序中函数fun的功能是。用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1、1、2、3、5、8、l3、21、……
例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。
【参考答案】
去掉分号
(2Case 1:caBe
2:return 1;
【考点分析】
本题考查:switch语句,其一般形式为switch(表达式)
cage常量表达式l:语句l;case常量表达式2:语句2;
cm常量表达式n:语句n;default:语句n+1;
c语言数组最大值最小值其中switch(表达式)后不应该带有“;”,同时case语句常量后应该是“:”。
【解题思路】
C语言中,switch语句之后不能有分号,并且case语句常量后应用的是冒号。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论