2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年甘肅省金昌市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下四個選項,不能看作一條語句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

2.

3.已知字符A的ASCII值是65,字符變量c1的值是‘A’,c2的值是‘D’,則執(zhí)行語句“printf(“%d,%d”,c1,c2-2);”的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

4.計算機能夠直接識別和執(zhí)行的語言是

A.匯編語言B.自然語言C.機器語言D.高級語言

5.在軟件測試設(shè)計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤

6.設(shè)有兩個串p和q,其中q是p的子串,求q在p中首次出現(xiàn)的位置的算法稱為()。

A.求子串B.聯(lián)接C.匹配D.求串長

7.

8.設(shè)有如下函數(shù)定義:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執(zhí)行調(diào)用語句“n=fun(3);”,則函數(shù)fun總共被調(diào)用的次數(shù)是()。

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

9.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運行后的輸出結(jié)果是()。A.AB.aC.HD.h

10.鏈表不具有的特點是()。A.A.不必事先估計存儲空間

B.可隨機訪問任意元素

C.插入、刪除不需要移動元素

D.所需空間與線性表長度成正比

11.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對初始序列精細第一堂排序的結(jié)果。

A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序

12.折半查找的時間復(fù)雜性為()

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

13.選出任何情況下都不引起二義性的宏定義()。

A.#definePOWER(x)x*x

B.#definePOWER(x)((x)*(x))

C.#definePOWER(x)(x*x)

D.#definePOWER(x)(x)*(x)

14.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

15.

16.

17.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。

A.分塊B.順序C.二分D.散列

18.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233

19.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運行后的輸出結(jié)果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

20.設(shè)有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

二、2.填空題(20題)21.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

22.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

23.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

24.若先后輸入county、side,以下程序的運行結(jié)果為【】。

main()

{chars1[40],s2[20];inti=0,j=0;

scanf("%s",s1);

scanf("%s",s2);

while(s1[i]!='\0')i++;

while(s2[j]!='\0')s1[i++]=s2[j++];

s1[i]='\0';

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

}

25.Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計方法。

26.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

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

}

28.函數(shù)count(head)統(tǒng)計鏈表的結(jié)點個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

29.成本估算模型中,Putnam估算模型是一種【】模型。

30.下列程序執(zhí)行輸出的結(jié)果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

31.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

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

intb[3][2],i,j;

printf("arraya"\n");

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

{for(j=0;【】;j++)

{printf("%5d",a[i][j]);

【】;}

printf("\n");}

printf("arrayb:\n");

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

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");}}

32.棧的3種基本運算是:入棧、退棧和______。

33.在ER圖中,矩形表示【】。

34.設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。

structstud

{charnum[6];

ints[4];

doubleave;

}a,*p;

35.以下程序的功能是進行位運算main(){unsignedchara,b;a=7^3;b=~4&3;pfintf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是

36.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。

37.下列程序的運行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

38.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?zhí)羁铡?/p>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=x;

}

}

39.設(shè)x、y、z為整型變量,且x=2,y=3,z=4,當執(zhí)行以下語句后,x的值是______。

x*=(y++)+(--z);

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

三、1.選擇題(20題)41.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti:charstring[20],sb[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[21));printf("%s\n",string);}若運行時依次輸入abcd、abba和abc三個字符串,則輸出結(jié)果為______。

A.abcdB.abbaC.abcD.abca

42.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是______。

A.變量a的地址B.變量b中的地址C.變量a中的值D.變量b的地址

43.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

44.下列寫法正確的是()。

A.main()

B.main(){inti=3,j;{inti=3;j=5}

C.main()

D.main(){;}

45.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

46.電子數(shù)字計算機最主要的工作特點是()

A.高速度B.高精度C.存儲程序與自動控制D.記憶力強

47.以下有4組用戶標識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

48.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

49.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨立的語句存在

B.函數(shù)調(diào)用可以作為一個函數(shù)的實參

C.函數(shù)調(diào)用可以出現(xiàn)在表達式中

D.函數(shù)調(diào)用可以作為一個函數(shù)的形參

50.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(ar+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。

A.xyzabcABCB.zabeABCC.yzabcABCD.xyabcABC

51.C語言運算對象必須是整型的運算符是______。

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

52.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

53.若有定義intx,y;,并已正確給變量賦值,則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x-y)等價的是()。

A.(x—y>0)B.(x-y<0)C.(x-y<0||x-y>0)D.(x-Y==0)

54.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

55.算法的時間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

56.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

57.有以下程序main(){inta=5,b=4,c=3,d=2;if(a>b>C)printf("%d\n",D);elseif((c-1>=D)==1)printf("%d\n",d+1);elseprintf("%d\n,d+2);}執(zhí)行后輸出的結(jié)果是

A.2B.3C.4D.編譯時有錯,無結(jié)果

58.有以下程序:#include<studio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}

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

59.設(shè)有定義下列:inta=1,b=2,c=3,d=4,m=2,n=2;則表達式(m=a>b)&&(n=c>d)運算后,n的值是()。

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

60.有以下結(jié)構(gòu)體說明,變量定義和賦值語句:structSTD{charname[10];intage;char***;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語句中錯誤的結(jié)構(gòu)體變量成員是()。

A.scanf("%s",s[0].name);

B.scanf("%d",&s[0].age);

C.scanf("%c",&(ps->***));

D.scanf("%d",ps->age);

四、選擇題(20題)61.在單鏈表中,增加頭結(jié)點的目的是______。

A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性表的鏈式存儲實現(xiàn)

62.下列關(guān)于定點數(shù)與浮點數(shù)的敘述中錯誤自是()。

A.在實數(shù)的浮點表示中,階碼是一個整數(shù)

B.整數(shù)是實數(shù)的特例,也可以用浮點數(shù)表示

C.實數(shù)的補碼是其對應(yīng)的反碼在最后一位加1

D.相同長度的浮點數(shù)和定點數(shù),前者可表示數(shù)的范圍要大于后者

63.第

42

若有說明語句

chara[]="Itismine";

char*p="Itismine";

則以下不正確的敘述是

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

B.p指向另外的字符串時,字符串的長度不受限制

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

D.a中只能存放10個字符

64.

65.

若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

66.

67.

68.

69.

70.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

71.

72.有以下程序語句,正確的是()。

chara,b,c*d;

A)a=′56′;B)b=′\xbc′;

C)c=′\0xab′;D)d=′\0127′;

73.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

74.程序運行后的輸出結(jié)果是()。A.Qian,f,350,Sun,f,350

B.Qiamf,350,Qian,f,350

C.Qian,f,350,Sun,m,370

D.Zha0,m,290,Sun,m,370

75.軟件生命周期中,花費最多的階段是()。

A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護

76.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。

A.可封裝B.自頂向下C.模塊化D.逐步求精

77.

78.

79.

80.

五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。

#include“stdio.h”

Main

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

intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);

printf(“%d%d%d”,*p,m,n);}

六、程序設(shè)計題(1題)82.使用VC++2010打開觸文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是移動字符串中的內(nèi)容,移動的規(guī)則是把第1~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內(nèi)容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內(nèi)容應(yīng)該是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。

2.D

3.D輸出時以%d整型格式輸出,所以輸出字符變量c1的值為65,c2-2的值為68-2,即66。故本題答案為D選項。

4.C

5.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。

6.C

7.B

8.B執(zhí)行調(diào)用語句“n=fun(3);”,3被當作實參傳遞進去,進行了一次調(diào)用。3被當作實參傳進去后,程序會執(zhí)行“elsereturnfun(k-1)+1;”,函數(shù)被調(diào)用了第2次,參數(shù)是3-1,也就是2。2被當作參數(shù)傳進去后,程序會執(zhí)行“elsereturnfun(k-1)+1;”函數(shù)被調(diào)用了第3次,參數(shù)是2-1,也就是1。1被當作實參傳進去后,程序會執(zhí)行“elseif(k==1)return1;”,函數(shù)不再被遞歸調(diào)用。所以最終結(jié)果為3次。故本題答案為B選項。

9.D多元運算符問號前面表達式為真,所以(a-A+a)賦值給a,括號里的運算是把大寫字母變成小寫字母,所以答案應(yīng)為選項D。

10.B鏈表采用的是鏈式存儲結(jié)構(gòu),它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,插入、刪除不需要移動數(shù)據(jù)元素。但是鏈式存儲結(jié)構(gòu)也有不足之處:每個結(jié)點中的指針域需額外占用存儲空間,它是一種非隨機存儲結(jié)構(gòu)。

11.C

12.D

13.B解析:引起帶參數(shù)宏的二義性主要有兩個方面:一是,參數(shù)之間因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項A),若程序中使用POWER(a+b),會展開為a+b*a+b,這樣就會先計算b*a的值,然后再加一個a和一個b,產(chǎn)生二義性。杜絕這種二義性的方法是在宏定義的每個參數(shù)外加上圓括號以保證總是先計算每個參數(shù)的值,就好像本題的選項D)那樣。另一個是,整個宏所代表的表達式因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項D),若程序中使用a/POWER(b),會展開為a/(b)*(b),這樣就會先計算a/b的值,然后再乘以b,產(chǎn)生二義性。杜絕這種二義性的方法是對整個宏定義加一個圓括號,就好像本題的選項B)那樣。故選項B)在任何情況下都不會引起二義性,應(yīng)該選B。

14.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

15.C

16.C

17.A

18.D本題考夢自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進行運算;出現(xiàn)在變量之后,表示先使用變量的值進行運算,再使用變量的值加l。當邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“||”只要一個值為1,值就為1。根據(jù)運算符的優(yōu)先級,題中應(yīng)先計算內(nèi)層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為1;1與任何數(shù)都為進行或(||)運算,結(jié)果都為1,因此k=3的表達式i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。

19.Dmain函數(shù)定義一個二維字符數(shù)組a,它包含5個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針數(shù)組P包含5個字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價于a[i],因此每次都是將下標為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時,輸出字符串“welcome”和首字符“w”;i=4時,輸出字符串“you”和首字符“y”。綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項。

20.C本題考查while,while循環(huán)表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。

21.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。

22.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。

23.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

24.countryside

25.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)

26.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

27.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。

28.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對循環(huán)條件進行一個判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。

29.動態(tài)多變量動態(tài)多變量

30.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。

31.j<2b[j][i]=a[i][j]i<=2j<2\r\nb[j][i]=a[i][j]\r\ni<=2解析:本題考查了二維數(shù)組元素的引用。a[i][j]表示的是二維數(shù)組a的第i+1,第j+1列的元素。

32.讀棧頂元素讀棧頂元素解析:棧的基本運算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。

33.實體實體解析:在E-R圖中用矩形表示實體;橢圓形表示屬性;菱形表示聯(lián)系。

34.22

35.A

36.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

37.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

38.br[i]

39.12。12。解析:表達式x*=(y++)+(--z)相當于先進行z的自減運算,再執(zhí)行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。

40.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

41.B解析:本題自定義函數(shù)scrnp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運行時依次輸入abcd、abba和abc三個字符串,執(zhí)打strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷貝到字符串數(shù)組string中,所以本題輸出abba。

42.C解析:指針變量是用來存放地址的。&:取地址運算符。*:指針運算符。**c為指針變量*c所指向的存儲單元,*c為指針指針變量c所指向的存儲單元,而c=&b表示c為變量b的地址,b=&a表示b為變量a的地址。表邊式**c的值就是變量a中的值。

43.C解析:本題考查逗號表達式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

44.D解析:本題考查語句的基本構(gòu)成。選項A)中j=5后面少了一個分號;選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。

45.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后的y的類型是int型。

46.B解析:通常所說的計算機應(yīng)是電子數(shù)字計算機的簡稱。電子數(shù)字計算機是一種能快速、自動進行數(shù)值計算和信息處理的計算工具。其主要特點是:(1)計算機能快速計算;(2)計算機是具有通用性的計算工具;(3)計算機具有高準確度;(4)計算機具有邏輯判斷能力。

47.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

48.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。

49.D解析:本題考查函數(shù)的調(diào)用。在有參函數(shù)調(diào)用中,是將主調(diào)函數(shù)的實參值傳給被調(diào)函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調(diào)用形式:

①函數(shù)調(diào)用作為一條語句。例如:fun();這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項A)正確。

②函數(shù)出現(xiàn)在表達式中,這種表達式稱為函數(shù)表達式。這時要求函數(shù)帶回一個確定的值以參加表達式的運算。例如:c=5*max(a,b);函數(shù)max是表達式的一部分,將其值乘以5后賦給c。故選項C)正確。

③函數(shù)調(diào)用作為一個函數(shù)的實參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實參。故選項B)正確。

函數(shù)調(diào)用不可作為一個函數(shù)的形參,因為函數(shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實參傳給形參,不能由形參傳給實參。故選項D)錯誤。

50.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC防到了*p1所指向的存儲單元中:strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

51.A解析:在C語言中,模運算(即取余運算%)的運算對象必須是整型數(shù)據(jù)(常量、變量或表達式)。

52.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

53.C

54.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。

55.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。

56.C解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。選項C)中第一個參數(shù)的表達式不正確,因此不能得到正確的結(jié)果。

57.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個else和第一個if配對,第二個else和第二個if配對。首先計算第一個訂后面的表達式“a>b>c”,表達式“a>b”是為1,表達式“1>c,’為0,所以執(zhí)行else后面的語句.先執(zhí)行if后面的表達式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句.所以,B選項為所選。

58.A解析:本題考核的知識點是宏與自增運算符的綜合運用.在程序中先用表達式將宏替換掉,則輸出語句中的表達式為(a++)*(b++),而a++的值為3,b++的值為4。因此最后的值為3*4=12。所以,4個選項中選項A符合題意。

59.C解析:在邏輯與&&運算中,如果第一個操作數(shù)為假,則結(jié)果是假,后面的操作數(shù)不參與運算,本題中因為第一個操作數(shù)(m=a>b)為假,所以第二個操作數(shù)(n=c>d)不參加運算,因此n的值不變。

60.D

61.A\nA?!窘馕觥款^結(jié)點不僅標識了表中首結(jié)點的位置,而且根據(jù)單鏈表(包含頭結(jié)點)的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便于運算的實現(xiàn)。

\n

62.C正整數(shù)的補碼與其原碼一致;負整數(shù)的補碼是其對應(yīng)的反碼在最后一位加l。

63.D在C程序中,可以用字符數(shù)組存放一個字符串

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論