2023年甘肃省庆阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2023年甘肃省庆阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2023年甘肃省庆阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2023年甘肃省庆阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2023年甘肃省庆阳市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

2023年甘肃省庆阳市全国计算机等级考试

C语言程序设计预测试题(含答案)

学校:班级:姓名:考号:

一、2.填空题(10题)

1.以下程序的功能是根据输入的“y”("Y”)与“n”("N”),在屏幕上分别显示

出“ThisisYES.”与“ThisisNO空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYESAn");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

2.下面程序的运行结果是【】。

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{intil,i2;

il=1000/s(N);i2=1000/f(N);

printf("%d%d\n",il,i2);

3.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。

4.在数据库系统中,实现各种数据管理功能的核心软件称为【】。

5.fseek函数的正确调用形式是【】。

6.下列程序的输出结果是

#include<stdio.h>

intfun(intx)

{intp;

if(x==0IIx==l)

return3;

else

p=x-fun(x-2);

returnp;

)

voidmain()

{printf("\n%d",fun(ll));

)

7.当运行以下程序时,输入abed,程序的输出结果是【】。

insert(charstr[])

{inti;

i=stolen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*i—;}

printf("%s\n",sir);

)

main()

{charstr[40];

seanf("%s",str);insert(str);

)

8.以下程序运行时若从键盘输入:102030〈回车>。输出结果是【】。

#include<stdio.h>

main()

{

inti=O,j=O,k=O;

scanf("%d%*d%d",&i,&j,&k);

printf("%d%d%d\n",i,j,k);

)

9.当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从

而不致引起应用程序的变化,这是指数据的【】。

10.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的

【】。

二、单选题(10题)

11.若有以下程序

*ineludr<aldioh>

mam()

tnta«I.b»2.c«3.df«0|

if(afst):ehrr•I;

if(baw2)r♦*2;

if(c!«3)ir♦

if(d«■4)r♦;

printf(.r);

则程序的输出结果是

A.3B.7C.6D.10

12.

(13)以下程序的运行结果是().

#include<stdio.h>

main()

{inta=3,b=4,c=8,d=4,m=l,n=3;

print""%d\n",(m=a>b)&&(n=c>d));

}

A)0B)1C)2D)3

13.已知一个大小为n的整型数组,现求该数组的全部连续子数组的元

素之和的最大值,最优算法的时间复杂度是。如:a[4]={2「l,3,-4},它的

全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-

4]},它们的元素之和为{2,-1,3,41,2,-1,4,20},其中的最大值为4。

A.O(logN)B.O(N)C.O(N*logN)D.O(NA2)

14.若有定义语句:“inta=3,b=2,c=l;以下选项中错误的赋值表达

式是()O

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=l+(b=c—4);

15.

设有定义:chars[10];inti=0;,以下不能将一行(不超过100个字符)带有空格的字符串正

确读入的语句或语句组是().

A)gets(s):

B)scanlT%$”,s):

Owhile((s[t+JJ=gctciiar())!",n");sfiJ-.O";

D)do]scat)fts(i]);|whilc(s[i-»fP''JI's[i]-r0':

16.下列有关图的遍历说法中,不正确的是()

A.图的遍历必须用递归实现

B.基本遍历算法两种:深度遍历和广度遍历

C.有向图和无向图都可以进行遍历操作

D.图的遍历算法可以执行在有回路的图上

17.算法的效率的分析主要包括两个方面0。

A.时间复杂度和空间复杂度B.正确性和简单性C.可读性和文档性D.

数据复杂性和程序复杂性

18.有下列程序:

main

{inty=10;

do{y—;}while(—y);

printf("%d\n",—y);

)

当执行程序时,输出的结果是()。

A.-lB.lC.4D.0

19.若在线性表中采用折半查找法查找元素,该线性表应该()

A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存

储结构D.元素按值有序且采用链式存储结构

20.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物

理设计D.结构特性设计和行为特性设计

三、程序设计题(10题)

21.

请编写一个函数proc(),它的功能是:比较2个字符串的长度(不得

调用C语言中求字符串长度的函数),函数返回较长的字符串。若2个

字符串长度相等,则返回第1个字符串。例如,若输入jiangxi<Enter〉;

beijing<;Enter>;则函数返回jiangxi。注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的

花括号中填入所编写的若干语句。试题程序:

0mclude

rhar•proHclur•char•t)

voidmaia<)

(

dura^20j.b[10j«•p.•

pnntk*lnpuihhsinng:*)*

■…⑺i

2th・,nnt,*)i

i

pnntfC*M»w«proc<a«b))(

22.N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指

向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数

值返回。

例如,若学生的成绩是:8576698591726487,则平均分应当是:

78.625°注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

fincludc<stdio.h>

^include<ttdlib.h>

#ddineN8

■tnictdisl

|doubles;

•tmctalist•next;

I>

typcdcfftnicttlitiSTREC:

doublefiin(STREC•h)

STREC•cre«t(double••)

|STREC•b,*p,«q;inti=0;

h.p.(STREC•)m«Uoc(sixeof(STREC));p->»=0;

while(i<N)

|q=(STREC•)malloc(■««)((STREC));

q>>■s»[i]«i.♦;p->next=q;p=q;

I

p->next=0;

returnh;

I

outlist(STREC・b)

ISTREC•p;

pah->next;printf(*head”);

do.

|printf(*->%4.If",p->•);p=p->next;|

while(p!«0);

printf(w\n\n*);

I

main()

|doubleUN]=185,76,69,85,91,72.64.871..ve;

voidNONO();

STREC«h|

hacre«l(•)ioutlist(h);

ave=fiin(h):

printf("ave=%6.3An".ave);

NONO();

I

voidNONO()

1/•本南敷用于打开文件,输入数据,调用函数,输出数据,关闭文件。•?

FILE•in,♦out;

intitj;doubles[N]9ave;

STREC,h;

inafopen("in.dal*,*r");

out»fopen(*ouL<hiR/w");

for(i=0;i<10;i♦•♦­)

I

for(j«0;j<N;

h=cre«t(s);

“e=fun(h):

fprintf(outv-%6.31An"tave);

I

fcloee(in);

fcloee(out);

23.程序定义了MxM的二维数组,并在主函数中自动赋值。请编写函

数proc(inta口[M],intn),该函数的功能是使数组左下半三角元素中的

值加上n。例如,a数组中的值为:

I234S

678910

••II121314IS

K17IS1920

:lTZ23UZ5

后「的倒”2・11逅网在符序扃・教附中的值力,

3234s

S»B910

••1314IS1415

IS19202120

2324252627

注意:部分源程序给出如下。

请勿改动main。函数和其他函数中的任何内容,仅在函数proc()的花括

号中填入所编写的若干语句。

试题程序:

KmdudeVdrae.k>

,tiKiudcVitidao.h>

3includeVcooio.h>

■inrludrV»tdliL.h>

9S

aidprocCtlMtflltl>

voidnum()

init>-2.Uji

int«rr[S][5]»U,243.4.S.«.7a3.IOJ|J2.13.

14«lS4«.n.lSdl.2041.n.t3.24.nh

«yMcfn<"CLS")।

pnmfC••••Tbrarray••••

pnfnf(*w-将4d\fT.0»i

proc<arr»n)g

nnnff(*••••THFRR*vll|.T••••\n*ki

loKi-*OiivM,I++)

pnnt((•M4d"••rr£i][j])i

prvntf(<\na>s

24.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方

案的项目中包含一个源程序文件progl.c0在此程序中,请编写函数fun(),

该函数的功能是将s所指字符串中ASCII值为偶数的字符删除,字符串

中剩余字符形成一个新字符串并将其存放在t所指的数组中。

例如,若s所指字符串中的内容为“ABCDEFG123456",其中字符B

的ASCII值为偶数,字符2的ASCII值为偶数,都应当删除,其他依

此类推。最后t所指的字符串中的内容应是“ACEG135”。

注意:部分源程序给出如下。

请勿改动主函数main。和其他函数中的任何内容,仅在函数fun()的花

括号中填入你编写的若干语句。

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

#include<conio.h>

voidfun(char*s,chart[])

)

voidmain()

chars[100],t[100];

system(“CLS”);

printf("\nPleaseenterstrings:");

scanf("%s”,s);

fun(s,t);

printf(44\nTheresultis:%s\n,,,t);

)

25.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:

除了字符串前导的。号之外,将串中其他*号全部删除。在编写函数时不

得使用C语言提供的字符串函数.

例如.字符串中的内容为:”・••.............除后,字符串中的内容应当

是:“•••.ABCDEFC".

注意:部分毒程序在文件PROCI.C中。

请勿改动主函败main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

tindude<stdio.h>

voidfun(cixr•a)

main()

|chars[81];voidNONO();

printf(*Enterastring:\n");grte(s);

printf("Thestringafterdeleted:\n");puts(t);

NONO();

I

voidNONO()

|/>本函数月;于打开文件,轴入数据.调用函数,输出数据,关闭文件。•/

FILE•in,•out;

inti;chars[81];

m=fbpen("in.dat"f"r")5

out=fbpen("out.dat".*w*);

far(i£0;i<10;i+♦)

I

bc«iif(in.N%8N,e);

^pnntf(out,M%s\n",»);

I

aw(in):

26.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方

案的项目中包含一个源程序文件progl.c。在此程序中,请编写一个函

数fun(),该函数的功能是将大于整数m且紧靠m的k个素数存入所

指的数组中。例如,若输入17、5,则应输出19、23、29、31、37。注

意:部分源程序在文件progl.c中。请勿改动主函数main。和其他函数中

的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题

程序:

♦include<conio.h>

♦include<stdio・h>

tinclude<stdlib.h>

voidfun(intm,intk,intxx[])

voidmain()

(

FILE*wf;

intm,n,zz[1000];

system(MCLSW);

printf(H\nPleaseentertwoin­

tegers:M);

scanf(w%d%d*\&n);

fun(m,n,zz);

for(m=0;m<n;m)

printf(n%d”,zz[m]);

printf(w\n");

/******率**********/

wf-fopen("out・dat?’,"w");

fun(17,5,zz);

21for(m=0;m<5;m+-»«)

w

22fprintf(wff%d”,zz[m]);

3

2close(wf);

24f

25/*****************/

26

27.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删

除字符串中所有的*号。编写函

数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******删除*后字符串

中的内容应当

是:ABCDEFG0

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

#includc<irtdio.h>

voidfun(chai•.)

main()

Ichwr81];

void、0N0()•

printff*EnteraHiring:\nH)•

fun(«)$

pnntf("Thestringafterdelated,\n*);puto(*);

NONO();

2dNONO(>

"*本函数用于打开文件,箱人数据,调用漏数.输出数祗.关闭文件“・/

FIIE-in.•out;

inti:char”81];

in=fopm("in.dal*,*r*);

out=(opcn(^out.dat**.*wH);

for(i-0;i<10;i**)|

fscanf(in,»);

fun(a);

fpnntf(out..a);

in);

fclosf(out);

28.

假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能

是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的

*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删

除。例如,字符串中的内容为****A*BC*DEF*G****,若m的值为2,

删除后,字符串中的内容则应当是**A*BC*DEF*G****;若m的值为

4,则字符串中的内容仍为****A*BC*DEF*G****°n的值在主函数中输

入。在编写函数时,不得使用c语言提供的字符串函数。注意:部分源

程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅

在函数proc()的花括号中填入所编写的若干语句。试题程序:

8incIwW

8mclutkVctNuo.h>

vtiidn)

midRMin(>

(duirMrtSlmi

pcintfC*Enier•MringAn"Hsctsf«ir)s

pcifirK*Entern»i*)।

procC

pnncfCeTb»firingAfterdrlrted-\ti*)i

mit»(«tr)t

29.请编写函数proc,该函数的功能是:将M行N列的二维数组中的

数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放

在形参n所指的存储单元中。

例如,若二维数组中的数据为

13233343

14243444

15253545

则一维数组中的内容应该是132333431424344415253545。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括

号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

voidproc(int(*s)[103,int*b,int*n,intrain.intnn)

(

)

voidmain

{

intarr[10][10]={{33,33,33,33),{44,44,44,44},

{55,55,55,55}),i,j;

inta[100]={o)>n=o;

printf("Thematrix:\n");

for(i=0;i<3;i++)

(

for(j=O;j<4;j++)

printf("%3d",arr[i][j]):

printf("\n");

)

proc(arr,a,&n,3,4):

printf("TheAarray:\n");

for(i=0;i<n;i++)

printf("%3d",a[i]):

printf("\n\n");

)

30.使用VC++2010打开触文件夹下progl中的解决方案。此解决方案的

项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),

其功能是移动字符串中的内容,移动的规则是把第1〜m个字符,移动到

字符串的最后,把第m+1到最后的字符移动到于符串的前面。例如,字

符串中原有的内容为“ABCDEFGHIJK",m的值为3,移动后,字符串中

的内容应该是“DEFGHUKABC”。注意涪B分源程序在文件progl.c中。

请勿改动main。函数和其他函数中的任何内容,仅在函数fun()的花括号

中填入你编写的若干语句。试题程序:

u

<

d

o

h

>

i

n

c

l

d

e

s

t

i

.

<

s

r

n

.

i

n

c

l

u

d

e

t

i

g

h

>

I

d

e

f

i

n

e

N

8

0

o

u

c

n

)

v

i

d

f

n

(

h

a

r

w

i

t

m

r

m

i

(

)

v

o

i

d

a

n

(

E

;

F

I

L

w

f

a

N

=

H

I

c

h

a

r

[

]

"

A

B

C

D

E

F

G

J

K

"

,

b

"

H

I

[

N

]

=

A

B

C

D

E

F

G

J

K

"

;

i

n

t

m

;

M

w

T

g

l

s

n

\

n

)

p

r

i

n

t

f

(

h

e

o

r

i

i

n

a

t

r

i

g

;

;

p

u

t

s

(

a

)

温馨提示

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

最新文档

评论

0/150

提交评论