2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁
2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁
2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁
2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁
2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023年甘肅省慶陽市全國(guó)計(jì)算機(jī)等級(jí)考試

C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)

學(xué)校:班級(jí):姓名:考號(hào):

一、2.填空題(10題)

1.以下程序的功能是根據(jù)輸入的“y”("Y”)與“n”("N”),在屏幕上分別顯示

出“ThisisYES.”與“ThisisNO空白處需要填入的內(nèi)容是

#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.下面程序的運(yùn)行結(jié)果是【】。

#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.【】(黑箱或白箱)測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。

4.在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

5.fseek函數(shù)的正確調(diào)用形式是【】。

6.下列程序的輸出結(jié)果是

#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.當(dāng)運(yùn)行以下程序時(shí),輸入abed,程序的輸出結(jié)果是【】。

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.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030〈回車>。輸出結(jié)果是【】。

#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.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從

而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

10.算法的工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少分別稱為算法的

【】。

二、單選題(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);

則程序的輸出結(jié)果是

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

12.

(13)以下程序的運(yùn)行結(jié)果是().

#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.已知一個(gè)大小為n的整型數(shù)組,現(xiàn)求該數(shù)組的全部連續(xù)子數(shù)組的元

素之和的最大值,最優(yōu)算法的時(shí)間復(fù)雜度是。如:a[4]={2「l,3,-4},它的

全部連續(xù)子數(shù)組為{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;以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)

式是()O

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

15.

設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過100個(gè)字符)帶有空格的字符串正

確讀入的語句或語句組是().

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.下列有關(guān)圖的遍歷說法中,不正確的是()

A.圖的遍歷必須用遞歸實(shí)現(xiàn)

B.基本遍歷算法兩種:深度遍歷和廣度遍歷

C.有向圖和無向圖都可以進(jìn)行遍歷操作

D.圖的遍歷算法可以執(zhí)行在有回路的圖上

17.算法的效率的分析主要包括兩個(gè)方面0。

A.時(shí)間復(fù)雜度和空間復(fù)雜度B.正確性和簡(jiǎn)單性C.可讀性和文檔性D.

數(shù)據(jù)復(fù)雜性和程序復(fù)雜性

18.有下列程序:

main

{inty=10;

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

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

)

當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。

A.-lB.lC.4D.0

19.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()

A.元素按值有序B.構(gòu)采用順序存儲(chǔ)結(jié)C.元素按值有序且采用順序存

儲(chǔ)結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

20.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物

理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

三、程序設(shè)計(jì)題(10題)

21.

請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:比較2個(gè)字符串的長(zhǎng)度(不得

調(diào)用C語言中求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若2個(gè)

字符串長(zhǎng)度相等,則返回第1個(gè)字符串。例如,若輸入jiangxi<Enter〉;

beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的

花括號(hào)中填入所編寫的若干語句。試題程序:

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名學(xué)生的成績(jī)已在主函數(shù)中放人一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指

向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)

值返回。

例如,若學(xué)生的成績(jī)是:8576698591726487,則平均分應(yīng)當(dāng)是:

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

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括

號(hào)中填入你編寫的若干語句。

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/?本南敷用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。??

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的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函

數(shù)proc(inta口[M],intn),該函數(shù)的功能是使數(shù)組左下半三角元素中的

值加上n。例如,a數(shù)組中的值為:

I234S

678910

??II121314IS

K17IS1920

:lTZ23UZ5

后「的倒”2?11逅網(wǎng)在符序扃?教附中的值力,

3234s

S?B910

??1314IS1415

IS19202120

2324252627

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

請(qǐng)勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括

號(hào)中填入所編寫的若干語句。

試題程序:

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中的解決方案。此解決方

案的項(xiàng)目中包含一個(gè)源程序文件progl.c0在此程序中,請(qǐng)編寫函數(shù)fun(),

該函數(shù)的功能是將s所指字符串中ASCII值為偶數(shù)的字符刪除,字符串

中剩余字符形成一個(gè)新字符串并將其存放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為“ABCDEFG123456",其中字符B

的ASCII值為偶數(shù),字符2的ASCII值為偶數(shù),都應(yīng)當(dāng)刪除,其他依

此類推。最后t所指的字符串中的內(nèi)容應(yīng)是“ACEG135”。

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

請(qǐng)勿改動(dòng)主函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花

括號(hào)中填入你編寫的若干語句。

試題程序:

#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.規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:

除了字符串前導(dǎo)的。號(hào)之外,將串中其他*號(hào)全部刪除。在編寫函數(shù)時(shí)不

得使用C語言提供的字符串函數(shù).

例如.字符串中的內(nèi)容為:”???.............除后,字符串中的內(nèi)容應(yīng)當(dāng)

是:“???.ABCDEFC".

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

請(qǐng)勿改動(dòng)主函敗main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。

tindude<stdio.h>

voidfun(cixr?a)

main()

|chars[81];voidNONO();

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

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

NONO();

I

voidNONO()

|/>本函數(shù)月;于打開文件,軸入數(shù)據(jù).調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。?/

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中的解決方案。此解決方

案的項(xiàng)目中包含一個(gè)源程序文件progl.c。在此程序中,請(qǐng)編寫一個(gè)函

數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入所

指的數(shù)組中。例如,若輸入17、5,則應(yīng)輸出19、23、29、31、37。注

意:部分源程序在文件progl.c中。請(qǐng)勿改動(dòng)主函數(shù)main。和其他函數(shù)中

的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題

程序:

?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.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪

除字符串中所有的*號(hào)。編寫函

數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******刪除*后字符串

中的內(nèi)容應(yīng)當(dāng)

是:ABCDEFG0

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

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括

號(hào)中填入你編寫的若干語句。

#includc<irtdio.h>

voidfun(chai?.)

main()

Ichwr81];

void、0N0()?

printff*EnteraHiring:\nH)?

fun(?)$

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

NONO();

2dNONO(>

"*本函數(shù)用于打開文件,箱人數(shù)據(jù),調(diào)用漏數(shù).輸出數(shù)祗.關(guān)閉文件“?/

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.

假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc(),它的功能

是:使字符串中前部的*號(hào)不得多余m個(gè);若多余m個(gè),則刪除多余的

*號(hào);若少于或等于m個(gè),則什么也不做,字符串中間和尾部的*號(hào)不刪

除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,

刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G****;若m的值為

4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****°n的值在主函數(shù)中輸

入。在編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。注意:部分源

程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅

在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

8incIwW

8mclutkVctNuo.h>

vtiidn)

midRMin(>

(duirMrtSlmi

pcintfC*Enier?MringAn"Hsctsf?ir)s

pcifirK*Entern?i*)?

procC

pnncfCeTb?firingAfterdrlrted-\ti*)i

mit?(?tr)t

29.請(qǐng)編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的

數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放

在形參n所指的存儲(chǔ)單元中。

例如,若二維數(shù)組中的數(shù)據(jù)為

13233343

14243444

15253545

則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。

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

請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括

號(hào)中填入所編寫的若干語句。

試題程序:

#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中的解決方案。此解決方案的

項(xiàng)目中包含一個(gè)源程序文件progl.c。在此程序中,請(qǐng)編寫函數(shù)fun(),

其功能是移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則是把第1?m個(gè)字符,移動(dòng)到

字符串的最后,把第m+1到最后的字符移動(dòng)到于符串的前面。例如,字

符串中原有的內(nèi)容為“ABCDEFGHIJK",m的值為3,移動(dòng)后,字符串中

的內(nèi)容應(yīng)該是“DEFGHUKABC”。注意涪B分源程序在文件progl.c中。

請(qǐng)勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)

中填入你編寫的若干語句。試題程序:

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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論