2023年全国计算机二级C语言考前冲刺试卷_第1页
2023年全国计算机二级C语言考前冲刺试卷_第2页
2023年全国计算机二级C语言考前冲刺试卷_第3页
2023年全国计算机二级C语言考前冲刺试卷_第4页
2023年全国计算机二级C语言考前冲刺试卷_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机级别考试二级C语言考前冲刺试卷

一、选用题某些

一、选用题

(1)算法有穷性是指

A)算法程序运行时间是有限

B)算法程序所处理数据量是有限

C)算法程序长度是有限

D)算法只能被有限顾客使用

⑴【答案】A)

【解析】算法有穷性,是指算法必要能在有限时间内做完,即算法必要能在执行有限个

环节之后终止。

(2)下列论述中对口勺是

A)算法就是程序

B)设计算法时只需要考虑数据构造设计

C)设计算法时只需要考虑成果可靠性

D)以上三种说法都不对

(2)【答案】D)

【解析】所谓算法是指解题方案精确而完整描述。是一组严谨地定义运算次序规则,并

且每一•种规则都是有效,且是明确,此次序将在有限次数下终止。算法不等于程序,也不等

于计算措施。设计算法时不仅要考虑对数据对象运算和操作,还要考虑算法控制构造。

(3)数据存储构造是指

A)存储在外存中数据

B)数据所占存储空间量

C)数据在计算机中次序存储方式

D)数据逻辑构造在计算机中体现

(3)【答案】D)

【解析】在对数据进行处理时,各数据元素在计算机中存储关系,即为数据存储构造。

(4)下列描述中对的是

A)一种逻辑数据构造只能有•种存储构造

B)数据逻辑构造属于线性构造,存储构造属于非线性构造

C)一种逻辑数据枸造可以有多种存储构造,且多种存储构造不影响数据处理效率

D)一种逻辑数据构造可以有多种存储构造,且多种存储构造影响数据处理效率

(4)【答案】D)

【解析】数据逻辑构造是指数据集合中各数据元素之间所固有逻辑关系;数据存储构造

是在对数据进行处理时,各数据元素在计算机中存储关系。数据存储构造是指数据逻辑构造

在计算机中体现,一种逻辑构造可以体现到多种存储构造;而采用不一样存储构造,其数据

处理效率是不一样。

(5)下列数据构造中,属于非线性构造是

A)循环队列

B)带链队列

C)二叉树

D)带链栈

⑸【答案】C)

【解析】根据数据构造中各数据元素之间先后件关系复杂程度,一般将数据构造分为两

大类:线性构造和非线性施造。循环队列、带链队列和带链栈都是线性构造,而二义树是非

线性构造。

(6)下列描述中对的是

A)线性链表是线性表链式存储构造

B)栈与队列是非线性构造

C)双向链表是非线性构造

D)只有根结点二叉树是线性构造

(6)【答案】A)

【解析】线性表链式存储构造称为线性链表。线性表链式存储构造基本单位称为存储结

点,每个存储结点波及数据域和指针域两个构成某些。各数据元素之间先后件关系是由各结

点指针域来指示,指向线性表中第一结点指针HEAD称为头指针,当HEAD=NULL时称为空

表。栈、队列和双向链表是线性构造,树是一种简朴非线性构造。在树这种数据构造中,所

有数据元素关系具有明显层次特性。二叉树是非线性构造。线性构造和非线性构造是从数据

逻辑构造角度来讲,与该数据构造中有多少个元素没有关系,虽然是空二叉树也是非线性构

造。

(7)下列有关栈论述对的是

A)栈按“先进先出”组织数据

B)栈按“先进后出”组织数据

C)只能在栈底插入数据

D)不能删除数据

(7)【答案】B)

【解析】栈是限定在一端进行插入和删除线性表,容许进行插入和删除元素一端称为栈

顶,另一端称为栈底。栈是按照''先进后出”原则组织数据。

(8)支持子程序调用数据构造是

A)栈

B)树

C)队列

D)二叉树

(8)【答案】A)

【解析】栈是一种限定在一端进行插入与删除线性表。在主函数调用子函数时,要首先

保留主函数目前状态,然后转去执行子函数,把子函数运行成果返I可到主函数调用子函数时

位置,主函数再接着往下执行,这种过程符合栈特点。因此一般采用栈式存储方式。(函数

调用、体现式求值、数值转换、括号匹配检查、递归调用)

(9)下列有关线性链表论述中,对的是

A)各数据结点存储空间可以不持续,但它们存储次序与逻辑次序必要一致

B)各数据结点存储次序与逻辑次序可以不一致,但它们存储空间必要持续

C)进行插入与删除时,不需要移动表中元素

D)以上都不对口勺

(9)【答案】C)

【解析】线性表链式存储构造称为线性链表。在链式存储构造中,存储数据构造存储空

间可以不持续,各数据结点存储次序与数据元素之间逻辑关系可以不一致,而数据元素之间

逻辑关系是由指针域来确定。

(10)下列论述中对的是

A)线性表链式存储构造存储空间一般要少于次序存储构造

B)线性表链式存储构造与次序存储构造存储空间都是持续

C)线性表链式存储构造存储空间可以是持续,也可以是不持续

D)以上都不对口勺

(10)【答案】C)

【解析】线性表存储分为次序存储和链式存储。在次序存储中,所有元素所占存储空间

是持续。而在链式存储方式中,将存储空间每一种存储结点分为两某些,一某些用于存储数

据元素值,称为数据域;另一某些用于存储下一种元素存储序号,称为指针域。因此线性表

链式存储方式比次序存储方式存储空间要大某些。

(11)如下论述中错误是

A)C程序通过编译、连接环节之后才能形成一和真正可执行二进制机器指令文献

B)用C语言编写程序称为源程序,它以ASCH代码形式存储在一种文本文献中

C)C语言中每条可执行语句和非执行语句最终都将被转换成二进制机器指令

D)C语言源程序经编译后生成后缀为.obj目的程序

(11)【答案】C)

C语言中非执行语句例如宏定义命令,在预编译之后替代到代码中,该命令自身也就不

存在了,不会转换成二进制机器指令。由高档语言编写程序称为“源程序”,把由二进制代

码体现程序称为“目H勺程序”。C语言编写源程序就是一ASCII形式存储在文本文献中。C源

程序通过C编译程序编译之后生成一种后缀为.obj二进制文献(称为目的文献),然后由称

为“连接程序”(Link)软件,把此.obj文献与C语言提供多种库函数连接起来生成一种后缀

为.EXE可执行文献。

(3)有如下程序

#include<stdio.h>

main(){

ints,t,A=10;

doubleB=6;

s=sizeof(A);

t=sizeof(B);

printfC,%d,%d\n'\s,t);

)

在VC6平台上编译运行,程序运行后输出成果是

A)4,4

B)2,4

C)4,8

D)10,6

(3)【答案】C)

工sizeof用于测试不由:类型变量所Ji内存空I】U,返司所3字门数在VC编i率系

统中,整型变量占用4个字节内存空间,而双精度型变量占用8个字节内存空间。

(13)如下四个程序中,完全对H勺是

A)#include<stdio.h>

main();

{/*/Programming

/*/printf("programming!\n");}

B)#include<stdio.h>

main()

{/*programming*/

printf("programming!\n"):}

C)#includc<stdio.h>

main()

{/*/*programming*/*/

printf("programming!\n");}

D)include<s(diu.h>

main()

{/*programming*/

printf("programming!\n");}

(13)【答案】B)

在选项A)中,main()函数背面分号是错误,C语言在函数名背面不能有分号。在C语

言中注释内容必要放在“/*”和“*/”之间,“/*”和“*/”必要成对出现,按语法规定在注

释之间不可以再嵌套“/*”和在选项C)程序段中注释语句之间有嵌套:因此选项C)

不对於语言用//include命令行来实现文献包括功能.#include命令行形式为:include”文

献名”,因此在选项D)中include前面少了一种#符号,因而选项D)不对时。

(14)如下选项中不合法标识符是

A)FOR

B)&a

C)print

D)_00

(14)【答案】B)

合法标识符要满足构成字符为a~z以及A~Z,数字字符0到9和下划线,其中数字不开

头,不能是关键字。选项B)中.&不属于构成字符,是错误。

(15)如下选项中,合法一组C语言数值常量是

A)12.0Xa234.5e0

B)028.5e-3-Oxf

C).1774e1.5Oabc

D)0x8A10,0003.e5

(15)【答案】A)

八进制数其开头必要是数字“0",其数字波及0〜7,而在选项B)中,028是错误。浮

点数据指数形式体现常量中,C语言规定字母e或E之前必要要有数字,且e或E之后指数

必要为整数,而选项C)中4el.5是错误。在选项D)中,整型数据10,000体现形式是错

误。

(16)如下定义语句中对的是

A)charA=65+1,b=*b';

B)inia=b=O;

C)floata=1,*b=&a,*c=&b;

D)doublea=0.0;b=1.1;

(16)【答案】A)

本题考察是数据类型定义并赋值,选项B)中对变量申明类型且赋值状况是不容许出现,

必要单独定义且赋值。选项C)中对于指针变量c赋值须为同型指针,而&b为二级指针。

选项D)中C语言容许在一种类型阐明符后阐明多种相似类型变量,各变量之间要用逗号(,)

隔开,而不是用分号(;)隔开;在计算机存储字符时将字符对应ASCII码以其对应二进制

进行存储,选项A)中定义是合法。

(17)若有代数式(其中e仅代表自然对数底数,不是变量),则如下可以对日勺

体现该代数式C语言体现式是

A)sqrt(fabs(pow(n,x)+pow(x,e)))

B)sqrt(abs(nAx+eAx))

C)sqrt(fabs(pow(n,x)+exp(x)))

D)sqrt(fabs(pow(x,n)+exp(x)))

(17)【答案】C)

n和ex幕次方,要分别调用C语言数学库函数doublepow(n,x)和doubleexp(x),由于这

两个函数返回值都为double型,对其两者和计算绝对值,调用库函数double

fabs(pow(n,x)+exp(x)),求出和绝对值,再调用开平方函数doublesqrt(fabs(pow(n,x)+exp(x))),

这样计算出成果就是题干中算术体现式值。

(18)设有定义:intx=2;如下体现式中,值不为6是

A)2*x,x+=2

B)x।।,2*x

C)x*=(l+x)

D)x*=x+l

(18)【答案】A)

本题考察逗号体现式,逗号体现式求解过程是:先求解体现式1,再求解体现式2,整

个逗号体现式值是体现式2值,因而,选项A)中值为J选项B)中,值为6。选项C)中

x*=x+l等价于x=x*(x+1),因此等于6;选项D)与选项C)等价,成果也为6。

(19)若有定义intx,y;并已对的给变量赋值,则如下选项中与体现式(x-y)?(x++):(y++)中

条件体现式(x-y)等价是

A)(x-y<0)

B)(x-y>0)

C)(x-y<0IIx-y>0)

D)(x-y==O)

(19)【答案】D)

条件体现式形式如下:体现式1?体现式2:体现式3。其含义为当“体现式1”值为非

零时,求出“体现式2”值,此时“体现式2”值就是整个条件体现式值;当“体现式1”

值为零时,则求“体现式3”值,这时“体现式3”值就是整个体现式值。本题条件体现式

执行次序是先求解体现式“x-y”值,若其值为非0(可以是正数,也可以是负数),则再求

体现式“x++”值,其值就是条件体现式值;若体现式“x-y”值为0,则再求体现式“y++”

值,其值就是条件体现式值。

(20)如下论述中对的是

A)赋值语句是一种执行语句,必要放在函数可执行某些

B)scanf和printf是C语言提供输入和输出语句

C)由prinlf输出数据都隐含左对齐

D)由printf输出数据实际精度是由格式控制中域宽和小数域宽来完全决定

(20)【答案】A)

C语言自身没有提供输入输出语句,不过可以通过调用原则库函数中提供输入和输出函

数来实现输入和输出,选项B)错误;采用printf输出数据,输出数据都默认为右对齐,若

要左对齐,可以在格式控制中“%”和宽度之间加一种号来实现,选项C)错误;printf

输出精度由变量类型决定,与域宽无关,选项D)错误。

(21)若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c):给a赋值1、

给b赋值2、给c赋值3,如下输入形式中错误是(注:□代表一种空格符)

A)□□□1,2,3

B)1,口口口2,口口口3

C)1,2,3

D)1口2口3

(21)【答案】D)

本题重要考察scanf因数输入格式问题。

scanf函数一般形式为:scanf(格式控制字符串,地址1,地址2,...);

格式控制字符串是由双撇号括起来字符串,它重要由两种类型字符构成:

①格式阐明符由“%”和格式字符构成,如%(:,%d,%s,%f等。其作用是将输入数据

转换为指定格式,赋给scanf二个参量(是地址1)所指定内存单元(也许一次使用多种)

中。格式阐明以"%”字符为标志。

②一般字符,是需要顾客在输入时原样输入字符。

在本题中格式控制字符串为"%d,%d,%d”,体现按十进制输入三个数据。规定在输

入数据时,两个数据间一定以一种逗号“,”作为间隔符。

(22)有如下程序

main(){

inta=O,b=O,c=Ozd=O;

if(a=l)b=l;

c=2;

elsed=3;

printf("%d,%d,%d,%d\n”,a,b,c,d);}

程序输出

A)0,0,0,3

B)1,1,2.0

C)编译有错

D)0,1,2。

(22)【答案】C)

if语句格式为:

if(体现式)语句1

else语句2

if和else是C语言关键字。“语句1”称为if子句,“语句2”称为else子句,这些子句

只容许为一条语句,若需要多条语句时,则应当使用花括号括住复合语句。因而题目if(a=l)

b=l;c=2;elsed=3;if分支有两条语句,没构成复合语句。

(23)有如下程序

main(){

intx=l»y=0»a=0,b=0;

switch(x){

case1:switch(y){

case0:a++;break;

case1:b++;break;

I

case2:a++;b++;break;

case3:a++;b++;}

printf("a=%d,b=%d\n",a,b):

)

程序运行成果是

A)a=2,b=2

B)a=l,b=l

C)a=l,b=0

D)a=2,b=l

(23)【答案】D)

本题考察是用switch语句实现多分支选用构造,首先进入第一种switch(x)判断,进入case1

中进行嵌套判断,假如switch(y)也成立,a自加1,碰到break,退出嵌套,接着执行

case2,a自加为2,b自加为1,碰到break,结束循环,此时a=2,b=l。

(注意:语句case3a++;b++;背面没有break;语句。)

(24)有关“while(条件体现式)循环体”,如下论述对日勺是

A)循环体执行次数总是比条件体现式执行次数多一-次

B)条件体现式执行次数与循环体执行次数同样

C)条件体现式执行次数总是比循环体执行次数多一次

D)条件体现式执行次数与循环体执行次数无关

(24)【答案】C)

while语句中体现式是循环条件,语句为循环体。while语句中当体现式计算值为真(非

0)时,执行循环体语句。因而条件体现式执行次数总是比循环体多一次。

(25)有关do循环体whRe(条件体现式);如下论述中对的是

A)循环体执行次数总是比条件体现式执行次数多一次

B)条件体现式执行次数总是比循环体执行次数多一次

C)条件体现式执行次数与循环体执行次数无关

D)条件体现式执行次数与循环体执行次数同样

(25【答案】D)

do-while语句先执行语句,后判断体现式值。故do-while语句乂称“直到型”循环构造。

由于是先执行后判断,因而do-while语句循环语句至少被执行一次,循环条件至少判断一

次。

(26)如下程序段中变量已正确定义

for(i=0;i<4;i++,i++)

for(k=l;k<3:k++);

printf("*");

程序段输出成果是

A)木*木****本

B)****

C)**

D)*

(26)【答案】D)

本题考察循环语句,题中第二个(内层)for循环之后有•种分号,意思是每次循环中

操作为空,不执行任何操作。再循环结束后执行printf语句,即只打出一种*。

(27)有如下程序(strcpy为字符串复:制函数,strcat为字符串连接函数)

#includc<stdio.h>

#include<string.h>

main()

{charall0]="abc",b[10]="012",c[l0]="xyz";

strcpy(a+1,b+2);

puts(strcat(a,c+l));

)

程序运行后输出成果是

A)bc2yz

B)a2yz

C)a12xyz

D)12yz

(27)【答案】B)

strcpy(a+l,b+2);〃把b数组第3个元素开始到NULL出现为止字符串复制给a数组第2

个元素开始内存空间

puts(strcat(a,c+l));〃打印字符串,该字符串为a数蛆中字符串和c数组第2个元素开始

字符串,strcat()意义为把c数组第2个元素开始字符串潦加到a数组结尾。

程序执行strcpy(a+l,b+2)后,字符数组a值为“a2”,再进行字符串连接strcat(a/Cfl),

此时字符数组a值为“a2yz”.

(28)有如下程序

intadd(inta,intb)

(

return(a+b);

)

main()

{intk,(*D(),a=5,b=10;

仁add;

•••

)

则如下函数调用语勺错误是

A)k=add(a,b);

B)k=(*f)(a,b);

C)k=*f(a,b);

D)k=f(a,b);

(28)【答案】C)

在语句“k=*f(a,b)”中,由于“()”优先级高于“*”,因此“*f(a,b);”体现其返回类型

为指针带有两个整型参数函数,而不是整型数值,因而选项C)为错误调用形式。

(29)有如下程序

intf(intx):

main(){

intn=l,m;

m=f(f(f(n)));

pnntf(',%d\n",m);}

intf(intx)

{returnx*2:}

程序运行后输出成果是

A)1

B)2

C)4

D)8

(29)【答案】D)

程序考察了函数调用。对于m=f(f(f(n)));首先计算最内层函数调用f(n),执行f函数,得

到返回值2,然后计算f⑵,得到返回值为4,最终计算f(4),得到计算成果为8。

(30)有如下程序

#includc<stdio.h>

fun(inta,intb){

intstaticm=0»i=2;

i=i+m+l;

m=i+a+b;

returnm;}

main(){

intk=4,m=1,p;

p=fun(k,m);

printf(”%d,”,p);

p=fun(k,m);

printf("%d\n",p);}

程序运行后输出成果是

A)8,17

B)7,16

C)8,8

D)7,17

(30)【答案】A)

本题考察了静态变量以及局部变量同名问题(保留近来•次结束时值)。主函数中调用

fun函数两次,第一次调月fun(4,l),形参a和b接受后来,i值为3,m值为8,调用结束

返回8存储到p中并且输出p值为8,除了静态变量m和i,变量a,b撤销。第二次调用

fun(4,l),接受实参值后来,i为3+8+1,而m为12+4+1.即输出函数值17。

(31)如下数组定义中错误是

A)intx[][3]={0);

B)心口网={{1,2},{3,4},{5,6}};

C)intx[][3]-{{l,2.3},{4,5,6));

D)intx[2][3]={1,2,3,4,5,61;

(31)【答案】B)

二维数组初始化有如下几种形式:①分行进行初始化:②不分行初始化;③某些数组元

素初始化:④省略第一维定义,不省略第一堆定义。在选项A)中赋值号左边定义了一种3

行2列二维数组,而右边用2行3列数字进行赋初值。因此出现了边界越界溢出而出错。

(32)如下论述中对的是

A)在C语言中,预处理命令行都以*“开头

B)预处理命令行必要位于C源程序起始位置

C)#include必要放在C程序开头

D)C语言预处理不能实现宏定义和条件编译功能

(32)【答案】A)

在C语言中,但凡以“旷号开头行,都称为“编译预处理”命令行。预处理命令可以

放在程序中任何位置,其有效范围是从定义开始到文献结束。预处理命令有宏定义、文献包

括和条件编译三类。include<stdio.h>命令行体现程序中要引用C原则函数库中原则输入输

出函数。

(33)如F论述中对的是

A)在包括文献中,不得再包括其她文献

B)include命令行不能出目前途序文献中间

C)在一种程序中,容许使用任意数量include命令行

D)虽然包括文献被修改了,包括该文献源程序也可以不重新进行编译和连接

(33)【答案】C)

^include文献包括命令,使用时应注意如下5个规则:

①包括文献include命令行一般应书写在所用源程序文献开头,故有时也把包括文献称

作“头文献”。头文献名可以由顾客指定,其后缀不一定用“由二

②包括文献中,一般包具有某些公用/define命令行、外部阐明或对(库)函数原型阐

明。

③当包括文献修改后,对包括该文献源程序必要重新进行编译连接。

④在一种程序中,容许有任意多种#皿(:1皿0命令行。

⑤在包括文献中还可以包括其她文献。

(34)设有如下函数:voidfun(intn,char*s){......}则下面对函数指针定义和赋值均对11勺是

A)void*pf();pf=fun;

B)void(*pf)(int,char*);pf=fun;

C)void*pf():*pf=fun;

D)void(*pf)(int,char);pf=&fun;

(34)【答案】B)

函数指针定义形式是:数据类型标识符(*指针变量名K);void(*pf)()定义了一种没有返

回值函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。因此给pf

给赋值时,把函数名fun赋给pf即可。

(35)有如下程序

#include<stdio.h>

main()

{intn,*p=NULL;

*p=&n;

printf("Inputn:");scanf("%d'\&p);printf("outputn:");

printf("%d\n",p);

)

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,如下语句对日勺

A)intn,*p=NULL:

B)*p=&n:

C)scanf("%d”,&p)

D)printf("%d\n",p);

(35)【答案】A)

选项A)体现在程序中,申明定义变量语句“intn,*o=NUK;”定义了整型变量n和指针

变量P,并且指针变量p初始化为空。其她语句都是错误。其中选项B),&n地址应存储到

指针变量P中,而选项C1中数据输入项错误,选项D)输山地址信息。

(36)有如下程序

voidfun(char*s)(

chara[10];

strcpy(a,"STRING");

main(){

char*p="PROGRAM";

fun(p);

printf("%s\n'\p);

}

程序运行后输出成果是(此处□代表空格)

A)STRING□□匚口

B)PROGRAM

C)STRING□□口

D)STRING

(36)【答案】B)

函数fun重要功能是把字符串“STRING",存储到字符数组a中,s指向该字符串,函数

调用结束后来,释放s和a指向空间。主函数调用fun(p),并不能更改p值,因而p指向

没有变化。

(37)如下论述中错误是

A)可以用typedef将已存在类型用一种新名字来代表

B)可以通过lypedef增长新类型

C)用lypedef■定义新类型名后,原有类型名仍有效

D)用typcdcf可觉得多种类型起别名,但不能为变量起别名

(37)【答案】B)

C语言容许用typedef阐明一种新类型名,阐明新类型名语句一般形式为:typedef类

型名标识符;在此,“类型名”必要是在此语句之前已经有定义类型标识符:。‘'标误符”是

一种顾客定义标识符,用作新类型名。typedef语句作用仅仅是用“标识符”来代表已存在

“类型名”,并未产生新数据类型,原有类型名仍然有效。

(38)下面构造体定义语句中,错误是

A)structord{intx;inty:inlz;};structorda;

B)structord{intx:inty;inlz;}structorda;

C)structord{intx;inty;inlz:}a:

D)struct{intx;inty;inlz;}a;

(38)【答案】B)

在选项B)中,由于在定义完构造体后缺乏分号因此这是一条不完整语句,因而

是错误。

(39)如下论述中对的是

A)打开一种已存在文献并进行了写操作后,原有文献中所有数据必然被覆盖

B)在一种程序中当对文献进行了写操作后,必要先关闭该文献然后再打开,才能读

到第1个数据

C)C语言中文献是流式文献,因而只能次序存取数据

D)当对文献读(写)操作完毕之后,必要将它关闭,否则也许导致数据丢失

(39)【答案】D)

在C语言中,有两种对文献存取方式;次序存取和直接存取;假如以“a”方式对一种

己打开文献进行写操作后,则原有文献中内容将保留,新数据写在原有内容之后。假如以

方式为读和写而打开一种文献,则既可以对文献进行读,也可以对文献进行写,并且在读和

写操作之间不必关闭文献,可以从头开始读。当对文献读(写)操作完毕之后,必要将它关

闭。

(40)有如下程序

#include<stdio.h>

main()

{FILE*pf;

char*s1="Cliina",*s2="Beijing";

pf=fopcn("abc.dat","wb+H);

fwrite(s2,7,l.pf);

rcwind(pf);/*文献位置指针回到文献开头*/

fwrite(sl,5,l,pf);

fclose(pf);

)

以上程序执行后abc.dat文献内容是

A)Chinang

B)China

C)ChinaBeijing

D)BeijingChina

(40)【答案】A)

本题主考察函数fwrite使用。函数fwrite调用形式为:intfwrite(char*pt,unsigned

其功能是把所指向个字节输出到所指文献中。在本题中

size,unsignednzFILE*fp);ptn*sizefp

fwrite(s2,7,l,pf);功能是把字符串“Beijing”输入到文献abc.dat中,然后调用rewind(pf),把

文献位置指针回到文献开头,再调用fwrite(sl,5,l,pf)把字符串“China”写入到文献abc.dat

中,因此此时文献abc.dat内容为Chinang。

上机操作题某些

二、程序填空题

围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N-1,有一只狐狸和一只

兔子在洞中居住。狐狸总想找到兔子并吃掉它,它寻找措施是先到第•种洞(即编号为

0洞)中找;再隔1个洞,即到编号为2洞中找;再隔2个洞,即到编号为5洞中找:

下次再隔3个洞;即到编号为9洞中找;……。若狐狸找一圈,请为兔子指出所有不安

全洞号。程序中用a数组元素模仿每个洞,数组元素下标即为洞号,数组元素中值为0

时,体现该洞安全,为1时体现该洞不安全。例如,当形参n值为30时,不安全海号

是0、2、5、9、14、20、27。

请在程序下划线处填入对的内容并把下划线删除,使程序得出对的成果。

注意:源程序存储在考生文献夹下BLANK1.C中。

不得增行或删行,也不得更改程序构造!

二、程序填空题

【答案】

(1)0(2)t(3)i+t

【审题分析】

程序中用a数组元索模仿每个洞,数组元索下标即为洞号,数组元索中值为0时,

体现该洞安全,为1时体现该洞不安全。咱们首先认为每个洞都是安全,然后使用循环

语句,按照题目所述规则,对数组a元素进入处理,把不安全元素值改为1即可。

【解题思绪】

第一空:在函数fun()中,初始认为这些洞都是安全,因此故第一空处应填“0”。

第二空:变量t用来体现狐狸每次寻找兔子间隔洞个数,其初始值应当等于1,故

第二空处应填气”。

第三空:在while循环中,狐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论