2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年內(nèi)蒙古自治區(qū)烏蘭察布市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下面程序段的運(yùn)行結(jié)果是

charstr[]="ABC",*p=str;

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

A.67B.0C.字符′C′的地址D.字符′C′

2.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

3.下面軟件中,屬中應(yīng)用軟件的是()

A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫管理理系統(tǒng)D.DOS

4.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

5.數(shù)據(jù)的獨(dú)立性是指______。

A.數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立

B.DBMS和DB相互獨(dú)立

C.用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立

D.用戶應(yīng)用程序與DBMS相互獨(dú)立

6.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

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

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

7.

8.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。

A.2E3——整型B.2.0E3——實(shí)型C.‘\025’——字符串D.“a”——字符型

9.若查找每個(gè)記錄的概率均等,則在具有n個(gè)記錄的連續(xù)順序文件中采用順序查找法查找一個(gè)記錄,其平均查找長度ASL為()

A.(n-1)/2B.n/2C.(n+1)/2D.n

10.有以下程序:#include<stdio.h>main(){charc;for(;(c=getchar())!=‘#’;){if(c>=‘a(chǎn)’&&c<=‘z’)c=c-‘a(chǎn)’+‘A’;putchar(++c);}}執(zhí)行時(shí)輸入aBcDefG##并按<Enter>鍵,則輸出結(jié)果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bcdefgh

11.運(yùn)行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

12.若有代數(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)))

13.

14.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。

A.s->next=p;p->next=s;

B.s->next=p->next;p->next=s;

C.s->next=p->next;p=s;

D.p->next=s;s->next=p;

15.以下說法錯(cuò)誤的是()。

A.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序不能解決過于復(fù)雜的問題

B.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決一些簡單的問題

C.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決遞歸問題

D.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決數(shù)學(xué)上有解析解的問題

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

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

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

A.c語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

18.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。

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

19.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

20.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過程C.方法D.環(huán)境

二、2.填空題(20題)21.有以下程序:

intf(intn)

{if(n==1)retum1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

22.若已知a=10,b=20,則表達(dá)式!a<b的值為【】。

23.在面向?qū)ο蠓椒ㄖ校惖膶?shí)例稱為______。

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

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

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

26.設(shè)有以下定義變量的語句,并且已賦確定的值,則表達(dá)式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。

charw;intx;floaty;double2;

27.函數(shù)mycmp(char*s,char*t)的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,當(dāng)s>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}

return(【】);

}

28.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

29.軟件工程學(xué)把軟件從開始研制到最終軟件被廢棄的整個(gè)階段叫做軟件的【】。

30.函數(shù)ssbc叩()的功能是對(duì)兩個(gè)字符申進(jìn)行比較。當(dāng)s所指字符串和t所指字符申相等時(shí),返回值為0;當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0;當(dāng)s所指字符串小于t所指字符串時(shí),返回值小于0(功能等同于庫函數(shù)strcmp())。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==)

{s++;t++;}

return

}

31.數(shù)據(jù)流的類型有______和事務(wù)型。

32.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。

33.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

34.在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。

35.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

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

main()

{intp[7]{11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

37.棧中允許進(jìn)行插入和刪除的一端叫做______。

38.設(shè)a、b、c為int型變量,且a=10、b=5、c=1,則執(zhí)行完以下語句,a的值變?yōu)椤尽俊?/p>

a/=10-(++b)-(c--);

39.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行結(jié)果是()。t4.h的源程序?yàn)椋?/p>

#defineN10

#definef2(x)(x*N)

t4.c的源程序?yàn)椋?/p>

#include<stdio.h>

#defineM8

#definef(x)((x)*M)

#include"t4.h"

main()

{inti,j;

i=f(1+1);j=f2(1+1);

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

}

40.以下程序中函數(shù)fun()的功能是構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。

#include<atdio.h>

typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node

Node~un(chars)/*建立鏈表*/

{......}

voiddisp(Node*h)

{Node*Ps

p=h->next;

while(【】)

{printf("%s\n",p->suh);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);prinff("\n");

三、1.選擇題(20題)41.以下敘述中錯(cuò)誤的是

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

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

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

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

42.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}

A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9

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

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

44.以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}

A.100200B.57C.200100D.75

45.有以下程序:#include<stdio.h>main(){unsignedchara,b;a=413;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后的輸出結(jié)果是()。

A.70B.07C.11D.430

46.以下函數(shù)定義的類型符是()。fff(doublex){printf("%f",x+x);}

A.與x類型相同B.void類型C.int類型D.無法確定

47.有關(guān)return語句說法不正確的是()。

A.系統(tǒng)默認(rèn)的返回值類型為整型,故當(dāng)函數(shù)的返回值為int型時(shí),在函數(shù)定義時(shí),返回值的類型說明可以省略

B.當(dāng)函數(shù)有返回值時(shí),凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)

C.當(dāng)函數(shù)沒有返回值時(shí),函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”

D.函數(shù)的返回值類型必須與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說明為準(zhǔn),并自動(dòng)地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型

48.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

49.下列運(yùn)算符中,不屬于關(guān)系運(yùn)算符的是()

A.<B.>=C.==D.!

50.若有以下定義:

structlink

{intdata;

structlink*next;

}a,b,c,*p,*q;

且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

51.有下列程序:

fun(intx,inty){return(x+y);}

main()

{inta=l1b=2,c=3,sum;

sum=fun((a++,b++,a+b),C++);

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

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

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

52.以下所列的c語言常量中,錯(cuò)誤的是______。

A.0xFFB.1.2e0.5C.2LD.'\72'

53.表達(dá)式~0x11的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFE1

54.在單鏈表中,增加頭結(jié)點(diǎn)的目的是()。

A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鍵表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

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

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

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

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

56.以下對(duì)枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

57.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個(gè)字符串的大小D.將字符串x連接到字符串y后面

58.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為______。x=10;x+x-=x-x;

A.10B.20C.40D.30

59.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是()。main(){…inta[50],n;…fun(n,&a[9]);…}

A.voidfun(intm,intx[])

B.voidfun(ints,inth[41])

C.voidfun(intp,int*s)

D.voidfun(intn,ihta)

60.算法的空間復(fù)雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間

四、選擇題(20題)61.下列敘述正確的是()。

A.C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

B.打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)

D.當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

62.(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()

A.可行性分析

B.需求分析

C.詳細(xì)設(shè)計(jì)

D.程序編碼

63.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

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

65.

66.

67.

68.為了提高軟件的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

69.

70.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

71.有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",'');

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。A.A.i-1B.iC.i+1D.4一i

72.

73.有以下程序:

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

A.02356B.0235C.235D.2356

74.

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

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

76.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個(gè)函數(shù)

B.在c程序中main函數(shù)的位置是固定的

C.C程序中所有函數(shù)之間都可以相互調(diào)用

D.每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)

77.

運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。

main

{floata,b,c,t;

scanf("%f,%f,%f",&a,&b,&c);

if(a<b)

{t=a;a=b.b=t;)

if(a<c)

{t=a;a=c;c=t;)

it(b<c)

{t=b;b=C;c—=;)

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

}

A.1.002.003.00

B.1.003.002.00

C.132

D.3.000002.000001.00000

78.有以下程序

main()

{inti=010,j=0X10;

pirntf("%d,%d\n",i,j);

}

該程序的輸出結(jié)果是

A.10,10B.8,10

C.8,16D.10,16

79.

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,則應(yīng)輸出0.192582。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

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

參考答案

1.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而*(p+3)的值為0。

2.A解析:本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個(gè)表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

3.B

4.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

5.C解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時(shí),通過兩級(jí)映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。

6.D

\n首先計(jì)算1與2的或運(yùn)算,再將其結(jié)果與3進(jìn)行“與”運(yùn)算,結(jié)果為00000011,即十進(jìn)制數(shù)3。

\n

7.A

8.B2E3是實(shí)型常量的指數(shù)形式,選項(xiàng)A錯(cuò)誤;2.0E3是實(shí)型常量的指數(shù)形式,選項(xiàng)B正確;‘\\025’是八進(jìn)制表示的轉(zhuǎn)義字符,選項(xiàng)C錯(cuò)誤;“a”是雙引號(hào)標(biāo)注的字符串常量,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。

9.C

10.C題干中,循環(huán)的作用是將輸入的字符串轉(zhuǎn)化為大寫,getchar函數(shù)讀入一個(gè)字符,putchar函數(shù)輸出一個(gè)字符,當(dāng)遇到‘#’字符結(jié)束?!皃utcha(++C);”,表示將字符變量c加1后輸出。當(dāng)輸入“aBcDefG##”時(shí),得到的結(jié)果是BCDEFGH。故本題答案為C選項(xiàng)。

11.C

\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。

12.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)。

13.D

14.B

15.A順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是3種基本結(jié)構(gòu),由3種基本結(jié)構(gòu)構(gòu)成的程序稱為結(jié)構(gòu)化程序,由3種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問題,選項(xiàng)A錯(cuò)誤。本題答案為A選項(xiàng)。

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

17.BC語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言。結(jié)構(gòu)化程序設(shè)計(jì)是以模塊化設(shè)計(jì)為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨(dú)立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。

18.A解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

19.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。

20.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

21.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

22.11解析:計(jì)算表達(dá)式!a<b,先計(jì)算!a,因a的值為10,!a的值為0,而關(guān)系表達(dá)式0<20為真,所以表達(dá)式!a<b的值為1。

23.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書是一個(gè)對(duì)象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

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

25.024

26.double或雙精度型double或雙精度型

27.*s-*t*s-*t解析:本題考查比較字符串的大小。函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,指針變量的值是字符串的首地址,*s和*t表示s和t指向的第一個(gè)字符,在while循環(huán)中,通過s和t指針的移動(dòng),不斷改變所指字符,通過返回s和t的第一個(gè)不同字符的ASCII碼的差值*s-*t得到結(jié)果。

28.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。

29.生命期生命期解析:軟件的生存周期是軟件工程最基本的重要概念。軟件產(chǎn)品和其他產(chǎn)品的生產(chǎn)一樣,都要經(jīng)過分析、設(shè)計(jì)、制造、檢測和運(yùn)行使用幾個(gè)階段。通常,把軟件從開始研制(形成概念)到最終軟件被廢棄這整個(gè)過程稱為軟件的生命期。

30.*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]解析:本題考查的知識(shí)點(diǎn)是字符型指針變量作為函數(shù)的參數(shù)以及序符串大小的比較.函數(shù)sstrcmp()有兩個(gè)字符型指針變量,用來指向兩個(gè)字符串。比較兩個(gè)字符串的大小方法是:從第一個(gè)字符開始依次向后比較,若對(duì)應(yīng)的字符相等則接著比較下一個(gè)字符,一直到兩個(gè)字符串中對(duì)應(yīng)字符不等,或者有一個(gè)為'\\0',此對(duì)應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為'\\0'。且*s和*t相同,第一處應(yīng)填“*t”或其他等價(jià)形式。根據(jù)題意可知第二處應(yīng)填“*s-*t”或其等價(jià)形式。

31.變換型變換型

32.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計(jì)測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價(jià)類劃分、邊界分析、錯(cuò)誤猜測以及因果圖等。

33.概念概念

34.3131解析:設(shè)隊(duì)列容量為m,如果:rear>front,則隊(duì)列中元素個(gè)數(shù)為rear-front;如果rear<front,則隊(duì)列中元素個(gè)數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

35.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

36.2424解析:本題主函數(shù)中首先定義了一個(gè)長度為7的數(shù)組,然后用一個(gè)while循環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時(shí),循環(huán)結(jié)束。顯然當(dāng)i=2時(shí),p[2]=14為偶數(shù)時(shí),循環(huán)結(jié)束,此時(shí)j的值為j=p[0]+p[1]=24。

37.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

38.3

39.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。

40.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定義了一個(gè)結(jié)構(gòu)體類型名Node,其中定義了一個(gè)指向結(jié)點(diǎn)類型的指針next。接下來用Node定義了頭結(jié)點(diǎn)指針變量h和指向第一個(gè)結(jié)點(diǎn)的指針變量p,在滿足p未指向最后一個(gè)結(jié)點(diǎn)的空指針時(shí)(即為NULL),輸出p所指向結(jié)點(diǎn)的字符串,所以第一處應(yīng)填p!=NULL,然后將p指向下一個(gè)非空結(jié)點(diǎn),所以第二處應(yīng)填P->next或與其等效的形式,反復(fù)執(zhí)行直到所有的結(jié)點(diǎn)都輸出。

41.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ò)誤的。

42.B解析:本題考查兩個(gè)知識(shí)點(diǎn):自加自減運(yùn)算符和do-while循環(huán)語句。do-while循環(huán)條件是b--<0,所以循環(huán)體語句只執(zhí)行一次。

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

44.B解析:全程變量是可以在子函數(shù)中對(duì)其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。

45.A解析:&是按位“與”運(yùn)算符,其運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)運(yùn)算量,如果兩個(gè)相應(yīng)的位都為1,則該位的結(jié)果值為1,否則為0。|是按位“或”運(yùn)算符,其運(yùn)算規(guī)則是:兩個(gè)相應(yīng)位中只要有一個(gè)為1,該位的結(jié)果為1。4轉(zhuǎn)換為二進(jìn)制數(shù)為0100,3轉(zhuǎn)換為二進(jìn)制數(shù)為0011,則4|3=0111,即7,4&3=0000,即0。

46.C解析:在函數(shù)定義時(shí),由于函數(shù)沒有說明其類型,所以系統(tǒng)默認(rèn)一律自動(dòng)按整型處理。

47.D函數(shù)的返回值類型一般與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說明為準(zhǔn),并自動(dòng)地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。

48.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。

49.D

50.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實(shí)現(xiàn),即一個(gè)結(jié)點(diǎn)中應(yīng)包含一個(gè)指針變量,用它存放下一結(jié)點(diǎn)的地址。

51.C解析:函數(shù)fun(intx,inty)的功能是返回兩個(gè)整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用子函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。

52.B解析:在C語言中常量可以用十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)來表示:也可以用轉(zhuǎn)義字符、長整型、科學(xué)計(jì)數(shù)法等來表示。選項(xiàng)A為十六進(jìn)制表示法正確,故選項(xiàng)A正確。選項(xiàng)B為科學(xué)計(jì)數(shù)法,但在選項(xiàng)B中的科學(xué)計(jì)數(shù)的表示形式是錯(cuò)誤的,指數(shù)不能為小數(shù),故選項(xiàng)B的表示法是錯(cuò)誤的。選項(xiàng)C為長整型表示法正確,故C正確。選項(xiàng)D為轉(zhuǎn)義字符表示正確,故選項(xiàng)D的表示法是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

53.A解析:本題主要考查按位求反運(yùn)算和整型常量的表示:①十六進(jìn)制整型常量的形式是以數(shù)字0x或0X開頭的十六進(jìn)制字符串;②按位求反運(yùn)算的規(guī)則是:將二進(jìn)制表示的運(yùn)算對(duì)象按位取反,即將1變0,將0變1?!?x11”即0000000000010001,進(jìn)行按位求反運(yùn)算“~0x11”后為1111111111101110,即OxFFEE。

54.A解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

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

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

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

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

函數(shù)調(diào)用不可作為一個(gè)函數(shù)的形參,因?yàn)楹瘮?shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實(shí)參傳給形參,不能由形參傳給實(shí)參。故選項(xiàng)D)錯(cuò)誤。

56.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

說明:1、在C編譯中,對(duì)枚舉元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)枚舉變量。

57.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

58.B解析:賦值運(yùn)算符按照“從右往左”的結(jié)合順序。因此,先執(zhí)行x-=x-x,即x=x-(x-x)=10;再執(zhí)行x+=x,即x=x+x=20,故正確選項(xiàng)為B。

59.C解析:根據(jù)主函樹中的函數(shù)調(diào)用可知,第一個(gè)實(shí)參為整型數(shù)據(jù),第二個(gè)實(shí)參為整型數(shù)組中一個(gè)元素的地址值。因此函數(shù)fun()的第二個(gè)形參應(yīng)該為一個(gè)指針,故應(yīng)該選擇C。實(shí)參不是將整個(gè)數(shù)組傳遞給形參,故選項(xiàng)A和B不正確;選項(xiàng)D的第二個(gè)形參的數(shù)據(jù)類型與實(shí)參的數(shù)據(jù)類型不符。

60.D解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

61.D在C語言中,文件的存取方式有兩種:順序存取和直接存取。如果以“a”的方式對(duì)已打開的文件進(jìn)行寫操作后,則原文件中內(nèi)容將保存,新的數(shù)據(jù)寫在原有內(nèi)容之后。如果以“a+”的方式勾讀和寫操作而打開文件,則可以對(duì)文件進(jìn)行讀寫,而且在讀和寫操作之間不必關(guān)閉文件,可以從頭開始讀。當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉。

62.B結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分析階段的運(yùn)用。而結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。所以數(shù)據(jù)流程圖是在需求分析階段使用的。

63.B解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個(gè)if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

64.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ì)劃。

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

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

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

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

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

65.

溫馨提示

  • 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)論