2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列選項(xiàng)中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

2.

3.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接選擇排序C.快速排序D.二路歸并排序

4.設(shè)有定義“doublex=5.16894;”,則語句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的輸出結(jié)果是()。

A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項(xiàng)不匹配,產(chǎn)生錯誤信息

5.以下各選項(xiàng)中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

6.以下程序運(yùn)行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項(xiàng)是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

7.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.34B.55C.10D.18

8.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

9.在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關(guān)系碼C.外碼D.候選碼

10.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

11.對n個關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_______

A.O(1)B.O(logn)C.O(n)D.O(nlogn)

12.

13.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點(diǎn),A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點(diǎn)()。

A.99B.100C.101D.49E.50F.51

14.若有定義語句:char*s1="OK",*s2="ok";,以下選項(xiàng)中,能夠輸出"OK"的語句是A.A.if(strcmp(s1,s2)==0)puts(s1);

B.if(strcmp(s1,s2)!=0)puts(s2);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)!=0)puts(s1);

15.以下說法正確的是()。

A.數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位

B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位

C.數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合

D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)

16.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;

17.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序運(yùn)行后的輸出結(jié)果是()。A.137B.731C.73D.37

18.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時輸入6并按<Enter>鍵,則輸出結(jié)果是()。A.6B.8C.7D.5

19.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的運(yùn)行結(jié)果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

20.

二、2.填空題(20題)21.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

22.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計(jì)有多少個單詞,單詞間用空格分隔。補(bǔ)充所缺語句。

#include<stdio.h>

main()

{charss[80],c1,c2='';

inti=0,num=0;

gets(s);

while(s[i]!='\0')

{c1=s[i];

if(i==0)c2='';

elsec2=s[i-1];

if(【】)num++;

i++;

}

printf("Thereare%dwords,\n",num);

}

23.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]\'\0';

}

24.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j]='\0';

puts(s);

}

25.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

26.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

27.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

28.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

29.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

30.軟件定義時期主要包括______和需求分析兩個階段。

31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

32.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

for(i=0:i<N;i++)

{k=0:

for(j=1;j<M;j++)

if(a[k][i]>a[j][i]k=j;

s+=______;

}

______=s:

}

main()

{intx[M][N]={3,2,5,1,4,1,8.3},s;

sumColumMin(______)

printf("%d\n".s):

}

33.以下程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

34.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

35.下面程序

main()

{intx,y,m,n;

x=5;y=8;

m=++x,x;

n=y+y++;

printf("%d,%d,%d,%d",x,y,m,n);

}

運(yùn)行后,x,y,m,n的值是______。

36.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

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

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入上【】。

37.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

38.下面程序的功能是:從輸入的正整數(shù)中選3個數(shù)進(jìn)行輸出,要求這些數(shù)都是2的倍數(shù),請?zhí)羁铡?/p>

main()

{inta,i=0;

scanf("%d",&A);

do

{if(a>0&&a%2==0)

{printf("%d\n",A);i++;}

if(i!=3)

{scanf("%d",&A);}

}while(());

}

39.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

40.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

三、1.選擇題(20題)41.程序運(yùn)行結(jié)果為______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}

A.L=18.849556S=28.274333

B.18.849556=18.84955628.274333=28.274333

C.L=18.84955628.274333=28.274333

D.18.849556=18.849556S=28.274333

42.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是______。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

43.以下敘述中正確的是

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

44.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

45.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。main(){inti=O,j=10,k=2,s=0;for(;;){i+=k;if(i>j){ptintf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

46.假設(shè)a和b為int型變量,則執(zhí)行以下語句后,b的值為______。a=1;b=10;do{b-=a;a++;}while(b--<0);

A.9B.-2C.-1D.8

47.軟件需求分析階段的工作,可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。

A.階段性報告B.需求評審C.總結(jié)D.以上都不正確

48.下面對對象概念描述錯誤的是()

A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態(tài)屬性

49.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=p[4];

A.4B.5C.3D.不確定

50.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

51.以下選項(xiàng)中不屬于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

52.下列程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

voidfun(int*s,int*p)

{staticintt=3;

*p=s[t];

t--;

}

voidmain()

{inta[]={2,3,4,5},k;

intx;

for(k=0;k<4;k++)

{fun(a,&x);

printf("%d,",x);

}

}

A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,

53.以下變量x,y,z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x÷y÷z的C語言表達(dá)式是

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

54.有以下程序:voidchange(intk[]){k[0]=k[5];)main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4)(change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

A.678910B.13579C.12345D.62345

55.有以下程序:main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[il[j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。

A.35B.37C.39D.3975

56.下面程序運(yùn)行后的輸出結(jié)果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}

A.5B.6C.7D.8

57.以下程序(程序左邊的數(shù)字為附加的行號)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯

58.下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是______。

A.max(intx,inty,int*z)

B.intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?X:y;returnz;}

C.max(intx,inty)

D.intmax(intx,inty){intz;{returnx>y?x:y;}z=x>y?x:y;return(z);}

59.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

60.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達(dá)式是()。

A.isupper(c)

B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

四、選擇題(20題)61.

有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

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

執(zhí)行后的結(jié)果是()。

A.7B.3C.2D.0

62.

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

char*point(char*pt):

main

{charb[4]={a,c,s,f),*pt=b;

pt=point(pt);

printf("%c\n",*pt);

}

point(char*p)

{p+=3;

returnp;

}

A.sB.cC.fD.a

63.以下選項(xiàng)中不能用作C程序合法常量的是()。

64.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

65.

66.

67.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.zB.0C.元素eh[5]的地址D.字符Y的地址

68.

69.表示關(guān)系M<=N<=P的C語言表達(dá)式為()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

70.以下敘述中錯誤的是(

)。A.預(yù)處理命令行必須位于源文件的開頭B.宏替換可以出現(xiàn)在任何一行的開始部位C.宏替換的作用一直持續(xù)到源文件結(jié)尾D.宏替換不占有程序的運(yùn)行時間

71.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.6B.3C.8D.12

72.有以下程序:

#includc<stdio.h>

voidfun(int*p)

{printf("%d\n",p[5]);}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10};

fun(&a[3]);

}

程序運(yùn)行后的輸出結(jié)果是()。

A.5B.6C.8D.9

73.

74.(54)在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序

B.選擇排序

C.快速排序

D.歸并排序

75.人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是()。

A.身份證號B.姓名C.性別D.年齡

76.下列敘述中錯誤的是()。

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

77.“商品”與“顧客”兩個實(shí)體集之間的聯(lián)系一般是()。

A.一對一B.多對一C.一對多D.多對多

78.有以下程序:

#include<stdio.h>

main()

{inta=-2,b=0;

while(a++++b);

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

}

程序運(yùn)行后的輸出結(jié)果是()。

A.1,3B.0,2C.0,3D.1,2

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對字符串中的頭兩個元素進(jìn)行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已在主函數(shù)中賦予。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidproc(char*arr){inti,j,n;charch;n=strlen(arr):for(i=1;i<n;i++)//****found****{c=arr[i];j=i-1;while((j>=o)&&(ch<arr[j])){arr[j+1]=arr[j];j--;}arr[j+1]=ch;}}voidmain{chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf("Theoriginalstring:%s\n",a);proc(a);printf("Thestringaftersortin9:%s\n\n",a);}

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:除了尾部的*號之外,將字符串中其他*號全部刪除。形參P已指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:

參考答案

1.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項(xiàng)D中,'\n'表示的是換行。

2.C

3.C

4.A表達(dá)式“(int)(x*1000+0.5)”使用了強(qiáng)制轉(zhuǎn)換,其計(jì)算結(jié)果為5169,(5169/1000.0)=5.169。所以“printf(“%lf\\n”,5.169);”結(jié)果是5.16900。故本題答案為A選項(xiàng)。

5.C選項(xiàng)A的if條件表達(dá)式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項(xiàng)B的if條件表達(dá)式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項(xiàng)C的if條件表達(dá)式“x=y”是賦值語句,將y的值0賦給x,表達(dá)式的值為0,if語句不執(zhí)行,y的值為0;選項(xiàng)D的if條件表達(dá)式“x=y”是賦值語句,將y的值10賦給x,表達(dá)式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項(xiàng)。

6.B解析:考查函數(shù)指針的使用方法??梢允褂煤瘮?shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實(shí)參表列)。

7.D題干中,函數(shù)fun的功能是通過遞歸,將數(shù)組a中下標(biāo)為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調(diào)用fun時,傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項(xiàng)。

8.B解析:本題考查的知識點(diǎn)是變量賦初值.選項(xiàng)A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達(dá)式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項(xiàng)B使用一個整數(shù)初始化一個字符變量是正確的,因?yàn)樽址兞恐斜4娴谋緛砭褪钦麛?shù)(某字符的ASCII碼值)。選項(xiàng)C定義的初始值表達(dá)式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項(xiàng)D的初始值是一個非法常量,因?yàn)閷?shí)型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。

9.DD)【解析】在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。

10.B

\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

11.D

12.C

13.A

14.D解析:strcmp(s1,s2)的作用是比較字符串s1和s2。參數(shù)str1,str2如果相同,則返回0,如果str1大于str2則返回一個正整數(shù),如果str1小于str2則返回一個負(fù)整數(shù)。本題中s1,s2不相同,A)選項(xiàng)不會輸出任何字符,B)選項(xiàng)輸出ok,C)選項(xiàng)不輸出任何字符,D)選項(xiàng)會輸出OK。

15.D

16.Cchar類型用于存儲單個字符的簡單變量類型,它可以被指定為一個字符常量或一個整數(shù)。

17.D解析:本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因?yàn)?7/2)>1,所以執(zhí)行f(3),以此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時x值為3,然后退出f(1.5)返回f(3),打印x值即7。所以選D。

18.C后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時t=7,輸出t值為7,之后進(jìn)行自減操作t=6。因此輸出的結(jié)果為7。故本題答案為C選項(xiàng)。

19.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進(jìn)行賦值后,然后返回變量a。

20.A

21.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個字節(jié)。

22.c1!==''&&c2==''

23.length++i<lengthlength++\r\ni<length解析:第一個循環(huán)極有可能是計(jì)算串的長度,在i<=length時字符才被刪除,被刪除的是第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。

24.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過j++將下標(biāo)加1,指向下一元素要存儲的位置。

25.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

26.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時產(chǎn)生不同的數(shù)。通過循環(huán)用rand函數(shù)產(chǎn)生10個隨機(jī)數(shù)。在fun函數(shù)中,要在n個數(shù)中找最大值,所以第一處填寫i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫a[i]。

27.88解析:fabs函數(shù)功能是求x的絕對值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

28.完整性控制完整性控制

29.存儲結(jié)構(gòu)

30.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。

31.黑箱法黑箱法

32.a[k][i]*sumx&s

33.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。

34.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進(jìn)行引用。

35.69616。6,9,6,16。解析:賦值語句m=++x,x;是將逗號表達(dá)式的值賦給m,x和m的值都是6,賦值語句n=y+y++;是將y+y的值16賦給n,再執(zhí)行y的自加運(yùn)算,y的值變?yōu)?。

36.i=10j=20i=10,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以本題中應(yīng)該原樣輸入i=,j=,后面分別給變量10和20,故空格處應(yīng)該填入i=10,j=20。

37.1010解析:此題考查逗號表達(dá)式。逗號表達(dá)式的值是最后一個表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

38.i<3

39.jj解析:在C程序中的字符量可參與任何整數(shù)運(yùn)算。

40.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點(diǎn)是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。

41.A

42.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。這里所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

43.A解析:“/*”與“*/”之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進(jìn)行嵌套,故選項(xiàng)A正確;在C語言中,函數(shù)體是從花括號“{”開始,到花括號“}”結(jié)束.但沒有規(guī)定花括號“{”和“}”只能作為函數(shù)體定界符,故選項(xiàng)B錯誤;選項(xiàng)C中前半句是正確的,在C程序中由有一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù)比如庫函數(shù),主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號“;”結(jié)束,分號是語句不可缺少的一部分,故選項(xiàng)D不正確。所以,4個選項(xiàng)中選項(xiàng)A符合題意。

44.CC?!窘馕觥繉€性表進(jìn)行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

45.D解析:本題for后小括號中的表達(dá)式為空仍能執(zhí)行循環(huán)體,當(dāng)條件i>j滿足時,退出循環(huán)。執(zhí)行“i+=k;”使i的值每次循環(huán)增加2,直到i>j。i的值分別為2、4、6、8、10、12,當(dāng)i=12時,i>j成立,執(zhí)行if語句的子句,輸出s的值并退出循環(huán)。判斷i>j共執(zhí)行的次數(shù)是6次。

46.D解析:本題程序第一輪循環(huán)后b的值為9,在進(jìn)行循環(huán)條件測試時,先取b的現(xiàn)值9與0比較,然后再將b減1。由于9<0不成立,因此循環(huán)結(jié)束,這時b的值已變成8,本題正確答案為D。

47.B解析:需求分析階段有4方面的工作:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。

48.A解析:繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征。繼承是使用已有的類定義做為基礎(chǔ)建立新類的定義技術(shù)。已有的類可當(dāng)做基類來引用,則新類相應(yīng)地可當(dāng)做派生類來引用。但并不是所有的對象都必須有繼承性。因此,選項(xiàng)A中的說法是錯誤的,應(yīng)為所選。

49.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。p[4]等階于*(p-4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。

50.B解析:C語言一維數(shù)組的定義有兩種方式:一是指定數(shù)組長度,如選項(xiàng)A“inta[5]={0,1,2,3,4,5};”,但此定義的賦初值個數(shù)為6,多于數(shù)組長度,是錯誤的。因?yàn)榻o數(shù)組賦初值,初值個數(shù)只能小于或等于數(shù)組長度。二是不指定數(shù)組長度,由賦初值的初值個數(shù)決定數(shù)組的長度,如選項(xiàng)B的“chara[]={0,1,2,3,4,5};”,初值個數(shù)為6,因此數(shù)組長度為6。所以能正確定義一維數(shù)組。選項(xiàng)C的定義中a是一個字符變量,不能正確定義一維數(shù)組。選項(xiàng)D“inta[5]=“0123”;”給int型數(shù)組賦字符串初值,顯然是錯誤的。

51.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項(xiàng)A)、C)和D)為正確的字符常量,而選項(xiàng)B)是用雙引號括起來的字符,表示一個字符串常量。

52.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。

53.A解析:本題中,“()”的優(yōu)先級是最高的,“*”和“/”的優(yōu)先級別相同,運(yùn)算方向是從左向右。

54.A解析:本題主要考查數(shù)組元素的地址作為實(shí)參,當(dāng)n=0時,把x[0]的地址傳遞給被調(diào)函數(shù)change(),即把形參k和實(shí)參x指向同一個存儲單元,執(zhí)行被調(diào)函數(shù)后k[0]=6,即x[0]=6;當(dāng)n=1時,執(zhí)行被調(diào)函數(shù)后x[1]=7,以此類推,最后得到x數(shù)組的值為6,7,8,9,10。

55.C解析:本題首先定義了一個字符指針數(shù)組p,然后使用一個兩重循環(huán)遍歷數(shù)組p。因?yàn)閮?nèi)循環(huán)的循環(huán)變量j每次會加2,所以只能遍歷到數(shù)組p每行中列下標(biāo)為偶數(shù)的字符,它們是‘3’、‘9’、‘2’、‘8’。然后,將它們通過p[i][j]-‘0’表達(dá)式轉(zhuǎn)換為對應(yīng)的整數(shù)3、9、2、8,并用%2來判斷該整數(shù)是否為奇數(shù)。所以最終能執(zhí)行到num=10*num+p[i][j]-‘0’,語句的只有‘3’和‘9’兩個字符。此時已不難算出,運(yùn)行后num中的值為39。故應(yīng)該選擇C。

56.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。

57.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。

58.B解析:在C語言中,不可以在函數(shù)的參數(shù)聲明列表中用一個類型名指定多個參數(shù)。故選項(xiàng)B是錯誤的。其正確的表示方式應(yīng)為:

intmax(intx,inty){……}

intmax(x,y)

intx,y;

{……}

59.C解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時,就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時,從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時,從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時退出循環(huán).故最后的輸出為another、number和number,所以,4個選項(xiàng)中選項(xiàng)C符合題意。

60.B解析:大寫字母從'A'~'Z'的ASCII碼是連續(xù)的,所以如果當(dāng)—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項(xiàng)C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項(xiàng)A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對應(yīng)的小寫字符比大寫字符的ASCII碼值大32,所以選項(xiàng)D經(jīng)過小寫字符-32后,換算成了對應(yīng)的大寫字母'Z'和'A',所得到結(jié)果和選項(xiàng)C是一致的,故也是正確的。選項(xiàng)B中,C語言的邏輯表達(dá)式不能直接連寫,而應(yīng)該寫成選項(xiàng)C那樣,故是錯誤的,應(yīng)該選擇B。

61.C

\n調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);

\n調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);

\n調(diào)用函數(shù)fun(3)時,由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);

\n調(diào)用函數(shù)fun(1)時,由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。

\n因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。

\n

62.C

\n本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當(dāng)執(zhí)行函數(shù)point時,剛開始指針P指向“a”,經(jīng)過+3,指針p指向“f”,所以最后的輸出結(jié)果是f。

\n

63.A整數(shù)不能用逗號隔開,所以A)錯誤。

64.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向?yàn)橛捎蚁蜃?,即將:右?cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計(jì)算再賦值。選項(xiàng)A中運(yùn)算符%的運(yùn)算對象必須為整數(shù),而選項(xiàng)A中26.8不為整數(shù),故選項(xiàng)A不正確;選項(xiàng)B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項(xiàng)B不正確;選項(xiàng)D中也是將一個常量3賦值給一個常量,故選項(xiàng)D不正確;所以,4個選項(xiàng)中選項(xiàng)C符合題意。

65.A

66.D\r\n

67.A本題考查的是指向數(shù)組的指針。本題中定義了一個字符串?dāng)?shù)組和指針,并將指針pc指向該數(shù)組的首地址,執(zhí)行輸出語句printf(”%c\n”,*(pc+5));。語句中的

*(pc+5)指的就是pc[5]的值,所以最后輸出的結(jié)果為z。

68.A

69.BM<=N和N<=P是邏輯與的關(guān)系,應(yīng)使用運(yùn)算符&&。

70.AC語言中對于預(yù)處理命令行的位置沒有明確的規(guī)定。通常,預(yù)處理命令位于源文件的開頭,也可以寫在函數(shù)與函數(shù)之間;不能在一行上寫多條預(yù)處理命令:宏名一般習(xí)慣用大寫字母表示,以便與變量名相區(qū)別,但這并非規(guī)定,也可用小寫字母。

71.A本題中第一次調(diào)用為fun(8,fun(5,6)),因?yàn)閒un(5,6)返回值為5,所以第二次調(diào)用為fun(8,5)--6,因此選擇A)。

72.B\n由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語句為p[5],由數(shù)組a可知輸出的為6。

\n

73.D

74.D

75.A\n主關(guān)鍵字是表中區(qū)別不同的記錄的標(biāo)識,在該表中只有身份證號能具有這個作用,所以用其作為主關(guān)鍵字。

\n

76.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。

77.D商品與顧客兩個實(shí)體集之間的買與被買聯(lián)系是多對多的,因?yàn)橐环N商品可以被多個顧客購買,而一個顧客也可以買多個商品。

78.D\n輸出的結(jié)果是:-1,1

\n0,2

\n1,2

\n

79.D

80.A81.錯誤:c=arr[i];正確:ch=arr[i];【解析】由函數(shù)定義可知,函故proc只定義了變量ch,沒有定義變量C。因此,“c=arr[i]:”應(yīng)改為“ch=arr[i];”。

82.

題目中要求除了尾部的*號之外,將字符串中其他*號全部刪除。首先將所有不是*的字符放在字符串str中,然后將尾部的*接在字符的后面,最后為字符串str加上結(jié)束符。

2022-2023年黑龍江省雞西市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列選項(xiàng)中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

2.

3.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接選擇排序C.快速排序D.二路歸并排序

4.設(shè)有定義“doublex=5.16894;”,則語句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的輸出結(jié)果是()。

A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項(xiàng)不匹配,產(chǎn)生錯誤信息

5.以下各選項(xiàng)中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

6.以下程序運(yùn)行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項(xiàng)是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

7.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.34B.55C.10D.18

8.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

9.在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關(guān)系碼C.外碼D.候選碼

10.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

11.對n個關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_______

A.O(1)B.O(logn)C.O(n)D.O(nlogn)

12.

13.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點(diǎn),A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點(diǎn)()。

A.99B.100C.101D.49E.50F.51

14.若有定義語句:char*s1="OK",*s2="ok";,以下選項(xiàng)中,能夠輸出"OK"的語句是A.A.if(strcmp(s1,s2)==0)puts(s1);

B.if(strcmp(s1,s2)!=0)puts(s2);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)!=0)puts(s1);

15.以下說法正確的是()。

A.數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位

B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位

C.數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合

D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)

16.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;

17.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序運(yùn)行后的輸出結(jié)果是()。A.137B.731C.73D.37

18.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時輸入6并按<Enter>鍵,則輸出結(jié)果是()。A.6B.8C.7D.5

19.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的運(yùn)行結(jié)果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

20.

二、2.填空題(20題)21.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

22.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計(jì)有多少個單詞,單詞間用空格分隔。補(bǔ)充所缺語句。

#include<stdio.h>

main()

{charss[80],c1,c2='';

inti=0,num=0;

gets(s);

while(s[i]!='\0')

{c1=s[i];

if(i==0)c2='';

elsec2=s[i-1];

if(【】)num++;

i++;

}

printf("Thereare%dwords,\n",num);

}

23.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]\'\0';

}

24.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j]='\0';

puts(s);

}

25.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

26.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

27.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

28.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

29.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

30.軟件定義時期主要包括______和需求分析兩個階段。

31.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。

32.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

for(i=0:i<N;i++)

{k=0:

for(j=1;j<M;j++)

if(a[k][i]>a[j][i]k=j;

s+=______;

}

______=s:

}

main()

{intx[M][N]={3,2,5,1,4,1,8.3},s;

sumColumMin(______)

printf("%d\n".s):

}

33.以下程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

34.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

35.下面程序

main()

{intx,y,m,n;

x=5;y=8;

m=++x,x;

n=y+y++;

printf("%d,%d,%d,%d",x,y,m,n);

}

運(yùn)行后,x,y,m,n的值是______。

36.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

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

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入上【】。

37.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

38.下面程序的功能是:從輸入的正整數(shù)中選3個數(shù)進(jìn)行輸出,要求這些數(shù)都是2的倍數(shù),請?zhí)羁铡?/p>

main()

{inta,i=0;

scanf("%d",&A);

do

{if(a>0&&a%2==0)

{printf("%d\n",A);i++;}

if(i!=3)

{scanf("%d",&A);}

}while(());

}

39.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

40.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

三、1.選擇題(20題)41.程序運(yùn)行結(jié)果為______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}

A.L=18.849556S=28.274333

B.18.849556=18.84955628.274333=28.274333

C.L=18.84955628.274333=28.274333

D.18.849556=18.849556S=28.274333

42.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是______。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

43.以下敘述中正確的是

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

44.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

45.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。main(){inti=O,j=10,k=2,s=0;for(;;){i+=k;if(i>j){ptintf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

46.假設(shè)a和b為int型變量,則執(zhí)行以下語句后,b的值為______。a=1;b=10;do{b-=a;a++;}while(b--<0);

A.9B.-2C.-1D.8

47.軟件需求分析階段的工作,可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。

A.階段性報告B.需求評審C.總結(jié)D.以上都不正確

48.下面對對象概念描述錯誤的是()

A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態(tài)屬性

49.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=p[4];

A.4B.5C.3D.不確定

50.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

51.以下選項(xiàng)中不屬于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

52.下列程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

voidfun(int*s,int*p)

{staticintt=3;

*p=s[t];

t--;

}

voidmain()

{inta[]={2,3,4,5},k;

intx;

for(k=0;k<4;k++)

{fun(a,&x);

printf("%d,",x);

}

}

A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,

53.以下變量x,y,z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x÷y÷z的C語言表達(dá)式是

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

54.有以下程序:voidchange(intk[]){k[0]=k[5];)main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4)(change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

A.678910B.13579C.12345D.62345

55.有以下程序:main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[il[j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。

A.35B.37C.39D.3975

56.下面程序運(yùn)行后的輸出結(jié)果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}

A.5B.6C.7D.8

57.以下程序(程序左邊的數(shù)字為附加的行號)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯

58.下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是______。

A.max(intx,inty,int*z)

B.intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?X:y;returnz;}

C.max(intx,inty)

D.intmax(intx,inty){intz;{returnx>y?x:y;}z=x>y?x:y;return(z);}

59.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

60.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達(dá)式是()。

A.isupper(c)

B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

四、選擇題(20題)61.

有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

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

執(zhí)行后的結(jié)果是()。

A.7B.3C.2D.0

62.

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

char*point(char*pt):

main

{charb[4]={a,c,s,f),*pt=b;

pt=point(pt);

printf("%c\n",*pt);

}

point(char*p)

{p+=3;

returnp;

}

A.sB.cC.fD.a

63.以下選項(xiàng)中不能用作C程序合法常量的是()。

64.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

65.

66.

67.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.zB.

溫馨提示

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

最新文檔

評論

0/150

提交評論