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è),還剩30頁(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.有以下程序

#include<stdio.h>

main()

{charb,c;inti;

b=‘a(chǎn)’;c=‘A’;

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

{if(i%2)putchar(i+b);

elseputehar(i+c);

}printf(“\n”);

}

程序運(yùn)行后的輸出結(jié)果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef

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

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

3.簡(jiǎn)單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

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

A.算法的時(shí)間復(fù)雜度是指算法在執(zhí)行過(guò)程中基本運(yùn)算的次數(shù)

B.算法的時(shí)間復(fù)雜度是指算法執(zhí)行所需要的時(shí)間

C.算法的時(shí)間復(fù)雜度是指算法執(zhí)行的速度

D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度

5.設(shè)有定義:

inta=1,b=2,C=3;

以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

6.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

7.要求當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”,以下不滿足要求的表達(dá)式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

8.以下選項(xiàng)中是非轉(zhuǎn)義字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

9.若有說(shuō)明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為Thecityisbeautiful\0

B.s1的內(nèi)容更新為isbeaut\0

C.s1的內(nèi)容更新為Thecity\0isbeautiful\0

D.s1的內(nèi)容更新為Thecityisbeautiful\0

10.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

11.下面程序的運(yùn)行結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.7654321B.1714171C.1711717D.7177171

12.有下列程序:

程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

13.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法所需要的存儲(chǔ)空間

14.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)()。

A.插入運(yùn)算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示C.存儲(chǔ)密度大D.刪除運(yùn)算方便

15.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

A.7B.2C.9D.10

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

A.15B.12C.16D.20

17.運(yùn)行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

18.以下敘述正確的是

A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和swish語(yǔ)句體內(nèi)使用break語(yǔ)句

C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句

19.

20.設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。

A.20B.0或35C.15D.16

二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為_(kāi)_____。

22.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請(qǐng)?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum,count);

}

23.下列語(yǔ)句能循環(huán)______次。

ints=12;

while(s);

--s;

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

25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

26.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fsetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

27.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

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

#include<stdio.h>

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

main()

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

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

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

}

29.下列程序利用指針將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",【】);

30.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

for(i=0;i<7;i+=2)

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;j++;}

puts(a);printf("\n");

}

31.一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,則實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于()的聯(lián)系。

32.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個(gè)新字符串s。

請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

33.若下面程序的輸出結(jié)果是4,請(qǐng)?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

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

}

34.設(shè)有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過(guò)宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】a,b);

35.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。

36.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。

37.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。

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

#include<stdio.h>

main()

{chara,b;

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

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

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

}

39.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為_(kāi)_____。

40.若x為int類型,請(qǐng)寫出與!x等價(jià)的C語(yǔ)言表達(dá)式______。

三、1.選擇題(20題)41.對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

42.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運(yùn)行時(shí)出錯(cuò),x無(wú)定值

43.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運(yùn)行的結(jié)果是()。

A.234B.432C.23D.4534554334344523

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

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

45.下面語(yǔ)句的輸出結(jié)果,是______。printh("%d\n",strlen("\t\"\065\xff\n"));

A.14B.8C.5D.輸出項(xiàng)不合法,無(wú)正常輸出

46.已知inta=1,b=3則a^b的值為

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

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x=1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

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

}

A.5B.3C.7D.1

48.表達(dá)式~0x11的值是()。

A.OxFFEEB.0x71C.0x0071D.0xFFE1

49.以下程序的輸出結(jié)果是()。main(){inta=0,i;for(i=1;i<5;i++){switch(i){casc0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

50.下列選項(xiàng)中非法的字符常量是()。

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

51.下列二維數(shù)組初始化語(yǔ)句中,不正確的是()。

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

B.intb[3][5]={0,0,0};

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

D.intb[3][2]={(1,2),(3,4),(5,6)};

52.用鏈表表示線性表的優(yōu)點(diǎn)是()。

A.便于隨機(jī)存取B.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同

53.以下程序的功能是:按順序讀入10名學(xué)生4門課程的成績(jī),計(jì)算出每位學(xué)生的平均分并輸出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf(“%f”,&score);sum+=score;}ave=sum/4.0;printf(“NO%d:%f\n”,n,ave);}}上述程序運(yùn)行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語(yǔ)句出現(xiàn)在程序中的位置不正確。這條語(yǔ)句是

A.sum=0.0;

B.sum+=score;

C.ave=sum/4.0;

D.printf(“NO%d:%f\n”,n,ave);

54.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

55.若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

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

p[i]=&a[i*4];

pp=p;

則對(duì)數(shù)組元素的錯(cuò)誤引用是

A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)

56.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留

57.以下說(shuō)法不正確的是

A.C程序中必須有一個(gè)main()函數(shù),C程序是從main()函數(shù)的第1條語(yǔ)句開(kāi)始執(zhí)行的。

B.非主函數(shù)都是在執(zhí)行主函數(shù)時(shí),通過(guò)函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。

C.C程序中的main()函數(shù)必須放在程序的開(kāi)始位置。

D.C程序中的main()函數(shù)位置可以任意指定。

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

A.用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”

C.用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭

D.用戶所定義的標(biāo)識(shí)符中,大、小寫字母代表不同標(biāo)識(shí)

59.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

60.在數(shù)據(jù)流圖中,帶有箭頭的線段表示的是()

A.控制流B.數(shù)據(jù)流C.模塊調(diào)用D.事件驅(qū)動(dòng)

四、選擇題(20題)61.已定義c為字符型常量,則下列語(yǔ)句中正確的是()。

A)c=′97′B)c="97"

C)c=97D)c="a"

62.

63.

64.在HTML文檔中,應(yīng)該在下列哪個(gè)部分引用外部樣式表?()A.A.文檔的末尾

B.<title>部分

C.<body>部分

D.<head>部分

65.以下選項(xiàng)中敘述錯(cuò)誤的是()。

A.C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值

B.在C程序的同一函數(shù)中,各復(fù)合語(yǔ)句內(nèi)可以定義變量,其作用域僅限本復(fù)合語(yǔ)句內(nèi)

C.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值

D.C程序函數(shù)的形參不可以說(shuō)明為static型變量

66.

67.

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

A.123B.234C.223D.233

69.

70.

71.

72.在JavaScript語(yǔ)言中,擁有onsubmit事件的對(duì)象是()。

A.documentB.eventC.windowD.form.

73.

74.有以下程序:

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

A.1,2,3,0,0,0,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

75.

76.分析以下程序的輸出結(jié)果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

77.有以下程序:

#defineN20

fun(inta[],intn,intm)

{inti;

for(i=m;i>n;i--)a[i+1]=a[i];

returnm;

}

voidmain()

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

fun(a,0,N/2);

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

}

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

A.10234B.12344C.12334D.12234

78.第

42

若有說(shuō)明語(yǔ)句

chara[]="Itismine";

char*p="Itismine";

則以下不正確的敘述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串時(shí),字符串的長(zhǎng)度不受限制

C.p變量中存放的地址值可以改變

D.a中只能存放10個(gè)字符

79.

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:根據(jù)輸人的三條邊長(zhǎng)(整形),判斷能否構(gòu)成三角形;構(gòu)成的是等邊三角形還是等腰三角形。若能構(gòu)成等邊三角形函數(shù),返回3;若能構(gòu)成等腰三角形函數(shù),返回2;若構(gòu)成=三角形函數(shù),返回l;若不能構(gòu)成三角形函數(shù)返回0。請(qǐng)修改函數(shù)fun()中的錯(cuò)誤,得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.下列程序判斷字符串s是否對(duì)稱,對(duì)稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。

參考答案

1.B解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對(duì)2求余非零時(shí)輸出ASCII碼為i+b)的字符;當(dāng)i的值對(duì)2求余為零時(shí)輸出ASCII碼為i+c的字符。分析程序可知本題選B。

2.A

3.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過(guò)相鄰元素的交換,逐步將線性表變成有序。

4.A算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,其計(jì)算工作量是用算法所執(zhí)行的基本運(yùn)算次數(shù)來(lái)度量的。本題答案為A選項(xiàng)。

5.C由于a小于b,所以所有選項(xiàng)中的條件都為假,c選項(xiàng)中實(shí)際執(zhí)行了a=b;b=c;兩個(gè)操作。而A、B、D選項(xiàng)由于條件不成立,所以什么也沒(méi)有做,所以選擇c選項(xiàng)。

6.A解析:從main函數(shù)入手,定義了指向字符串的指針數(shù)組,并賦予了初始值,調(diào)用fun()函數(shù),函數(shù)的功能是:比較數(shù)組中各個(gè)元素的長(zhǎng)度,按元素長(zhǎng)度從小到大排列數(shù)組元素,所以執(zhí)行fun(ss,5)函數(shù)后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。

7.D

8.AC語(yǔ)言中,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個(gè)反斜線開(kāi)頭后加一個(gè)特定的字符。題干中,‘\\t’表示橫向跳若干格,‘\\b’表示退格符,‘\\r’表示回車符,選項(xiàng)B、C、D正確,選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。

9.D解析:該函數(shù)用來(lái)使兩個(gè)字符串連接成為一個(gè)字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個(gè)“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。

10.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過(guò)指針引用一個(gè)存儲(chǔ)單。

11.C

12.C程序定義兩個(gè)整型變量i、j,初值為3,7。另外,定義兩個(gè)整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過(guò)臨時(shí)變量t交換a和b指向的值,此時(shí)a指向的實(shí)參i、b指向的實(shí)參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過(guò)臨時(shí)變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項(xiàng)。

13.D解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

14.C

15.A

16.B#define命令是C語(yǔ)言中的一個(gè)宏定義命令,標(biāo)識(shí)符一般使用大寫,用標(biāo)識(shí)符定義一個(gè):字符串,該標(biāo)識(shí)符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識(shí)符。后綴自增運(yùn)算a++表示先運(yùn)算,后自加。意思是遇到a++了,先把當(dāng)前的a的值拿來(lái)參加運(yùn)算,后面再自加。SUB(a++,b++)→(a++)*(b++)=3*4。故本題答案為B選項(xiàng)。

17.C

\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語(yǔ)句:C=C+4,C得到的字符的ASCII碼值,退出if語(yǔ)句,通過(guò)putchar函數(shù)輸出字符。

18.B

19.D

20.BQ(1:35)則隊(duì)列的存儲(chǔ)空間為35;對(duì)空條件:front=rear(初始化時(shí):front=rear),隊(duì)滿時(shí):(rear+1)%n==front,n為隊(duì)列長(zhǎng)度(所用數(shù)組大小),因此當(dāng)執(zhí)行一系列的出隊(duì)與入隊(duì)操作,front=rear.則隊(duì)列要么為空,要么為滿。

21.繼承繼承

22.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函數(shù)中一開(kāi)始定義了一個(gè)長(zhǎng)度為20的整型數(shù)組,然后通過(guò)一個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[i]或a+i,然后再通過(guò)一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a或*(a+i)。

23.無(wú)限無(wú)限解析:分析程序“while(s)”語(yǔ)句后面有一個(gè)“;”不能執(zhí)行后面的語(yǔ)句,只是執(zhí)行空語(yǔ)句,所以s=12保持不變,因此,沒(méi)有條件限制的能循環(huán)無(wú)限次(即死循環(huán))。

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

25.軟件開(kāi)發(fā)

26.filea.dat"r"filea.dat,'r'解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開(kāi)filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

27.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

28.77解析:程序中經(jīng)過(guò)宏替換后,表達(dá)式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因?yàn)?a+b)>(c+d)為真,所以t=(a+b),輸出結(jié)果為7。

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

30.j++a[j]>a[j]

31.一對(duì)多一對(duì)多解析:在現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實(shí)體集間的一定關(guān)系。兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對(duì)一,一對(duì)多和多對(duì)多,依據(jù)題意,一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,所以實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于一對(duì)多的聯(lián)系。

32.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。

33.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語(yǔ)句改變了k的值,即要求表達(dá)式-(i+j)的值為4。所以,答案應(yīng)該為-2,因?yàn)橹挥衖=j=-2時(shí),表達(dá)式-(i+j)的值才為4。

34.cc解析:該題考查以下兩個(gè)知識(shí)點(diǎn):

(1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來(lái)代表一個(gè)字符串,它的一般形式為#define標(biāo)識(shí)符字符串

(2)在MYSWAP宏定義中,利用中間變量z來(lái)交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過(guò)中間變量即可,所以,此處應(yīng)填c。

35.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,而調(diào)試主要在開(kāi)發(fā)階段。

36.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。

37.封裝封裝

38.1B1B解析:本題輸入B33,字符'B'被輸入給字符變量a,33賦給b,執(zhí)行a=a-'A'+'0';得到a的值'1';執(zhí)行b=b*2;得到b值66,最后以字符型輸出為1B。

39.-24-24解析:本題考查賦值運(yùn)算符a+=b等價(jià)于a=a+b;a-=a*a等價(jià)于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

40.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

41.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡(jiǎn)單插入排序n(n-1)/2、希爾排序0(n1.5)、簡(jiǎn)單選擇排序n(n-1)/2、堆排序O(nlog2n)

42.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個(gè)指針變量中存儲(chǔ)的地址是不同的。變量x接受的是一個(gè)關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€(gè)地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語(yǔ)言中,邏輯值的表示方法。

43.D解析:本題主要考查for循環(huán)語(yǔ)句的嵌套。外層主循環(huán)執(zhí)行了3次,嵌套的循環(huán)語(yǔ)句每輪執(zhí)行2次,每次輸出i+j的值,推出嵌套循環(huán)語(yǔ)句后換行。

44.D解析:本題主要考查的是scanf()函數(shù)的輸入原理。scanf()函數(shù)執(zhí)行時(shí),先從鍵盤緩沖區(qū)中讀取用戶輸入的數(shù)據(jù),若緩沖區(qū)為空或輸入數(shù)據(jù)少于所需數(shù)據(jù),則暫停程序等待用戶的輸入,直到用戶敲入回車,scanf()將繼續(xù)到鍵盤緩沖區(qū)中讀取輸入,如此反復(fù)直到滿足scanf()函數(shù)所需數(shù)據(jù),程序才繼續(xù)執(zhí)行下面的語(yǔ)句,而scanf()沒(méi)有取完的數(shù)據(jù)仍然會(huì)保存在鍵盤緩沖區(qū)內(nèi),到程序結(jié)束時(shí)還沒(méi)取完就會(huì)被釋放掉,不會(huì)影響其他的程序運(yùn)行。另外,scanf()函數(shù)將取到的數(shù)據(jù)匹配給第2個(gè)及其后面的指針參數(shù)所指的內(nèi)存地址中去,而不檢查該參數(shù)的類型是否匹配。所以在本題中考生不要被指針ptr的定義所迷惑,它所做的只不過(guò)是臨時(shí)保存一下a+i的值,然后送到scanf()函數(shù)中去。題目首先定義了一個(gè)二維數(shù)組a[3][2]并用{0}初始化之,因?yàn)楫?dāng)所賦初值少于所定義數(shù)組的元素個(gè)數(shù)時(shí),將自動(dòng)給后面的元素樸以初值0,所以數(shù)組a[3][2]中所有的元素都被初始化為0了。在主程序的第一個(gè)for循環(huán)體中有三條語(yǔ)句,該循環(huán)體會(huì)被執(zhí)行兩次,每次執(zhí)行時(shí)i的值分別為0和1。第1條語(yǔ)句讓ptr的值分別為a+0(即元素a[0])[0])的地址)和a+1(即元素a[1][0]的地址);第2條語(yǔ)句是一條輸入語(yǔ)句,它每次接受一個(gè)十進(jìn)制整數(shù)存入到ptr所指的內(nèi)存地址中,題目要求輸入的數(shù)據(jù)為“123<回車>”,所以兩次scanf()函數(shù)的調(diào)用使a[0][0]和a[1][0]分別被賦為1和2。笫3條語(yǔ)句讓ptr自增1在這里沒(méi)有起到任何作用,因?yàn)槊看芜M(jìn)入循環(huán)體ptr都會(huì)被重新賦值。最后,程序用一個(gè)兩重循環(huán)按行列輸出二維數(shù)組a中的所有元素。所以,選項(xiàng)B符合題意。

45.C解析:在C語(yǔ)言中,以“\\”開(kāi)頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進(jìn)制熟或在“\\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來(lái)代表—個(gè)特定的字符。

46.C解析:^是按位異或運(yùn)算,如果對(duì)應(yīng)位不同則結(jié)果為1,相同則為0。

47.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=O->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。

48.A解析:本題主要考查按位求反運(yùn)算和整型常量的表示:①十六進(jìn)制整型常量的形式是以數(shù)字0x或OX開(kāi)頭的十六進(jìn)制字符串;②按位求反運(yùn)算的規(guī)則是:將二進(jìn)制表示的運(yùn)算對(duì)象按位取反,即將1變0,將0變I?!癘xll”即0000000000010001,進(jìn)行按位求反運(yùn)算“~Ox11”后為1111111111101110,即0xFFEE。

49.A解析:在本題中,因?yàn)槊總€(gè)case語(yǔ)句后面都沒(méi)有break語(yǔ)句,所以,第一輪循環(huán)(i=1)執(zhí)行過(guò)后a的值為8,第2輪(i==2)執(zhí)行過(guò)后a的值為16,第3輪(i==3)執(zhí)行過(guò)后a的值為26,第4輪(i==4)執(zhí)行過(guò)后a的值為31,然后執(zhí)行“i++”語(yǔ)句,這時(shí)循環(huán)條件為假,循環(huán)結(jié)束。所以,4個(gè)選項(xiàng)中A正確。

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

51.D解析:在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0;C語(yǔ)言規(guī)定,對(duì)于二維數(shù)組,只可以省略第1個(gè)方括號(hào)中的常量表達(dá)式,而不能省略第2個(gè)方括號(hào)中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個(gè)數(shù)。選項(xiàng)D賦值表達(dá)式中對(duì)每一維的元素賦初值應(yīng)用{},而不是0。

52.C【解析】在鏈表中因?yàn)槌舜娣艛?shù)據(jù)元素之外,還要存放指針,所以鏈表花費(fèi)的存儲(chǔ)空間要比順序表還要多,在插入和刪除數(shù)據(jù)元素時(shí),只需要移動(dòng)相應(yīng)的記錄指針即可,在鏈表中,數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)不一定相同,因?yàn)槭强恐羔榿?lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的指定的,所以不能進(jìn)行隨機(jī)存取。

53.A解析:本程序中用了兩層for循環(huán),外層循環(huán)是控制人數(shù),循環(huán)一次是求一個(gè)人的成績(jī)和,然后除以4得到平均成績(jī)。每個(gè)人的成績(jī)總和一開(kāi)始時(shí)都必須清0,否則就會(huì)出現(xiàn)后面人的總成績(jī)?cè)絹?lái)越大?!皊um=0.0”;應(yīng)在外層循環(huán)中。

54.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。

55.C解析:考查指向數(shù)組的指針。本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語(yǔ)言中,引用數(shù)組元素的方法有兩種,即下標(biāo)法和指針?lè)?。下?biāo)法如a[i]形式;指針?lè)ㄈ?(a+i)或*(p+1)。其中,a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語(yǔ)句中指針型數(shù)組的書寫格式,不能寫成'(*數(shù)組名)[長(zhǎng)度]',因?yàn)檫@是定義指向含有'長(zhǎng)度'個(gè)元素的一維數(shù)組的指針變量。例如有定義語(yǔ)句'inta,b,c,c,*p[3]={&a,&b,&c};',它定義了一個(gè)名為p的指針型數(shù)組,其3個(gè)元素p[0],p[1],p[2]分別指向f3個(gè)整型變量a,b,c。

56.C解析:事實(shí)上,無(wú)論有無(wú)static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。

57.C解析:本題考核的知識(shí)點(diǎn)是main()函數(shù)的作用,以及main()函數(shù)在程序中出現(xiàn)的位置。一個(gè)完整的C語(yǔ)言程序有且僅有一個(gè)主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語(yǔ)句開(kāi)始執(zhí)行,到main()函數(shù)的最后一條語(yǔ)句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時(shí),通過(guò)函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語(yǔ)言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項(xiàng)c

溫馨提示

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