2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義語句:inta[3][6];,按在內存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

2.

3.下列程序段的時間復雜度為()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

4.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

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

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

6.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.45B.50C.60D.55

7.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運行后的輸出結果是()。

A.20045537B.20044550C.20042580D.20041703

8.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

9.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結果是()。

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

10.執(zhí)行下列程序段后的輸出結果是()。A.3B.2C.1D.4

11.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹

A.空或只有一個結點B.高度等于其結點數(shù)C.任一結點無左孩子D.任一結點無右孩子

12.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質量難以控制D.軟件成本不斷提高

13.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

14.關于地址和指針,以下敘述正確的是()。

A.可以通過強制類型轉換讓char型指針指向double型變量

B.函數(shù)指針P指向一個同類型的函數(shù)f時,必須寫成“p=&f;”

C.指針P指向一個數(shù)組f時,必須寫成“P=&f;”

D.—個指針變量P可以指向自身

15.

16.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上三種描述都不對

17.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

18.若有定義語句:intX=10;,則表達式x-=x+X的值為A.-20B.-10C.0D.10

19.有以下函數(shù):intfun(char*x,char*y)intn=0;while((*x==*y)&&*x!=‘\0’)∣x++;y++;n++;∣returnn;函數(shù)的功能是()。A.將y所指字符串賦給x所指存儲空間

B.查找和y所指字符串中是否有‘\0’

C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

20.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時,花費的時間反而最多。

A.堆排序B.冒泡排序C.快速排序D.希爾排序

二、2.填空題(20題)21.有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結果是

22.以下程序的輸出結果是______。

main()

{inta=177;

printf("%o\n",a);

23.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

24.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。

main()

{inta;floatb;

【】

【】}

輸入形式:3.52<空格>6<回車>

輸出形式:a*b=21.12

25.在關系運算中,【】運算是對兩個具有公共屬性的關系所進行的運算。

26.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。

27.面向對象的模型中,最基本的概念是對象和______。

28.執(zhí)行以下程序后的輸出結果是【】。

main()

{inta=10;

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

}

29.設二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應是【】。

30.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

31.閱讀下面程序,則程序的執(zhí)行結果為【】。

#include"stdio.h"

fun(intk,int*p)

{inta,b;

if(k==1‖k==2)

*p=1;

else{fun(k-1,&a);

fun(k-2,&b);

*p=a+b;}}

main()

{intx;

fun(6,&x);

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

32.以下程序的運行結果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

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

34.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

35.以下函數(shù)用于求出一個2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

36.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有上【】個元素。

37.執(zhí)行以下for語句后,變量i的值是【】。

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

38.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

39.以下程序運行后的輸出結果是【】。

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);

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

}

40.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

三、1.選擇題(20題)41.以下錯誤的定義語句是()。

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

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

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

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

42.若有語句:Char*line[5];,以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符

D.定義line是一個指向字符型函數(shù)的指針

43.C語言中()

A.不能使用do-while語句構成的循環(huán)

B.do-while語句構成的循環(huán)必須用break語句才能退出

C.do-while語句構成的循環(huán),當while語句中的表達式值為非零時結束循環(huán)

D.do-while語句構成的循環(huán),當while語句中的表達式值為零時結束循環(huán)

44.運行下面程序時,從鍵盤輸入字母H,則輸出結果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmoming!Bye_ye!

D.Hello!Bye_ye!

45.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

46.C語言庫函數(shù)fgets(str,n,fp)的功能是______。

A.從中指向的文件中讀取長度n的字符串存入str指向的內存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存

C.從fp指向的文件中讀取n個字符串存入str指向的內存

D.從str讀取至多n個字符到文件fp

47.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

48.數(shù)據(jù)的存儲結構是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示

49.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.++b;C.a=a++5;D.a=double(b);

50.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

51.在下列#include命令中,正確的一條是()

A.#include[string.h]

B.#include{math.h}

C.#include(stdio.h)

D.#include<stdio.h>

52.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

53.在C語言中,函數(shù)調用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

54.待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。

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

55.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

56.下列關于棧的描述中錯誤的是()

A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

57.以下程序的輸出結果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

58.設x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個語句后t的值為

A.2B.1C.0D.不定值

59.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

60.以下程序的輸出結果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

四、選擇題(20題)61.

62.

設變量均已正確定義,

值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。

A.

B.

C.

D.

63.

64.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debu9

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

65.

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

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

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

}

程序運行后的輸入結果是()。

A.3

B.6

C.8

D.12

67.有以下程序:

程序的運行結果是()。

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

68.有以下程序

69.若有定義和語句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

則輸出結果是()。A.A.20,10B.20,20C.10,20D.10,10

70.有以下程序:

程序運行后的輸出結果是()。

A.02B.13C.57D.12

71.有以下程序:

程序運行后的輸出結果是()。

72.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

程序運行后的輸出結果是()。

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

73.對于一個正常運行的C程序,以下敘述中正確的是()。

A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結束

B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結束.

C.程序的執(zhí)行總是從main函數(shù)開始、

D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結束

74.

75.設有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

76.

77.下列選項中,能正確定義數(shù)組的語句是()。

A.

B.

C.

D.

78.

79.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

80.設有如下說明

typedefstruct

{intnumber;charclass;doublescore;}student;

則以下選項中,能正確定義結構體數(shù)組并賦初值的語句是()。

A.studenttt[2]={{189,’A’,62},{190,’B’,75}};

B.studenttt[2]={189,’"A",62,190,"B",75};

C.structtt[2]={{189,’A’},{190,’B’}};

D.structtt[2]={{189,"A",62.5},{190,"B",75.0}};

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

請修改程序中的錯誤,使它能得到正確結果。

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

試題程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\nknBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)其功能是使字符串的前導*號不得多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做處理。字符串中間和尾部的*號不刪除。例如,字符串中的內容為“*******A*BC*DEF*G****”,若n的值為4,刪除后,字符串中的內容應當是“****A*BC*DEF*G****”;若n的值為8,則字符串中的內容仍為“*******A*BC*DEF*G****”。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.B解析:二維數(shù)組的元素在內存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個元素就是第2行第4個元素,即a[1][3]。故應該選擇B。

2.C

3.D

4.A

5.A條件表達式“x=表達式1?表達式2:表達式3”的含義是:先求解表達式1,若其值不為0(真),則求解表達式2,將表達式2的值賦給x;若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給X。本題中與條件表達式“(x-y)”等價的是“(x-y<0||lx-y>0)”。故本題答案為A選項。

6.C內部靜態(tài)變量是始終存在的,當函數(shù)被調用退出后,內部靜態(tài)變量會保存數(shù)據(jù),再次調用該函數(shù)時,以前調用時的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調用后slim=15,所以Fun(b,4)=45,s=45+15=60。

7.D解析:函數(shù)f中定義了結構體類型的變量P作為形參,在main函數(shù)中,將結構體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內容,但其改變對main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時的數(shù)據(jù)。

8.B題目中先是將s2字符串寫入adc.dat中,然后執(zhí)行rewind函數(shù)將寫指針放置于文件開頭,寫入s1字符串。s1字符串將前5個字符覆蓋,所以最終結果為Chinang。故本題答案為B選項。

9.D

10.A

11.C

12.A軟件危機主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應用需求的增長。所以選擇A。

13.C

14.A函數(shù)名代表函數(shù)的入口地址,函數(shù)指針P指向一個同類型的函數(shù)f時,可以寫成“p=f;”,而不能寫成“P=&f;”,選項B錯誤。指針p指向一個數(shù)組f時,可以寫成“p=f;”,數(shù)組名f代表數(shù)組的首地址,選項C錯誤。指針變量指向的是變量的地址,選項D錯誤。char型根據(jù)轉化原則可以轉化為double類型。故本題答案為A選項。

15.A

16.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結構和存儲結構都有很緊密的關系。算法的空間復雜度是指執(zhí)行該算法需要的內存空間,并非算法程序中指令的條數(shù)。算法一般應該具有以下4個特征:可行性、確定性、有窮性和擁有足夠情報。其中,有窮性是指算法必須能在執(zhí)行有限個步驟之后終止,否則可能失去實際意義。

17.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

18.B解析:x-=x+x可化為:x=x-(x+x),由于x初始值為10,所以計算后,x=10-20=-10,因此選B)。

19.C本題中由循環(huán)條件可知遇到‘\\0’或x與y所指的字符的值不等中的一個條件時就結束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。

20.C

21.C

22.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進制輸出,十進制數(shù)的177代表的八進制數(shù)是261,所以該空格處應該填寫261。

23.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結果,形參z必須是指針類型的。由于返回整型結果,所以第一處填int*;函數(shù)返回前必須先把結果通過形參z間接引用傳回,第二處應填*z。

24.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);

25.自然連接自然連接解析:在關系運算中,自然連接運算是對兩個具有公共屬性的關系所進行的運算。

26.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。

27.類類

28.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結果是a=14。

29.1111000011110000解析:按位異或運算的一個重要應用是讓某個整型變量的二進制位取反,0變成1,而1變成0。這只要設計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

30.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進來。

31.88解析:函數(shù)可以被遞歸調用,但是不能遞歸定義。有返回值的函數(shù)調用可以出現(xiàn)在表達式可以出現(xiàn)的任何地方。

32.k=5k=5解析:本題主要考查了函數(shù)的遞歸調用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。

33.0。0。解析:表達式中將實型常量2.5和算術表達式1.25*(3.7+2.3)的值強制轉換為整型后參與運算。

34.HowdoesheHowdoeshe解析:本題的關鍵在于表達式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。

35.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩陣實際上就是一個二維數(shù)組,結合本題應為arr[2][4],所以在第一個循環(huán)中應當填寫“4”;第二個橫線處是要判斷當前的數(shù)組元素值是否大于max,所以應填寫arr[i][j];第三個橫線處是要將當前大于max的數(shù)組元素的值賦給變量max,所以應當填寫“arr[i][j]”。

36.1818解析:設循環(huán)隊列的容量為n。若rear>front,則循環(huán)隊列中的元素個數(shù)為rear-front;若rear<front,則循環(huán)隊列中的元素個數(shù)為n+(rear-from)。題中,front=16,rear=9,即rear>front,所以,循環(huán)隊列中的元素個數(shù)為m+(rear-front)=25+(9-16)=18。

37.7

38.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

39.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。

40.4.0或44.0或4

41.C解析:若在定義二維數(shù)組的同時對數(shù)組進行初始化,可以不指定一維長度.但二維長度不能省略,因此選項C是錯誤的。如果數(shù)據(jù)不足,系統(tǒng)將自動給后面的元素自動補初值0。

42.A解析:理解復雜定義要掌握兩點:一、右結合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應該選擇A。

43.D

44.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行de-fault后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'C'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行

45.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

46.B解析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp)沖的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加一個'\\0'字符,因此得到的字符串共有n個字符。

47.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標出一個執(zhí)行的起點,當符合某個case時,程序就從該case所標出的起點處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應該選擇D。

48.D數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結構。數(shù)據(jù)的存儲結構則是數(shù)據(jù)的邏輯結構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結構。兩者的區(qū)別是數(shù)據(jù)的邏輯結構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結構不止一種。因此選項D正確。

49.B解析:要解答此題只要知道兩個知識點:①在C語言中規(guī)定進行強制類型轉換的格式是:(double)變量名;②在C語言中不允許給表達式賦值。

50.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。

51.D

52.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。

53.A解析:本題考查函數(shù)調用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調用時,主調函數(shù)為被調函數(shù)提供的原始數(shù)據(jù)。

在函數(shù)調用時,實參和其所對應的形參分別占用不同的存儲單元,彼此之間不影響。

54.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。

55.D解析:*、/和%的優(yōu)先級要高于+和—,同級別的運算符從左至右運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結果應該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結果為整數(shù),而且是截尾取整,所以5/2的結果是2;5%2表示的是5除以2所得的余數(shù),其結果為1。計算完后,表達式變?yōu)?.6-2+1.2+1,從左至右計算不難得出結果為3.8,故應該選擇D。

56.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進后出(FILO,F(xiàn)irstInLastOut)或后進先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進后出表或后進先出表。由此可以看出,棧具有記憶作用。答案B錯在帶鏈的棧的結點存儲順序與其邏輯順序是可以不一致的。

57.B解析:本題函數(shù)的功能是計算并輸出一個二維數(shù)組對角線及對角線下面的元素之和。

58.B解析:邏輯與(&&)優(yōu)先于邏輯或(‖)優(yōu)先于賦值運算符。由于邏輯運算符的結果為邏輯值,真為1,假為0,題目中的邏輯值為真。

59.A解析:頭文件<string.h>是字符串處理函數(shù)對應的頭文件,要想調用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應的頭文件,否則無法使用庫函數(shù)。

strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。

60.D解析:本題中是一個含有兩個結點的循環(huán)鏈表。

C語言中結構體的定義為:

struct結構題類型名

{

成員項表;

};

61.C

62.D本題中,scanf函數(shù)的格式控制沒有空格,所以,對于選項A)、B)、c),輸入的第一個空格會作為字符賦值給變量cl,而不會被解釋成分隔符。

63.C

64.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,因此選項A)錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼以排除錯誤、進行回歸測試以防止引進新的錯誤。程序調試通常稱為Debu9,即排錯。軟件測試的基本準則包括:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、不可能實現(xiàn)窮舉測試、妥善保存測試計劃等文件。

65.D\r\n

66.B\n此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

\n

67.C函數(shù)intf(intx)是一個遞歸函數(shù)調用,

68.Af函數(shù)是值傳遞,不會改變main函數(shù)中結構體a的值,所以選擇A)。

69.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。

70.D本題考查邏輯運算符的”短路”現(xiàn)象,由于k的值為0,表達式首先去求k++的值,因為表達式k++的值為0,系統(tǒng)完全可以確定邏輯表達式的運算結果總是為0,因此將跳過n++>2,不再對它進行求值,即k的值加1,n的值不變。

71.A外循環(huán)第一次i的值為1,內循環(huán)第一次j的初值為l,打印1*1=1;內循環(huán)第二次j的值為2,打印1$2=2;內循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內循環(huán)。外循環(huán)第二次i的值為2,內循環(huán)第一次j的初值為2,打印2*2=4;內循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內循環(huán)。外循環(huán)第三次i的值為3,內循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內循環(huán)。

72.D調用缸函數(shù)后,實參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉換為大寫。因此D選項正確。

73.C任何一個C語言程序的執(zhí)行都是從主函數(shù)main開始,至主函數(shù)main結束。故本題答案為C選項。

74.C

75.C結構體不能通過結構體名字整體賦值,通過結構體名.成員名的方式賦值。所以C選項錯誤。

76.C

77.D選項A)不符合c語言的語法要求;選項

B)中沒有指定數(shù)組的大小;選項c)中數(shù)組大小不能用變量來指定。

78.D

79.B本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量J的格式控制為”%2d”,即只接收輸人數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量Y中,因為Y為浮點型數(shù)據(jù),所以輸出結果為選項B。

80.AB項定義格式不對,tt[2]只有兩個元素,C項缺少了結構體名,而結構體名不可少,D項一樣缺少了結構體名。

81.(1)錯誤:intproc(charstr[])

\n正確:voidproc(charstr[])

\n(2)錯誤:str[j]=str[i++];

\n正確:str[j]=str[i];

\n【解析】由主函數(shù)中的函數(shù)調用可知,函數(shù)proc沒有返回值。因此,“intproc(charstr[])”應改為“voidproc(charstr[])”;由函數(shù)proc可知,if語句塊完成將字符串str中的第i個元素與第j個元素相交換。因此,“str[j]=str[i++];”應改為“str[j]=str[i];”。

\n

82.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a; /*開始時,p與t同時指向數(shù)組的首地址*/ while(*t==‘*’) /*用k來統(tǒng)計前導星號的個數(shù)*/ {k++;t++;} if(k>n) /*如果k大于n,則使p的前導保留n個星號,其后的字符依次存入數(shù)組a中*/ { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]=‘\0’; /*在字符串最后加上字符串結束標志*/ }}字符串中前導*號不能多于n個,多余的應刪除。首先需要通過while循環(huán)統(tǒng)計字符串前導*號的個數(shù),然后通過if條件語句完成前導*號的個數(shù)和n的比較,如果前導*號多于n個,則需要把n個*號和其余字符重新保留。2021-2022年江西省吉安市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義語句:inta[3][6];,按在內存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

2.

3.下列程序段的時間復雜度為()。A.O(3n)B.O(n)C.O(n2)D.O(log3n)

4.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

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

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

6.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.45B.50C.60D.55

7.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運行后的輸出結果是()。

A.20045537B.20044550C.20042580D.20041703

8.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

9.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結果是()。

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

10.執(zhí)行下列程序段后的輸出結果是()。A.3B.2C.1D.4

11.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹

A.空或只有一個結點B.高度等于其結點數(shù)C.任一結點無左孩子D.任一結點無右孩子

12.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質量難以控制D.軟件成本不斷提高

13.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

14.關于地址和指針,以下敘述正確的是()。

A.可以通過強制類型轉換讓char型指針指向double型變量

B.函數(shù)指針P指向一個同類型的函數(shù)f時,必須寫成“p=&f;”

C.指針P指向一個數(shù)組f時,必須寫成“P=&f;”

D.—個指針變量P可以指向自身

15.

16.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上三種描述都不對

17.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

18.若有定義語句:intX=10;,則表達式x-=x+X的值為A.-20B.-10C.0D.10

19.有以下函數(shù):intfun(char*x,char*y)intn=0;while((*x==*y)&&*x!=‘\0’)∣x++;y++;n++;∣returnn;函數(shù)的功能是()。A.將y所指字符串賦給x所指存儲空間

B.查找和y所指字符串中是否有‘\0’

C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

20.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時,花費的時間反而最多。

A.堆排序B.冒泡排序C.快速排序D.希爾排序

二、2.填空題(20題)21.有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結果是

22.以下程序的輸出結果是______。

main()

{inta=177;

printf("%o\n",a);

23.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

24.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。

main()

{inta;floatb;

【】

【】}

輸入形式:3.52<空格>6<回車>

輸出形式:a*b=21.12

25.在關系運算中,【】運算是對兩個具有公共屬性的關系所進行的運算。

26.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。

27.面向對象的模型中,最基本的概念是對象和______。

28.執(zhí)行以下程序后的輸出結果是【】。

main()

{inta=10;

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

}

29.設二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應是【】。

30.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

31.閱讀下面程序,則程序的執(zhí)行結果為【】。

#include"stdio.h"

fun(intk,int*p)

{inta,b;

if(k==1‖k==2)

*p=1;

else{fun(k-1,&a);

fun(k-2,&b);

*p=a+b;}}

main()

{intx;

fun(6,&x);

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

32.以下程序的運行結果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

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

34.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

35.以下函數(shù)用于求出一個2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

36.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有上【】個元素。

37.執(zhí)行以下for語句后,變量i的值是【】。

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

38.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

39.以下程序運行后的輸出結果是【】。

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);

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

}

40.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

三、1.選擇題(20題)41.以下錯誤的定義語句是()。

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

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

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

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

42.若有語句:Char*line[5];,以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符

D.定義line是一個指向字符型函數(shù)的指針

43.C語言中()

A.不能使用do-while語句構成的循環(huán)

B.do-while語句構成的循環(huán)必須用break語句才能退出

C.do-while語句構成的循環(huán),當while語句中的表達式值為非零時結束循環(huán)

D.do-while語句構成的循環(huán),當while語句中的表達式值為零時結束循環(huán)

44.運行下面程序時,從鍵盤輸入字母H,則輸出結果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmoming!Bye_ye!

D.Hello!Bye_ye!

45.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

46.C語言庫函數(shù)fgets(str,n,fp)的功能是______。

A.從中指向的文件中讀取長度n的字符串存入str指向的內存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存

C.從fp指向的文件中讀取n個字符串存入str指向的內存

D.從str讀取至多n個字符到文件fp

47.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

48.數(shù)據(jù)的存儲結構是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示

49.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.++b;C.a=a++5;D.a=double(b);

50.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

51.在下列#include命令中,正確的一條是()

A.#include[string.h]

B.#include{math.h}

C.#include(stdio.h)

D.#include<stdio.h>

52.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

53.在C語言中,函數(shù)調用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

54.待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。

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

55.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

56.下列關于棧的描述中錯誤的是()

A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

57.以下程序的輸出結果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

58.設x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個語句后t的值為

A.2B.1C.0D.不定值

59.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

60.以下程序的輸出結果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

四、選擇題(20題)61.

62.

設變量均已正確定義,

值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。

A.

B.

C.

D.

63.

64.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debu9

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

65.

66.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

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

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

}

程序運行后的輸入結果是()。

A.3

B.6

C.8

D.12

67.有以下程序:

程序的運行結果是()。

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

68.有以下程序

69.若有定義和語句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

則輸出結果是()。A.A.20,10B.20,20C.10,20D.10,10

70.有以下程序:

程序運行后的輸出結果是()。

A.02B.13C.57D.12

71.有以下程序:

程序運行后的輸出結果是()。

72.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

程序運行后的輸出結果是()。

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

73.對于一個正常運行的C程序,以下敘述中正確的是()。

A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結束

B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結束.

C.程序的執(zhí)行總是從main函數(shù)開始、

D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結束

74.

75.設有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

76.

77.下列選項中,能正確定義數(shù)組的語句是()。

A.

B.

C.

D.

78.

79.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

80.設有如下說明

typedefstruct

{intnumber;charclass;doublescore;}student;

則以下選項中,能正確定義結構體數(shù)組并賦初值的語句是()。

A.studenttt[2]={{189,’A’,62},{190,’B’,75}};

B.studenttt[2]={189,’"A",62,190,"B",75};

C.structtt[2]={{189,’A’},{190,’B’}};

D.structtt[2]={{189,"A",62.5},{190,"B",75.0}};

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

請修改程序中的錯誤,使它能得到正確結果。

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

試題程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\nknBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)其功能是使字符串的前導*號不得多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做處理。字符串中間和尾部的*號不刪除。例如,字符串中的內容為“*******A*BC*DEF*G****”,若n的值為4,刪除后,字符串中的內容應當是“****A*BC*DEF*G****”;若n的值為8,則字符串中的內容仍為“*******A*BC*DEF*G****”。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

溫馨提示

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

最新文檔

評論

0/150

提交評論