2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第1頁
2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第2頁
2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第3頁
2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第4頁
2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩93頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.快速排序在已經(jīng)有序的情況下效率最差,復(fù)雜度為()

A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)

2.假設(shè)以數(shù)組A[m]存放循環(huán)隊(duì)列的元素,其頭尾指針分別為front和rear,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)為()。

A.(rear-front+m)%m

B.rear-front+1

C.(front-rear+m)%m

D.(rear-front)%m

3.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

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

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

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

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

D.分號(hào)是C語句之間的分隔符,不是語句的一部分

5.下面程序的輸出結(jié)果是

#include<stdio.h>

main()

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

p=a;

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

A.0B.1C.10D.9

6.若有代數(shù)式“”(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(nx+ex))

D.sqrt(fabs(pow(x,n)+exp(x)))

7.

8.若執(zhí)行以下程序時(shí)從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

9.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡(jiǎn)單插入排序與希爾排序C.簡(jiǎn)單選擇排序與堆排序D.快速排序與希爾排序

10.

11.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()

A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半

12.有下列程序:

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

A.30B.35C.40D.32

13.如有inta=11;則表達(dá)式(a/1)的值是()。

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

14.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī)、學(xué)分)則對(duì)主屬性部分依賴的是()。

A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#

15.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

16.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

17.設(shè)有定義:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函數(shù)fun返回值的類型是()。

A.T類型的結(jié)構(gòu)體B.指向結(jié)構(gòu)體類型的指針C.int類型的元素D.int類型的指針

18.以下哪種操作最適合先進(jìn)行排序處理()

A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

19.

20.p指向線性鏈表中某一結(jié)點(diǎn),則在線性鏈表的表尾插入結(jié)點(diǎn)s的語句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

二、2.填空題(20題)21.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+……+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{

doubles=0.0,fac=1.0;inti;

for(i=1,i<=n;i++)

{

fac=fac______;

s=s+fac;

}

returns;

}

22.為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請(qǐng)?zhí)羁铡?/p>

structlink{chardata;【】;}node;

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

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

24.下面程序的運(yùn)行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

25.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。

26.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個(gè)階段。

27.在關(guān)系模型中,二維表的行稱為______。

28.下面程序的功能是:輸出100以內(nèi)能被4整除且個(gè)位數(shù)為8的所有整數(shù),請(qǐng)?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

29.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

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

31.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

32.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

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

33.軟件是程序、數(shù)據(jù)和【】的集合。

34.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的【】。

35.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

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

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

37.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

38.以下程序的輸出結(jié)果是_______。

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

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

三、1.選擇題(20題)41.下面程序的輸出結(jié)果是______。main(){unsigneda=32768;printf("a=%d\n",a);}

A.a=32768B.a=32767C.a=-32767D.a=-1

42.設(shè)下面程序的可執(zhí)行文件名為prg.exe,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

43.下列程序的輸出結(jié)果是______。main(){intk=17;printf("%d,%0,%x\n",k,k,k);}

A.17,021,0x11B.17,17,17C.17,Ox11,021D.17,21,11

44.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

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

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

46.以下定義語句中正確的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

47.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10),*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.16B.10C.8D.6

48.t為int型變量,進(jìn)入下面的循環(huán)之前,t的值為0,則以下敘述中正確的是()while(t=1){…}

A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對(duì)

49.以下不合法的用戶標(biāo)識(shí)符是______。A.j2KEYB.DoubleC.4dD._8_

50.以下敘述中正確的是

A.預(yù)處理命令行必須位于源文件的開頭腦

B.在源文件的一行上可以多條預(yù)處理命令

C.宏名必須用大寫字母表示

D.宏替換不占用程序的運(yùn)行時(shí)間

51.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

52.可以在C語言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

53.以下程序的功能是進(jìn)行位運(yùn)算:#include<stdio.h>main()unsignedchara,b;a=7∧3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。

A.43B.73C.70D.40

54.以下程序輸出正確的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}

A.56B.25C.34D.程序錯(cuò)誤

55.在ASCII代碼表中每一個(gè)大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

56.有以下程序:#include<stdio.h>floatf1(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0));t=p1;p1=p2;p2=t;y2=p2(p1(2.0));prinff("%3.0f,%3.Of\n",y1,y2);}程序運(yùn)行后的輸出結(jié)果是()。

A.8,16B.8,8C.16,16D.4,8

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

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

58.

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

main

{inta;

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

}

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

59.在執(zhí)行以下程序時(shí),為了使輸出結(jié)果為t=4,給a和b輸入的值應(yīng)該滿足的條件是_______。main(){ints,t,a,b;scanf("%d%d",&a,&B);s=1;t=1;if(a>0)s=s+1;if(a>B)t=s+t;elseif(a==B)t=5;elset=2*s;printf("t=%d\n",t);}

A.a>bB.a<b<0C.0<a<bD.0>a>b

60.按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。

A.大寫字母B.連接符C.數(shù)字字符D.下劃線

四、選擇題(20題)61.(71)算法分析的目的是______。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性

B.分析算法的效率以求改進(jìn)

C.分析算法的易懂性和可靠性

D.找出算法中輸入和輸出之間的關(guān)系

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

A.一20B.一l2C.0D.10

63.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之間的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對(duì)象的集合

64.(38)索引屬于()

A.模式

B.內(nèi)模式

C.外模式

D.概念模式

65.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。該程序段實(shí)現(xiàn)的功能是()。

A.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.刪除尾結(jié)點(diǎn)

66.(72)n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有______。

A.n-1

B.n(n-1)

C.n

D.n+1

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

A.1B.16C.32D.0

68.用黑盒技術(shù)測(cè)試用例的方法之一為

A.因果圖B.邏輯覆蓋C.循環(huán)覆蓋D.基本路徑測(cè)試

69.

70.

71.

72.若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(n^x+e^x)

D.sqrt(fabs(pow(x,n)+exp(x)))

73.

A.包含l個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定

74.

75.

76.有以下程序段當(dāng)執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。

A.566.0B.55566.0C.7777.0D.566777.0

77.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

78.

79.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

80.下列字符串是標(biāo)識(shí)符的是()。

A.aaB.a-classC.intD.LINE1

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;’若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“123dabfl23dx”,t中內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是“l(fā)23dx”。當(dāng)字符串中的內(nèi)容為“l(fā)23dabfl23dx”,t中內(nèi)容為“aim”時(shí),則程序輸出未找到信息“Notfound!”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串“World”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“Word”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf(“Enterthestring:\n”); gets(str1); printf(“Enterthepositionofthestringdeleted:”); scanf(“%d”,&n);fun(str1,str2,n); printf(“Thenewstringis:%s\n”,str2);}

參考答案

1.D

2.A

3.A解析:在main函數(shù)中,p=&a[3]說明指針p指向a數(shù)組的第4個(gè)字符(即字符\'g\');fun1中的q=p意味著指針q也指向了a數(shù)組的第4個(gè)字符。執(zhí)行while語句,表達(dá)式(*q)++使\'g\'+1,使\'g\'變成了\'h\';表達(dá)式q++使q指向a[4]的起始地址。繼續(xù)執(zhí)行while語句,直到遇到\'\\0\'結(jié)束循環(huán),返回形參。最終得到的結(jié)果是從字符串'Program\'的第4個(gè)字符開始,每個(gè)字符加1。

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

5.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

6.AB選項(xiàng)中函數(shù)“pow(x,e)”錯(cuò)誤,應(yīng)該直接使用“exp(x)”函數(shù)。C選項(xiàng)中函數(shù)“abs(nx+ex)”錯(cuò)誤,應(yīng)該使用fabs返回浮點(diǎn)數(shù)的絕對(duì)值。D選項(xiàng)中“pow(x,n)”參數(shù)順序錯(cuò)誤。故本題答案為A選項(xiàng)。

7.B

8.B當(dāng)n為9時(shí),此時(shí)if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項(xiàng)。

9.A冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項(xiàng)。

10.D

11.B

12.A程序定義一個(gè)整型變量y和整型二維數(shù)組x,并對(duì)x賦初值。接著調(diào)用函數(shù)fun,在函數(shù)fun中,第1個(gè)for循環(huán)將數(shù)組a的第0列和第N-1列的所有元素累加到y(tǒng)中;第2個(gè)for循環(huán)將數(shù)組a的第0行的2、3和第N-1行的3、2累加到y(tǒng)中,再將y返回。所以fun函數(shù)的功能是將數(shù)組a的行列下標(biāo)為0、N-1的所有元素累加起來,即將1,2,3,4,2,3,3,2,4,3,2,1累加,輸出30。本題答案為A選項(xiàng)。

13.D

14.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號(hào))單獨(dú)就可以決定Cn(課程名),存在著對(duì)主鍵的部分依賴。本題答案為A選項(xiàng)。

15.A解析:本題考核的知識(shí)點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。

16.B

17.B由題意可知:使用typedef將類型“struct{intx,y;}*”重命名為“USER”,所以函數(shù)fun的返回類型為“struct{intx,y;}*”,即指向結(jié)構(gòu)體類型的指針。故本題答案為B選項(xiàng)。

18.C

19.B

20.A

21./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i??梢姍M線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。

22.structlink*next

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

24.x=11x=11解析:在對(duì)無符號(hào)數(shù)的右移是高位補(bǔ)0。

25.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

26.計(jì)劃計(jì)劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分為若干個(gè)階段。

27.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。

28.i<10i<10解析:分析程序:當(dāng)(i=0,1,2,…)時(shí),“j=i*10+8”語句的運(yùn)行結(jié)果是(8,18,28,…)個(gè)位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當(dāng)條件不能被4整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時(shí)輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個(gè)位數(shù)為8。

29.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

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

31.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測(cè)試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測(cè)模塊,調(diào)用其他模塊。

32.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對(duì)應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。

33.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

34.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等。

35.JD

36.2222解析:C語言里char類型占1個(gè)字節(jié),int類型占2個(gè)字節(jié),float類型占4個(gè)字節(jié),double類型占8個(gè)字節(jié),因此變量a在內(nèi)存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。

37.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

38.

39.21

40.軟件開發(fā)

41.C

42.B解析:argc=3,argv[1]='hello',argv[2]='good'。注意:printf格式串中是%c,因此輸出argv[1]和argv[2]的第一個(gè)字符,即'hg'。

43.D

44.B解析:若在函數(shù)中定義與全局變量名字相同的局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項(xiàng)A不正確;靜態(tài)變量一旦定義,將在整個(gè)程序的運(yùn)行期間都存布,故選項(xiàng)B正確;函數(shù)的形參只在函數(shù)調(diào)用的時(shí)候分配存儲(chǔ)空間,在退出函數(shù)時(shí)收回存儲(chǔ)空間,因此是局部的,故選項(xiàng)C不正確;沒有賦值的auto型變量的初值是隨機(jī)的,沒有賦值的static型變量的初值是0,故選項(xiàng)D不正確。所以,B選項(xiàng)為所選。

45.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

46.C解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開,顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

47.B解析:題目中首先定義了一個(gè)int型數(shù)組a并初始化了,然后定義了兩個(gè)指針變量p和q,并分別初始化p為指向數(shù)組元素a[3]、q指向p后面的第2個(gè)元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應(yīng)該選B。

48.B

49.C解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第—個(gè)字符必須是字母或下劃線。大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,用戶在定義標(biāo)識(shí)符時(shí)應(yīng)做到“見名知意”,且不允許使用關(guān)鍵字作標(biāo)識(shí)符。

50.D解析:選項(xiàng)A)預(yù)處理命令行通常位于源文件的開頭,但不是必須的;選項(xiàng)B)在源文件的一行上只能有一條預(yù)處理命令;選項(xiàng)C)宏名一般習(xí)慣用大寫字母表示,以與變量名相區(qū)別,但不是必須的;選項(xiàng)D)宏替換不占用程序的運(yùn)行時(shí)間,只占編譯時(shí)間。

51.D\r\n軟件是與計(jì)算機(jī)操作相關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計(jì)算機(jī)系統(tǒng)的限制;軟件是一個(gè)邏輯實(shí)體,不是物理實(shí)體,軟件具有抽象性。因此選項(xiàng)D正確。

52.B解析:C語言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。

53.A解析:“^”是按位異或運(yùn)算,運(yùn)算規(guī)則是:當(dāng)兩個(gè)二進(jìn)制數(shù)對(duì)應(yīng)位上的數(shù)相同時(shí),異或結(jié)果為0,否則結(jié)果為1。73相當(dāng)于0110011,所以a的值為4?!?”是按位與運(yùn)算符,其運(yùn)算規(guī)則是:當(dāng)二進(jìn)制數(shù)的所有對(duì)應(yīng)位上的數(shù)值都為1時(shí),結(jié)果才為1;“~”是按位取反?!?&3相當(dāng)于1011&0011=0011,所以b的值為3。

54.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)紿指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參p,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。

55.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應(yīng)的小寫字母的ASCII碼小32。

56.A解析:程序中定義了三個(gè)指向函數(shù)的指針變量p1、p2、t,函數(shù)返回值均是float類型。在main函數(shù)中,p1指向了函數(shù)f1,p2指向了函數(shù)f2。語句y1=p2(p1(2.0));先調(diào)用f1函數(shù),將其返回值4.000000傳遞給f2的形參n,并將其函數(shù)返回值8.000000賦值給y1。然后在main函數(shù)中交換p1,p2指針變量的指向,使p1指向了函數(shù)f2,p2指向了函數(shù)f1,執(zhí)行語句y2=p2(p1(2.0));先調(diào)用函數(shù)f2,得到返回值4.000000,將其傳遞給f1函數(shù)的形參n,并將返回值16.000000賦值給y2。在輸出y1,y2時(shí),各浮點(diǎn)數(shù)占3列,小數(shù)位數(shù)為0,即輸出了:8,16。

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

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

59.C解析:要使輸出結(jié)果為t=4,必須要執(zhí)行elset=2*s;和if(a>b)t=s+t;語句。如果執(zhí)行if(a>b)t=s+t;語句,則條件為a>b,要求s=3,在該語句前面的語句中沒有條件可以滿足s=3;如果孰行elset=2*s;語句,則條件為a<b,要求s=2,需要執(zhí)行if(a>0)s=s+1;語句,所以應(yīng)滿足條件0<a<b。

60.B解析:在C語言中,用戶標(biāo)識(shí)符命令規(guī)則規(guī)定:變量名只能由字母、數(shù)字或下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線。在C語言中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。據(jù)此規(guī)定A)、D)、C)三個(gè)選項(xiàng)是正確的,而B)選項(xiàng)是連字符,不在C語言規(guī)定的命名變量標(biāo)識(shí)符的范圍內(nèi)。

61.B

62.AsuB(a+b)*c展開后,(2+3)一(2+3)*5值為一20,所以答案選擇A)。

63.C解析:對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性;而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見的,是隱蔽的。

64.B

65.A循環(huán)找到末尾結(jié)點(diǎn),然后賦值給第一個(gè)結(jié)點(diǎn),所以選擇A)。

66.C

67.A無符號(hào)整型變量a的值為g,二進(jìn)制表示為00001000,右移3位后為00000001,即十進(jìn)制的l,因此輸出1。

68.A解析:黑盒測(cè)試主要方法有等價(jià)值劃分法,邊界值分析法。錯(cuò)誤推測(cè)法、因果圖法等。白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試循環(huán)覆蓋等。因此只有A屬于黑盒測(cè)試。

69.C

70.D

71.C

72.AB選項(xiàng)中函數(shù)pow(x,C)錯(cuò)誤應(yīng)該直接使用exp(x)函數(shù)。c選項(xiàng)中函數(shù)ah(n^x+e“x)錯(cuò)誤,應(yīng)該使用fabs()返回浮點(diǎn)數(shù)的絕對(duì)值。D選項(xiàng)中pow(x,n)參數(shù)順序錯(cuò)誤。

73.AC語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)”\”開頭的字符。其中,”\

74.B

75.B

76.A本題考查的是格式輸)ki$i數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中,其中的格式命令可以說明最大域?qū)?。在百分?hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù)。因此j的值為55,y的值為566.0,字符數(shù)組nanle的值為7777123。故本題答案為A)。

77.C在C語言中,main函數(shù)也可以有參數(shù),例如,main(intar90,char*argv),argc是指字符串的指針數(shù)組,而其他幾項(xiàng)表達(dá)不正確。

78.C

79.A解析:題面中各變量定義后,指針變量p指向了變量n2所在的存儲(chǔ)單元,指針變量q指向了變量n1所在的存儲(chǔ)單元,要使得n1的值賦n2,可用指針變量q所指向的存儲(chǔ)單元的值賦給指針變量p所指向的存儲(chǔ)單元,即*p=*q。

80.A

\nC語言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識(shí)符,它不能用做變量名和函數(shù)名。

\n

81.

82.voidfun(chara[],charb[],intn){ inti,k=0; for(i=0;a[i]!=‘\0’;i++) if(i!=n) /*將不是指定下標(biāo)的字符存入數(shù)組b中*/ b[k++]=a[i]; b[k]=‘\0’; /*在字符串最后加上字符串結(jié)束標(biāo)志*/}本題要求刪除字符串中指定下標(biāo)的字符,即把非指定下標(biāo)的字符保留。所以if語句條件表達(dá)式為“i!=n”。字符串最后不要忘記加上字符串結(jié)束標(biāo)志‘\\0’。2021-2022年福建省漳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.快速排序在已經(jīng)有序的情況下效率最差,復(fù)雜度為()

A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)

2.假設(shè)以數(shù)組A[m]存放循環(huán)隊(duì)列的元素,其頭尾指針分別為front和rear,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)為()。

A.(rear-front+m)%m

B.rear-front+1

C.(front-rear+m)%m

D.(rear-front)%m

3.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

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

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

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

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

D.分號(hào)是C語句之間的分隔符,不是語句的一部分

5.下面程序的輸出結(jié)果是

#include<stdio.h>

main()

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

p=a;

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

A.0B.1C.10D.9

6.若有代數(shù)式“”(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(nx+ex))

D.sqrt(fabs(pow(x,n)+exp(x)))

7.

8.若執(zhí)行以下程序時(shí)從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

9.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡(jiǎn)單插入排序與希爾排序C.簡(jiǎn)單選擇排序與堆排序D.快速排序與希爾排序

10.

11.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()

A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半

12.有下列程序:

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

A.30B.35C.40D.32

13.如有inta=11;則表達(dá)式(a/1)的值是()。

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

14.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī)、學(xué)分)則對(duì)主屬性部分依賴的是()。

A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#

15.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

16.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

17.設(shè)有定義:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函數(shù)fun返回值的類型是()。

A.T類型的結(jié)構(gòu)體B.指向結(jié)構(gòu)體類型的指針C.int類型的元素D.int類型的指針

18.以下哪種操作最適合先進(jìn)行排序處理()

A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

19.

20.p指向線性鏈表中某一結(jié)點(diǎn),則在線性鏈表的表尾插入結(jié)點(diǎn)s的語句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

二、2.填空題(20題)21.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+……+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{

doubles=0.0,fac=1.0;inti;

for(i=1,i<=n;i++)

{

fac=fac______;

s=s+fac;

}

returns;

}

22.為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請(qǐng)?zhí)羁铡?/p>

structlink{chardata;【】;}node;

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

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

24.下面程序的運(yùn)行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

25.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。

26.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個(gè)階段。

27.在關(guān)系模型中,二維表的行稱為______。

28.下面程序的功能是:輸出100以內(nèi)能被4整除且個(gè)位數(shù)為8的所有整數(shù),請(qǐng)?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

29.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

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

31.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

32.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

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

33.軟件是程序、數(shù)據(jù)和【】的集合。

34.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的【】。

35.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

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

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

37.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

38.以下程序的輸出結(jié)果是_______。

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

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

三、1.選擇題(20題)41.下面程序的輸出結(jié)果是______。main(){unsigneda=32768;printf("a=%d\n",a);}

A.a=32768B.a=32767C.a=-32767D.a=-1

42.設(shè)下面程序的可執(zhí)行文件名為prg.exe,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

43.下列程序的輸出結(jié)果是______。main(){intk=17;printf("%d,%0,%x\n",k,k,k);}

A.17,021,0x11B.17,17,17C.17,Ox11,021D.17,21,11

44.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

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

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

46.以下定義語句中正確的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

47.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10),*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.16B.10C.8D.6

48.t為int型變量,進(jìn)入下面的循環(huán)之前,t的值為0,則以下敘述中正確的是()while(t=1){…}

A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對(duì)

49.以下不合法的用戶標(biāo)識(shí)符是______。A.j2KEYB.DoubleC.4dD._8_

50.以下敘述中正確的是

A.預(yù)處理命令行必須位于源文件的開頭腦

B.在源文件的一行上可以多條預(yù)處理命令

C.宏名必須用大寫字母表示

D.宏替換不占用程序的運(yùn)行時(shí)間

51.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

52.可以在C語言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

53.以下程序的功能是進(jìn)行位運(yùn)算:#include<stdio.h>main()unsignedchara,b;a=7∧3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。

A.43B.73C.70D.40

54.以下程序輸出正確的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}

A.56B.25C.34D.程序錯(cuò)誤

55.在ASCII代碼表中每一個(gè)大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

56.有以下程序:#include<stdio.h>floatf1(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0));t=p1;p1=p2;p2=t;y2=p2(p1(2.0));prinff("%3.0f,%3.Of\n",y1,y2);}程序運(yùn)行后的輸出結(jié)果是()。

A.8,16B.8,8C.16,16D.4,8

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

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

58.

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

main

{inta;

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

}

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

59.在執(zhí)行以下程序時(shí),為了使輸出結(jié)果為t=4,給a和b輸入的值應(yīng)該滿足的條件是_______。main(){ints,t,a,b;scanf("%d%d",&a,&B);s=1;t=1;if(a>0)s=s+1;if(a>B)t=s+t;elseif(a==B)t=5;elset=2*s;printf("t=%d\n",t);}

A.a>bB.a<b<0C.0<a<bD.0>a>b

60.按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。

A.大寫字母B.連接符C.數(shù)字字符D.下劃線

四、選擇題(20題)61.(71)算法分析的目的是______。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性

B.分析算法的效率以求改進(jìn)

C.分析算法的易懂性和可靠性

D.找出算法中輸入和輸出之間的關(guān)系

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

A.一20B.一l2C.0D.10

63.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之間的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對(duì)象的集合

64.(38)索引屬于()

A.模式

B.內(nèi)模式

C.外模式

D.概念模式

65.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。該程序段實(shí)現(xiàn)的功能是()。

A.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.刪除尾結(jié)點(diǎn)

66.(72)n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有______。

A.n-1

B.n(n-1)

C.n

D.n+1

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

A.1B.16C.32D.0

68.用黑盒技術(shù)測(cè)試用例的方法之一為

A.因果圖B.邏輯覆蓋C.循環(huán)覆蓋D.基本路徑測(cè)試

69.

70.

71.

72.若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(n^x+e^x)

D.sqrt(fabs(pow(x,n)+exp(x)))

73.

A.包含l個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定

74.

75.

76.有以下程序段當(dāng)執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。

A.566.0B.55566.0C.7777.0D.566777.0

77.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

78.

79.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

80.下列字符串是標(biāo)識(shí)符的是()。

A.aaB.a-classC.intD.LINE1

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;’若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“123dabfl23dx”,t中內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是“l(fā)23dx”。當(dāng)字符串中的內(nèi)容為“l(fā)23dabfl23dx”,t中內(nèi)容為“aim”時(shí),則程序輸出未找到信息“Notfound!”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串“World”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“Word”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf(“Enterthestring:\n”); gets(str1); printf(“Enterthepositionofthestringdeleted:”); scanf(“%d”,&n);fun(str1,str2,n); printf(“Thenewstringis:%s\n”,str2);}

參考答案

1.D

2.A

3.A解析:在main函數(shù)中,p=&a[3]說明指針p指向a數(shù)組的第4個(gè)字符(即字符\'g\');fun1中的q=p意味著指針q也指向了a數(shù)組的第4個(gè)字符。執(zhí)行while語句,表達(dá)式(*q)++使\'g\'+1,使\'g\'變成了\'h\';表達(dá)式q++使q指向a[4]的起始地址。繼續(xù)執(zhí)行while語句,直到遇到\'\\0\'結(jié)束循環(huán),返回形參。最終得到的結(jié)果是從字符串'Program\'的第4個(gè)字符開始,每個(gè)字符加1。

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

5.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

6.AB選項(xiàng)中函數(shù)“pow(x,e)”錯(cuò)誤,應(yīng)該直接使用“exp(x)”函數(shù)。C選項(xiàng)中函數(shù)“abs(nx+ex)”錯(cuò)誤,應(yīng)該使用fabs返回浮點(diǎn)數(shù)的絕對(duì)值。D選項(xiàng)中“pow(x,n)”參數(shù)順序錯(cuò)誤。故本題答案為A選項(xiàng)。

7.B

8.B當(dāng)n為9時(shí),此時(shí)if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項(xiàng)。

9.A冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項(xiàng)。

10.D

11.B

12.A程序定義一個(gè)整型變量y和整型二維數(shù)組x,并對(duì)x賦初值。接著調(diào)用函數(shù)fun,在函數(shù)fun中,第1個(gè)for循環(huán)將數(shù)組a的第0列和第N-1列的所有元素累加到y(tǒng)中;第2個(gè)for循環(huán)將數(shù)組a的第0行的2、3和第N-1行的3、2累加到y(tǒng)中,再將y返回。所以fun函數(shù)的功能是將數(shù)組a的行列下標(biāo)為0、N-1的所有元素累加起來,即將1,2,3,4,2,3,3,2,4,3,2,1累加,輸出30。本題答案為A選項(xiàng)。

13.D

14.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號(hào))單獨(dú)就可以決定Cn(課程名),存在著對(duì)主鍵的部分依賴。本題答案為A選項(xiàng)。

15.A解析:本題考核的知識(shí)點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。

16.B

17.B由題意可知:使用typedef將類型“struct{intx,y;}*”重命名為“USER”,所以函數(shù)fun的返回類型為“struct{intx,y;}*”,即指向結(jié)構(gòu)體類型的指針。故本題答案為B選項(xiàng)。

18.C

19.B

20.A

21./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i。可見橫線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。

22.structlink*next

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

24.x=11x=11解析:在對(duì)無符號(hào)數(shù)的右移是高位補(bǔ)0。

25.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

26.計(jì)劃計(jì)劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分為若干個(gè)階段。

27.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。

28.i<10i<10解析:分析程序:當(dāng)(i=0,1,2,…)時(shí),“j=i*10+8”語句的運(yùn)行結(jié)果是(8,18,28,…)個(gè)位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當(dāng)條件不能被4整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時(shí)輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個(gè)位數(shù)為8。

29.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

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

31.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測(cè)試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測(cè)模塊,調(diào)用其他模塊。

32.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對(duì)應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。

33

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論