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

下載本文檔

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

文檔簡介

2021-2022年遼寧省阜新市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

2.

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

A.局部變量說明為static存儲類,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域?qū)⒈粩U(kuò)大

C.任何存儲類的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

4.程序設(shè)計(jì)方法要求在程序設(shè)計(jì)過程中,()。

A.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再畫出程序的流程圖

B.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋

C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋

D.以上3種說法都不對

5.下列語句組中,正確的是()。

6.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}

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

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

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

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

7.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。

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

8.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

9.若有定義“inta=0,b=1,c=1;”,關(guān)于邏輯表達(dá)式“a++||b++&&c++”中各個(gè)部分的執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”

B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”

C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”

D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”

10.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

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

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

13.如果只想得到1024個(gè)元素組成的序列中第5個(gè)最小元素之前的部分排序的序列,用()方法最快

A.冒泡排序B.快速排序C.簡單選擇排序D.堆排序

14.下面敘述中錯(cuò)誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤

B.對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟

C.程序調(diào)試通常也稱為Debug

D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性

15.設(shè)有以下語句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。

A.A和B之間用逗號間隔

B.A和B之間不能有任何間隔符

C.A和B之間可以用回車間隔

D.A和B之間用空格間隔

16.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

17.已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

B.一個(gè)文件指針,指向要讀的文件

C.一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置

D.一個(gè)存儲區(qū),存放要讀的數(shù)據(jù)項(xiàng)

18.在面向?qū)ο蠓椒ㄖ校粋€(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

19.歸并排序采用的算法設(shè)計(jì)方法屬于()

A.歸納法B.分治法C.貪心法D.回溯方法

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

A.C程序中的#include和#define行均不是C語句

B.除逗號運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算

二、2.填空題(20題)21.由25人圍坐成圓圈,先由任意一人開始順時(shí)針沿用1~25依次編號,然后從1號開始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號。

#include

main()

{inta[26],j,n,count;

for(j=1;j<=25;j++)a[j]=j;

j=1;count=0;n=【】;

do

{

if(a[j]!=0)

{n++;

if(n%5==0)

{【】;

if(count==24)printf("%d\n",,j);

count++;

}

}

j++;

if(j>25)j=1;

}

while(【】);

}

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

23.閱讀程序:

main()

{charstrl[]="howdoyoudo",str2[10];

char*p1=strl,*p2=str2;

scanf("%s”,p2);

printf("%s”,p2);

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

}

運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【】。

24.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

25.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。

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

27.若intx=1,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。

28.用十六進(jìn)制給存儲器中的字節(jié)地址進(jìn)行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。

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

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

30.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

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

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

main()

{inti=6,j=8;

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

}

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

33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,(),SEEK_END;f1+ftell(myf);

fclose(myf);

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

34.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

35.若有程序

main()

{inti,j;

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

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

}

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

36.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),是素?cái)?shù),函數(shù)返回1,

否則返回0。請?zhí)羁铡?/p>

intisprime(inta)

{inti;

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

if(a%i==0)【】;

【】;

}

37.下面程序的運(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));

}

38.定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為______。

39.表示“整數(shù)x的絕對值大于5”時(shí)值為“假”的C語言表達(dá)式是______。

40.以下程序中給指針p分配三個(gè)double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

三、1.選擇題(20題)41.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");

A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次

42.有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.6C.8D.12

43.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表

44.在嵌套使用if語句時(shí),C語言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對

B.和之前與其最近的if配對

C.和之前與其最近的且不帶else的if配對

D.和之前的第一個(gè)if配對

45.下列程序的運(yùn)行結(jié)果為

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

46.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

47.靜態(tài)測試是一種重要的測試方式,可以發(fā)現(xiàn)30%到70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤。下面()不屬于靜態(tài)測試?

A.白盒測試B.代碼檢查C.代碼質(zhì)量度量D.靜態(tài)分析

48.設(shè)計(jì)數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)

49.以下程序的運(yùn)行結(jié)果是()#include<stdio.h>main(){inta=015,b=22;printf("%d,%d\n",a++,--b);}

A.15,22B.15,21C.13,21D.14,21

50.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運(yùn)行時(shí)出錯(cuò),x無定值

51.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

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

52.以下程序的運(yùn)行結(jié)果是

#defineMAX(A,B)(A)>(B)?(A):(B)

#definePRINT(Y)printf("Y=%d\t",Y)

main()

{inta=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d);

PRINT(t);}

A.Y=3B.存在語法錯(cuò)誤C.Y=7D.Y=0

53.若有如下程序:voids(char*m,intn){*m=*m+3;n=n+3;printf("%c,%c,",*m,n);}main(){charp='b',q='B';s(&q,p);printf("%c,%c\n",p,q);}則程序運(yùn)行后的輸出結(jié)果是()

A.E,e,b,EB.e,E,b,F(xiàn)C.E,e,e,ED.e,E,b,E

54.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用

55.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.6C.8D.12

56.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

57.下列數(shù)組說明中,正確的是______。

A.intarray[][4];

B.intarray[][];

C.intmarray[][][5];

D.intarray[3][];

58.有以下程序;voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

59.以下不能定義為用戶標(biāo)識符的是()

A.MainB._0C._intD.sizeof

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

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

四、選擇題(20題)61.

62.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

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

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

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

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

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

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

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

65.

66.

67.

68.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

69.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

70.

71.若有以下程序段(n所賦的是八進(jìn)制數(shù))

intm=32767,n=032767;

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

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

A.32767,32767B.32767,032767

C.32767,77777D.32767,077777

72.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

73.設(shè)有定義:

則以下賦值語句中錯(cuò)誤的是()。

A.data2=datal;

B.data2=(2,6.;

C.

D.

74.

75.若要用函數(shù)fopen打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以()方式打開文件。

A."wb"B."wb+"C."rb+"D."rb"

76.

77.有以下程序

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

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

78.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

79.有以下程序段

structSTU

{charnum[10];floatscore[3];};

main()

{

structSTUs[3]={

{"20021",90,95,85},

{"20022",95,80,75},

{"20023",100,95,90},

},*p=s;

inti;floatsum=0;

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

sum=sum+p->score[i];

printf("%6.2f\n",sum);

}

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

A.260.00B.270.00

C.280.00D.285.00

80.有以下程序:

從第一列開始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車符.:

2743<CR>

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

A.66877B.668966C.6677877D.6688766

五、程序改錯(cuò)題(1題)81.程序改錯(cuò)題(共l8分)下列給定程序中,函數(shù)fun的功能是:傳人一個(gè)整數(shù)m,計(jì)算如下公式的值。例如,若輸入5,則應(yīng)輸出一0.283333。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}

參考答案

1.A解析:本題考核的知識點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。

2.B

3.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

4.D解析:程序設(shè)計(jì)的過程應(yīng)是先畫出流程圖,然后根據(jù)流程圖編制出程序,所以選項(xiàng)A錯(cuò)誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時(shí)加入,所以,選項(xiàng)B和選項(xiàng)C錯(cuò)誤。綜上所述,本題的正確答案為選項(xiàng)D。

5.A字符型指針變量可以用選項(xiàng)A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項(xiàng)C)的寫法:char*s,s={1.Olympic”};是錯(cuò)誤的。字符數(shù)組可以在定義的時(shí)候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項(xiàng)B)和選項(xiàng)D)都是錯(cuò)誤的。對于本例,選項(xiàng)B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志“\0”)。

6.A題目的fun函數(shù)內(nèi),while循環(huán)條件為“(*b=*a)!=‘\\0’”,執(zhí)行時(shí)先把指針a所指向的字符賦給指針b所在的內(nèi)存單元。如果該字符不是結(jié)束標(biāo)識‘\\0’,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。故本題答案為A選項(xiàng)。

7.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。

8.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。

9.BC語言中運(yùn)算符有優(yōu)先級和結(jié)合性。自增、自減運(yùn)算符的優(yōu)先級高于邏輯運(yùn)算符,邏輯運(yùn)算符中邏輯與“&&”的優(yōu)先級比邏輯或“||”高,邏輯運(yùn)算符的結(jié)合性自左向右。所以題干中表達(dá)式等價(jià)于“(a++)||((b++)&&(c++))”。運(yùn)算順序?yàn)椋菏紫葓?zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項(xiàng)。

10.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

11.D

12.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符合題意。

13.D解析:從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡單選擇排序?yàn)樽罴雅判蚍椒?,故本題答案應(yīng)該為選項(xiàng)D。

14.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。故答案為A選項(xiàng)。

15.B\nscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語句中沒有任何字符進(jìn)行間隔,所以在輸入時(shí)也不能使用任何字符進(jìn)行間隔,所以答案選擇B。

\n

16.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。

17.C解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個(gè)指引,對fread來說,它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。

18.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

19.B解析:以2一路歸并排序?yàn)槔M(jìn)行說明。2一路歸并是指將兩個(gè)有序序列合并成一個(gè)有序序列,其基本過程為;從兩個(gè)序列中各取一個(gè)元素,進(jìn)行比較,輸出較小的元素,從較小元素所在序列取下一個(gè)元素,與未輸出的那個(gè)元素比較,輸出較小者。依此類推,直到輸出序列包含了兩個(gè)初始有序序列的全部元索。對于一個(gè)初始無序的序列,可以先將其等分為兩個(gè)無序的子序列,對這兩個(gè)子序列再次二分,重復(fù)該過程,直到分出的子序列中僅包含一個(gè)元素時(shí)(一個(gè)元素自然是有序的)為止,然后在反復(fù)進(jìn)行2一路歸并的過程,最后完成排序。

20.D解析:“%”是求余運(yùn)算符,其兩側(cè)的數(shù)值只能為整型,不能用于實(shí)型數(shù)據(jù)的運(yùn)算。

21.0a[j]=0count<25

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

23.HOWhowdoyoudo

24.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

25.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

26.參照完整性參照完整性

27.0

28.64KB

29.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。

30.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

31.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價(jià)于(i>j?i:j)+1。因?yàn)?>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。

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

33.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。

34.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。

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

36.return0return1return0,return1解析:如果a能被i整除,則a是素?cái)?shù),返回值為0。如果a不能被i整除,則a不是素?cái)?shù),返回值為1。

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

38.用“&&”連接兩個(gè)表達(dá)式時(shí),若第1個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個(gè)表達(dá)式無關(guān),此時(shí)第2個(gè)表達(dá)式將不再進(jìn)行計(jì)算。本題中第1個(gè)表達(dá)式“j=!ch”值為0,所以第2個(gè)表達(dá)式i++將不再進(jìn)行計(jì)算,i的值為1。\r\n\r\n

39.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時(shí)值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。

40.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點(diǎn)是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個(gè)字符的存儲單元,并返回該存儲區(qū)的首地址,實(shí)際調(diào)用的時(shí)候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價(jià)的表達(dá)式。

41.B解析:本題定義了一個(gè)for循環(huán),循環(huán)變量是i,但由于本題并沒有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無限次執(zhí)行循環(huán)。

42.D解析:本題考查函數(shù)的返回值。fun函數(shù)的功能是比較a,b的值,返回其中較大者。對于main函數(shù)中的語句r=fun(fun(x,y),2*z);是先調(diào)用fun(x,y)返回8,再將8和12作為實(shí)參調(diào)用函數(shù)fun,得到的返回值為12。

43.A\r\n二分法又叫折半(對分)查找法,只適合于順序存儲的有序表(是指線性表中的元素按值非遞減排列)。二分法的基本思想是:設(shè)有序線性表的長度為n,被查元素為X,則二分查找的方法如下:

將X與線性表的中間項(xiàng)進(jìn)行比較:若中間項(xiàng)的值等于x,則說明找到,查找結(jié)束;若x小于中間項(xiàng)的值,則在線性表的前半部分(即中間項(xiàng)以前的部分)以相同的方法進(jìn)行查找;若X大于中間項(xiàng)的值,則在線性表的后半部分(即中間項(xiàng)以后的部分)以相同的方法進(jìn)行查找、這個(gè)過程-直進(jìn)行到查找成功或于表長度為0,(說明線性表中沒有這個(gè)元素為止)順序存儲的線性袁在計(jì)算機(jī)中-般用一個(gè)-維數(shù)組來表示,在數(shù)組中我們可以通過數(shù)組名和下標(biāo)來對數(shù)組中的任意一個(gè)元素進(jìn)行訪問,而在鏈表(不管是有序還是無序)中,要對元素進(jìn)行訪問必須從表頭結(jié)點(diǎn)開始,順著鏈條一個(gè)一個(gè)結(jié)點(diǎn)進(jìn)行搜索,因此選項(xiàng)A正確

44.C解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書寫格式無關(guān)。所以選項(xiàng)C)為正確答案。

45.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。

46.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲單元,且此存儲單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

47.A

48.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲結(jié)構(gòu)和確定文件存取方法的問題。物理設(shè)計(jì)階段包括:選擇存儲結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

49.C

50.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個(gè)指針變量中存儲的地址是不同的。變量x接受的是一個(gè)關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€(gè)地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。

51.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。

52.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡單按照原格式進(jìn)行字符串的替換。

53.A

54.D[答案]D

[考點(diǎn)]軟件工程基礎(chǔ)

[評析]

面向?qū)ο?對象+類+繼承+通過消息的通信

對象:一組屬性及其上的操作的封裝體

類:一組有相同屬性和操作的對象的集合

繼承:一個(gè)類為另一個(gè)類上的擴(kuò)充的方式,子類繼承父類,主要目的是代碼復(fù)用

消息:對象間通信的手段

D是結(jié)構(gòu)化程序設(shè)計(jì)或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語言兼容這種方式,但不是其特征,故最佳選項(xiàng)為D

55.B

56.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。

57.A

58.B解析:本題中的函數(shù)ss()有兩個(gè)參數(shù),一個(gè)是字符型指針變量s,另一個(gè)是字符型變量t。在函數(shù)中通過一個(gè)while循環(huán),在循環(huán)中一次取出s指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫字母,則把它轉(zhuǎn)換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調(diào)用ss(str1,c),很顯然是把str1數(shù)組中所有字符“d”變成大寫字母,其他字符不變。所以4個(gè)選項(xiàng)中B正確。

59.D解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個(gè)字符必須是字母或下劃線,標(biāo)識符名不能與關(guān)鍵字重名。選項(xiàng)A)中Main與主函數(shù)名main不同,所以選項(xiàng)D)是非法的標(biāo)識符。

60.A解析:在C語言中所謂函數(shù)的遞歸是在指在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i

61.C

62.C在C語言中,main函數(shù)也可以有參數(shù),例如,main(intar90,char*argv),argc是指字符串的指針數(shù)組,而其他幾項(xiàng)表達(dá)不正確。

63.A一個(gè)C語言程序能實(shí)現(xiàn)多種算法,所以A)錯(cuò)誤。

64.A參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到它可以被3或5整除。初始時(shí)調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)r1=n/3;,此后執(zhí)行語句*r=rl;。所以r=6/3=2。

65.C

66.D

67.C

68.C解析:選項(xiàng)A和B兩個(gè)表達(dá)式都越界了;選項(xiàng)D中,*t[2]是目標(biāo)變量,即—個(gè)整型值,而不是地址值。

69.A

70.B\r\n

71.A在程序段中,首先定義了兩個(gè)整型變量m和n,然后將m初始化為32767,將n初始化為032

溫馨提示

  • 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

提交評論