2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁
2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁
2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁
2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁
2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年廣東省汕頭市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號(hào):________

一、單選題(20題)1.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

2.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。

A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

3.有一個(gè)有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)折半查找值為82的結(jié)點(diǎn)時(shí),()次比較后查找成功。

A.11B.5C.4D.8

4.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項(xiàng)中正確的輸入語句是A.scanf("%2d%2d%2d",&i,&j,&k);

B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

5.某完全二叉樹有256個(gè)節(jié)點(diǎn),則該二叉樹的深度為()。

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

6.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的運(yùn)行結(jié)果是()。

A.20,30,B.30,17,C.15,30,D.20,15,

7.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。

A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;

8.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

9.程序設(shè)計(jì)的任務(wù)包括()。

A.編寫程序代碼并上機(jī)調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項(xiàng)均正確

10.以下說法正確的是()。

A.C程序總是從第一個(gè)函數(shù)開始執(zhí)行

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

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

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

11.下面說法正確的是()。A.A.一個(gè)C程序可以有多個(gè)主函數(shù)

B.一個(gè)C語言的函數(shù)中只允許有一對花括號(hào)

C.C程序的書寫格式是自由的,一個(gè)語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對C程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯(cuò)誤

12.廣義表((a))的表頭是(a),表尾是()。A.aB.()C.(a)D.((a))

13.設(shè)初始輸入序列為1,2,3,4,5,利用一個(gè)棧產(chǎn)生輸出序列,下列()序列是不可能通過棧產(chǎn)生的。

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

14.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

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

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

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

A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.#defineMAX是合法的宏定義命令行

D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的

17.若有定義:Typedefint*T[10];T*a;則以下與上述定義中a類型完全相同的是()。

A.int*a[10];

B.int**a[10];

C.int*(*a)[10];

D.int*a[][10];

18.給出發(fā)下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為______。

A.數(shù)組x和數(shù)組y等價(jià)B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度

19.下面哪個(gè)不是用來解決哈希表沖突的開放地址法()

A.線性探測法B.線性補(bǔ)償探測法C.拉鏈探測法D.隨機(jī)探測法

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

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

A.6,1B.2,1C.6,0D.2,0

二、2.填空題(20題)21.為建立如下圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)兩個(gè)域,p是指向結(jié)點(diǎn)的指針域,data用以存放整型數(shù)),請將定義補(bǔ)充完整。

pdata

a

structlist

{【】;intdata;}a;

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

inti=9;

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

23.如果兩個(gè)8位二進(jìn)制數(shù)00010101與01000111相加,其結(jié)果用十進(jìn)制表示為【】。

24.軟件測試中路徑覆蓋測試是整個(gè)測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。

25.有以下程序:

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

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

26.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

27.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

28.以下函數(shù)creat用來建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)是插在鏈表頭的

末尾。單向鏈表的頭指針作為函數(shù)值返回。請?zhí)羁铡?/p>

#include<stdio.h>

structlist

{chardata;

structlist*next;

};

structlist*creat;

{structlist*h,*p,*q;

charch;

h=(【】)malloc(sizeof(structlist));

p=q=h;

ch=getchar();

while(ch!='?')

{p=(【】)mallco(sizeof(structlist));

p->data=ch;

q->next=p;

q=p;

ch=getchar();

}

p->next='\0';

【】;

}

29.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:

請?zhí)羁?/p>

#defineN4

voidrotate(inta[][])

{inti,j,t;

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

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

{t=a[i][j];【】;a[j][i]=t;}

}

30.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

31.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號(hào)之間加上一個(gè)星號(hào),它的作用是跳過對應(yīng)的輸入數(shù)據(jù);當(dāng)輸入以下數(shù)據(jù)時(shí),100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。

main()

{inta,b,C;

scanf("%d%*d%d%d",&a,&b,&c);

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

32.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

33.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

34.設(shè)有以下定義:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下圖所示鏈表結(jié)構(gòu),

請寫出刪除點(diǎn)y的賦值語句【】。

35.下列循環(huán)的循環(huán)次數(shù)是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

37.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

38.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

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

main()

{charCl,c2;

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

printf("\n");

}

40.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

三、1.選擇題(20題)41.源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解程序,源程序的內(nèi)部文檔通常包括選擇合適的標(biāo)識(shí)符、注釋和

A.程序的視覺組織B.盡量不用或少用GOTO語句C.檢查輸入數(shù)據(jù)的有效性D.設(shè)計(jì)良好的輸出報(bào)表

42.已知形成鏈表的存儲(chǔ)結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。structlink{chardata;______,}node;

A.structlinknext

B.link*next

C.stuctnextlink

D.structlink*next

43.設(shè)有定義:charp[]={‘1’,‘2’,‘3’,},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是______。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

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

A.在C程序中,main()函數(shù)必須位于程序的最前面

B.在C程序中,一條語句只能寫一行而不能寫多行

C.C程序是以行為基本單位的

D.C語言本身沒有輸入輸出語句

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

A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大

B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

46.C語言源程序的最小單位是()。

A.程序行B.語句C.函數(shù)D.字符

47.以下數(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};

48.下列程序的輸出結(jié)果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

49.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)

50.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

51.有以下程序:#include<stdio.h>prt(int*m,intn)inti;for(i=0;i<n;i++)m[i]++;main()}inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

52.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。

A.對文件操作必須先關(guān)閉文件

B.對文件操作必須先打開文件

C.對文件操作順序無要求

D.對文件操作前必須先測文件是否存在,然后再打開文件

53.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

54.若指針ps已正確定義,要使ps指向能夠存儲(chǔ)8個(gè)字符的動(dòng)態(tài)存儲(chǔ)單元,以下不正確的語句是()

A.ps=(char*)malloc(8);

B.ps=(char*)malloc(sizeof(char)*8);

C.ps=(char*)calloc(8,sizeof(char))

D.ps=8*(char*)malloc(sizeof(char))

55.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()

A.每個(gè)元素都有一個(gè)直接前件和直接后件

B.線性表中至少要有一個(gè)元素

C.表中諸元素的排列順序必須是由小到大或由大到小

D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件

56.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}

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

57.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

58.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是()A._mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.intk_2_001

59.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i]];i++;}printf("%d\n",k);}執(zhí)行后輸出的結(jié)果足

A.58B.56C.45D.24

60.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

四、選擇題(20題)61.

有以下程序:

main

{intx=0,y=5,z=3;

while(z-->0&&++x<5)y=y-l;

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

}

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

A.3,2,0B.3。2.1C.4,3,-1D.5,2.-5

62.有以下程序:

A.xyyxB.yyyyC.yyxxD.yxyx

63.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

64.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

65.

66.概要設(shè)計(jì)是軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì),以下選項(xiàng)中不屬于概要設(shè)計(jì)的是()。A.A.把軟件劃分成模塊B.確定模塊之間的調(diào)用關(guān)系C.確定各個(gè)模塊的功能D.設(shè)計(jì)每個(gè)模塊的偽代碼

67.

68.

69.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為:good。則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

70.有定義如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&data;則對于結(jié)構(gòu)變量data的成員a的正確引用時(shí)()

A)(*).data.aB)(*p).a

C)p->data.aD)p.data.a

71.有以下函數(shù)該函數(shù)的功能是()。

A.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)

B.比較兩個(gè)字符串的大小

C.計(jì)算s所指字符串的長度

D.將s所指字符串復(fù)制到字符串t中

72.

73.下列關(guān)于棧的描述錯(cuò)誤的是()。

A.棧按“先進(jìn)后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲(chǔ)

74.

75.在下列選項(xiàng)中,哪個(gè)不是一個(gè)算法一般應(yīng)該具有的基本特征()。

A.無窮性B.可行性C.確定性D.有窮性

76.

77.設(shè)有定義:intX=2;,以下表達(dá)式中,值不為6的是()。

A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1

78.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

79.下列描述中正確的是

A.軟件指的就是程序B.軟件開發(fā)不受任何計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將字符串str中的所有字符復(fù)制到字符串b中,要求在每復(fù)制3個(gè)字符之后插入1個(gè)空格。例如,在調(diào)用proc()函數(shù)之前給字符

串str輸入abcdefghijk,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為abcdefghijk。

請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和。號(hào)。請編寫函數(shù)fun,其功能是:將字符串尾部的。號(hào)全部刪除,前面和中間的*號(hào)不動(dòng)。

參考答案

1.C本題考查for循環(huán)及if語句。當(dāng)執(zhí)行到第一個(gè)滿足(i*i>一20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),break跳出循環(huán),執(zhí)行下列的printf語句。

2.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

3.C

4.C

5.C

6.D結(jié)構(gòu)體指針變量p指向a數(shù)組的第1個(gè)元素,所以“p->x”為20。執(zhí)行“p=p->y”后,p指向數(shù)組a的第2個(gè)元素,所以輸出15。故本題答案為D選項(xiàng)。

7.C選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對表達(dá)式b=c計(jì)算;對于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。

8.A解析:n--是先使用后自減,--n是先自減后使用。n=4時(shí),執(zhí)行n--后,n變?yōu)?,執(zhí)行--n后,n變?yōu)?,所以,第一次輸出時(shí),n為2;同上過程,第二次輸出時(shí),n為0。

9.D程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計(jì)的任務(wù)包括選項(xiàng)A)、B)、c)等方面。

10.C解析:C程序是由main函數(shù)開始運(yùn)行,通過main函數(shù)調(diào)用其他函數(shù),所以,選項(xiàng)A)錯(cuò)誤;在C程序中,函數(shù)不能嵌套定義,即不能在一個(gè)函數(shù)中定義另一個(gè)函數(shù),選項(xiàng)B)錯(cuò);C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)不必放在最前面,故選項(xiàng)D)錯(cuò)。

11.C解析:本題涉及C語言基本的3個(gè)知識(shí)點(diǎn):①C語言規(guī)定一個(gè)程序只允許有一個(gè)主函數(shù),一個(gè)函數(shù)內(nèi)可以允許有多個(gè)花括號(hào);②C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會(huì)發(fā)現(xiàn)注釋中的錯(cuò)誤。

12.B

13.B

14.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復(fù)制到a[l]中,故輸出a為“are&you”。

15.D解析:+=、-=、=等符號(hào)優(yōu)先級相同結(jié)合性是由右至左,所以選D。

16.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結(jié)束,以區(qū)別于C語句、定義和說明語句。選項(xiàng)C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預(yù)處理是在編譯程序?qū)源程序進(jìn)行編譯前執(zhí)行的.當(dāng)然也在程序執(zhí)行之前執(zhí)行,因此選項(xiàng)D是錯(cuò)誤的。

17.B由題意可知,T是一個(gè)數(shù)組指針,即int*[],所以使用T*a定義,可知a屬于int**[\n]類型。本題答案為B選項(xiàng)。

18.C

19.C

20.B解析:算術(shù)運(yùn)行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運(yùn)算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運(yùn)算符“&&”兩邊的值都是非零時(shí),邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。

21.structlist*nextstructlist*next解析:定義的指針類型變量next也應(yīng)該是結(jié)構(gòu)體類型的。

22.1111解析:本題考核的知識(shí)點(diǎn)是printf()函數(shù)的輸出格式。本題中定義了一個(gè)整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。

23.92

24.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。

25.運(yùn)行后報(bào)錯(cuò)運(yùn)行后報(bào)錯(cuò)解析:指針q沒有指向確定的存儲(chǔ)單元,故不能賦值。

26.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個(gè)成員分別占有其自己的內(nèi)存單元。int占2個(gè)字節(jié),float占4個(gè)字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

27.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

28.strcurlist*strucrlist*return(h)

29.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應(yīng)填j<=i,第二處應(yīng)填a[i][j]=a[j][i]。

30.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

31.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳過對應(yīng)的輸入數(shù)據(jù),所以第二個(gè)輸入數(shù)200被跳過去了,只有100,300,400三個(gè)數(shù)被從鍵盤輸入了進(jìn)來。

32.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。

33.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

34.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要?jiǎng)h除結(jié)點(diǎn)y,只需讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此把結(jié)點(diǎn)z的地址賦給x的指針域就可以了,即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)z。而結(jié)點(diǎn)z的地址保存在結(jié)點(diǎn)y的指針域中,因此只需把結(jié)點(diǎn)y的指針域賦值給結(jié)點(diǎn)x的指針域即可。

35.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會(huì)使k為0,所以不能進(jìn)入循環(huán)。

36.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

37.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

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

39.9.18274e+0089.18274e+008解析:本題考查的循環(huán)條件是c1<c2,當(dāng)c1>=c2時(shí),退出循環(huán)。所以,第一次循環(huán)輸出09,第二次循環(huán)輸出18,如此循環(huán)直到輸出45,之后c1=5,c2=4,不滿足循環(huán)條件,退出循環(huán)。

40.存儲(chǔ)結(jié)構(gòu)

41.A解析:源程序文檔化主要包括三個(gè)方面的內(nèi)容:標(biāo)識(shí)符的命名、程序中添加注釋以及程序的視覺組織。

42.D解析:在單向鏈表中,由于每個(gè)結(jié)點(diǎn)需要存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,且下—個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型與前—個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型完全相同,故應(yīng)為structlink*next。

43.A解析:本題考查的重點(diǎn)是sizeof()的運(yùn)用。sizeof用于返回其操作數(shù)(變量、類型)相對應(yīng)數(shù)據(jù)類型的字節(jié)數(shù)。因此,選項(xiàng)A是錯(cuò)誤的,因?yàn)閜是一個(gè)地址,它既不是一個(gè)數(shù)據(jù)類型,也不是數(shù)據(jù)變量。

44.D解析:本題涉及C語言最基本的4個(gè)知識(shí)點(diǎn):①C語言程序是由函數(shù)構(gòu)成的,C程序的基本單位是函數(shù);②每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main()函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上;④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實(shí)現(xiàn)輸入和輸出操作。

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

46.C解析:C語言源程序的最小單位是函數(shù),所以本題選C。

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

48.B解析:在C語言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組p的下標(biāo)范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句;接著進(jìn)行第2次循環(huán),此時(shí)i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后j的值為j=13+15+17=45。

49.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯(cuò)誤的。

50.B解析:該題目測試考生對宏替換的理解。這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對2*M+1進(jìn)行宏替換時(shí),要將宏名M原封不動(dòng)地代進(jìn)去,得到NUM的形式為2*N+1+1(千萬不要隨意給N+1加上小括號(hào),使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進(jìn)去,得到NUM的值為6。

51.B解析:prt(a,5);用數(shù)組名a作函數(shù)實(shí)參,不是把a(bǔ)數(shù)組的值傳遞給形參m,而是將數(shù)組a的首地址傳遞給指針變量m,使指針變量m指向數(shù)組a的首地址,這樣他們就占用同一段內(nèi)存單元。當(dāng)改變了指針變量所指向的存儲(chǔ)單元中的內(nèi)容,也就改變了數(shù)組a中的元素。函數(shù)pit的作用是將指針變量m所指向的存儲(chǔ)單元中的各元素值加1,也就是數(shù)組a中各元素的值加l,所以輸出結(jié)果為:2,3,4,5,6,

52.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時(shí),同時(shí)會(huì)執(zhí)行文件的檢查文件是否存在,不存在將會(huì)返回空的文件指針,如果對文件以寫的方式打開時(shí),文件不存在,將會(huì)自動(dòng)創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。

53.D解析:考查printf函數(shù)的相關(guān)知識(shí)。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開,因此選項(xiàng)A)和C)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。所以選項(xiàng)D)為正確答案。

54.D

55.D解析:線性表可以為空表,排除選項(xiàng)B。第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。

56.A

57.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。

58.A解析:標(biāo)識(shí)符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標(biāo)識(shí)符不能與C語言中的32個(gè)關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符)。選項(xiàng)B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項(xiàng)B不正確;選項(xiàng)C中3COM不是由字母或下劃線開頭,故選項(xiàng)C不正確;選項(xiàng)D中int為C語言中的關(guān)鍵字,故選項(xiàng)D不正確;選項(xiàng)A中全部為合法的標(biāo)識(shí)符,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

59.D解析:本題考核的知識(shí)點(diǎn)是while循環(huán)語句的程序分析。在主函數(shù)中首先定義了一個(gè)數(shù)組p并初始化,在while后面括號(hào)里的表達(dá)式中,i初值為0,當(dāng)p[i]為偶數(shù)時(shí),p[i]%2等于0,根據(jù)“&&”運(yùn)算符的規(guī)則,其表達(dá)式為假退出循環(huán),顯然當(dāng)i=2時(shí),p[i]=14為偶數(shù),此時(shí)while后面括號(hào)里的毒達(dá)式的值為假,退出循環(huán),此時(shí)K=p[0]+p[1],即k=11+13。所以最后輸出k為24。所以,D選項(xiàng)為所選。

60.D通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

軟件生命周期的主要活動(dòng)階段為:

①可行性研究和計(jì)劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實(shí)施計(jì)劃。

②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。

③軟件設(shè)計(jì)。系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

④軟件實(shí)現(xiàn)。把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計(jì)劃。

⑤軟件測試。在設(shè)計(jì)測試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個(gè)組成部分。編寫測試分析報(bào)告。

⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。

61.B

\nwhile語句執(zhí)行如下:

\n當(dāng)z=3,x=0時(shí),表達(dá)式Z-->0&&++x<5為真,z的值變?yōu)?,x的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;

\n當(dāng)z=2,x=1時(shí),表達(dá)式z-->O&&++x<5為真,z的值變?yōu)?,x的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;

\n當(dāng)z=1,x=2時(shí),表達(dá)式z-->0&&++x<5為真,z的值變?yōu)?,X的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;

\n當(dāng)z=0,x=3時(shí),表達(dá)式z-->0為假,表達(dá)式(Z-->O&&++x<5)為假,z的值為-1,不進(jìn)行++x<5的判斷,不執(zhí)行語句y=y-1;;

\n所以x的值為3,y的值為2,z的值為-1。答案為B。

\n

62.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=1,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以選項(xiàng)B正確。

63.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下

溫馨提示

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

評論

0/150

提交評論