2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩100頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.C語(yǔ)言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

A./B.!C.%D.==

2.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9

3.

4.有以下程序

#include<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

elsereturn((x+y)/2);

}

main()

{inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序運(yùn)行后的輸出結(jié)果是A.3B.6C.8D.12

5.

6.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為_(kāi)_____。

A.0B.1C.真D.假

7.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.13C.1D.0

8.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語(yǔ)句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

9.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是______。

A.3B.5C.-1D.-216

10.以下敘述中正確的是()。

A.無(wú)論指針變量P具有何種基類型,表達(dá)式“p=p+1”都代表指針P移動(dòng)1個(gè)字節(jié)

B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C.指針變量的賦值操作“p=0;”是非法的

D.通過(guò)指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

11.

12.若有定義語(yǔ)句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯(cuò)誤的賦值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

13.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運(yùn)行的結(jié)果是()。A.9B.61490C.61D.5

14.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

15.對(duì)包含N個(gè)元素散列表進(jìn)行查找,平均查找長(zhǎng)度()。

A.為OB.為O(N)C.不直接依賴ND.上述三者都不是

16.下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

17.有以下程序:#include<stdio.h>main(){inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(“%d\n”,a);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.30C.28D.14

18.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是A.scanf("%2d%2d%2d",&i,&j,&k);

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

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

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

19.對(duì)稱數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲(chǔ)在從首地址SA開(kāi)始的存儲(chǔ)器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

20.歸并排序采用的算法設(shè)計(jì)方法屬于()

A.歸納法B.分治法C.貪心法D.回溯方法

二、2.填空題(20題)21.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運(yùn)行后,i,j,m,n的值分別是_______。

22.測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。

23.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。

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

main()

{inti,sum;

for(i=1;i<7;i++)

sum+=i;

printf("%d",sum);

}

25.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

26.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

27.數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

28.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

29.下面程序中函數(shù)creat用于建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補(bǔ)充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

30.fwrite函數(shù)的一般調(diào)用形式是

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

32.在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【】。

33.在對(duì)文件操作的過(guò)程中,若要求文件的位置指針回到文件的開(kāi)始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

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

35.在軟件生命周期中,【】階段是花費(fèi)最多、持續(xù)時(shí)間最長(zhǎng)的階段。

36.下列程序的輸出結(jié)果是【】。

voidfun(int*n)

{

while((*n)--);

printf("%d",++(*n));

}

main()

{inta=100;

fun(&a);

}

37.下面的程序可列指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

38.在關(guān)系運(yùn)算中,查找滿足一定條件的元組的運(yùn)算稱之為【】。

39.有以下程序,其功能是:以二進(jìn)制“寫”方式打開(kāi)文件d1.dat,寫入1~100這100個(gè)整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開(kāi)文件d1.dat,將這100個(gè)整數(shù)讀入到另一個(gè)數(shù)組b中,并打印輸出。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

for(i=0;i<100;i++)a[i]=i+1;

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

for(i=0;i<100;i++)printf("%d\n",b[i]);

}

40.下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。

main()

{inta,b,【】;

printf("inputa,b:");

scanf("%d%d",&a,&b);

【】;

p2=&b;

if(a<b)

{p=p1;

p1=p2;

p2=p;

}

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

printf("max=%dmin=%d\n",【】);

三、1.選擇題(20題)41.下列程序執(zhí)行后輸出結(jié)果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}

A.you&meB.youC.meD.err

42.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是()。

A.x&&y

B.x<=y

C.x||++y&&y-z

D.!(x<y&&!z||1)

43.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}

A.2500B.2050C.4D.0

44.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

45.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說(shuō)明符不足,程序出錯(cuò)D.程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

46.以下程序運(yùn)行后,輸出結(jié)果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.6385B.22C.33D.693825

47.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法描述錯(cuò)誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)

C.不允許使用GOTO語(yǔ)句

D.語(yǔ)言中所沒(méi)有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來(lái)模擬

48.c語(yǔ)言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置()。

A.必須在最開(kāi)始B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C.可以任意D.必須在最后

49.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

50.已知各變量的類型說(shuō)明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語(yǔ)言語(yǔ)法的表達(dá)式是():

A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

51.若有以下程序段(n所賦的是八進(jìn)制數(shù))intm=32767,n=032767;printf("%d,%O\n",m,n);執(zhí)行后輸出結(jié)果是

A.32767,32767B.32767,032767C.32767,77777D.32767,077777

52.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.angC.programD.有語(yǔ)法錯(cuò)

53.下列程序執(zhí)行后輸出的結(jié)果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}

A.8,12B.9,13C.8,4D.9,5

54.C語(yǔ)言中while循環(huán)和do-while循環(huán)的主要區(qū)別是______。

A.do-while的循環(huán)體至少無(wú)條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格

C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D.do-while的循環(huán)體不能是復(fù)合語(yǔ)句

55.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

56.以下程序的輸出結(jié)果是()main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

57.字長(zhǎng)為32位的計(jì)算機(jī)是指()

A.該計(jì)算機(jī)中的CPU有32個(gè)寄器

B.該計(jì)算機(jī)能夠處理的最大數(shù)不超過(guò)232

C.該計(jì)算機(jī)每秒鐘所能執(zhí)行的指令條數(shù)為32MIPS

D.該計(jì)算機(jī)中的CPU可以相同時(shí)處理32位的二進(jìn)制數(shù)

58.設(shè)變量均已正確定義,若要通過(guò)scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語(yǔ)句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>20□Y<回車>

D.10X<回車>20Y<回車>

59.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是

A.n,twoB.t,oneC.w,oneD.o,two

60.希爾排序法屬于______類型的排序法。

A.交換類排序法B.插入類排序法C.選擇類排序法D.建堆排序法

四、選擇題(20題)61.

62.高有定義inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語(yǔ)句時(shí),若從鍵盤輸入876<空格>854.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

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

A.一對(duì)一B.一對(duì)多C.多對(duì)一D.多對(duì)多

64.若變量均已正確定義并賦值,以下合法的c語(yǔ)言賦值語(yǔ)句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;

65.

66.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)

67.下面程序的輸出結(jié)果是()。

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

68.若有定義“doublea;”,則正確的輸入語(yǔ)句是()。

A.seaM("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

69.下列敘述中正確的是()。

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的

B.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)

C.算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量

70.

71.下列語(yǔ)句組中,正確的是()。

A.char*s;s="Olympic";

B.charsE73;s="Olympic";

C.char*S;s={¨Olympic"};

D.charsET3;s={"Olympic"};

72.有以下程序執(zhí)行后的輸出結(jié)果是()。

A.3B.2C.1D.4

73.

74.以下語(yǔ)句的輸出結(jié)果是()。

inta=-1,b=4,k;

k=(++a<0)!(b--<=0);

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

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

75.有以下程序:

從第一列開(kāi)始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車符.:

2743<CR>

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

A.66877B.668966C.6677877D.6688766

76.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A.棧B.樹C.隊(duì)列D.--X樹

77.下列關(guān)于數(shù)據(jù)流圖的描述正確的是()。

A.數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的工具

B.數(shù)據(jù)流圖間接支持系統(tǒng)的功能建模

C.數(shù)據(jù)流圖中帶箭頭的線段表示控制流

D.數(shù)據(jù)流圖是軟件詳細(xì)設(shè)計(jì)的工具

78.

79.若有以下語(yǔ)句

80.

以下敘述中正確的是()。

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭

C.每個(gè)C程序必須在開(kāi)頭包含預(yù)處理命令行:#include<stdio.h>

D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(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.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c在此程序中,編寫函數(shù)intfun(),其功能是求出小于或等于lim的所有素?cái)?shù),將其存放在aa數(shù)組中,并返回所求出的素?cái)?shù)的個(gè)數(shù)。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#defineMAX1005intfun(intlim,intaa[MAX])6{78}9voidmain()10{11FILE*wf;12intlimit,i,sum;13intaa[MAX];14system("CLS");15printf("輸入一個(gè)整數(shù):");16scanf("%d",&limit);17sum=fun(limit,aa);18for(i=0;i<sum;i++)19{20if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/21printf("\n");22printf("%5d",aa[i]);23}24/******************/25wf=fopen("out.dat","w");26sum=fun(15,aa);27for(i=0;i<sum;i++)28{29if(i%10==0&&i!=0)/*每行輸出10個(gè)數(shù)*/30fprintf(wf,"\n");31fprintf(wf,"%5d",aa[i]);32}33fclose(wf);34/******************/35}

參考答案

1.C

2.B

3.C

4.B

5.A

6.B

7.AC語(yǔ)言中的轉(zhuǎn)義字符也是一個(gè)字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個(gè)字符。strlen遇到‘\\0’字符計(jì)數(shù)結(jié)束,因此計(jì)數(shù)為3。故本題答案為A選項(xiàng)。

8.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。

9.D解析:本題主要考查++執(zhí)行的次序。執(zhí)行過(guò)x=-m++;后,x=-3,m=4;執(zhí)行x=x+8/++n;時(shí)8/++n=1;因此最后x=-216。

10.B指針自增或自減1,移動(dòng)的字節(jié)數(shù)與指針變量的基類型有關(guān),假設(shè)指針變量p基類型為int類型,那么“p=p+1”表示指針P移動(dòng)4個(gè)字節(jié)(通常int類型占4個(gè)字節(jié)),選項(xiàng)A錯(cuò)誤;指針變量具有基類型,基類型不同的指針變量不能直接相互賦值,選項(xiàng)B正確;將0賦給指針變量,表示指針變量的值為空,這是合法的,選項(xiàng)C錯(cuò)誤;通過(guò)指針變量存儲(chǔ)指向變量的地址并通過(guò)指針存取變量的值,稱為“間接存取”方式,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。

11.C

12.A數(shù)組名是一個(gè)存放一個(gè)數(shù)組首地址的值,是一個(gè)地址常量。而p=a不是合法的,因?yàn)閜和a的基本類型不同。

13.C在fun函數(shù)中,while循環(huán)的功能是逐個(gè)取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個(gè)數(shù)保存到變量n中,并返回變量n的值。

14.D執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來(lái)判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒(méi)有到達(dá),繼續(xù)執(zhí)行while中的語(yǔ)句。if語(yǔ)句表示(p[i][j]-\o)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語(yǔ)句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對(duì)字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

15.C

16.DC語(yǔ)言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語(yǔ)言中的數(shù)組沒(méi)有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來(lái)定義數(shù)組大小。故本題答案為D選項(xiàng)。

17.C單目運(yùn)算符“++”的優(yōu)先級(jí)高于賦值運(yùn)算符。表達(dá)式“a*=16+(b++)-(++C);”可轉(zhuǎn)化為“a=a*(16+b-(c+1));b=b+1;”,代入值計(jì)算可得a=28。故本題答案為C選項(xiàng)。

18.C

19.B

20.B解析:以2一路歸并排序?yàn)槔M(jìn)行說(shuō)明。2一路歸并是指將兩個(gè)有序序列合并成一個(gè)有序序列,其基本過(guò)程為;從兩個(gè)序列中各取一個(gè)元素,進(jìn)行比較,輸出較小的元素,從較小元素所在序列取下一個(gè)元素,與未輸出的那個(gè)元素比較,輸出較小者。依此類推,直到輸出序列包含了兩個(gè)初始有序序列的全部元索。對(duì)于一個(gè)初始無(wú)序的序列,可以先將其等分為兩個(gè)無(wú)序的子序列,對(duì)這兩個(gè)子序列再次二分,重復(fù)該過(guò)程,直到分出的子序列中僅包含一個(gè)元素時(shí)(一個(gè)元素自然是有序的)為止,然后在反復(fù)進(jìn)行2一路歸并的過(guò)程,最后完成排序。

21.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。

22.調(diào)試調(diào)試

23.0。0。解析:表達(dá)式中將實(shí)型常量2.5和算術(shù)表達(dá)式1.25*(3.7+2.3)的值強(qiáng)制轉(zhuǎn)換為整型后參與運(yùn)算。

24.無(wú)定值無(wú)定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值。

25.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。

26.460000

27.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

28.33解析:本題考查的是C語(yǔ)言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。

29.(structlist*)(structlist*)return(h)

30.D

31.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來(lái)存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:

類型說(shuō)明符*指針變量名;

32.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。

33.rewind()或fseek()rewind()或fseek()

34.時(shí)間復(fù)雜度和空間復(fù)雜度時(shí)間復(fù)雜度和空間復(fù)雜度

35.維護(hù)維護(hù)

36.00解析:在函數(shù)fun()中,while((*n)-)是先引用*n的值,再做(*n)--運(yùn)算,所以循環(huán)結(jié)束時(shí)*n的值為0,再做(*n)--運(yùn)算后,*n的值為-1;執(zhí)行++(*n)后,*n的值是0。

37.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過(guò)程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符,則通過(guò)中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

38.選擇選擇解析:在關(guān)系數(shù)據(jù)庫(kù)中,選擇運(yùn)算也是一個(gè)元運(yùn)算,關(guān)系R通過(guò)選擇運(yùn)算(并由該運(yùn)算給出所選擇的邏輯條件)后仍為一個(gè)關(guān)系。這個(gè)關(guān)系是由R中的那些滿足邏輯條件的元組所組成。

39.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根據(jù)題目要求,在下劃線位置應(yīng)該填入一個(gè)能實(shí)現(xiàn)二進(jìn)制讀的使用文件方式的參數(shù)即可。所以,可以填'rb'或'r+b'或'rb+'。

40.*p*p1*p2p1:&a*p1*p2

41.A

42.D解析:該題考查邏輯與“&&”和邏輯或“||”以及邏輯非“!”符號(hào)的用法。選項(xiàng)A)即3&&4為真,選項(xiàng)B)即3<=4為真,選項(xiàng)C)是一個(gè)邏輯或與邏輯與的混合運(yùn)算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部分程序,因?yàn)閤的值為真,此時(shí)選項(xiàng)C)變?yōu)?&&-1為真。選項(xiàng)D)不用計(jì)算,括號(hào)內(nèi)邏輯或右邊的值為1,因而括號(hào)內(nèi)的值為1,再進(jìn)行邏輯非運(yùn)算得0。

43.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過(guò)這一次循環(huán),執(zhí)行下—次循環(huán),否則求和和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。

44.C解析:C語(yǔ)言中,switch語(yǔ)句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰而直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。

45.B解析:(a1,a2)是一個(gè)逗號(hào)表達(dá)式,它的值為a2的值即m,以字符格式輸出表達(dá)式的值即輸出小寫字母m。

46.A

47.C解析:限制使用GOTO語(yǔ)句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對(duì)不允許使用GOTO語(yǔ)句。其他3項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

48.C解析:不論main函數(shù)在整個(gè)過(guò)程中的位置如何,一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的。

49.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,其中的逗號(hào)也必須輸入。

50.A解析:“%”是求余運(yùn)算符或模運(yùn)算符,“%”兩側(cè)均應(yīng)為整型數(shù)據(jù),選項(xiàng)A)中的x是double型數(shù)據(jù)。

51.A解析:本題考核的知識(shí)點(diǎn)是scanf()函數(shù)及printf()函數(shù)的輸出格式。程序在定義時(shí),以十進(jìn)制形式為m賦初值,以八進(jìn)制的形式為n賦初值.輸出的時(shí)候m以十進(jìn)制形式輸出,n以八進(jìn)制形式輸出,因此輸出的結(jié)果為32767和32767。所以,A選項(xiàng)為所選。

52.A解析:本題考查指針的用法,if(*(p1+k)==*(p2+k))語(yǔ)句的功能是判斷兩個(gè)數(shù)組中的字符是否相同,如果相同則輸出。

53.C解析:本題執(zhí)行過(guò)程如下:首先調(diào)用fun函數(shù),使得實(shí)參a的值3傳遞紿形參p,得到局部變量d=8,打印出局部變量d的值8返回主函數(shù)執(zhí)行“d+=a++””,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對(duì)p值的改變并不能引起a的改變),故本題的輸出是8,4。

54.A解析:本題考核C++語(yǔ)言中while循環(huán)和do-while循環(huán)之間的區(qū)別。do-while語(yǔ)句與while語(yǔ)句不同的是,do-while循環(huán)中的<語(yǔ)句>至少會(huì)執(zhí)行一次,而while語(yǔ)句中當(dāng)條件在第一次循環(huán)就不滿足時(shí),語(yǔ)句一次也不會(huì)執(zhí)行。

55.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,故選項(xiàng)A敘述錯(cuò)誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯(cuò)誤。關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C敘述錯(cuò)誤。所以本題選D。

56.B

57.D

58.D解析:本題中,scanf函數(shù)的格式控制沒(méi)有空格,所以,對(duì)于選項(xiàng)A)、B)、C),輸入的第一個(gè)空格會(huì)作為字符賦值給變量c1,而不會(huì)被解釋成分隔符。

59.C解析:本題考核的知識(shí)點(diǎn)是指針數(shù)組。本崽首先定義了一個(gè)有3個(gè)元素的指針數(shù)組s,并遭過(guò)賦值使s[0]指向字符串“one”s[1]指向字符串“two”,s[2]指向字符串“three”,然后通過(guò)賦值語(yǔ)句“p=s[1]”,使p指向了字符串“two”,故”(p+1)”就是字符“w”。所以,C選項(xiàng)為所選。

60.B解析:希爾排序法的基本思想是:將整個(gè)無(wú)序序列分割成若干小的子序列分別進(jìn)行插入排序。所以希爾排序法屬于插入類排序,但它對(duì)簡(jiǎn)單插入排序做了很大的改進(jìn)。

61.D

62.Bseanf函數(shù)用空格區(qū)分不同字符串的輸入,因此876和543.0被看作兩段輸入。%2d只選取了第一個(gè)輸人中的前兩位,%f選取隨后的數(shù)字作為浮點(diǎn)數(shù),因此輸出結(jié)果為87和6.000000。

63.D解析:兩個(gè)實(shí)體間的聯(lián)系可以歸納為3種類型:一對(duì)一聯(lián)系:一對(duì)一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對(duì)多聯(lián)系,一對(duì)多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對(duì)多聯(lián)系:多對(duì)多的聯(lián)系表現(xiàn)為二個(gè)表中的多個(gè)記錄在相關(guān)表中同樣有多個(gè)記錄其匹配。本題中一個(gè)顧客可以購(gòu)買多種商品,同一種商品可以有多個(gè)顧客購(gòu)買,所以商品和顧客之間是多對(duì)多的聯(lián)系。

64.A%取余操作數(shù)只能是整數(shù),x+n和數(shù)值5不能作為賦值的左值,NC2B)、C)、D)錯(cuò)誤。

65.B

66.A解析:作為一個(gè)算法,一般應(yīng)該具有下列4個(gè)特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;(2)確定性,算法中的每一個(gè)步驟都必須是有明確定義的,(3)有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)做完;(4)擁有足夠的情報(bào)。

67.C本題考查的重點(diǎn)是拷貝字符串一一使用strepy函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組,字符串),其中”字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將”字符串”完整地復(fù)制到”字符數(shù)組”中,字符數(shù)組中原有的內(nèi)容被覆蓋。

使用該函數(shù)時(shí)注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過(guò)來(lái)的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志\0一起復(fù)制;②不能用賦值運(yùn)算符”=”將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用strcpy函數(shù)處理。

另外,本題還考查連接字符串的strcat函數(shù),其調(diào)用方式是:strcat(字符數(shù)組,字符串)。功能是把”字符串”連接到”字符數(shù)組”中的字符串尾端,

68.D本題考查scanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項(xiàng)D正確。

69.D根據(jù)時(shí)間復(fù)雜度和空間復(fù)雜度的定義可知,算法的時(shí)間復(fù)雜度與空間復(fù)雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間關(guān)系的,是獨(dú)立于計(jì)算機(jī)的;數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計(jì)算機(jī)中表示的,它們并非一一對(duì)應(yīng)。算法的執(zhí)行效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)。

70.C

71.A給字符串?dāng)?shù)組賦值時(shí),要先定義數(shù)組長(zhǎng)度,然后再賦值??梢灾唤o部分元素賦初值,當(dāng)中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。數(shù)組的下標(biāo)是從0開(kāi)始的,所以s[7]代表從s[0]到s[6]七個(gè)元素。其格式可以寫成:char數(shù)組名[常量]={字符,字符,…);,也可寫為char數(shù)組名[常量]={"字符串"};,或去掉{)寫為:char數(shù)組名[常量]="字符串"。所以本題應(yīng)選擇A選項(xiàng)。

72.Ac的值為a乘以b的值,為3。所以答案選擇A)。

73.D

74.D

75.A本題主要考查了字符輸入輸出函數(shù)get—char和putchar的使用。getchar函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備上讀人一個(gè)字符,putchar(C)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。

76.A棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子程序時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中詬用子程序的位置,然后繼續(xù)向下執(zhí)行,這種調(diào)用方式符合棧的特點(diǎn),因此本題的答案為A)。

77.A\n數(shù)據(jù)流圖是結(jié)構(gòu)化方法的需求分析工具,是描述數(shù)據(jù)處理過(guò)程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖中帶箭頭的線段表示數(shù)據(jù)流。

\n

78.A

79.A本題考核的知識(shí)點(diǎn)是結(jié)構(gòu)體類型定義和結(jié)構(gòu)體的基本概念。結(jié)構(gòu)體類型的定義格式為:slxuct結(jié)構(gòu)體名{成員說(shuō)明列表};結(jié)構(gòu)體變量的定義有3種形式。第一種:定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,如struct結(jié)構(gòu)體名{成員說(shuō)明列表)變量;第二種:先定義一個(gè)結(jié)構(gòu)體類型,然后使用該類型來(lái)定義結(jié)構(gòu)體變量,如structstudent{成員說(shuō)明列表l;student變量;第三種:定義一個(gè)無(wú)名稱的結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,如truct§tudent{成員說(shuō)明列表l變量。

80.B

\n本題是對(duì)基本知識(shí)點(diǎn)的理解,預(yù)處理命令行的位置沒(méi)有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時(shí)才用#include<stdio.h>頭文件,預(yù)處理的作用就是實(shí)現(xiàn)宏定義和條件編譯。

\n

81.\n\t錯(cuò)誤:c=arr[i];

\n正確:ch=arr[i];

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

82.1intfun(intlim,intaa[MAX])2{3inti,j,k=0;4for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素?cái)?shù)*/5{for(j=2;j<i;j++)6if(i%j==0)break;7if(j>=i)8aa[k++]=i;/*將求出的素?cái)?shù)放入數(shù)組aa中*/9}10returnk;/*返回所求出的素?cái)?shù)的個(gè)數(shù)*/11}<i;jp++)<>如果一個(gè)數(shù)是合數(shù),那么它的最小質(zhì)因數(shù)肯定小于等于它的平方根。本程序使用for循環(huán)語(yǔ)句查找小于lim的所有數(shù),使用內(nèi)嵌的循環(huán)判斷語(yǔ)句判斷該數(shù)是否為素?cái)?shù)。在做這道題時(shí),需要重點(diǎn)掌握素?cái)?shù)的判定方法:for(j=2;j<sqrt(i);j++)if(i%j==0)break;…</i;jp++)<>2021-2022年山東省棗莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.C語(yǔ)言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

A./B.!C.%D.==

2.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9

3.

4.有以下程序

#include<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

elsereturn((x+y)/2);

}

main()

{inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序運(yùn)行后的輸出結(jié)果是A.3B.6C.8D.12

5.

6.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為_(kāi)_____。

A.0B.1C.真D.假

7.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.13C.1D.0

8.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語(yǔ)句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

9.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是______。

A.3B.5C.-1D.-216

10.以下敘述中正確的是()。

A.無(wú)論指針變量P具有何種基類型,表達(dá)式“p=p+1”都代表指針P移動(dòng)1個(gè)字節(jié)

B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C.指針變量的賦值操作“p=0;”是非法的

D.通過(guò)指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

11.

12.若有定義語(yǔ)句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯(cuò)誤的賦值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

13.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運(yùn)行的結(jié)果是()。A.9B.61490C.61D.5

14.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

15.對(duì)包含N個(gè)元素散列表進(jìn)行查找,平均查找長(zhǎng)度()。

A.為OB.為O(N)C.不直接依賴ND.上述三者都不是

16.下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

17.有以下程序:#include<stdio.h>main(){inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(“%d\n”,a);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.30C.28D.14

18.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是A.scanf("%2d%2d%2d",&i,&j,&k);

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

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

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

19.對(duì)稱數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲(chǔ)在從首地址SA開(kāi)始的存儲(chǔ)器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

20.歸并排序采用的算法設(shè)計(jì)方法屬于()

A.歸納法B.分治法C.貪心法D.回溯方法

二、2.填空題(20題)21.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運(yùn)行后,i,j,m,n的值分別是_______。

22.測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。

23.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。

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

main()

{inti,sum;

for(i=1;i<7;i++)

sum+=i;

printf("%d",sum);

}

25.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

26.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

27.數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

28.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

29.下面程序中函數(shù)creat用于建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補(bǔ)充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

30.fwrite函數(shù)的一般調(diào)用形式是

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

32.在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【】。

33.在對(duì)文件操作的過(guò)程中,若要求文件的位置指針回到文件的開(kāi)始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

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

35.在軟件生命周期中,【】階段是花費(fèi)最多、持續(xù)時(shí)間最長(zhǎng)的階段。

36.下列程序的輸出結(jié)果是【】。

voidfun(int*n)

{

while((*n)--);

printf("%d",++(*n));

}

main()

{inta=100;

fun(&a);

}

37.下面的程序可列指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

38.在關(guān)系運(yùn)算中,查找滿足一定條件的元組的運(yùn)算稱之為【】。

39.有以下程序,其功能是:以二進(jìn)制“寫”方式打開(kāi)文件d1.dat,寫入1~100這100個(gè)整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開(kāi)文件d1.dat,將這100個(gè)整數(shù)讀入到另一個(gè)數(shù)組b中,并打印輸出。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

for(i=0;i<100;i++)a[i]=i+1;

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

for(i=0;i<100;i++)printf("%d\n",b[i]);

}

40.下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。

main()

{inta,b,【】;

printf("inputa,b:");

scanf("%d%d",&a,&b);

【】;

p2=&b;

if(a<b)

{p=p1;

p1=p2;

p2=p;

}

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

printf("max=%dmin=%d\n",【】);

三、1.選擇題(20題)41.下列程序執(zhí)行后輸出結(jié)果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}

A.you&meB.youC.meD.err

42.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是()。

A.x&&y

B.x<=y

C.x||++y&&y-z

D.!(x<y&&!z||1)

43.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}

A.2500B.2050C.4D.0

44.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

45.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說(shuō)明符不足,程序出錯(cuò)D.程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

46.以下程序運(yùn)行后,輸出結(jié)果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.6385B.22C.33D.693825

47.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法描述錯(cuò)誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)

C.不允許使用GOTO語(yǔ)句

D.語(yǔ)言中所沒(méi)有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來(lái)模擬

48.c語(yǔ)言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置()。

A.必須在最開(kāi)始B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C.可以任意D.必須在最后

49.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

50.已知各變量的類型說(shuō)明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語(yǔ)言語(yǔ)法的表達(dá)式是():

A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

51.若有以下程序段(n所賦的是八進(jìn)制數(shù))intm=32767,n=032767;printf("%d,%O\n",m,n);執(zhí)行后輸出結(jié)果是

A.32767,32767B.32767,032767C.32767,77777D.32767,077777

52.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.angC.programD.有語(yǔ)法錯(cuò)

53.下列程序執(zhí)行后輸出的結(jié)果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}

A.8,12B.9,13C.8,4D.9,5

54.C語(yǔ)言中while循環(huán)和do-while循環(huán)的主要區(qū)別是______。

A.do-while的循環(huán)體至少無(wú)條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格

C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D.do-while的循環(huán)體不能是復(fù)合語(yǔ)句

55.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

56.以下程序的輸出結(jié)果是()main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

57.字長(zhǎng)為32位的計(jì)算機(jī)是指()

A.該計(jì)算機(jī)中的CPU有32個(gè)寄器

B.該計(jì)算機(jī)能夠處理的最大數(shù)不超過(guò)232

C.該計(jì)算機(jī)每秒鐘所能執(zhí)行的指令條數(shù)為32MIPS

D.該計(jì)算機(jī)中的CPU可以相同時(shí)處理32位的二進(jìn)制數(shù)

58.設(shè)變量均已正確定義,若要通過(guò)scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語(yǔ)句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>20□Y<回車>

D.10X<回車>20Y<回車>

59.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是

A.n,twoB.t,oneC.w,oneD.o,two

60.希爾排序法屬于______類型的排序法。

A.交換類排序法B.插入類排序法C.選擇類排序法D.建堆排序法

四、選擇題(20題)61.

62.高有定義inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語(yǔ)句時(shí),若從鍵盤輸入876<空格>854.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

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

A.一對(duì)一B.一對(duì)多C.多對(duì)一D.多對(duì)多

64.若變量均已正確定義并賦值,以下合法的c語(yǔ)言賦值語(yǔ)句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;

65.

66.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)

67.下面程序的輸出結(jié)果是()。

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

68.若有定義“doublea;”,則正確的輸入語(yǔ)句是()。

A.seaM("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

69.下列敘述中正確的是()。

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的

B.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)

C.算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量

70.

71.下列語(yǔ)句組中,正確的是()。

A.char*s;s="Olympic";

B.charsE73;s="Olympic";

C.char*S;s={¨Olympic"};

D.charsET3;s={"Olympic"};

72.有以下程序執(zhí)行后的輸出結(jié)果是()。

A.3B.2C.1D.4

73.

74.以下語(yǔ)句的輸出結(jié)果是()。

inta=-1,b=4,k;

k=(++a<0)!(b--<=0);

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

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

75.有以下程序:

從第一列開(kāi)始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車符.:

2743<CR>

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

A.66877B.668966C.6677877D.6688766

76.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A.棧B.樹C.隊(duì)列D.--X樹

77.下列關(guān)于數(shù)據(jù)流圖的描述正確的是()。

A.數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的工具

B.數(shù)據(jù)流圖間接支持系統(tǒng)的功能建模

C.數(shù)據(jù)流圖中帶箭頭的線段表示控制流

D.數(shù)據(jù)流圖是軟件詳細(xì)設(shè)計(jì)的工具

78.

79.若有以下語(yǔ)句

80.

以下敘述中正確的是()。

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭

C.每個(gè)C程序必須在開(kāi)頭包含預(yù)處理命令行:#include<stdio.h>

D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(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);

}

六、程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論