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頁,還剩31頁未讀, 繼續(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.

2.以下關(guān)于指針的說法錯(cuò)誤的是()。

A.可以向指針中寫入任意數(shù)據(jù)

B.可以向指針?biāo)竷?nèi)存單元中寫入數(shù)據(jù)

C.指針可以指向與其基類型相同的普通變量

D.可以通過加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元

3.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

5.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時(shí)輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

6.若已定義x和y是整型變量,x=2;,則表達(dá)式y(tǒng)=2.75+x/2的值是()。

A.5.5B.5C.3D.4.0

7.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價(jià)于()。A.A.p="";

B.p="0";

C.p=0;

D.p="";

8.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c

9.

10.下列關(guān)于棧的敘述中,正確的是()。

A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對

11.若有以下定義和語句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的運(yùn)行結(jié)果是()。

A.107B.105C.55D.58

12.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

13.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

14.

15.若有定義“charch;inta;doubled;”,當(dāng)輸入為12345678910.36時(shí),以下選項(xiàng)中能給各個(gè)變量正確賦值的是()。

A.scanf(“%d%c%lf”,&a,&ch,&d);

B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);

C.scanf(“%d%c%lf”,a,ch,d);

D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);

16.有以下程序

#include<stdio.h>

intf(intx);

main()

{intn=1,m;

m=f(f(f(n)));printf(”%d\n”,m);

}

intf(intx)

{returnx*2;}

程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8

17.

18.對稱數(shù)組A中,每個(gè)元素的長度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲在從首地址SA開始的存儲器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

19.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

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

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

二、2.填空題(20題)21.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

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

p=a;

22.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。

23.設(shè)有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】a,b);

24.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充家整。

seanf("%d",【】);

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

25.如果一個(gè)工人可管理多個(gè)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則賣體“工人”與實(shí)體“設(shè)備”之間存在【】關(guān)系。

26.下述函數(shù)統(tǒng)計(jì)—個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

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

28.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。

29.下列程序的運(yùn)行結(jié)果是______。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf('%s\n",p);

}

30.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

31.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

32.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

33.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。

34.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

ginclude"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

35.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

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

36.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

37.在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類的實(shí)例稱為______。

38.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030<回車>。輸出結(jié)果是()。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);

}

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

main()

{

chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*p1+k)==*{p2+k))

printf("%c",*(p1+k));

}

40.下列程序的字符串中各單詞之間有一個(gè)空格,則程序的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

三、1.選擇題(20題)41.線性表常采用的兩種存儲結(jié)構(gòu)是()

A.散列方法和索引方式B.鏈表存儲結(jié)構(gòu)和數(shù)組C.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

42.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

43.閱讀下列程序段,則程序的輸出結(jié)果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

44.下面的程序執(zhí)行后,文件test.t中內(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.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello,rld

45.數(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ì)

46.fgetc函數(shù)的作用是從指定文件讀入一個(gè)字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

47.以下對C語言函數(shù)的有關(guān)描述中,正確的是______。

A.在C程序中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.函數(shù)既可以嵌套定義又可以遞歸調(diào)用

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

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

48.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。

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

49.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來關(guān)系中屬性個(gè)數(shù)的是

A.選擇B.連接C.投影D.并

50.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

51.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

52.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

53.有以下程序,其中%u表示按無符號整數(shù)輸出:

main

{

unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/

printf("%u\n",x);

}

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

A.-1B.65535C.32767D.0xFFFF

54.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)

55.下列敘述中正確的是______。

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號""{""和""}""只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

56.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是

A.defdefB.abcdefC.abcdD.dd

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

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

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

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

D.當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL

58.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

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

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

60.在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()

A.整型常量B.整型表達(dá)式C.整型常量或整型表達(dá)式D.任何類型的表達(dá)式

四、選擇題(20題)61.

62.

有以下程序,其中函數(shù)f的功能是將多個(gè)字符串按字典順序排序()。

#include<string.h>

voidf(char*p[],intn)

{char*t;inti,j;

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

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

if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]

=t;}

}

main

{char*P[5]={"abe","aabdfg","abbd","dcd-

be","cd"};

f(p,5);

printf("%d\n",strlen(p[1]));

}

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

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

63.

64.

65.下面不屬于軟件設(shè)計(jì)階段任務(wù)的是()。

A.制訂軟件確認(rèn)測試計(jì)劃B.數(shù)據(jù)庫設(shè)計(jì)C.軟件總體設(shè)計(jì)D.算法設(shè)計(jì)

66.

67.有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba

68.

69.函數(shù)fseek的正確調(diào)用形式是()。

A.fseek(位移量,起始點(diǎn),文件類型指針);

B.fseek(文件類型指針,位移量,起始點(diǎn));

C.fseek(文件類型指針,起始點(diǎn),位移量);

D.fseek(起始點(diǎn),位移量,文件類型指針);

70.有以下程序:

程序執(zhí)行后變量w中的值是()。

A.5.21B.5C.5.0D.0.0

71.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

72.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

73.軟件設(shè)計(jì)中,有利于提高模塊獨(dú)立性的一個(gè)準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合

74.運(yùn)算符________的優(yōu)先級最高。

A.[]B.+=C.?:D.++

75.

76.設(shè)有定義:intx,Y,z;,且各變量已賦正整數(shù)值,則以下能正確表示代數(shù)式‘的C語言表達(dá)式是()。

A.…1.…0/x。/y,/z

B.1/x*Y*z

C.1/(x*Y*z)

D.1/x/y/(double)z

77.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

78.

79.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000

C.87和6543.000000

D.76和543.000000

80.關(guān)系表中的每一橫行稱為一個(gè)()。

A.字段B.元組C.行D.碼

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算并輸出下列級數(shù)的前N項(xiàng)之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值為57,則函數(shù)值為59.593612。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun(),其功能是:求SS所指字符串中指定字符的個(gè)數(shù),并返回此值。例如,若輸入字符串“123412132”,輸入字符為“1”,則輸出3。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:

參考答案

1.A

2.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫入與基類型相同的數(shù)據(jù),而不能寫入任意數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針可以指向與其基類型相同的普通變量,選項(xiàng)C正確;指針是一個(gè)內(nèi)存地址,它是一個(gè)整數(shù),可以通過加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元,選項(xiàng)D正確。故本題答案為A選項(xiàng)。

3.C只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。

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

5.A題干中,定義一個(gè)二維字符數(shù)組v。然后通過for循環(huán),輸入4個(gè)字符串welcome、you、to、beijing,將其分別存放在v的4個(gè)元素中。數(shù)組v是存放4個(gè)字符串的二維數(shù)組;“**v”表示第1個(gè)字符串的第一個(gè)字符“w”;“*(v+1)”指向第2個(gè)字符串“you”;“v[3]+3”指向第4個(gè)字符串的第3個(gè)字符開始后的整個(gè)字符串“jing”;“*(v[2]+1)”表示第3個(gè)宇符串的第2個(gè)字符“o”。故本題答案為A選項(xiàng)。

6.C

7.C在C語言中null等價(jià)于數(shù)字0。

8.D

9.C

10.B棧是先進(jìn)后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。

11.Cstrlen函數(shù)返回字符串的長度。求字符串長度時(shí),遇到結(jié)束標(biāo)識‘\\0’為止,但是長度不包括結(jié)束標(biāo)識。字符數(shù)組s1的后5個(gè)元素沒有賦值,都為‘\\0’,即“abcd!”后為‘\\0’,所以“strlen(s1)”的值為5。字符指針s2所指向的字符串中,“\\n”為轉(zhuǎn)義字符,代表換行符,是1個(gè)字符,“\\\\”也為轉(zhuǎn)義字符,代表“\\”,也是1個(gè)字符,其后為字符串結(jié)束標(biāo)識‘\\0’,所以“strlen(s2)”的值也為5。故本題答案為C選項(xiàng)。

12.D解析:逗號表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

13.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

14.D

15.Ascanf是格式輸入函數(shù),其中雙引號之間的內(nèi)容是格式控制字符串,后面是輸入?yún)?shù)列表。輸入?yún)?shù)列表中各項(xiàng)都必須是變量地址,所以選項(xiàng)C錯(cuò)誤;在scanf函數(shù)的格式字符前,可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實(shí)數(shù)指定小數(shù)位的寬度,所以選項(xiàng)B、D錯(cuò)誤。選項(xiàng)A是正確的,按照A的輸入格式,12345賦值給變量a,空格賦值給變量ch,678910.36賦值給變量d。故本題答案為A選項(xiàng)。

16.D解析:本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個(gè)f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

17.D

18.B

19.A本題考查簡單的for語句,程序中當(dāng)k<0時(shí)循環(huán)才執(zhí)行,所以答案選擇A。

20.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。

21.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(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。

22.1212解析:本題考查逗號表達(dá)式的運(yùn)算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

23.cc解析:該題考查以下兩個(gè)知識點(diǎn):

(1)用一個(gè)指定的標(biāo)識符(即名字)來代表一個(gè)字符串,它的一般形式為#define標(biāo)識符字符串

(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應(yīng)填c。

24.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第—個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。

25.一對多一對多解析:實(shí)體之間的聯(lián)系有3類:一對一,一對多,多對多。設(shè)有兩個(gè)實(shí)體集E1和E2,如果E2中的每一個(gè)實(shí)體與E1中的任意個(gè)實(shí)體(包括零個(gè))有聯(lián)系,而E1中的每一個(gè)實(shí)體最多與E2中的一個(gè)實(shí)體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對多關(guān)系。

26.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄—個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個(gè)字符是否是空格,如果是則說明這個(gè)字符是—個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。

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

28.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個(gè)對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個(gè)具體對象稱為類的實(shí)例。

29.efghefgh解析:本題考核的知識點(diǎn)是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個(gè)字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實(shí)參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。

30.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

31.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

32.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

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

34.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

35.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個(gè)參數(shù),形參f1與f2分別是兩個(gè)指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實(shí)際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

36.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。

37.對象對象解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類是具有相同的屬性或方法的對象的抽象,對象是類的實(shí)例。

38.1030010300解析:本題的考點(diǎn)是C語言的scanf的“%*d”?!?*d”是在輸入流中跳過一個(gè)整數(shù),而讀入下一個(gè)整數(shù)。因此語句“scanf('%d%*d%d',&i,&j,&k);”在讀入10、20、30時(shí),將10讀入到i中,將20跳過,將30讀入到j(luò)中,而k沒有讀入數(shù),仍是初值的0。

39.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個(gè)指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將pl+k和p2+k所指向的字符進(jìn)行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后輸出為gae。

40.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的長度,結(jié)果為13,然后除以2結(jié)果為6。strcpy函數(shù)是把字符串“esshe”拷貝到str1后的第6個(gè)字符后面,也就是說,拷貝后的結(jié)果是“Howdoesshe”。

41.CC)【解析】線性表的存儲通常要用兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。

42.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。

43.A解析:帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進(jìn)行M的宏替換,之后再進(jìn)行N的宏替換,替換后的表達(dá)式為(a)*(b)/(C)。

44.A解析:C語言中文件有文本文件與二進(jìn)制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。

45.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)特性)。

46.D解析:fgetc函數(shù)是指從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

47.A解析:在C語言中,提供了許多庫函數(shù)供用戶使用,因此選項(xiàng)D錯(cuò)誤。

48.BB.【解析】快速排序的基本思想是:從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線的位置處。然后分別對兩個(gè)子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。

49.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個(gè)數(shù)最多不會超過原關(guān)系中的屬性個(gè)數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個(gè)數(shù)。故選項(xiàng)B正確。

50.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對于選項(xiàng)B)來說,x除以2的商不會等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。

51.D解析:注意的是X++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:

第一次while循環(huán);條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán):條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。

52.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。

53.B解析:整型常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制3種表示:十進(jìn)制整數(shù)以正號(+)或負(fù)號(-)開頭,由首位非0的一串十進(jìn)制數(shù)字組成,正負(fù)號也可省略,表示正整數(shù);八進(jìn)制整數(shù)以數(shù)字0開頭,后面接著干個(gè)八進(jìn)制數(shù)字(0~7):十六進(jìn)制整數(shù)以數(shù)字。和字母x(大、小寫均可)開頭,后面接若干個(gè)十六進(jìn)制數(shù)字(數(shù)字0~9和字母A~F,大、小寫均可)。故本題是以無符號整數(shù)形式輸出一個(gè)十六進(jìn)制整數(shù)FFFF,將其轉(zhuǎn)換為十進(jìn)制就是65535,故本題應(yīng)該選擇B。

54.A解析:作為一個(gè)算法,一般應(yīng)該具有下列4個(gè)特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;(2)確定性,算法中的每一個(gè)步驟都必須是有明確定義的,(3)有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)做完;(4)擁有足夠的情報(bào)。

55.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復(fù)合語句的定界符;構(gòu)成C程序的基本單位是函數(shù):一個(gè)語句必須在最后出現(xiàn)分號,分號是C語句中不可缺少的部分。

56.A解析:本題首先定義兩個(gè)字符型指針變量p和q,通過malloc()函數(shù)申請20個(gè)字符的存儲空間,并把它的首地址賦給p,再把p的值賦給q,p和q指向同一個(gè)存儲區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把“abc”讀取到P指向的存儲區(qū)中,第一個(gè)空格是結(jié)束標(biāo)記,第二個(gè)空格是分隔符,再把“def”存放到q指向的存儲區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲區(qū)中內(nèi)容是“def”,所以最后輸出為def,def。

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

58.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

59.A解析:本題中定義一個(gè)全局變量a和一個(gè)局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進(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正確。

60.C解析:C語言規(guī)定只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組,數(shù)據(jù)元素的表示形式為數(shù)組名[下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式。

61.A

62.B

\n函數(shù)voidf的功能是將字符指針數(shù)組*p[]中的每個(gè)字符串按照從小到大的順序排序。在主函數(shù)main中,調(diào)用f(P,5)后,字符指針數(shù)組*p[5]中的字符串按照字典順序從小到大排列為如下形式,即*p[5]={'aab-dfg','abbd','abc','cd','dcdbe'),因此P[1]='abdb',strlen(p[1])=4。

\n

63.A

64.A

65.A軟件設(shè)計(jì)階段的主要任務(wù)包括丙個(gè):一是進(jìn)行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設(shè)是否值得,能否建成。二是進(jìn)行軟件的系統(tǒng)分析,了解用戶的需求,定義應(yīng)用功能,詳細(xì)估算開發(fā)成本和

溫馨提示

  • 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

提交評論