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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.以下說法中正確的是()。

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

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

C.C函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中

2.在下面的一維數(shù)組定義中,哪一個有語法錯誤()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];

3.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的運(yùn)行結(jié)果是()。

A.036B.012C.048D.147

4.

5.有如下程序:

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn(2);

}

main()

{printf("%d\n",fib(3));}

該程序的輸出結(jié)果是A.A.2B.4C.6D.8

6.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運(yùn)行結(jié)果是()。

A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,

7.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個回車符):3845<CR>,則狴序輸出結(jié)果為()。

A.77889B.77868C.776810D.7.78866e+007

8.數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

9.設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運(yùn)算稱為()。

A.連接B.模式匹配C.求子串D.求串長

10.在一個被調(diào)用函數(shù)中,關(guān)于return語句使用的描述,()是錯誤的。

A.被調(diào)用函數(shù)中可以不用return語句

B.被調(diào)用函數(shù)中可以使用多個return語句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語句

D.被調(diào)用函數(shù)中,一個return語句可以返回多個值給調(diào)用函數(shù)

11.

12.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

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

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

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

14.若有以下程序

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

A.China!B.toChina!C.meyoutoChina!D.youtoChina!

15.若已知一個棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

A.IB.n-iC.n-i+1D.不確定

16.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

17.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點最短路徑的Floyd-Warshall算法

18.有以下程序:

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

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

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

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

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

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

20.在E-R圖中,用來表示實體的圖形是______。A.矩形B.橢圓形C.菱形D.三角形

二、2.填空題(20題)21.無論對于順序存儲,還是鏈接存儲的棧和隊列來說,進(jìn)行插入或刪除運(yùn)算的時間復(fù)雜性均相同,則為【】。

22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。

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

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

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

25.對下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。

26.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

27.注釋一般分為序言性注釋和______注釋。

28.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

30.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。

31.算法的工作量大小和實現(xiàn)算法所需的存儲單元多少分別稱為算法的【】。

32.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;j+=2;)

if(【】)

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

puts(a);

printf("\n");

}

33.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

34.近年來形成了軟件開發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_發(fā)方法。

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

main()

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

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

arr[i]=i;

fov(i=1;i<4;i++)

k+=arr[i]+i;

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

36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),帶鏈的棧屬于【】。

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

main()

{

inta[4]]4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0.j=0,s=0;

while(i++<4}

if(i==2||i==4)continue;

j=0;

do

{

s+=a[i][j]:

j++;

}while(j<4);

}

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

}

voidfun(intx,inty)

}

38.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,否則返回0。請?zhí)羁铡?/p>

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

40.若a的值為1,則表達(dá)式!a‖++a的值是______。

三、1.選擇題(20題)41.有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;1++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);程序運(yùn)行后的輸出結(jié)果是______。

A.012B.123C.234D.345

42.下列敘述中,不正確的是______。

A.字符型數(shù)組中可以存放字符串

B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出

C.可以對整型數(shù)組進(jìn)行整體輸入、輸出

D.不能在賦值語句中通過賦值運(yùn)算符:對字符型數(shù)組進(jìn)行整體賦值

43.變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是

A.a^bB.a|bC.a&bD.a<<4

44.假定當(dāng)前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);

A.123321B.123C.321D.以上答案都不正確

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

A.在不同函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

46.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

47.設(shè)有以下聲明語句streetex{intx;floaty;charz;}example;則下面的敘述中不正確的是______。

A.struct是結(jié)構(gòu)體類型的關(guān)鍵字

B.example是結(jié)構(gòu)體類型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類型

48.有如下程序:main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}該程序的輸出結(jié)果是______。

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

49.下列程序段中,不能正確賦值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

50.C語言規(guī)定,在一個C程序中,main()函數(shù)的位置()。

A.必須在系統(tǒng)調(diào)用的庫函數(shù)之后B.必須在程序的開始C.必須在程序的最后D.可以在任意位置

51.分析下列程序:#include<stdio.h>main(){int*p1,*p2,*p;inta=6,b=9;p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("%d,%d",*p1,*p2);printf("%d,%d",a,b);}程序的輸出結(jié)果為()。

A.9,66,9B.6,99,6C.6,96,9D.9,69,6

52.有以下程序:main(){intm,n,P;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則王確的輸入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,P=789

D.123456789

53.下面不屬于軟件工程的3個要素的是______。

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

54.假設(shè)在turboc2.0采用small模式編譯如下程序main(){chara[4]={'a','b'};char*b="abc";printf("%d,%d",sizeof(a),sizeof(b));}其輸出結(jié)果為______。

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

55.若有定義: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);

56.下列敘述中不正確的是

A.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

B.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

C.數(shù)據(jù)庫設(shè)計是指設(shè)計一個能滿足用戶要求,性能良好的數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),但是需要操作系統(tǒng)的支持

57.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.a+1C.&a+1D.&a[0]

58.軟件危機(jī)產(chǎn)生的原因從根本上說是()

A.軟件需求的增長超過軟件生產(chǎn)率的提高

B.軟件需求的增長小于軟件生產(chǎn)率的提高

C.軟件需求的減少大于軟件生產(chǎn)率的減少

D.軟件需求的減少小于軟件生產(chǎn)率的減少

59.以下程序的功能是進(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

60.有以下程序段:intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是______。

A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次

四、選擇題(20題)61.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確

62.

63.在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=&a;”,當(dāng)執(zhí)行“P++;”后,下列說法錯誤的是()。

A.P向高地址移了一個字節(jié)B.P向高地址移了一個存儲單元C.P向高地址移了兩個字節(jié)D.P與a+1等價

64.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}

A.123B.234C.223D.233

65.

66.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

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

A.軟件測試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護(hù)只包括對程序代碼的維護(hù)

D.以上三種說法都不對

68.有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

程序執(zhí)行后的輸出結(jié)果是()。A.A.7B.3C.2D.0

69.

70.

在下列給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

71.

72.下列敘述中錯誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)

B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機(jī)中所占的空間不一定是連續(xù)的

73.

74.設(shè)有以下函數(shù):

voidfun(intn,char*s){…}

則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

75.軟件工程出現(xiàn)的原因是

A.程序設(shè)計方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計算機(jī)的發(fā)展

76.

已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字堪的表達(dá)式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=c&&c<=Z

D.c<=(z-32)&&(a-32)<=c

77.開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()

A.大系統(tǒng)的復(fù)雜性B.人員知識不足C.客觀世界千變?nèi)f化D.時間緊、任務(wù)重

78.有以下程序

main()

{inta,b,d=5;

a=d*10%8;b=a&&(-1);

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

}

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

A.10,1B.2,1

C.10,0D.2,0

79.

80.有如下程序

main()

{

chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)

printf("%s\n",p);

}

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

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B解析:C++程序總是從main函數(shù)開始執(zhí)行。

2.C

3.Cmain函數(shù)定義3行3列的整型二維數(shù)組a;定義數(shù)組指針P,P指向包含3個元素的數(shù)組。程序首先將a賦給p。for循環(huán)中,i=0時,P指向a的第1個元素{0,1,2},輸出p[0]即0;i=1時,p指向a的第2個元素{3,4,5},輸出P[1]即4;i=2時,p指向a的第3個元素{6,7,8},輸出P[2]即8。所以程序輸出048。故本題答案為C選項。

4.A

5.B

6.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。

7.A

8.AA。數(shù)據(jù)定義語言(DDL)是集中負(fù)責(zé)數(shù)據(jù)庫模式定義與數(shù)據(jù)庫對象定義的語言。數(shù)據(jù)操縱語言(DML)是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)的語句。數(shù)據(jù)控制語言(DCL)是用來設(shè)置或者更改數(shù)據(jù)為用戶或角色權(quán)限的語句。據(jù)此,本題正確答案為選項A。

9.B

10.D

11.C

12.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項。

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

14.D該程序首先定義*a和b[],并進(jìn)行初始化。主函數(shù)中通過外層for循環(huán)語句,遍歷字符數(shù)組b[],并且將符合if條件語句的字符賦給數(shù)組p;for內(nèi)層循環(huán)語句,遍歷字符數(shù)組a[]。再將符合if條件語句的結(jié)果輸出。因此D選項正確。

15.C

16.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。

17.D

18.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內(nèi)循環(huán),j的值為3,不滿足條件,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內(nèi)循環(huán)條件,跳出內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進(jìn)入內(nèi)循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內(nèi)循環(huán),跳出外循環(huán)打印m的值。

19.C

20.A解析:在E-R圖中,用三種圖框分別表示實體、屬性和實體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實體,框內(nèi)標(biāo)明實體名;用橢圓狀框表示實體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項A正確。

21.O(2)

22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。

23.morningclassmorningclass解析:本題考查了兩個知識點:①“++、--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n=\'c\'時,執(zhí)行“case\'c\':”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。

24.存儲結(jié)構(gòu)

25.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結(jié)點。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點B,然后訪問結(jié)點D,因為結(jié)點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點F的左子樹。然后訪問根結(jié)點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點E,然后訪問結(jié)點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。

26.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運(yùn)行軟件。

27.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

28.(double*)(double*)解析:本題考查強(qiáng)制類型轉(zhuǎn)換。函數(shù)malloc的默認(rèn)返回是void*,若要使指針指向double類型,必須進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。

29.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。

30.有效性測試有效性測試

31.時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度

32.a[i]>a[j]a[i]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求將下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2。最后通過條件a[i]>a[j]對元素大小進(jìn)行判斷并交換。

33.概念(或概念級)概念(或概念級)

34.原型化原型化

35.1212解析:本題通過第一個for循環(huán)將數(shù)組arr[0]=arr[9]分別賦值為0-9,通過第二個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:

36.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:帶鏈的棧屬于棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)。

37.9292解析:本主函數(shù)中首先定義了一個4行4列的二維數(shù)組,然后執(zhí)行一個while循環(huán),該循環(huán)中又嵌套了一個do-while循環(huán)。現(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結(jié)束循環(huán)當(dāng)i++的值為4的時候結(jié)束循環(huán),當(dāng)i=0時,執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓j=4,然后執(zhí)行do-while循環(huán)體,我們不難看出do-while循環(huán)的功能是將笫i+1行的所有元素加起來,所以這時s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3]26,當(dāng)i=1時,i+1=2,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當(dāng)i=2時,i加1變?yōu)?,把笫3+1行的所有元素的加到s上,此時s=s+a[2][0]+a[2][1]a[2][2]+a[2][3]=92,當(dāng)i=3時,3+1=4,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán),當(dāng)i=3時,if后面括號里的表達(dá)式的值為真執(zhí)行后面的confulue語句,結(jié)束該次循環(huán)當(dāng)i=4時while循環(huán)結(jié)束,所以最后輸出的s的值為92。

38.如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。

39.0240480,2,4\r\n0,4,8解析:本題主要考查了for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

40.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

41.D解析:p指向的a的首地址,由于C語言是行優(yōu)先存儲的,一維數(shù)組p就依次存放了a中從第0行到第2行的所有元素,因此a[1][i]就對應(yīng)了p[3]~p[5]。

42.C

43.A解析:本題考查的是位運(yùn)算的知識,對于任何二進(jìn)制數(shù),和1進(jìn)行異或運(yùn)算會讓其取反,而和0進(jìn)行異或運(yùn)算不會產(chǎn)生任何變化。

44.A解析:本題的功能是順序的讀兩個文本文件,依次輸出。當(dāng)打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。

45.D解析:C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用,不會影響到其他函數(shù)。在不同函數(shù)中使用相同的變量名不代表是同一變量,A)項正確;在函數(shù)定義時聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量,B)正確;在一個函數(shù)中定義的變量是這個函數(shù)的局部變量,所以只在這個函數(shù)內(nèi)起作用,C)正確;復(fù)合語句中定義的變量其作用域是這個復(fù)合語句,不會擴(kuò)大到整個函數(shù),所以D)項錯誤。

46.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

47.B解析:example是結(jié)構(gòu)體變量名。

48.A解析:題中的外循環(huán)只執(zhí)行了2次:

第1次:a[1][0]=3,a[1][1]=4,所以s=7;

第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

49.C解析:本題考查了字符的輸入函數(shù)getchar和利用scanf函數(shù)輸入一個字符。用scanf輸入字符時,格式說明字符應(yīng)該為%c。本題選項C)因為指針p沒有賦初值,所以是一個不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項C錯誤。

50.D解析:每個C程序有且只有一個主函數(shù)(main),且程序必須從main()函數(shù)開始執(zhí)行,而且main()函數(shù)可以放在程序中的任意位置。

51.A解析:通過p1=&a,p2=&b分別將a、b的地址賦給指針p1、p2,接著執(zhí)行if語句,發(fā)現(xiàn)a<b成立,則通過交換p1、p2的值,即交換a、b所在存儲單元的地址,但是a、b的值并沒有發(fā)生變化。

52.A解析:本題的考點是關(guān)于C語言的輸入語句scanf的通配符。C語言規(guī)定:scanf中的雙引號中的輸入格式(就是俗稱的通配符)決定了輸入的格式。要輸入123給m,456給n,789給p,由scanf的輸入格式:“m=%dn=%dp=%d”決定了輸入必須的格式是:m=123n=456p=789。

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

54.A解析:用small模式編譯,指針變量占2個字節(jié)。sizeof(array):數(shù)組名array代表數(shù)組本身,sizeof函數(shù)測出的是整個數(shù)組的大小。a數(shù)組的大小為4,b指針變量的大小為2。

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

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

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

56.B解析:B選項錯誤,原因是,數(shù)據(jù)庫應(yīng)該具有物理獨立性和邏輯獨立性,改變其一而不影響另一個。

57.D解析:本題考查如何引用數(shù)組元素的地址。

選項A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

58.B

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

60.A解析:注意本題有個陷阱,馬虎的考生將紛紛落馬。本來、while中的表達(dá)式應(yīng)為k==1,而本題卻為k=1,是賦值表達(dá)式而不是邏輯表達(dá)式。因此,編譯器將其值一直認(rèn)為是1,因此表達(dá)式一直為真,陷入無限次的循環(huán)。

61.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。

ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。

ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯。

62.B

63.A因為P是整型的指針變量,因此其移動一個位置即兩個字節(jié),故選擇A選項。

64.D本題考查自增運(yùn)算符“++”、邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“||”。自增運(yùn)算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運(yùn)算,再使用變量的值加l。當(dāng)邏輯與運(yùn)算符“&&’’兩邊的運(yùn)算對象都為真時,邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“||”只要一個值為1,值就為1。根據(jù)運(yùn)算符的優(yōu)先級,題中應(yīng)先計算內(nèi)層括號中的值。++j是先自加后運(yùn)算,因此運(yùn)算時j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為1;1與任何數(shù)都為進(jìn)行或(||)運(yùn)算,結(jié)果都為1,因此k=3的表達(dá)式i++是先運(yùn)算后自加,因此運(yùn)算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。

65.A

66.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值就是整個條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。

67.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯誤的過程;軟件測試是由專門的測試人員完成,是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論