计算机二级C语言考前必做试题及答案8Word格式文档下载.docx
- 文档编号:16572660
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:7
- 大小:18.90KB
计算机二级C语言考前必做试题及答案8Word格式文档下载.docx
《计算机二级C语言考前必做试题及答案8Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言考前必做试题及答案8Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
D.k={f(a,B.;
(24)若有定义语句:
准确的输入语句是()。
scanf(”%lf%If'
’,X,Y);
B.scanf(”%f%f¨
敝,曲);
C.scanf(”%f%f¨
,X,y);
D.scanf(”%lf%le”,px,PY);
(25)以下定义数组的语句中错误的是()。
A.intnum[][3]={{1,2},3,4,5,6};
B.intnUITI[2][4]={{1,2},{3,4},{5,6}};
C.intnum[]={1,2,3,4,5,6};
D.intnum[][4]={1,2,3,4,5,6’};
(26)有以下程序:
(27)有以下程序:
,
程序运行后的输出结果是()。
A.10
B.16
C.6
D.12
(28)有以下程序:
A.1
B.2
C.3
D.O
(29)函数fun的功能是在a所指的具有n个元素的数组中查找值并返回给调用函数,函数不完整。
在if语句下划线处应填人的选项是()。
A.O>
sB.*P>
*sC.a[p]>
a[s]D.p—a>
P—s
(30)有以下程序:
A.10,One{Drealn!
B.9,One*Drealll!
C.9,One*World
D.10,One*World
(31)有以下程序:
A.Beijing!
B.toBeijing]
C.WelcomeyoutoBeijingI
D.youtoBeijingI
(32)有以下程序:
A.3,5,B.3,6,C.3,7,D.0,3,
(33)有以下程序:
A.2
B.1C.3D.O
(34)有以下程序:
A.4,5,2,4,1,3,
B.4,4,2,2,1,1,
C.5,5,3,3,2,2,
D.4,4,2,2,1,3
(35)以下与存储类别相关的四组说明符中,全部属于静态类的一组是()。
A.extem和static
B.aut0和static
C.register和static
D.register和ex[erll
(36)为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域)则在
()处填入的选项是()。
*struetlink{ehardata;
()node;
A.struetlink*next;
B.linknext;
C.link$next;
D.struetlinknext;
A.Qian,f,350,Sun,f,350
B.Qiamf,350,Qian,f,350
C.Qian,f,350,Sun,m,370
D.Zha0,m,290,Sun,m,370
(38)有以下程序:
A.5
B.1
C.20
D.18
(39)以下叙述准确的是()。
A.表达式sizeof(FILE*)==sizeof(int*)的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数能够向任意类型的文件中写入任意数量的字符
40.函数fgetc的功能是从指定文件中读入一个字符,以下与其功能完全相同的函数是()。
A.fread
B.fscanf
C.fgets
D.getc
(21)A【解析】题目中程序不能实现预期功能是因为while的循环条件错误,在选项B中,把s=1,改为s=0,最终的结果s=4,与题目原意不同;
在选项C中,把n=1;
最终的结果s=2,与题目原意不同;
在选项D中,把n=n+1;
改为n=11s13;
选项A,准确的修改了while循环条件,能够得到准确结果。
故答案为A选项。
(22)B【解析】题目使用更相减损术求公约数,其思想:
l、任意给定两个正整数,判断它们是否都是偶数。
若是,则用2约简,若不是则执行第二步。
2、以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。
继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的公约数。
所以。
故答案为B选项。
(23)D【解析】s与()的优先级,()的优先级高于*,因为(+f)()定义函数指针f。
f指向函数的指针。
f=add,将函数8dd()的首地址赋给指针f,所以调用函数add()能够写为f(),其返回值是整型,不是指针类型,不能用t取指针指向的内存单元的数据,故k=*f(a,b)的调用方式错误。
答案为D选项。
(24)D【解析】%1f,%le是针对double类型的数据,如果仅甩%f,输入的数据可能不能被完全接收,数据的精度可能不足。
%f主要针对float类型的变量输入,选项8错误。
根据瓣Hlf(格式,变量地址),选项A,C错误。
故答案为D选项。
(25)B【解析】选项8中,intIrlllm[2][4]={{1,2},
{3,4},{5,6}};
定义数组是2行4列,但是初始化的结构是3行2列,所以初始化错误。
(26)C【解析】flm()函数作用冒泡法排序,fla9控制升序(0)或者降序
(1)。
n为参与排序的元素个数。
a为数组的起始地址。
所以,flm(a,4,1),数组的前四个降序排序,fun(a+4,6,O)对数组的第四项后六个元素实行升序排序。
故结果为10,9,8,7,1,2,3,4,5,6。
答案为C选项。
(27)D1解析】第一个for循环作用是对数组8赋初值,从0~9,第二个缸循环是计算数组前4项的a[i]+i的和。
0+0,1+1,2+2,3+3,经计算的结果为l2,所以答案为D选项。
(28)C【解析】new—div()的返回值是int类型,所以,a/b+0.5(其中a,b均为double类型)的小数部分被将被截断。
经计算,7.8/3.1+0.5=2.516+0.5=3.016,故打印的结果为3。
故答案为C选项。
(29)B【解析】函数fun的功能是在形参a所指的具有n个元素的数组中查找值并返回。
通过for循环比较,s始终指向值的那个元素。
取指针的值,使用+P,所以比较使用·
P和}8,需要找到值,当}8 (30)A【解析】函数strlen(char·
s);
计算字符串s的长度,不包括’、0’在内;
P指向数组的第二个元素,所以strlen(p)=10,并打印,故答案为A选项。
(31)A【解析】for循环的作用是每次遇到空格,将空格后面的移动到数组的最前面。
所以数组最后的状态是“Bei-jing!
、Og!
\0ng!
、neijing!
、O”,但是pfinff(“%s”)打印遇到、0自动结束。
所以,打印Beijing!
。
(32)A【解析】static静态变量只在声明时初始化一次。
所以,第一次调用函数f(k=O),此时n…nlk0,经过自增操作n=1,m=1,k=1,返回值为3,第二次调用函数f(k=1),此时n=1,k=1,m=0,经过白增操作,n=2,k=2,m=1,返回值为5。
故最终结果为3,5。
(33)B【解析】局部变量覆盖全局变量,但是全局变量的声明周期还存有。
f()函数调用完成后,因为m为全局变量,被修改为32,即函数的返回值32,此时m=32/12,第二次调用f(a,b),函数的返回值为3,此时m=2,故输出为1。
所以答案为B选项。
(34)A【解析】sizeof()是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数能够是数组、指针、对象、函数等。
它的功能是:
获得保证能容纳实现所建立的对象的字节大小。
strlen(·
char)函数,要在运行时才能计算,参数必须是字符型指针(char·
),当数组名作为参数传人时,实际上数组就退化成指针了,它的功能是:
返回字符串的长度。
该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。
sizeof(a)求数组a所占空间的大小,包括字符串最后的’、0’,所以sizeof(a)=5,strlen()遇到’、0’就结束,strlen(a)=4。
strlen(b)是指针指向的字符串长度,sizeof(b)是指针的大小。
strlen(c)是字符串的长度,sizeof(c)是数组的长度。
所以,输出4,5,2,4,l,3。
(35)A【解析】aut0用于声明变量的生存期为自动,即
将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。
这个关键字通常会被省略,因为所有的变量默认就是aut0的。
register定义的变量告诉编译器尽可能的将变量存有CPU内部寄存器中而不是通过内存寻址访问以提升效率。
static变量会被放在程序的全局存储区中,这样能够在下一次调用的时候还能够保持原来的赋值。
这个点是它与堆栈变量和堆变量的区别。
变量用static告知编译器,自己仅仅在变量的作用范围内可见。
这个点是它与全局变量的区别。
当static用来修饰全局变量时,它就改变了全局变量的作用域。
extern限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。
extem外部声明,该变量在其他地方有被定义过。
所以,答案为A选项。
(36)A【解析】存储结构用链式存储。
链式结构每个节点有个指针域,指针域指向下一个链式结构的节点,所以指针域的结构应该是该结构形式,所以应定义为structlink}next,故答案为A选项。
struct是结构体的说明符,不能省略。
(37)A【解析】c语言函数参数传递大致分为:
1、值传递过程中。
被调函数的形参作为被调函数的局部变量处理,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。
值传递的特点是被调函数对形参的任何操作都是作为局部变量实行,不会影响主调函数的实参变量的值。
2、地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。
被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。
正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
结构体中nanle是数组,做实参传递,会退化为指针,所以调用f(),b.nanle发生修改,其他的成员,传递的是拷贝,不会被修改。
所以输出Sun,f,350。
(38)C【解析】“运算符为按位异或运算符,即0^1=1,l“0=1,l‘l=0,0"
0=0,所以a^b=101在实行 (39)A【解析】slzeof(FILE})=4,因为file·
为指针,指针的大小4,sizeof(int·
)=4,理由同前面。
文件指针的值是地址,是一个l6进制的数,它的值不一定小于文件字节数,所以选项8错误。
文件指针是所指文件的当前读取位置,而不是文件指针的值所以选项C错误。
mgscanf(FILE-stream,constchar}format,[argument…]fmanf函数能够向任意类型的文件,写入任意数量不能超过系统的缓冲区,写文件先写入缓冲区,最后一起写入文件,所以选项D错误。
答案为A选项。
40)D【解析】fgets读取一个长度为(n一1)的字符串,frea按照指定的长度读取数据项,对应2进制的打开方式,fs—canf按指定格式读,对应文本打开方式,9etc从指定的文件读*a=0;
//初始化a字符统计的个数*c=0;
//初始化C字符统计的个数for(i=0;
i(M;
i+十1,,行
{
\for(j=0;
j
if(t[i][j]一·
A-)//字符是a,计数
(*a)++;
if(t[i][j]一-C-)//字符是C,计数
(*c)++
【考点分析】
主要考察考生对多重循环的理解与使用,以及字符串的比较。
【解题思路】
对二维数组的行列分别循环,行优先,查找数组中元素为A或者C,分别对其实行计数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 考前 试题 答案