2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年福建省南平市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設有6個結點的無向圖,該圖至少應有()條邊才能確保是一個連通圖。

A.5B.6C.7D.8

2.對于長度為n的線性表,在最壞情況下,下列各種排序法所對應的比較次數(shù)中正確的是(

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

3.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

4.二叉樹中第5層上的結點個數(shù)最多為________

A.8B.15C.16D.32

5.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

6.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

7.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

8.在m叉樹中,都為0的結點稱為()。

A.兄弟B.樹葉C.樹根D.分支結點

9.以下敘述中錯誤的是()。

A.向量屬于線性結構B.二叉鏈表是二叉樹的存儲結構C.棧和隊列是線性表D.循環(huán)鏈表是循環(huán)隊列的鏈式存儲結構

10.以下針對相應語句的注釋中,說法錯誤的是()。

A.int*pt[2];/*pt是一個指針數(shù)組名*/

B.int(*pt)[2];/*pt是一維數(shù)組名*/

C.int(*pt)();/*pt是指向函數(shù)的指針*/

D.int*pt();/*pt是一個函數(shù)名*/

11.查找效率最高的二叉排序樹是()。

A.所有結點的左子樹都為空的二叉排序樹

B.所有結點的右子樹都為空的二叉排序樹

C.平衡二叉排序樹

D.沒有左子樹的二叉排序樹

12.以下是根據(jù)文件大小分配存儲空間的一個算法偽代碼,請問其空間復雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

13.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

14.下面程序的輸出是()。A.17B.18C.23D.24

15.在一個源文件中定義的全局變量的作用域為:()

A.本程序的全部范圍B.本函數(shù)的全部范圍C.從定義該變量的位置開始到本文件結束D.以上說法都不正確

16.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

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

18.以下選項中,合法的一組C語言數(shù)值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

19.

20.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

二、2.填空題(20題)21.在面向對象方法中,信息隱蔽是通過對象的______性來實現(xiàn)的。

22.函數(shù)fun的返回值是【】。

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')num++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

23.下面程序的功能是:計算1~10之間奇數(shù)和及偶數(shù)之和。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=O;

for(i=O;i<=10;i+=2)

{a+=i;

【】;

c+=b;

}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);

}

24.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

25.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

26.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。

27.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是[]。

28.在面向對象的程序設計中,類描述的是具有相似性質的一組【】。

29.下列程序的運行結果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

30.以下程序運行后的輸出結果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

31.下列程序的輸出結果是______。

main()

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

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

32.若x、y和z均是int型變量,則執(zhí)行下面表達式后的x值為【】。

x=(y=4)+(z=3)

33.下面定義的結構體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結構體的指針。請將定義補充完整。

structstu

{intx;

【】

【】next;}

34.下列程序的輸出結果是【】。

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

35.結構化分析方法是面向______進行分析的方法。

36.數(shù)據(jù)元素之間______的整體稱為邏輯結構。

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

main()

{inta=0;

a+-(a=8);

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

}

38.設有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。

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

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

}

40.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%\n",p+9);

}

三、1.選擇題(20題)41.以下敘述中正確的是()。

A.構成C程序的基本單位是函數(shù)

B.可以在一個函數(shù)中定義另一個函數(shù)

C.main函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用函數(shù)一定要在調(diào)用之前進行定義

42.以下說法中正確的是______。

A.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行

B.C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

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

D.C語言程序中的main()函數(shù)必須放在程序的開始部分

43.下面程序的輸出結果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}

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

44.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.scanf("%d",a,b,c);

B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

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

A.一個算法的空間復雜度大,則其時間復雜度也必定大

B.一個算法的空間復雜度大,則其時間復雜度必定小

C.一個算法的時間復雜度大,則其空間復雜度必定小

D.上述三種說法都不對

46.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

47.下列4個程序中,完全正確的是()。

A.#include<stdio.h>main();(/*programming*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/programming*/*/printf("programming!\n");)

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

48.串的長度是()。

A.串中不同字符的個數(shù)B.串中不同字母的個數(shù)C.串中所含字符的個數(shù)且字符個數(shù)大于0D.串中所含字符的個數(shù)

49.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。

A.順序存取的存儲結構、順序存取的存儲結構

B.隨機存取的存儲結構、順序存取的存儲結構

C.隨機存取的存儲結構、隨機存取的存儲結構

D.任意存取的存儲結構、任意存取的存儲結構

50.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準則是模塊的

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機制和控制方法

51.以下數(shù)組定義中錯誤的是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};

52.若有以下程序#include<stdio.h>voidf(intn);main()(voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在土函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正碗調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:提示對f函數(shù)重復況明

D.函數(shù)f無返回值,所以可用void將其類型定義為無值型

53.以下選項中可以作為C語言合法常旱的是

A.-80B.-80C.-8e1.0D.-80.0e

54.下列選項中不屬于結構化程序設計方法的是()。

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

55.請讀程序:#include<stdio.h>#defineSUB(X,Y)(X)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}上面程序的輸出結果是()。

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

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

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

57.已知x=3、y=2則表達式x*=y(tǒng)+8的值為()

A.3B.2C.30D.10

58.設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量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(){chara[][9]={"china","Japan","USA","France"};printf("\'%s\'\n",a[2]);}則程序運行后的輸出結果是()

A.'Japan'B.'USA'C.USAD.'inaJapanUSAFrance'

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

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數(shù)體的定界符

C.構成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

四、選擇題(20題)61.負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

62.

63.有三個關系R、S和T如下:

則由關系R和s得到關系T的操作是()。

A.自然連接B.差C.交D.并

64.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

65.若有定義語句:“intkl一10,k2=20;”,執(zhí)行表達式(kl=kl>k2)(k2=k2>

k1)后,kl和k2的值分別為()。

A.0和1B.0和20C.10和1D.10和20

66.以下能正確定義字符串的語句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

67.下列敘述中錯誤的是()。

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

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

C.在C語言中,外部變量的隱含類型是自動存儲類別

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

68.

69.

70.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

71.有下列程序

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!";

voidfunc1(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func2(i);}

}

voidfunc2(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func1(i);}

}

main()

{inti=0;func1(i);

printf("\n");

}

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

A.helloB.hel

C.hloD.hlm

72.以下程序的運行結果是

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A.10B.15

C.100D.150

73.

74.

以下程序的輸出結果是()。

main

{inta=1,b;

for(b=1,b<=10;b++)

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a=3;}

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

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

75.以下程序的運行結果是()。

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

76.

77.有以下程序若想通過鍵盤輸入,使得al的值為12,a2的值為34,el的值為字符a,c2的值為字符b,程序輸出結果是:12,a,34,b則正確的輸入格式是()。

78.

79.有以下程序

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*z++);}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);

}

程序的輸出結果是

80.一個棧的初始狀態(tài)為空?,F(xiàn)將元素l、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,惻元素出棧的順序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}

六、程序設計題(1題)82.請編寫一個函數(shù),用來刪除字符串中的所有空格。例如,輸入abcdefgh,則輸出為abcdefgh。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A:在一個無向圖G中,若從頂點Vi到頂點Vj有路徑相連,則稱Vi和Vj是連通的。連通圖是指任意兩個結點之間都有一個路徑相連。6個節(jié)點的無向圖,至少要5個邊才能確保是任意兩個節(jié)點之間都有路徑相連。下圖是一種可能的連接方式:故本題選A。

2.D在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n一1)/2?!局R拓展】所謂冒泡排序,就是將相鄰的兩個數(shù)據(jù)比較,如前面的數(shù)據(jù)大于后面的,則位置互換。這樣不停地比較、互換,其實就是把大的數(shù)往后排,小的數(shù)往前排(就像冒泡一樣冒出來了)。

3.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

4.C

5.A本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關系表達式!a=1為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項8中,關系表達式a<b為真,表達式(a<b)&&!C為假,而表達式(a<b)&&!||1為真,所以整個表達式的值為真。選項C中,a&&b的結果為真。在選項D中,a||(b+b)&&(C-a)的結果為真。

6.A

7.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。

8.B

9.D循環(huán)鏈表是線性表的一種鏈式存儲結構,循環(huán)隊列是隊列的一種順序存儲結構。因此D選項敘述錯誤。本題答案為D選項。

10.B選項A定義了一個數(shù)組pt,它包含兩個整型指針元素,所以pt是一個指針數(shù)組名,正確;選項B定義了一個數(shù)組指針Pt,pt指向一個數(shù)組,該數(shù)組包含兩個整型元素,錯誤;選項C定義了一個函數(shù),pt是函數(shù)指針,指向的函數(shù)沒有參數(shù),返回類型為整型,正確;選項D定義了一個函數(shù),函數(shù)名為pt,函數(shù)返回整型指針類型,正確。故本題答案為B選項。

11.C對于結點個數(shù)相同的二叉排序樹,平衡二叉排序樹的深度最小。而二叉排序樹的查找效率取決于二叉排序樹的深度。

12.C

13.A解析:數(shù)據(jù)流圖包括四個方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體),不包括選項中的控制流。

14.B

15.C

16.A解析:while循環(huán)的執(zhí)行過程如下:(1)計算while后面圓括號中表達式的值.當值為非0時,執(zhí)行步驟(2);當值為0時,執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項A)中,表達式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán).所以選項A)為正確答案。

17.D解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算工具以及程序員的水平無關。

選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤。因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。

選項C錯誤,因為根據(jù)一個算法所編制出的程序程序中,其指令條數(shù)往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。

所以,本題的正確答案為D。

18.BC語言中,八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項A錯誤。浮點數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項C錯誤。選項D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。

19.D

20.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當于乘以2的n次冪,右移n位相當于除以2的n次冪。

21.封裝封裝

22.字符串a(chǎn)和b的長度之和字符串a(chǎn)和b的長度之和解析:本題首先通過第一個while循環(huán)計算字符串a(chǎn)的長度,再通過第二個循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長度。

23.b=i+1

24.x+=1;

25.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現(xiàn)。

26.1212解析:x=(表達式1,表達式2,…)的形式,結果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。

27.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。

28.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

29.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1-24。

30.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。

31.本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

32.77解析:x=(y=4)+(z=3)等價于y=4,z=3,x=y+z=4+3=7。

33.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結構體的指針,因此變量next應該是結構體stu的指針型變量。

34.123ok!123ok!解析:本題主要考查了printf函數(shù)用在了宏替換中。宏替換不是函數(shù)調(diào)用,只是一種簡單的字符替代。所以本題中PRINT(a+i)展開為:printf(“%d\\t”,(int)(a+i)),當i=0時,輸出1;當i=1時,輸出2;當i=2時;輸出3;for循環(huán)結束后輸出ok!。

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

36.邏輯關系邏輯關系

37.1616解析:在程序中首先將8賦值給變量a,然后在進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應該填16。

38.100100解析:本題考查帶參數(shù)的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

39.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。

40.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

41.A解析:C程序是由函數(shù)構成的,A)正確;main函數(shù)可以放在其他函數(shù)之前,也可以放在其他函數(shù)之后,C)錯誤;函數(shù)可以嵌套調(diào)用,但不能嵌套定義,B)錯誤;被調(diào)用函數(shù)可以在調(diào)用之后定義,但需要在調(diào)用前聲明,D)錯誤。

42.C解析:要調(diào)用的函數(shù)必須先定義(不能嵌套),但是可以互相嵌套調(diào)用。

43.A解析:在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。

44.C

\n題中整型指針變量P存放的是變量C的地址。所以本題答案為C。

\n

45.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。

46.A解析:條件表達式“a?b:c”的含義是:當a為真時,其值等于表達式b的值;當a為假時,其值等于表達式c的值。

表達式運算過程:第1個表達式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達式:w=2<y=4為真,所以返回m的值,即m=2。

47.B

48.D解析:串的長度是指串中字符的個數(shù),且其字符個數(shù)可以為0。

49.B【命題目的】考查有關線性表存儲結構的基本知識。

【解題要點】順序存儲結構中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結構,要對某結點進行存取,都得從鏈的頭指針指向的結點開始,這是一種順序存取的存儲結構。

【考點鏈接】順序存儲結構和鏈式存儲結構的定義和性質,兩種存儲結構的操作方法。

50.C解析:模塊的獨立程序是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性這兩個定性的度量標準。

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

52.C解析:本題考核的知識點是函數(shù)說明的方法。若一個函數(shù)定義在主調(diào)函數(shù)之后,其返回值不是int或char型,則必須對之進行函數(shù)說明??稍诤瘮?shù)外說明也可以在函數(shù)內(nèi)說明,在函數(shù)外說明,在其后的所有函數(shù)均可調(diào)用該函數(shù),若在函數(shù)內(nèi)說明,則只能在本函數(shù)內(nèi)調(diào)用該函數(shù)。函數(shù)只能定義一次,但函數(shù)說明可以出現(xiàn)多次,因此選項C是錯誤的。所以,4個選項中C為所選。

53.A解析:本題考查的是C語言中整型常量與實型常量的部分表示方法。選項A用的是整型常量的十進制表示法,是正確的。以0或-0開頭的整數(shù)是八進制數(shù)表示法,八進制數(shù)的原則是“逢八進一”它只可能包含0~7這8個符號,故選項B是錯誤的。選項C和D椰是實型常量的指數(shù)表示法,其規(guī)則是用字母。(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項C和D都不正確。所以,4個選項中選項A符合題意。

54.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向對象程序設計的一個優(yōu)點。

55.A解析:本題的考查點是宏定義。a++的形式應當先使用a值,然后a才進行自加1運算,所以程序在進行SUB()乘法運算的時候,仍取a,b的原值,最后輸出的結果是12。

56.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:

switch(表達式)

{

case常量表達式1:語句1;

case常量表達式2:語句2;

case常量表達式n:語句n;

default:語句n+1;

}

其語義是:計算表達式的值。并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。

57.C

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

59.B

60.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數(shù)體是從花括號{開始,到花括號}結束。但沒有規(guī)定花括號{和}只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號;結束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。

61.C數(shù)據(jù)定義語言:負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言:負責數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語言:負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能。因此本題答案為C)。

62.A

63.B關系T中的元組是R關系中有而S關系中沒有的元組的集合,所以進行的是差的運算。

64.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);

65.B

66.BC語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數(shù)組來存放,故c選項和D選項不屬于字符串,A選項定義的是一個字符變量s拄,卻用來存放字符串,顯然也不正確,因此B選項正確。

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

68.B

69.A

70.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。

71.C根據(jù)變量作用域與其定義語句在程序中出現(xiàn)位置之間的關系,可把變量分為局部變量和全局變量兩種。其中,在函數(shù)外部定義的變量叫做全局變量,又

溫馨提示

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

最新文檔

評論

0/150

提交評論