2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下程序段中,輸出信息不能正確反映變量大小關(guān)系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

2.下面不能正確表示a*b/(c*d)的表達式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

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

4.以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導致不能實現(xiàn)預(yù)定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成錯誤的原因是()。A.定義語句“inti,max;”中max未賦初值

B.賦值語句“max=MIN;”中,不應(yīng)給max賦MIN值

C.語句“if(max<x[i])max=x[i];”中判斷條件設(shè)置錯誤

D.賦值語句“max-MIN;”放錯了位置

5.若變量已正確定義,在語句“if(W)printf("%d\n",k);”中,以下不可替代w的是()。

A.ab+cB.ch=getcharC.a==b+CD.a++

6.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調(diào)度方法

7.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

8.判斷一個棧ST(最多元素為Maxsize)為空的條件是()。

A.ST->top!==一1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

9.若有以下程序

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

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

10.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

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

11.

12.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

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

A.C語言語句必須在一行內(nèi)寫完

B.C語言程序中的每一行只能寫一條語句

C.C語言程序中的注釋必須與語句寫在同一行

D.簡單C語言語句必須以分號結(jié)束

14.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

15.有以下程序:#include<stdio.h>voidmain(){doublex=3.14159;printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);}程序運行后的輸出結(jié)果是()。

A.3.142000B.3.141000C.3.143000D.3.140000

16.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1

17.設(shè)fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

18.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

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

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

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

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}

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

二、2.填空題(20題)21.下面rotate函數(shù)的功能:將n行n列的矩陣A轉(zhuǎn)置為A',請?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for{i=0;i<N;j++}

for{j=0;【】;j++}

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

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

main()

{inta=l,b=3,c=5;

if(C=a+b)printf("yes\n");

elseprintf("no\n");

}

23.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

24.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

25.診斷和改正程序中錯誤的工作通常稱為【】。

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

27.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

28.將經(jīng)過確認測試的軟件與外設(shè)、網(wǎng)絡(luò)等連接在一次運行的測試叫【】

29.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

31.若有程序

main()

{inti,j;

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

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

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入______。

32.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

33.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

34.匯編程序和編譯程序翻譯的目標程序需經(jīng)【】連接成可執(zhí)行的程序。

35.結(jié)構(gòu)化分析方法是面向______進行分析的方法。

36.下面程序的功能是:將字符數(shù)組a中下標值為偶數(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");

}

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

38.軟件設(shè)計模塊化的目的是______。

39.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

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

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n",y);}程序運行后的輸出結(jié)果是()。

A.10B.11C.14D.15

42.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}該程序的執(zhí)行結(jié)果是______。

A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)

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

A.C語句必須以分號結(jié)束

B.復(fù)合語句在語法上被看作一條語句

C.空語句出現(xiàn)在任何位置都不會影響程序運行

D.賦值表達式末尾加分號就構(gòu)成賦值語句

44.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

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

46.假定int類型變量占用兩個字節(jié),若有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。

A.3B.6C.10D.20

47.對下列二叉樹進行中序遍歷的結(jié)果是()

A.ABCDEFGHB.ABDGEHCFC.GDBEHACFD.GDHEBFCA

48.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類說明是______。

A.auto和static

B.auto和register

C.register和static

D.extern和register

49.在使用程序流程圖來表示算法時,菱形用來表示_______。

A.輸入與輸出B.子程序C.判斷分支D.循環(huán)邊界

50.以下程序的輸出結(jié)果是()。#include<stdio.h>intfan(int);main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

51.下列能正確定義一維數(shù)組的選項是()。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

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

A.在C程序中,main()函數(shù)必須位于程序的最前面

B.在C程序中,一條語句只能寫一行而不能寫多行

C.C程序是以行為基本單位的

D.C語言本身沒有輸入輸出語句

53.下面的程序執(zhí)行后,文件test.txt中的內(nèi)容是()#include<stdio.h>voidfun(char*<fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test","newword");fun("test","hello");}

A.helloB.newworldhello,C.newworldD.hello,rld

54.有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是

A.456B.258C.369D.789

55.有以下程序:#include<stdio.h>#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>:n;i--)a[i+1]=a[i];}main(){inti,a[N.]=11,2.3,4,5,6,7,8,9,10[;fun(a,2,9)for(i=0;i<5;i++)printf("%d",a[i]);程序運行后的輸出結(jié)果是()。

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

56.若有宏定義如下:#defineX5#defineYX+1#defineZY*X/2以下程序段的輸出結(jié)果是______。inta;a=Y;printf("%d\n",Z);printf("%d\n",--a);

A.76B.126C.125D.75

57.以下不正確的敘述是A.A.在C程序中,逗號運算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變

D.當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值

58.下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是A.內(nèi)模式B.外模式C.概念模式D.邏輯模式

59.以下敘述中錯誤的是()。

A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個整數(shù)作為地址值.

D.當在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL

60.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。

A.1267B.1256C.1278D.1245

四、選擇題(20題)61.

62.已知longi=32768;執(zhí)行語句printf(“%d”,i);屏幕顯示()。

A.-1B.-32768C.1D.32768

63.

64.表達式3.6-5/2+1.2+5%2的值是()。A.3.8B.4.8C.3.3D.4.3

65.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

66.(16)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名不屬于數(shù)據(jù)流圖合法圖符的是_____。

A.控制流

B.加工

C.數(shù)據(jù)存儲

D.源和潭

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

A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

68.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數(shù)學語言作為語言的表達形式

B.計算機只能處理由0和1的代碼構(gòu)成的二進制指令或數(shù)據(jù)

C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件

D.每一種高級語言都有它對應(yīng)的編譯程序

69.(44)對長度為N的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()

A.N+1

B.N

C.(N+1)/2

D.N/2

70.

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

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

72.

有下列程序:

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i<n-l;i++)

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

if(a[i]<a[j]){t=a[i];a[i]一a[j];a[j]=t;}

}

main

{intaa[10]:{1,2,3,4,5,6,7,8,9,10),i;

sort(aa+2,5);

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

printf("\n");

}

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

A.1,2,3,4,5,6,7,8,9,l0,

B.1,2,7,6,3,4,5,8,9,10,

C.1,2,7,6,5,4,3,8,9,10,

D.1,2,9,8,7,6,5,4,3,10,

73.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):執(zhí)行該程序后,x的值為()。A.trueB.falseC.0D.1

74.

75.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

76.

有以下程序.

#include<stdio.h>

main

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar;c6=getchar;

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第l列開始)

123<回車>

45678<回車>

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

A.1267B.1256C.1278D.1245

77.若a是數(shù)值類型,則邏輯表達式(a==1)Il(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

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

#include<stdio.h>

voidmain()

{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

79.有兩個關(guān)系R和T如下:

則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并

80.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。A.A.&B.^C.||D.~

五、程序改錯題(1題)81.下列給定的程序中,proc()函數(shù)的功能是:將str所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。

例如,若輸人:Howdoyoudo,則輸出:HoWdOyoUd0。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組S中,請編寫函數(shù)proc(),它的功能是:把分數(shù)最高的學生數(shù)據(jù)放在h所指的數(shù)組中。注意:分數(shù)最高的學生可能不止一個,函數(shù)返回分數(shù)最高學生的人數(shù)。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A選項A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項A錯誤,其他選項都正確。故本題答案為A選項。

2.A

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

4.D“max=MIN;”語句應(yīng)放在for循環(huán)之前,否則每次循環(huán)時都重新賦值,值沒有變化。

5.A符號<>不是C語言中的運算符,所以不能替代。

6.C

7.D

8.B

9.D第—個if語句a!=1條件為假,所以執(zhí)行dse后的語句r=1。第二個if語句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個if語句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個訌條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。

10.D

11.D

12.D

13.DC語句可以跨行來寫,但是必須以分號結(jié)束,所以A選項錯誤。C語言程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行,也可以不放在一行,所以C選項錯誤。故本題答案為D選項。

14.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

15.A根據(jù)算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性。表達式“int(x*1000+0.5)/(double)1000”,首先計算“x*1000”,由于x是double類型,1000是整型,所以“x*1000”的結(jié)果默認是double類型,即3141.59,加0.5后再執(zhí)行int的強制轉(zhuǎn)換,結(jié)果為3142。分母“(double)1000”強制轉(zhuǎn)換為double類型,此時計算“3142/(double)1000”,3142需要轉(zhuǎn)換成double類型,然后除以1000,結(jié)果為3.142000,默認保留小數(shù)點后6位。故本題答案為A選項。

16.D124的2進制值為1111100,要輸出為248即124*2,則2進制值為11111000,即右移l位,所以選D。

17.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數(shù)fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項C為正確答案。

18.C解析:要計算一個復(fù)雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結(jié)合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結(jié)合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結(jié)合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。

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

20.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

21.j<=ij<=i解析:由題意可知第一個空應(yīng)填入j<=i,第二個空應(yīng)填入a[i][j]=a[j][i]。

22.yesyes解析:本題中,if后面括號里的表達式為c=a+b為真(即c=1+3=4為真),所以,執(zhí)行printf('yes\\n'),最后輸出yes。

23.關(guān)系或一個關(guān)系關(guān)系或一個關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關(guān)系。

24.時間復(fù)雜度時間復(fù)雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復(fù)雜度。

25.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。

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

27.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個字符。用戶輸入的第1個字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

28.系統(tǒng)測試系統(tǒng)測試

29.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

30.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標志。因此,只輸出前五個字符,即Hello。

31.i=0j=20i=0j=20解析:本題考核的知識點是scanf()數(shù)的使用.該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。

32.調(diào)試調(diào)試

33.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

34.裝配程序裝配程序

35.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

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

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

38.降低復(fù)雜性降低復(fù)雜性

39.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

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

41.C解析:本程序通過語句p=&a[1];將指針變量p指向存儲單元a[1],使得p[0]的值為4,通過for循環(huán),使y的值丸P[1]與p[2]之和,即y=6+8,所以輸出的y值為14。

42.B解析:本題x賦初值為3,當執(zhí)行printf('%d',x-);時,由于X--的作用是先運算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。

43.C解析:C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個分號,分號是C語句的必要組成部分。復(fù)合語句也稱為“語句塊”,其形式如下:{語句1;語句2;……語句n;},即用一對大括號把若干語句括起來構(gòu)成一個語句組。一個復(fù)合語句在語法上視為一條語句,在一對花括號內(nèi)的語句數(shù)量不限。一個賦值表達式的最后加一個分號就成為一條語句,即賦值語句??照Z句是只有一個分號的語句,它什么也不做,程序設(shè)計中有時需要加一個空語句來表示存在一條語句,但隨意加分號會導致邏輯上的錯誤,而且這種錯誤十分隱蔽,編輯器也不會提示邏輯錯誤,需要慎用。

44.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

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

軟件生命周期的主要活動階段為:

①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

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

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

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

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

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

46.D解析:當數(shù)組定義后,系統(tǒng)就為其分配內(nèi)存空間,而不論其中有沒有內(nèi)容。因此,本題中數(shù)組x[10]不論是否為其元素初始化,它所分配的存儲空間仍為2*10=20個字節(jié)。

47.C遍歷就是不重復(fù)地訪問二叉樹的所有結(jié)點。二叉樹遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問根→按前序遍歷左子樹→按前序遍歷右子樹。②中序,按中序遍歷左子樹→訪問根→按中序遍歷右子樹。③后序,按后序遍歷左子樹→按后序遍歷右子樹→訪問根。所以對該二叉樹的中序遍歷結(jié)果為GDBEHACF。

48.B解析:extern、register、static、auto分別是定義外部變量、寄存器變量、靜態(tài)變量、自動變量,其中,自動變量和寄存器變量屬于動態(tài)存儲,調(diào)用時臨時分配單元而靜態(tài)變量和外部變量屬于靜態(tài)存儲,在整個程序運行時都存在。

49.C解析:美國國家標準化協(xié)會ANSI規(guī)定了一些常用的流程圖符號,其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。

50.B解析:本題考查函數(shù)的遞歸調(diào)用。fun函數(shù)共被調(diào)用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函數(shù)調(diào)用的,其余是在fun函數(shù)中調(diào)用的。

51.B解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C:選項D)中整型數(shù)組a中只能存儲整型數(shù)據(jù),而不能存儲字符串常量“0123”。

52.D解析:本題涉及C語言最基本的4個知識點:①C語言程序是由函數(shù)構(gòu)成的,C程序的基本單位是函數(shù);②每個C程序有且只有一個主函數(shù)main(),且程序必須從main()函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上;④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實現(xiàn)輸入和輸出操作。

53.A

54.C解析:本題考核的知識點是二維數(shù)組的定義,賦值及數(shù)組元素的引用。變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出m[2][0]、m[2][1]和m[2][2],其值分別為3,6,9。所以,C選項為所選。

55.C解析:本題函數(shù)fun的作用是將指定的數(shù)組元素(下標從n~m)向后移一位。調(diào)用函數(shù)fun(a,2,9)將a[2]到a[9]的各元素依次向后移一位,最后a數(shù)組中各元素的值分別為1,2,3,3,4,5,6,7,8,9,10,程序輸出數(shù)組的前5個元素:12334。

56.D解析:根據(jù)宏定義知:X=5,Y=X+1=6,Z=Y*X/2=X+1*X/2=7,a=Y=6,--a=5。

57.D解析:在C語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。

58.A數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。

外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一一部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。

59.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應(yīng)實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。

60.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結(jié)果是1245。故應(yīng)該選擇D。

61.D

62.D整型的數(shù)據(jù)占4個字節(jié),即-2147483648~2147483648,32768在其表達的范圍之內(nèi),所以原樣輸出。

63.A

64.A5,2值為2,5%2值為l,所以3.6—2+1.2+1值為3.8。

65.Csum+=i等價于sun+i,在本題中sum沒有賦初值,而題中只輸出sum的值,因此整個結(jié)果為不確定值。

66.A

67

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論