2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年湖北省孝感市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.軟件開發(fā)模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

2.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

3.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

4.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

5.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

6.設(shè)x、Y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.xYB.x<=YC.x‖y+zy-zD.!((x

7.圖的深度優(yōu)先遍歷類似于二叉樹的_______。

A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷

8.

9.有以下程序:

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

10.對長度為n的無序線性表進(jìn)行順序查找,則查找成功、不成功時(shí)的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

11.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是()。A.2B.1C.0D.3

12.一個(gè)算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時(shí)間復(fù)雜度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)

13.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯(cuò)誤的是A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

14.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個(gè)FBI項(xiàng)目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請?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)算/每字符

15.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

16.A.A.75310246B.01234567C.76310462D.13570246

17.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

18.有以下程序

#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é)果是A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

19.如果對線性表的操作只有兩種,即刪除第一個(gè)元素,在最后一個(gè)元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

20.以下有關(guān)宏的描述不正確的是()。

A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進(jìn)行替換C.宏名無類型D.宏名必須用大寫字母表示

二、2.填空題(20題)21.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[o];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);printf("%d\n",s);

}

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

#include<stdio,h>

main()

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

if(c=a)printf("%d\n",c);

elseprintf("%d\n",b);}

24.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

25.下面函數(shù)用來求出兩個(gè)整數(shù)之和,并通過形參傳回兩數(shù)相加之和值。請?zhí)羁铡?/p>

intadd(intx,inty,【】,)

{【】=x+y;}

26.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

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

}

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

main()

{

inta[]={2,4,6},*prt=&a[0],x=8,y,z;

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

z=(*(ptr+y<x)?*(ptr+y):x;

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

}

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

#include<stdio.h>

main()

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

inti=0,j=0;

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

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

30.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

①第0列元素和主對角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數(shù)據(jù)的個(gè)數(shù)每行遞增1。

請將程序補(bǔ)充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

)

31.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。

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

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

33.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

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

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

#include<stdio.h>

main()

{intx=10,y=10,i;

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

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

}

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

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

d[j]=0;

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

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

38.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

39.在使用putchar和getchar函數(shù)處理字符時(shí),必須在程序的開頭出現(xiàn)包含頭文件的命令行是【】。

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

voidfun(intx,inty)

{x=x+y;Y=x-y;x=x-y;

printf(“%d,%d”,x,y);}

main()

{intx=2,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是()。#include"stdio.h"main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeo(structst),sizeof(un));}

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

42.設(shè)有定義:inta=2,b=3,c=4;,則下列選項(xiàng)中值為0的表達(dá)式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

43.某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()

A.n+1B.n-1C.2nD.n/2

44.以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個(gè)合法的整型單元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;)

C.#includemain(){int*p;fun(&p);…}intfun(int**p)*p=(int*)malloc(2);}

D.#includemain(){iht*p;fun(p);…}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}

45.有以下程序

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é)果是

46.下面程序中有錯(cuò)誤的行是(每行程序前面的數(shù)字表示行號)

1main()

2{

3inta[3]={1};

4inti;

5scanf("%d",&a);

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

7printf("a[0]=%d\n,"a[0]);

8}

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

47.下列敘述中錯(cuò)誤的是()。

A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法

B.c程序可以由多個(gè)程序文件組成

C.C程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

48.(50)

A.p->nextB.pC.sD.s->next

49.有以下程序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]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

A.i-1B.iC.i+1D.4-i

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

A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù),定義元素個(gè)數(shù)可變的數(shù)組

B.在C語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義了一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)

51.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

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

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

53.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

54.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

55.以下程序

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é)果是

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

56.假定所有變量均已正確說明,下列程序段運(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

57.若有說明語句:charch='\x41';,則ch中______。

A.包含4個(gè)字符B.包含2個(gè)字符C.包含1個(gè)字符D.字符個(gè)數(shù)不確定,說明不正確

58.已知inta=1,b=3則a^b的值為

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

59.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

60.執(zhí)行x=5>1+2&&2||2*4<4-!0后,x的值為______。

A.-1B.0C.1D.5

四、選擇題(20題)61.

62.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;

B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"

C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;

D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;

63.有以下程序

#include<stdio.h>

#defineN4

voidfun(inta[][N],intb[])

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

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

printf("\n");

}

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

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

64.

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

A.調(diào)用printf函數(shù)時(shí),必須要有輸出項(xiàng)

B.使用putChar函數(shù)時(shí),必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以十二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出

D.調(diào)用getChar函數(shù)讀入字符時(shí),可以從鍵盤上輸入字符所對應(yīng)的ASCIl碼

66.某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

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

67.設(shè)有定義

68.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中

69.軟件生命周期中花費(fèi)時(shí)間最多的階段是

A.詳細(xì)設(shè)計(jì)B.軟件維護(hù)C.軟件編碼D.軟件測試

70.請閱讀以下程序:

上面程序的輸出結(jié)果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

71.已定義以下函數(shù):

fun(int*p)

{return&p;}

該函數(shù)的返回值是()。

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

72.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)次序的是()。

A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上

73.有以下程序

74.

若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):

inti=8,j=9;

則下列語句:

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

輸出的結(jié)果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

75.

76.

77.有以下程序:

若運(yùn)行時(shí)輸入:246<;回車>;,則輸出結(jié)果為()。

A.204B.200C.240D.246

78.

79.下面的函數(shù)調(diào)用語句中func函數(shù)的實(shí)參個(gè)數(shù)是

func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));

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

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

A.c語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行

B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行

C.c語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行、

D.main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等

五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當(dāng)a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)“a4b3c2dlef9”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為“l(fā)g2f3e4dcba”。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:使字符串中前部的*號不得多余m個(gè);若多余m個(gè),則刪除多余的*號;若少于或等于m個(gè),則什么也不做,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G****;若m的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。

2.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管Y的類型是float.x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)沒有指定類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后Y的類型是int型。

3.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。

4.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個(gè)字符放到數(shù)組str1中,除了逐個(gè)輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實(shí)行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

5.D此題考查的是基本的循環(huán),答案為D。

6.D本題考查邏輯運(yùn)算符的使用。當(dāng)“”的兩個(gè)運(yùn)算對象都是邏輯l時(shí),表達(dá)式返回值才是1;“‖”的兩個(gè)運(yùn)算對象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是l,x<y為1,!z為0,10為1,0‖為1,因此,!l為0。

7.A

8.B

9.C即輸出x[0][2]x[l][1]x[2][0]分別為357。

10.C

11.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。

12.A

13.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項(xiàng)A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項(xiàng)B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個(gè)值。故選項(xiàng)D不正確,答案應(yīng)該選擇D。

14.D

15.A解析:本題定義了一個(gè)指向由3個(gè)元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時(shí)用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項(xiàng)為所選。

16.A本題的考點(diǎn)是C語言的數(shù)組及其排序。本題的程序中分為2個(gè)循環(huán)體,第一個(gè)循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個(gè)元素從大到小排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個(gè)循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個(gè)開始的4個(gè)元素從小到大排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項(xiàng)A。

17.D

18.C解析:本題中第一行代碼對指針P進(jìn)行了初始化,其指向數(shù)組a的第6個(gè)元素,在其后的操作中p的值也沒有改變過,所以最后輸出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代碼中對q指向的值進(jìn)行賦值,等價(jià)于*q=a[10]=11,所以輸出結(jié)果*q為11。

19.B

20.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識符字符串.標(biāo)識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。

21.x+=2

22.66解析:s=f(&aa[0],3)=aa[0]+aa[1]+aa[2]=1+2+3=6。

23.11解析:該程序要注意的是if語句的判斷條件“c=a”是賦值,而不是“c==a”。由于a=1,故條件c=a使c的值為1(真),所以輸出c的值1。

24.rewindrewind解析:庫函數(shù)rewind()的作用是使文件位置指針重新返回文件的開頭,所以本題應(yīng)該填rewind。

25.int*p*p或p[0]int*p\r\n*p或p[0]

26.模塊模塊

27.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個(gè)if語句,然后再執(zhí)行第一個(gè)if語句,最后用return返回?cái)?shù)值。

28.66解析:條件運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系個(gè)表達(dá)式(*ptr+y)<x)?(ptr+y):x的值,再賦紿變量z,當(dāng)y=O時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(pry)=2,所以z=2;當(dāng)y=1時(shí)*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,*((ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

29.2424解析:本題關(guān)鍵是while循環(huán)。

當(dāng)i=0時(shí),滿足條件:i<7&&11%2==1,執(zhí)行j=0+11=11,i++,i為1;

當(dāng)i=1時(shí),滿足條件:i<7&&13%2=1,執(zhí)行j=11+13=24,i++,i為2;

當(dāng)i=2時(shí),不滿足條件:i<7&&14%2==1,循環(huán)結(jié)束。輸出j的值24。

30.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

31.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。

32.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。

33.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

34.軟件開發(fā)

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

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

37.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷貝函數(shù),作用是將字符串sl拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2'esshe')相當(dāng)于strcpy(strl+6'esshe');,因此可得答案為Howdoesshe。

38.2525解析:#NAME?

39.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函數(shù)時(shí),必須在程序的開頭出現(xiàn)包含頭文件#include'stdio.h'的命令行。putchar的函數(shù)調(diào)用形式為:putchar(字符變量或字符常量);getchar函數(shù)的調(diào)用形式為:變量=getchar();getchar后的一對圓括號內(nèi)沒有參數(shù),但這一對圓括號不可少。

40.32233,2,2,3解析:主函數(shù)中首先定義了整型變量x和y,并分別給它們賦初值為2和3,接著調(diào)用fun()函數(shù),fun()函數(shù)把實(shí)參x和y的值傳給形式參數(shù)x和y,實(shí)參和形參不再有聯(lián)系。在fun()函數(shù)中,通過運(yùn)算使x和y的值交換過來,所以fun()函數(shù)中的輸出結(jié)果是“3,2”。fun()函數(shù)調(diào)用返回輸出x和y依然是原來的x和y,為“2,3”。原因是變量作為形參傳值的,對形參的修改并不影響對應(yīng)的實(shí)參。所以最后輸出為3,2,2,3。

41.B

42.A解析:在選項(xiàng)A)中,因?yàn)?a=0,所以關(guān)系表達(dá)式!a==1的值為0,又因?yàn)檫壿嬇c運(yùn)算符“&&”兩邊的表達(dá)式只要一個(gè)等于零,則整個(gè)表達(dá)式為零,所以選項(xiàng)A)正確。在選項(xiàng)B)中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!c為假,而表達(dá)式(a<b)&&!c‖1為真,所以整個(gè)表達(dá)式的值為真。選項(xiàng)C)中,a&&b的結(jié)果為真。在選項(xiàng)D)中,a‖(b+b)&&(c-a)的結(jié)果為真。

43.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為n+1。因此,本題的正確答案是選項(xiàng)A。

44.C解析:本題考核的知識點(diǎn)是指針變量作為函數(shù)的參數(shù)以及變量的作用域。在選項(xiàng)A中,main()函數(shù)中定義了一個(gè)指針變量p,調(diào)用fun()函數(shù)時(shí)把p傳給形參p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實(shí)現(xiàn)讓實(shí)參p指向一個(gè)整型單元,故選項(xiàng)A錯(cuò)誤.選項(xiàng)B中實(shí)現(xiàn)的也是讓實(shí)參p,指向一個(gè)在函數(shù)fun()定義的局部變量s,因此也是錯(cuò)誤的;選項(xiàng)C在函數(shù)fun()中分配了兩個(gè)字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個(gè)字節(jié),因此,選項(xiàng)C是正確的;選項(xiàng)D在主函數(shù)中定義了一個(gè)指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個(gè)整型單元并把首地址賦值給行參指針變量p,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應(yīng)實(shí)參指針變量的值,因此選項(xiàng)D也是錯(cuò)誤的.所以,C選項(xiàng)為所選。

45.88解析:*p=&a[3],即*p=4,*q=p+2;即*q=6,所以*p+*q=10。

46.D解析:主要考查了一維數(shù)組的定義、初始化及元素的引用方法。第5行代碼中scanf輸入數(shù)據(jù)時(shí),要求輸入項(xiàng)為地址,而數(shù)組名即為數(shù)組的首地址,所以不應(yīng)該再在前面加取地址符號&。

47.A答案A

解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。

48.B解析:在主函數(shù)中,定義了一個(gè)結(jié)構(gòu)體型指針變量head,然后將函數(shù)CreatList()的返回值賦給指針變量head,從這里可知函數(shù)CreatList()的返回值為structnode*類型,所以第48處的空白應(yīng)該填structnode*,故48題選項(xiàng)C正確;在函數(shù)CreatList()中首先定義3個(gè)結(jié)構(gòu)體型指針變量h,p和q。然后調(diào)用malloc()函數(shù)分配了一個(gè)結(jié)點(diǎn)空間,并讓指針h指向它,開始指針p、q和h都指向它,然后調(diào)用一個(gè)while循環(huán)語句,當(dāng)?shù)竭_(dá)字符串?dāng)?shù)組s的末尾結(jié)束循環(huán),在每次循環(huán)中,分配一個(gè)結(jié)點(diǎn)空間,并讓p指向它,然后讓該結(jié)點(diǎn)的data域的值等于字符串指針s所指的值,因此第49題的正確答案為選項(xiàng)A:接下來讓指針q所指結(jié)點(diǎn)的next指針指向結(jié)點(diǎn)p,然后讓指針q指向該指針的所指結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)即p,所以第50個(gè)空白處應(yīng)該填p,選擇B。故第48題4個(gè)選項(xiàng)中選項(xiàng)C符合題意;第49題4個(gè)選項(xiàng)中選項(xiàng)A符合題意;第50題4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

49.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個(gè)for循環(huán)控制空格的輸出,第二個(gè)for循環(huán)控制的輸出。而在第i行,輸出的第一個(gè)元素是num[i][i],所以下劃線處應(yīng)填i。

50.D解析:本題考查數(shù)組的兩個(gè)知識點(diǎn):①在C語言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動,數(shù)組定義好之后,它所能容納的元素的個(gè)數(shù)也就確定了;②同一個(gè)數(shù)組中所有元素的類型是一樣的。

51.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

52.A

53.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進(jìn)制表示為00001001,020的二進(jìn)制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進(jìn)制輸出為040。

54.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。

55.B解析:在main函數(shù)中,對f(1)和f(2)的值進(jìn)行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值為1+2=3

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

57.C解析:'\\x41'是轉(zhuǎn)義字符,x表示41是十六進(jìn)制數(shù),41是字母a的ASCII碼值。

58.C解析:^是按位異或運(yùn)算,如果對應(yīng)位不同則結(jié)果為1,相同則為0。

59.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長度才可以省略,數(shù)組的長度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

60.C

61.A

62.By=(x=)071:x<0?-1:0)中有兩個(gè)三目運(yùn)算符,因此按從右到在的順序運(yùn)算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項(xiàng)。

63.B本題考查二維數(shù)組的相關(guān)操作。程序主要包括兩個(gè)部分:主函數(shù)部分和fun函數(shù)。主函數(shù)初始給出了一個(gè)4×4的二維矩陣,并對每一行賦初值,可以看出每一行都要有4個(gè)元素,而對于給出的初值個(gè)數(shù)不滿足4個(gè)的,要先從第一列開始將各個(gè)值賦給各列,不足的部分用0補(bǔ)齊。函數(shù)fun的作用是將二維矩陣a中行號與列號相同的數(shù)據(jù)賦值給一維矩陣y,y的下標(biāo)與該數(shù)據(jù)在a中的行號相同。題目所要求解的即通過printf函數(shù)將矩陣y中的元素按照順序輸出。本題中二維矩陣a初始化后為{{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論