2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第1頁
2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第2頁
2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第3頁
2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第4頁
2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________一、單選題(20題)1.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

2.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。

A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式

3.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

4.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中連續(xù)的三個(gè)節(jié)點(diǎn)。structnode{chardata;structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指節(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的連續(xù),以下不能完成此操作的語句是()。

A.q->next=r->next;p->next=r;r->next=q;

B.p->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;p->next=r;

D.r->next=q;p->next=r;q->next=r->next;

5.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

6.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

7.以下選項(xiàng)中合法的C語言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

8.當(dāng)n=5時(shí),函數(shù)輸出為()A.5B.11C.29D.10

9.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個(gè)FBI項(xiàng)目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請(qǐng)?jiān)谙旅鎺讉€(gè)數(shù)據(jù)結(jié)構(gòu)中選擇一個(gè)使檢索速度最快的()

A.二叉搜索樹,比較函數(shù)開銷:1次運(yùn)算/每字符

B.哈希表,hash算法開銷:10次運(yùn)算/每字符

C.鏈表,比較函數(shù)開銷:1次運(yùn)算/每字符

D.TRIE樹,尋找子節(jié)點(diǎn)開銷:1次運(yùn)算/每字符

10.一個(gè)序列中有10000個(gè)元素,若只想得到其中前10個(gè)最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路歸并排序

11.用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進(jìn)制字符串

A.12B.14C.18D.24

12.下列字符數(shù)組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

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

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

13.

14.當(dāng)執(zhí)行以下程序段時(shí),()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤

15.在1,2,3,......1000中,有()個(gè)數(shù)各位乘積為0。

A.100B.101C.172D.181E.190F.191

16.

17.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。

A.HS->next=s

B.S->next=HS->nextHS->next=s

C.s->next=HSHS=s

D.S->next=HSHS=HS->next

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

A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)

19.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

20.二維數(shù)組A按行順序存儲(chǔ),其中每個(gè)元素占1個(gè)存儲(chǔ)單元。若A[1][1]的存儲(chǔ)地址為420,A[3][3]的存儲(chǔ)地址為446,則A[5][5]的存儲(chǔ)地址為_______

A.470B.471C.472D.473

二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

22.順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置______的存儲(chǔ)單元中。

23.軟件的需求分析階段的工作,可以概括為四個(gè)方面:【】、需求分析、編寫需求規(guī)格說明書和需求評(píng)審。

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

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

25.漢字系統(tǒng)中,字庫中的漢字是以【】碼存在。

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

27.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。

28.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

29.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。

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

31.若有以下程序:

main()

{chara;

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

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

}

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

32.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

33.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

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

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

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

main()

{inta=10;

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

}

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

main()

{intarr[10],i,k=0;

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

arr[i=i;]

for(1;i<4;i++)

k+=arr[i]+i;

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

37.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

38.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

39.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲(chǔ)結(jié)構(gòu)是【】。

40.關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是()。#inClude<stdio.h>main(){charch[2][5]={"1234","5678,},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';

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

42.有以下程序

main()

{inti;

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

{if(i++%5==0)

if(++i%8==0)printf("%d",i);

}

printf("\n");

}

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

A.5B.24C.32D.40

43.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

44.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對(duì)象可以是任何變量和常量

B.它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量

45.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

46.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

47.下列數(shù)據(jù)結(jié)構(gòu)中的______是線性結(jié)構(gòu)。

A.隊(duì)列B.有向圖C.樹D.哈夫曼樹

48.有以下程序:#include<stdio.h>main(){intm=3,n=4,x;x=-m++;x=x+8/++n;prinff("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.5C.-1D.-2

49.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){intk=17;printf("%d,%o,%x\n",k,k,k);}

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

50.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項(xiàng)中錯(cuò)誤的語句是

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

51.若有以下定義語句:floata[11]={0,1,2,3,4,5,6,7,8,9,10};則以下敘述中錯(cuò)誤的是()

A.a數(shù)組在內(nèi)存中占44個(gè)字節(jié)

B.a數(shù)組的最后一個(gè)元素為a[10]

C.a數(shù)組的第一個(gè)元素為a[0]

D.以上定義語句給a數(shù)組所賦初值是整數(shù),因此不能正確賦初值

52.下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是______。A.繼承性B.多態(tài)性C.類比性D.封裝性

53.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>0)x--

D.if(y<0){;}elsey++;elsex++;

54.以下程序的輸出結(jié)果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}

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

55.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解

56.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述是()

A.外模式B.邏輯模式C.概念模式D.物理模式

57.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。#include<stdio.h>main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

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

58.有以下程序:

#include<stdlib.h>

structNODE{

intnum;

structNODE*next;

}

main()

{structNODE*p,*q,*r;

intsum=0;

p=(structNODE*)malloc(sizeof(structNODE));

q=(StructNODE*)malloc(sizeof(structNODE));

r=(StructNODE*)malloc(sizeof(structNODE));

p->num=1;q->num=2;r->num=3;

p->next=q;q->next=r;r->next=NULL;

sum+=q->next->num;sum+=p->num;

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

}

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

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

59.若有定義:inta[4][10];,則以下選項(xiàng)中對(duì)數(shù)組元素a[i][j]引用錯(cuò)誤的是______。(o<=i<4,0<=j<=10

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

60.下列程序執(zhí)行后的輸出結(jié)果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機(jī)數(shù)

四、選擇題(20題)61.有下面程序段:

則程序段的輸出結(jié)果是()。

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

62.(26)下面不屬于軟件工程的3個(gè)要素的是()

A.工具

B.過程

C.方法

D.環(huán)境

63.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

64.以下定義語句中正確的是()。

65.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

66.有以下程序:

在VC6.0平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是()。

A.10,6B.4,4C.2,4D.4。8

67.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯(cuò)誤C.gD.輸出null字符

68.

69.下列函數(shù)的功能是()。

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進(jìn)行比較

D.檢查a和b所指字符串中是否有‘、O’

70.

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

main()

{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};

printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2]

[1],a[3][0];

}

A.0650B.1470C.5430D.輸出值不定

71.

72.以下選項(xiàng)中能表示合法常量的是()。

A.”\007”B.1.5E2.0C.\D.1。200

73.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。

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

74.

75.有以下程序:

#defineN20

fun(inta[],intn,intm)

{inti;

for(i=m;i>n;i--)a[i+1]=a[i];

returnm;

}

voidmain()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,0,N/2);

for(i=0;i<5;i++)printf("%d",a[i]);

}

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

A.10234B.12344C.12334D.12234

76.

77.設(shè)已有定義:floatx;,則以下對(duì)指針變量P進(jìn)行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

78.有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A.9B.編譯出錯(cuò)

C.21D.9.0

79.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

80.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對(duì)的是()

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸人0.0001時(shí),應(yīng)當(dāng)輸出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:,

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是找出成績最高的學(xué)生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個(gè)最髙分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}

參考答案

1.D

2.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。

3.A解析:從main函數(shù)入手,定義了指向字符串的指針數(shù)組,并賦予了初始值,調(diào)用fun()函數(shù),函數(shù)的功能是:比較數(shù)組中各個(gè)元素的長度,按元素長度從小到大排列數(shù)組元素,所以執(zhí)行fun(ss,5)函數(shù)后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。

4.D解析:D中的操作將會(huì)丟失r后面的鏈表結(jié)構(gòu),不能保持鏈表的連續(xù)。

5.B不能將變量賦給表達(dá)式,故A、C選項(xiàng)錯(cuò)誤。D選項(xiàng)中強(qiáng)制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成“(double)x/10”。故本題答案為B選項(xiàng)。

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

7.DC語言中,常量有整型常量、實(shí)型常量、字符常量和字符串常量等。整型常量和實(shí)型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn)。實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,所以選項(xiàng)A錯(cuò)誤,選項(xiàng)D正確;字符型常量是用單引號(hào)標(biāo)注的單個(gè)字符,字符串常量是用雙引號(hào)標(biāo)注的若干個(gè)字符,選項(xiàng)B、C錯(cuò)誤。故本題答案為D選項(xiàng)。

8.C

9.D

10.B

11.B

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

13.B

14.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當(dāng)x=-1時(shí),執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達(dá)式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。

15.D

16.B

17.C

18.D【答案】:D

【知識(shí)點(diǎn)】:棧和隊(duì)列

【解析】:棧和隊(duì)列都是線性結(jié)構(gòu),所以選項(xiàng)C錯(cuò)誤;棧是一種先進(jìn)后出的線性表,故選項(xiàng)A錯(cuò)誤;隊(duì)列是一種先進(jìn)先出的線性表,故選項(xiàng)B錯(cuò)誤,所以選D。

19.D執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒有到達(dá),繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-\o)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對(duì)字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

20.C

21.14

22.相鄰相鄰

23.需求獲取需求獲取解析:軟件的需求分析階段的工作,可以概括為四個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評(píng)審。需求獲取的目的是確定對(duì)目標(biāo)系統(tǒng)的各方面需求;需求分析是對(duì)獲取的需求進(jìn)行分析和綜合,最終給出系統(tǒng)的解決方案和目標(biāo)系統(tǒng)的邏輯模型;編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便,可以直接支持目標(biāo)軟件系統(tǒng)的確認(rèn),又可以作為控制軟件開發(fā)進(jìn)度的依據(jù);需求評(píng)審是對(duì)需求分析階段的工作進(jìn)行的復(fù)審,驗(yàn)證需求文檔的一致性、可行性、完整性和有效性。

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

25.字形字形

26.123\n056\n009123\\n056\\n009解析:數(shù)組是用于按順序存儲(chǔ)同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如果有一個(gè)一維數(shù)組,它的每一個(gè)元素是類型相同的一維數(shù)組,就形成了一個(gè)二維數(shù)組。在內(nèi)存中數(shù)組的元素是連續(xù)順序存放的,對(duì);維數(shù)組來說,先存放第一行,再存放第;行,…,因?yàn)槊恳恍卸际瞧鋸V義一維數(shù)組的元素,并且在給出全部數(shù)組元素的初值后,二維數(shù)組的定義中可以將第一維的下標(biāo)省略。本題中,定義了一個(gè)元素類型為整型的二維數(shù)組敢a[][3]={1,2,3,4,5,6,7,8,9),它相當(dāng)于一個(gè)3*3的矩陣,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;將行下標(biāo)i大于列下標(biāo)j的元素s[1][0],a[2][0],a[2][1]賦值為0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');進(jìn)行換行輸出,所以輸出結(jié)果為

123

056

009

27.類類

28.1020010200解析:本題考查的是混合運(yùn)算。“(a/b<1)&&(a%b<1)”的運(yùn)算順序?yàn)椋豪ㄌ?hào)>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個(gè)表達(dá)式的結(jié)果為0,所以輸出的a,b,c的值為10200。

29.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。

30.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊不是一個(gè)獨(dú)立的程序;不能單獨(dú)運(yùn)行,因此,在進(jìn)行模塊測(cè)試時(shí),還應(yīng)為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是模擬被測(cè)試模塊的下層模塊。通常,承接模塊有多個(gè)。

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

32.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

33.3

34.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

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

36.1212解析:本題通過第—個(gè)for循環(huán)將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個(gè)for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,

具體分析如下:

i+1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

37.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

38.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

39.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

40.參照完整性參照完整性

41.B解析:第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

42.C解析:當(dāng)for循環(huán)執(zhí)行到第30次時(shí),i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故此時(shí)第一次執(zhí)行'printf('%d',i);'語句,即輸出32。

43.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。

44.D本題主要考查自加與自減運(yùn)算符。在C語言中,自加與自減運(yùn)算符具有以下性質(zhì):

(1)自加運(yùn)算符“++”和自減運(yùn)算符“--”的運(yùn)算本身是一種賦值運(yùn)算,其結(jié)果是使運(yùn)算對(duì)象的值增1或減1。

(2)++、--運(yùn)算符是單目運(yùn)算符,運(yùn)算對(duì)象可以是整型變量或字符型變量,也可以是實(shí)型變量,但不能是常量和表達(dá)式。

(3)自加、自減運(yùn)算符無論是作為前綴還是后綴運(yùn)算符,對(duì)于變量而言,其效果相同,但作為表達(dá)式來說,其值不同。

(4)++和--運(yùn)算符的結(jié)合方向是“自右向左”。

(5)不要在一個(gè)表達(dá)式中對(duì)同一個(gè)變量進(jìn)行多次自增或自減運(yùn)算。可以知道本題正確的答案是D。

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

46.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

47.A

48.D解析:程序中x=-m++執(zhí)行后x=-3,執(zhí)行x=x+8/++n相當(dāng)于執(zhí)行x=-3+8/5,即n先增加1,再代入表達(dá)式運(yùn)算,結(jié)果為-2。

49.D解析:printf函數(shù)對(duì)不同類型的數(shù)據(jù)用不同的格式描述符,“%d”是以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào));“%o”以八進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符0);“%x”以十六進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符0x)。

50.A解析:本題考核的知識(shí)點(diǎn)是指針變量的使用與空指針(NULL)基本概念.本題中定義了3個(gè)指向整型的指針變量p、q、w,并讓p指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整形變量指針的定義可知,可以給整型指針指向的變量賦一個(gè)常數(shù)值(表達(dá)式),故選項(xiàng)C和選項(xiàng)D是正確的;可以給指針變量賦一個(gè)同種類型的指針變量(或地址值),故選項(xiàng)B也是正確的;選項(xiàng)A錯(cuò)誤,因?yàn)閝不指向任何變量,給一個(gè)空指針指向的單元賦值是錯(cuò)誤的。所以,A選項(xiàng)為所選。

51.D

52.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開發(fā)提供了一種新的方法學(xué)。

封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對(duì)象也都具有該類的全部,這就是繼承性。繼承性自動(dòng)在類與子類間共享功能與數(shù)據(jù),當(dāng)某個(gè)類作了某項(xiàng)修改,其子類會(huì)自動(dòng)改變,子類會(huì)繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達(dá)到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采用不同的動(dòng)作。例如,一個(gè)應(yīng)用程序包括許多對(duì)象,這些對(duì)象也許具有同一類型的工作,但是卻以不同的做法來實(shí)現(xiàn)。不必為每個(gè)對(duì)象的過程取一過程名,造成復(fù)雜化,可以使過程名復(fù)用。同一類型的工作有相同的過程名,這種技術(shù)稱為多態(tài)性。

經(jīng)過上述分析可知,選項(xiàng)C的說法是錯(cuò)誤的。

53.C解析:選項(xiàng)A)和選項(xiàng)B)在條件判斷語句的后面是空語句,什么都不做;在選項(xiàng)D)if后面是一個(gè)復(fù)合空語句;而在選項(xiàng)C)中,在x--后面少了一個(gè)分號(hào),所以程序段在編譯時(shí),會(huì)出現(xiàn)語法錯(cuò)誤。

54.B解析:第—個(gè)表達(dá)式中,運(yùn)算的方向是從左至右,所以a的值為2;第二個(gè)表達(dá)式中,等式右邊是—個(gè)邏輯表達(dá)式,由于結(jié)果為真,所以表達(dá)式的值為1,即b為1。

55.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項(xiàng)A)不選;注解行有利于對(duì)程序的理解,不應(yīng)減少或取消,選項(xiàng)B)也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,選項(xiàng)C)也不選。

56.AA)【解析】外模式也稱子模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它是由概念模式推導(dǎo)出來的.是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個(gè)概念模式可以有若干個(gè)外模式。

57.D解析:本題涉及break語句,重在循環(huán)次數(shù)的判定。本題的循環(huán)由于無出口,只能借助break語句終止。題目要求說明判斷i>j的執(zhí)行次數(shù),只需考查經(jīng)過i+=k運(yùn)算如何累計(jì)i的值。i值分別是i=2,4,6,8,10,直到i取12時(shí),判斷i>j為真,程序輸出s的值并結(jié)束,共判斷6次。

58.B解析:本題中定義了一個(gè)結(jié)點(diǎn)結(jié)構(gòu)stmctNODE,在主函數(shù)中定義了3個(gè)結(jié)點(diǎn)指針p、q和r,接著通過malloc函數(shù)分配了3個(gè)結(jié)點(diǎn)并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點(diǎn)的num域賦值為1、2、3,然后讓結(jié)點(diǎn)p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點(diǎn)的hum域的值為3,p->hum的值為指針p所指向結(jié)點(diǎn)的num域的值為1,故最后輸出s的值為3+1=4。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

59.B解析:本題中選項(xiàng)B是錯(cuò)誤的引用,*(a+i)+j只代表了a[i][j]的地址。

60.B

61.B字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(sl,s2)。此函數(shù)將s2所指字符串的內(nèi)容連接到sl所指的字符串后面,并自動(dòng)覆蓋sl串末尾的尾標(biāo),函數(shù)返回sl的地址值。本題中首先將二維數(shù)組中各行的字符串都復(fù)制到了指針P所指向的一維數(shù)組k的地址空間,然后用strlen函數(shù)求得k數(shù)組的長度i,即l9。

62.D

63.A

\n在程序中當(dāng)i=0時(shí),s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當(dāng)i=1時(shí),s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達(dá)式,此時(shí)d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項(xiàng)。

\n

64.A定義變量時(shí)不能連等,所以B)錯(cuò)誤,c)選項(xiàng)中,b是指針,c定義為指向指針的指針才可以接受&b,所以c)錯(cuò)誤,D)選項(xiàng),b=1.1前沒有類型名,所以錯(cuò)誤。

65.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。

66.DC語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長度,在VC6.0平臺(tái)中,整型int占有4個(gè)字節(jié),doable型數(shù)據(jù)占有8個(gè)字節(jié)。

67.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會(huì)劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時(shí),會(huì)得到一個(gè)不確定的值。

68.A

69.AWhile循環(huán)條件為:(_h=}a)f-‘、0’,執(zhí)行時(shí)先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識(shí)‘\0’,執(zhí)行循環(huán)體a++;b++;,指針a.b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標(biāo)識(shí)為止。因此A選項(xiàng)正確。

70.A

\n當(dāng)所賦的值不夠其列的寬度時(shí),系統(tǒng)在其后自動(dòng)補(bǔ)0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項(xiàng)。

\n

71.B

72.AE前E后有數(shù)字,E后數(shù)字為整數(shù),B)錯(cuò)誤;“\”為轉(zhuǎn)義字符,后面跟特定字符,用來表示ASCn字符,c)錯(cuò)誤;一個(gè)整數(shù)之間不能有逗號(hào),D)錯(cuò)誤。

73.A解析:本題中定義一個(gè)全局變量a和一個(gè)局部變量a。局部變量和全局變量的不同在于,局部變量的存儲(chǔ)單元都是在進(jìn)入這些局部變量所在的函數(shù)體(或復(fù)合語句)時(shí)生成,退出其所在的函數(shù)體(或復(fù)合語句)時(shí)消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個(gè)源文件結(jié)束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復(fù)合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a+a;在這條語句中a加1,但表達(dá)式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時(shí){}內(nèi)定義的變量a不再有效,此時(shí)的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當(dāng)于執(zhí)行語句s=s+(++);即s=5+3,最后值為8,所以最后輸出的s值為8。所以4個(gè)選項(xiàng)中A正確。

74.A

75.D函數(shù)的功能是將某個(gè)間隔內(nèi)的數(shù)據(jù)向后移動(dòng)一位,m=5,將a[5]賦給a[6],a[4]賦給a[5],……;a[1]賦給a[2],最后i--,i=0,不滿足i>0,退出循環(huán),所以a[0],a[1]的值不變。

76.C

77.B指針是用來存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時(shí)應(yīng)將某個(gè)變量地址即8Ⅸ賦給指針變量,所以選擇B。

78.A本題主要考查函數(shù)的嵌套調(diào)用。在本題中,首先定義了函數(shù)fun,該函數(shù)的返回類型為浮點(diǎn)型,函數(shù)帶有兩個(gè)整型形參,函數(shù)的作用不難看出是返回兩個(gè)形參的和。

在主函數(shù)中,定義了三個(gè)整型變量a,b,c,并分別賦初值為2,5,8,然后嵌套調(diào)用fun函數(shù)。輸出語句fun((int)fun(a+c,b),a-c)首先調(diào)用嵌套的fun函數(shù),即(int)fun(a+c,b),按照前面對(duì)fun函數(shù)的介紹,它應(yīng)該返回的值為a+c+b=15,由于函數(shù)在前面加了強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換,將本來的返回結(jié)果浮點(diǎn)型轉(zhuǎn)換為了整型,并作為函數(shù)的參數(shù),與函數(shù)定義的參數(shù)類型匹配,程序編譯不報(bào)錯(cuò),然后執(zhí)行fun函數(shù),它返回的結(jié)果為15+a-c=9,此時(shí)的結(jié)果應(yīng)該是浮點(diǎn)型,即為9.0,但輸出語句的輸出格式是“%3.0f”,說明無須輸出小數(shù)部分,因此,最終的輸出結(jié)果是9。

79.B本題考查for循環(huán)的使用。對(duì)于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

80.D

81.(1)錯(cuò)誤:while(tDeps)

正確:while(tD=eps)

(2)錯(cuò)誤:return(s);

82.fun(STUa[],STU*s){inti;*s=a[0];for(i=0;i<N;i++)/*找出成績最高的學(xué)生記錄*/if(s->s<a[i].s)<p=""></a[i].s)<>*s=a[i];}先使指針變量S指向第1名學(xué)生。通過循環(huán)語句遍歷所有學(xué)生的成績,利用條件語句判斷當(dāng)前學(xué)生成績是否最高。所以if條件表達(dá)式為s->ss”等價(jià)于“(*s).s”。2022-2023年四川省綿陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________一、單選題(20題)1.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

2.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。

A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式

3.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

4.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中連續(xù)的三個(gè)節(jié)點(diǎn)。structnode{chardata;structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指節(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的連續(xù),以下不能完成此操作的語句是()。

A.q->next=r->next;p->next=r;r->next=q;

B.p->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;p->next=r;

D.r->next=q;p->next=r;q->next=r->next;

5.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

6.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

7.以下選項(xiàng)中合法的C語言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

8.當(dāng)n=5時(shí),函數(shù)輸出為()A.5B.11C.29D.10

9.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個(gè)FBI項(xiàng)目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請(qǐng)?jiān)谙旅鎺讉€(gè)數(shù)據(jù)結(jié)構(gòu)中選擇一個(gè)使檢索速度最快的()

A.二叉搜索樹,比較函數(shù)開銷:1次運(yùn)算/每字符

B.哈希表,hash算法開銷:10次運(yùn)算/每字符

C.鏈表,比較函數(shù)開銷:1次運(yùn)算/每字符

D.TRIE樹,尋找子節(jié)點(diǎn)開銷:1次運(yùn)算/每字符

10.一個(gè)序列中有10000個(gè)元素,若只想得到其中前10個(gè)最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路歸并排序

11.用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進(jìn)制字符串

A.12B.14C.18D.24

12.下列字符數(shù)組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

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

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

13.

14.當(dāng)執(zhí)行以下程序段時(shí),()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤

15.在1,2,3,......1000中,有()個(gè)數(shù)各位乘積為0。

A.100B.101C.172D.181E.190F.191

16.

17.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。

A.HS->next=s

B.S->next=HS->nextHS->next=s

C.s->next=HSHS=s

D.S->next=HSHS=HS->next

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

A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)

19.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

20.二維數(shù)組A按行順序存儲(chǔ),其中每個(gè)元素占1個(gè)存儲(chǔ)單元。若A[1][1]的存儲(chǔ)地址為420,A[3][3]的存儲(chǔ)地址為446,則A[5][5]的存儲(chǔ)地址為_______

A.470B.471C.472D.473

二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

22.順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置______的存儲(chǔ)單元中。

23.軟件的需求分析階段的工作,可以概括為四個(gè)方面:【】、需求分析、編寫需求規(guī)格說明書和需求評(píng)審。

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

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

25.漢字系統(tǒng)中,字庫中的漢字是以【】碼存在。

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

27.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。

28.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

29.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。

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

31.若有以下程序:

main()

{chara;

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

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

}

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

32.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

33.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

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

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

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

main()

{inta=10;

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

}

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

main()

{intarr[10],i,k=0;

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

arr[i=i;]

for(1;i<4;i++)

k+=arr[i]+i;

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

37.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

38.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

39.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲(chǔ)結(jié)構(gòu)是【】。

40.關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是()。#inClude<stdio.h>main(){charch[2][5]={"1234","5678,},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';

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

42.有以下程序

main()

{inti;

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

{if(i++%5==0)

if(++i%8==0)printf("%d",i);

}

printf("\n");

}

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

A.5B.24C.32D.40

43.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

44.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對(duì)象可以是任何變量和常量

B.它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量

45.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

46.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

47.下列數(shù)據(jù)結(jié)構(gòu)中的______是線性結(jié)構(gòu)。

A.隊(duì)列B.有向圖C.樹D.哈夫曼樹

48.有以下程序:#include<stdio.h>main(){intm=3,n=4,x;x=-m++;x=x+8/++n;prinff("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.5C.-1D.-2

49.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){intk=17;printf("%d,%o,%x\n",k,k,k);}

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

50.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項(xiàng)中錯(cuò)誤的語句是

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

51.若有以下定義語句:floata[11]={0,1,2,3,4,5,6,7,8,9,10};則以下敘述中錯(cuò)誤的是()

A.a數(shù)組在內(nèi)存中占44個(gè)字節(jié)

B.a數(shù)組的最后一個(gè)元素為a[10]

C.a數(shù)組的第一個(gè)元素為a[0]

D.以上定義語句給a數(shù)組所賦初值是整數(shù),因此不能正確賦初值

52.下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是______。A.繼承性B.多態(tài)性C.類比性D.封裝性

53.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>0)x--

D.if(y<0){;}elsey++;elsex++;

54.以下程序的輸出結(jié)果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}

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

55.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解

56.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述是()

A.外模式B.邏輯模式C.概念模式D.物理模式

57.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。#include<stdio.h>main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

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

58.有以下程序:

#include<stdlib.h>

structNODE{

intnum;

structNODE*next;

}

main()

{structNODE*p,*q,*r;

intsum=0;

p=(structNODE*)malloc(sizeof(structNODE));

q=(StructNODE*)malloc(sizeof(structNODE));

r=(StructNODE*)malloc(sizeof(structNODE));

p->num=1;q->num=2;r->num=3;

p->next=q;q->next=r;r->next=NULL;

sum+=q->next->num;sum+=p->num;

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

}

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

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

59.若有定義:inta[4][10];,則以下選項(xiàng)中對(duì)數(shù)組元素a[i][j]引用錯(cuò)誤的是______。(o<=i<4,0<=j<=10

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

60.下列程序執(zhí)行后的輸出結(jié)果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機(jī)數(shù)

四、選擇題(20題)61.有下面程序段:

則程序段的輸出結(jié)果是()。

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

62.(26)下面不屬于軟件工程的3個(gè)要素的是()

A.工具

B.過程

C.方法

D.環(huán)境

63.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

64.以下定義語句中正確的是()。

65.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

66.有以下程序:

在VC6.0平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是()。

A.10,6B.4,4C.2,4D.4。8

67.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯(cuò)誤C.gD.輸出null字符

68.

69.下列函數(shù)的功能是()。

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進(jìn)行比較

D.檢查a和b所指字符串中是否有‘、O’

70.

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

main()

{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};

printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2]

[1],a[3][0];

}

A.0650B.1470C.5430D.輸出值不定

71.

72.以下選項(xiàng)中能表示合法常量的是()。

A.”\007”B.1.5E2.0C.\D.1。200

73.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。

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

74.

75.有以下程序:

#defineN20

fun(inta[],intn,intm)

{inti;

for(i=m;i>n;i--)a[i+1]=a[i];

returnm;

}

voidmain()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,0,N/2);

for(i=0;i<5;i++)printf("%d",a[i]);

}

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

A.10234B.12344C.12334D.12234

76.

77.設(shè)已有定義:floatx;,則以下對(duì)指針變量P進(jìn)行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

78.有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A.9B.編譯出錯(cuò)

C.21D.9.0

79.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

80.(50)數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,以下各項(xiàng)中不對(duì)的是()

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸人0.0001時(shí),應(yīng)當(dāng)輸出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:,

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是找出成績最高的學(xué)生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個(gè)最髙分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].nu

溫馨提示

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