2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(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)介

2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.以下敘述中錯(cuò)誤的是()。

A.將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類是為了限制其他編譯單位的引用

B.—個(gè)變量作用域的開(kāi)始位置完全取決于變量定義語(yǔ)句的位置

C.全局變量可以在函數(shù)以外的任何部位進(jìn)行定義

D.局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不能將局部變量的運(yùn)算結(jié)果保存至下一次調(diào)用

3.下面不能正確表示a*b/(c*d)的表達(dá)式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

4.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.將磁盤(pán)文件的內(nèi)容顯示在屏幕上

B.將兩個(gè)磁盤(pán)文件合為一個(gè)

C.將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中

D.將兩個(gè)磁盤(pán)文件合并后送屏幕

5.表達(dá)式“a+=a-=a=9”的值是()。

A.18B.-9C.0D.9

6.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序運(yùn)行后的輸出結(jié)果是()。

A.y=0B.y=-1C.y=1D.while構(gòu)成無(wú)限循環(huán)

7.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

8.鏈表不具有的特點(diǎn)是()。

A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問(wèn)任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長(zhǎng)度成正比

9.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長(zhǎng)度B.求字符串存放的位置C.比較兩個(gè)字符串的大小D.將字符串x連接到字符串y后面

10.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運(yùn)行后的輸出結(jié)果是()。A.197B.143C.33D.28

11.下列定義語(yǔ)句中錯(cuò)誤的是()。

A.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

B.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[][3]={0},{1},{2},{3}};

D.intx[][3]={1,2,3,4};

12.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

A.無(wú)確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

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

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

14.若i和k都是int類型變量,有以下for語(yǔ)句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無(wú)限循環(huán)

15.以下不能定義為用戶標(biāo)識(shí)符的是()。

A.scanfB.VoidC.3comD.int

16.下列不正確的轉(zhuǎn)義字符是()。

A.'\\'B.'\t'C.'\n'D.'088'

17.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序經(jīng)運(yùn)行后形成下圖所示的數(shù)據(jù)結(jié)構(gòu)。則以下可以刪除中間節(jié)點(diǎn)b的正確選項(xiàng)是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

18.若有語(yǔ)句“void*P=malloc(80);”,則以下敘述錯(cuò)誤的是()。

A.可以通過(guò)指針P直接訪問(wèn)用malloc開(kāi)辟的這塊內(nèi)存

B.p所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個(gè)int型元素的一維數(shù)組來(lái)使用

C.p所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個(gè)double型元素的一維數(shù)組來(lái)使用

D.P所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個(gè)char型元素的一維數(shù)組來(lái)使用

19.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1

20.以下敘述中錯(cuò)誤的是()

A.在C程序中,APH和aph是兩個(gè)不同的變量

B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改

C.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無(wú)誤地表示

D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示

二、2.填空題(20題)21.以下程序的功能是:從低位開(kāi)始取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請(qǐng)?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

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

main()

{

chara[]="Language",b[]="Programe";

char,p1,*p2;

intk;

p1=a,p2=b;

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

if*(p1+k)==*(p2+k))printf("%c",*(p1+k));

}

23.函數(shù)mystrlen(char*s)的功能是求字符串s的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

mystrlen(char*s)

{char*t:

t=s;

while(【】)t++;

return(t-s);

}

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

25.下列執(zhí)行后輸出的結(jié)果是【】。

main()

{intarr[10],i,k=0

for(i=0;i<10;i++)atr[i]=i

for(i=1,i<4;i++)k+=arr[i]+i;

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

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

27.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車>,則輸出結(jié)果是【】。

#include

main()

{chara,b;

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

a=a-'A'+'0';b=b*2;

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

}

28.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為_(kāi)_____。

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

30.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。

31.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。

32.若有定義:inta[4][4]={{l,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

33.在運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。

34.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

35.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:

1

11

121

1331

14641

其構(gòu)成規(guī)律是,第0列元素和主對(duì)角線元素均為1,其余元素為其左上方和正上方元素之和,數(shù)據(jù)的個(gè)數(shù)每行遞增1。請(qǐng)將程序補(bǔ)充完整。

#defintN6

voidYangHui(int*[N][N])

{

inti,j;

x[0][0]=1

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

{

x[i][0]=【】=1

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

x[i][j]=【】;

}

}

36.下面程序

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的值是______。

37.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

main()

{inta=10,b=20,*s,*t;

s=&a;t=&b;

swap_p(【】);

printf("%d%d,a,b");}

swap_p(int**ss,int**tt)

{intterm;

term=**ss;

**ss=**tt;

**tt=term;}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

39.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}

40.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。

三、1.選擇題(20題)41.已定義c為字符型變量,則下列語(yǔ)句中正確是______。

A.c='97';B.c="97";C.c=97;D.c="a";

42.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):

inti=8,j=9;

則下列語(yǔ)句:

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

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

A.i=8,j=9B.8.9C.89D.i=8,j=8

43.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

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

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

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

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

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

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);}

45.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語(yǔ)句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

46.下列說(shuō)法中不正確的是()。

A.指針是一個(gè)變量B.指針中存放的是數(shù)值C.指針可以進(jìn)行加、減等算術(shù)運(yùn)算D.指針變量占用存儲(chǔ)空間

47.對(duì)長(zhǎng)度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為_(kāi)_____。A.N+1B.NC.(N+1)/2D.N/2

48.數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.物理設(shè)計(jì)

49.以下選項(xiàng)中非法的字符串常量是()

B.\X0\011

C.\\\t"

D.\n\007\n

50.下列語(yǔ)句執(zhí)行后的結(jié)果是()y=5;p=&y;x=*p++;

A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=6

51.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}

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

52.在C語(yǔ)言程序中,下列說(shuō)法正確的是()。

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

53.以下數(shù)組定義中錯(cuò)誤的是A.intx[][3]={0};

B.intx[2][3]={{l,2},{3,4},{5,6}};

C.intx[][3]={{l,2,3},{4,5,6}};

D.intx[2][3]={l,2,3,4,5,6};

54.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

55.下列程序的輸出結(jié)果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

56.下列敘述中錯(cuò)誤的是()。

A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語(yǔ)言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

57.

有以下程序:

main

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

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

A.10,01B.02,12C.102,10D.02,10

58.有以下程序:#include<stdio.h>main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++)}for(j=0;j<2;j++)prinff("%2d",a[i][j]);prinff("\n");}}若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。

A.產(chǎn)生錯(cuò)誤信息B.102000C.123000D.102030

59.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是()。

A.0B.1C.-1D.NULL沒(méi)定義,出錯(cuò)

60.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

四、選擇題(20題)61.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

62.有以下程序

#include"stdio.h"

#defineM(x,y)(x)*(y)

#defineN(x,y)(x)/(y)

main()

{inta=5,b=6,c=8,k;

k=N(M(a,b),c);

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

}

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

A.3B.5

C.6D.8

63.

64.有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句

65.

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

A.8B.4C.6D.2

67.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()。

A.do{*t++=*8++;}while(*s);

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++;}

D.for(i=0,j=0;t[i++]=s[j++];);

68.

69.

70.有以下程序:

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

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

71.

72.下列選項(xiàng)中屬于軟件生命周期中開(kāi)發(fā)階段任務(wù)的是()。

A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析

73.CSS指的是下列()的縮寫(xiě)。

A.ComputerStyle.Sheets

B.CascadingStyle.Sheets

C.CreativeStyle.Sheets

D.ColorfulStyle.Sheets

74.

75.有以下程序l

該程序試圖通過(guò)指針P為變量n讀人數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。

76.(55)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解

B.不限制goto語(yǔ)句的使用

C.減少或取消注解行

D.程序越短越好

77.以下定義數(shù)組的語(yǔ)句錯(cuò)誤的是()。

A.intnum[]={1,2,3,4,5,6};

B.intnum[][3]={{1,2},3,4,5,6};

C.intnum[2][4]={{1,2},{3,4},{5,6}};

D.intnum[][4]={1,2,3,4,5,6};

78.有以下函數(shù):

以下關(guān)于aaa函數(shù)功能敘述正確的是()。

A.將串s復(fù)制到串tB.比較兩個(gè)串的大小C.求字符串s的長(zhǎng)度D.求字符串s所占字節(jié)數(shù)

79.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

80.有以下程序

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(intarr[][M]),該函數(shù)的功能是使數(shù)組左下半三角元素中的值全部置成0。例如,arr數(shù)組中的值為:

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

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

試題程序:

參考答案

1.B

2.A將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類,第1次調(diào)用該函數(shù)時(shí)才對(duì)其初始化,后續(xù)調(diào)用時(shí)使用上一次調(diào)用結(jié)束后的值;函數(shù)體內(nèi)的局部變量無(wú)論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項(xiàng)A錯(cuò)誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。

3.A

4.C解析:程序首先定義了兩個(gè)文件類型的指針fp1、fp2。為讀打開(kāi)文件filel,并讓指針fp1指向該文件;為寫(xiě)打開(kāi)文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個(gè)字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復(fù)制到文件file2中。

5.C首先計(jì)算表達(dá)式“a=9”;再計(jì)算表達(dá)式“a-=9”;即“a=a-9”,結(jié)果為0;最后計(jì)算表達(dá)式“a+=0”,即“a=a+0”,所以最終結(jié)果為0。故本題答案為C選項(xiàng)。

6.B執(zhí)行“y--”直到值為0。退出循環(huán)。由于“y--”是后綴自減運(yùn)算,先使用再自減,因此退出循環(huán)時(shí),y的值為-1。故本題答案為B選項(xiàng)。

7.B一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

8.BB選項(xiàng)的特點(diǎn)是順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。

9.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長(zhǎng)度。

10.B此程序考查帶參數(shù)的宏定義,S(k+j)展開(kāi)后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。

11.B二維數(shù)組定義的一般形式是:類型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]。其中常量表達(dá)式1表示第1維長(zhǎng)度,常量表達(dá)式2表示第2維長(zhǎng)度。若對(duì)二維數(shù)組的全部元素賦初值,第1維長(zhǎng)度可以不給出。但如果只確定行數(shù),而不確定列數(shù),就無(wú)法正確賦值。故本題答案為B選項(xiàng)。

12.B解析:p本身就是一個(gè)字符型指針變量,返回p也就是返回變量p中存放的地址值。

13.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ò)程,最后完成排序。

14.D此題考查的是基本的循環(huán),答案為D。

15.D解析:標(biāo)識(shí)符是C語(yǔ)言中用來(lái)表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語(yǔ)句標(biāo)號(hào)等用途的字符序列。標(biāo)識(shí)符由1~32個(gè)字符組成,第一個(gè)字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識(shí)符不能與C關(guān)鍵字相同,并區(qū)分大小寫(xiě)。選項(xiàng)D)錯(cuò)誤,因?yàn)閕nt是C語(yǔ)言中的關(guān)鍵字。

16.D解析:'\\\\'是反斜線轉(zhuǎn)義字符:'\\t'是水平跳格轉(zhuǎn)義字符:'\\n'是換行轉(zhuǎn)義字符;C語(yǔ)言中沒(méi)有規(guī)定'088'為轉(zhuǎn)義字符。

17.A題干中,a、b、c3個(gè)節(jié)點(diǎn)都是node類型,它們都有兩個(gè)成員:字符成員id,node類型指針成員next。由于a的next指向b,b的next指向c,因此a、b、c構(gòu)成了鏈表。要想刪除b節(jié)點(diǎn),只需要將a節(jié)點(diǎn)的next(p->next)指向c(p->next->next),然后將節(jié)點(diǎn)b的存儲(chǔ)空間釋放即可。所以刪除b節(jié)點(diǎn)的語(yǔ)句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項(xiàng)。

18.A題干中使用malloc函數(shù)分配了80個(gè)字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語(yǔ)言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項(xiàng)A錯(cuò)誤。int類型的元素占4個(gè)字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個(gè)int類型的一維數(shù)組來(lái)使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個(gè)double類型的一維數(shù)組來(lái)使用,或強(qiáng)制類型轉(zhuǎn)換成80個(gè)char類型的一維數(shù)組來(lái)使用,選項(xiàng)B、C、D正確。故本題答案為A選項(xiàng)。

19.D在C語(yǔ)言中,當(dāng)表達(dá)式成立時(shí)用l表示,不成立時(shí)用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項(xiàng)。

20.C

21.s%10*s1+t

22.gaegae解析:本題定義了兩個(gè)字符串?dāng)?shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串?dāng)?shù)組a和b,抽打for循環(huán),當(dāng)if(*(p1+k)==*(p2+k))條件為真,執(zhí)行輸出*(p1+k)對(duì)應(yīng)的字符。即當(dāng)k=0時(shí),*(p1+k)對(duì)應(yīng)的字符串?dāng)?shù)組a中的字符L,*(p2+k)對(duì)應(yīng)的字符串?dāng)?shù)組b中字符P,因此if(*(p1+k)==*(p2+k))條件為假,不執(zhí)行printf語(yǔ)句,依此類推,將字符串?dāng)?shù)組a和b中對(duì)應(yīng)位置上的字符——比較,如果對(duì)應(yīng)位置上的字符相同,則輸出該字符。

23.*t*t解析:通過(guò)while循環(huán)掃描字符串,遇到字符‘\\0’結(jié)束,并用t統(tǒng)計(jì)字符串的長(zhǎng)度。

24.77解析:在C語(yǔ)言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。

在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。

25.1212解析:本題的第—個(gè)for循環(huán)用于始數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

26.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語(yǔ)言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來(lái)說(shuō)就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。

27.1B1B解析:從鍵盤(pán)輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時(shí)均需要把a(bǔ),b轉(zhuǎn)化為字符型,因此輸出為1B。

28.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

29.918273645918273645解析:程序通過(guò)for循環(huán)將字符'0'~'9'從前向后,同時(shí)從后向前依次輸出,所以輸出結(jié)果為:0918273645。

30.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。

31.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期可以分為3個(gè)時(shí)期:軟件定義期,包括問(wèn)題定義、可行性研究和需求分析3個(gè)階段;軟件開(kāi)發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測(cè)試屬于軟件開(kāi)發(fā)階段。

32.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有,4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[O][2]、a[0][3]。

33.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過(guò)程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來(lái)。循環(huán)鏈表具有兩個(gè)特點(diǎn):①在循環(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來(lái)設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。

34.外模式外模式解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

35.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中有兩重循環(huán)。在第一層for循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1,顯然在第一個(gè)空白處應(yīng)該填入對(duì)角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空白處應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

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

37.&s&t&s,&t解析:指針做函數(shù)參數(shù)時(shí),形參和實(shí)參指向同一個(gè)數(shù)據(jù),所以函數(shù)中對(duì)形參所指向的數(shù)據(jù)的改變也能影響到實(shí)參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過(guò)指針來(lái)引用一個(gè)存儲(chǔ)單元。

38.考查ifelse語(yǔ)句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

39.5555解析:分析程序執(zhí)行過(guò)程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。

40.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒(méi)有給a賦值,因此a的值不變;接下來(lái)執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

41.C解析:\'97\'不是字符變量,選項(xiàng)A錯(cuò)誤;'97'是字符串,選項(xiàng)B錯(cuò)誤;'a'是字符串,選項(xiàng)D錯(cuò)誤;正確答案是選項(xiàng)C。

42.A解析:本題考查函數(shù)printf()的格式。“%x”表示以+六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以+進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出。

43.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過(guò)程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。

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

intmax(intx,inty){……}

intmax(x,y)

intx,y;

{……}

45.D解析:本題考核的知識(shí)點(diǎn)是在鏈表中插入結(jié)點(diǎn)的操作。在本題中指針p.指向變量a,q指向變量c。要把c插入到變量n和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b.所以,4個(gè)選項(xiàng)中D為所選。

46.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是—個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。

47.B解析:在進(jìn)行順序查找過(guò)程中,如果被查的元素是線性表中的最后一個(gè),或者被查元素根本不性表中,則為了查找這個(gè)元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。

48.DD)【解析】數(shù)據(jù)庫(kù)設(shè)計(jì)目前一段采用生命周期法.即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫(kù)設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。

49.4

50.A

51.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為3+1=4。

52.B解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。

53.B(16)B)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化。②不分行的初始化。③部分?jǐn)?shù)組元素初始化。④省略第一維的定義,不省略第二維的定義。選項(xiàng)B)等號(hào)右邊分了3行,大于等號(hào)左邊數(shù)組的行數(shù)2。

54.C解析:函數(shù)swap()實(shí)現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。

55.B解析:continue語(yǔ)句的作用是跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會(huì)增1,之后執(zhí)行continue語(yǔ)句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

56.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。

57.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號(hào)隔開(kāi)輸出兩個(gè)十進(jìn)制整數(shù),每個(gè)整數(shù)域?qū)捠?。而在C語(yǔ)言中規(guī)定:當(dāng)域?qū)捫∮趯?shí)際寬度時(shí)域?qū)挷黄鹱饔?,按?shí)際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進(jìn)制整數(shù)12,等于十進(jìn)制的10)。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

58.B解析:程序中a[3)[2]={0}將數(shù)組元素全部初始化

溫馨提示

  • 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)論