2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知大寫字母A的ASCII值是65,小寫字母a的ASCII值是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。

A.c=(‘A’,+c)%26-‘a(chǎn)’B.c=c+32C.c=c-‘A’+‘a(chǎn)’D.c=(c-‘A’)%26+‘a(chǎn)’

2.下列敘述中正確的是A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關(guān)系的屬性名表稱為關(guān)系模式

D.一個關(guān)系可以包括多個二維表

3.

4.若一棵二叉樹具有10個出度為2的結(jié)點,則在該二叉樹中,出度為0的結(jié)點個數(shù)是()

A.9B.11C.12D.不確定

5.有以下程序:

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

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

6.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是______。

A.startB.endC.startendD.endrt

7.設(shè)有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

8.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

9.

10.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)

C.將Y所指字符串賦給X所指定存儲空間

D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)

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

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

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

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

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

12.以下有關(guān)scanf函數(shù)的敘述中錯誤的是()。

A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度

B.scanf函數(shù)有返回值,其值就是本次調(diào)用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)

C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應(yīng)數(shù)據(jù),送到指定地址中

D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上

13.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。

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

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

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

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

14.在有序雙向鏈表中定位刪除一個元素的平均時間復(fù)雜度為()

A.O(1)B.O(N)C.O(logN)D.O(N*logN)

15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。

A.77B.88C.810D.1010

16.線性表的順序存儲結(jié)構(gòu)是一種()。

A.隨機存取的存儲結(jié)構(gòu)B.順序存取的存儲結(jié)構(gòu)C.索引存取的存儲結(jié)構(gòu)D.Hash存取的存儲結(jié)構(gòu)

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

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

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

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

19.

20.以下敘述中不正確的是

A.預(yù)處理命令行都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行

C.宏替換不占用運行時間,只占編譯時間

D.在以下定義是正確的:#definePI3.1415926;

二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。

main()

{

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

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

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

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

}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

23.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

24.下列程序的輸出結(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);

}

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

main()

{

charc1,c2;

for{c1='0',c2='9';c1<c2;c1++,C2--)

printf("%c%c",c1,c2);

printf("\n");

}

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

intword(char*s)

{intnum=0,flag=0;

while(*s)

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

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

}

return【】;}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

28.下面定義的結(jié)構(gòu)體類型包含3個成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。

structstu

{intx;

【】

【】next;}

29.以下程序運行后的輸出結(jié)果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}

30.設(shè)a,b,c為整型數(shù),且a=2,b=3,c=4,則執(zhí)行完以下語句后,a的值是【】。

a*=16+(b++)-(++c);

31.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

32.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\n,p+9);

}

33.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

34.下面程序的運行結(jié)果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

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

main()

{inta=177;

printf("%o\n",a);

36.一個項目具有一個項目經(jīng)理,一個項目經(jīng)理可管理多個項目,則實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于()的聯(lián)系。

37.下面程序的功能是將一個字符串str的內(nèi)容倒序,請?zhí)羁铡?/p>

#inelude<stdio.h>

#include<strins.h>

main()

{inti,j,【】;

charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

38.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);

39.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

40.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。

三、1.選擇題(20題)41.以下敘述中錯誤的是()。

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

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

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

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

42.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

43.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。

A.c=(c-'A')%26+'a'

B.c=c+32

C.c=C-'A'+'a'

D.c=('A'+C)%26-'a'

44.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

45.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。

A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE

46.以下選項中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

47.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。

A.可行性分析B.需求分析C.詳細設(shè)計D.程序編碼

48.有以下程序

#include<stdio.h>

main()

{intc;

while((c=getchar())!=′\n)

{switch(c-′2′)

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

case4:putchar(c+3);break;}}

printf("\n")}

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

2743<CR>

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

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

49.有以下程序:intx=1,y=2;voidfunl(){x=3;y=4;}voidfun2(intx,inty){printf("%d,%d,\n",x,y);}main(){funl();printf("%d,%d,"x,y);fun2(5,6);}程序的運行結(jié)果是()

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

50.有以下程序:main(){chars[]="\n123\\";printf(%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后的輸出結(jié)果是______。

A.賦初值的字符串有錯B.6,7C.5,6D.6,6

51.下列描述中,正確的是______。

A.a[2*3+5]可以是一個數(shù)組元素

B.可以對結(jié)構(gòu)體類型和結(jié)構(gòu)類型變量賦值、存取或運算

C.結(jié)構(gòu)一經(jīng)定義,系統(tǒng)就給它分配了所需的內(nèi)存單元

D.結(jié)構(gòu)體變量和共用體變量所占的內(nèi)存長度是各成員占的內(nèi)存長度之和

52.200個32×32點陣的漢字字模信息所占用的字節(jié)數(shù)為()

A.25600B.2560C.6400D.12800

53.利用fseek函數(shù)可實現(xiàn)的操作是()。

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確

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

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

55.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.

A.cedbaB.acbedC.decabD.deabc

56.若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。

A.0,0B.0,1C.1,1D.程序進入無限循環(huán)

57.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()

A.'a'&&'b'

B.a<=b

C.a‖b+c&&b-c

D.!(a-b)&&(!c‖1)

58.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

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

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

59.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;

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

60.有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n

A.12B.14C.1234D.123456

四、選擇題(20題)61.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為()。

A.36B.64C.48D.以上都不對

62.以下選項中可用做c程序合法實數(shù)的是()。、、

A.3.0e0.2B..1e0C.E9D.9.12E

63.(7)在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計階段的是()

A.數(shù)據(jù)結(jié)構(gòu)設(shè)計

B.給出系統(tǒng)模塊結(jié)構(gòu)

C.定義模塊算法

D.定義需求并建立系統(tǒng)模型

64.

65.下列條件語句中,輸出結(jié)果與其他語句不同的是()

66.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

67.

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

A.棧是“先進先出”的線性表

B.隊列是“先進后出”的線性表

C.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的

D.循環(huán)隊列中隊頭指針是固定不變的

69.有以下程序

70.有以下程序:

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

A.let=4B.m=2C.m=6D.m=5

71.有以下定義和語句

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

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

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

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

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

73.以下程序段

74.

75.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

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

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

77.

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

main

{charch[3][4]={"123","456","78"),*p[3];inti;

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

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

78.有以下程序

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

80.若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。A.A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:

x1=(xO+a/xO)/2

例如,3的平方根為1.732051。

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

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

試題程序:

六、程序設(shè)計題(1題)82.數(shù)組point中存放著m個人的成績,請編寫函數(shù)fun().它的功能是:返回高于平均分的人數(shù),并將高于平均分的分數(shù)放在high所指的數(shù)組中。例如,當(dāng)point數(shù)組中的數(shù)據(jù)為50,60,65,70.75,80.88,90,95時,函數(shù)返回的人數(shù)應(yīng)該是5,high中的數(shù)據(jù)應(yīng)為75,80,88,90,95。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。注意:部分源程序給出如下。試題程序:

參考答案

1.A根據(jù)題意可知,小寫字母比與之對應(yīng)的大寫字母的ASCII值大32。A選項中字符W加變量c再對字母個數(shù)26取余,不能轉(zhuǎn)換為對應(yīng)的小寫字母。故本題答案為A選項。

2.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對數(shù)據(jù)進行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計算機,也就是建立關(guān)系。所以選項A錯誤。對于一個表示關(guān)系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項C說法正確。

3.C

4.B

5.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。

6.B

7.C【答案】C

【知識點】結(jié)構(gòu)體成員變量的引用

【解析】結(jié)構(gòu)體變量包括一個或多個成員變量,引用其成員變量的語法格式如下:

結(jié)構(gòu)體變量.成員變量。通過結(jié)構(gòu)體指針變量獲得其結(jié)構(gòu)體變量的成員變量的一般形式為:(*結(jié)構(gòu)體指針變量).成員變量,也可以使用:結(jié)構(gòu)體指針變量->成員變量來引用成員變量。

8.C當(dāng)循環(huán)結(jié)束時,w的值應(yīng)為-1,而其他選項中w的值為0,故選擇c選項。

9.D

10.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計x和y所指向的字符串中最前面的聯(lián)系相同的字符的個數(shù)。

11.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

12.A在scanf函數(shù)的格式字符前可以加入一個正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實數(shù)指定小數(shù)位的寬度,選項A錯誤,其他選項正確。故本題答案為A選項。

13.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。

14.B

15.C解析:本題考核的知識點是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項中選項C符合題意。

16.A

17.BA選項去掉花括號后,賦值正確;C選項和D選項應(yīng)在定義時賦初值,因為數(shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項。

18.C解析:程序流程圖是軟件過程設(shè)計中常用的圖形描述工具之一。構(gòu)成程序流程圖的最基本符號有:→或↓,表示控制流;□表示加工步驟;

表示邏輯條件。

19.A

20.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。

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

22.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

23.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。

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

25.918273645918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符'0'和'9',然后每次循環(huán)結(jié)束給c1增1、c2減1,循環(huán)條件為c1<c2,即讓c1的值依次為'0'、'1'、'2'…,c2的值依次為'9'、'8'、'7'…,直到兩個數(shù)相遇時結(jié)束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值.所以最終的輸出結(jié)果為:0918273645。

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

27.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+funS(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

28.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結(jié)構(gòu)體的指針,因此變量next應(yīng)該是結(jié)構(gòu)體stu的指針型變量。

29.45794579解析:本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認為是第一個if的語句,實際上,只有“t=a;”才是第一個if的語句。所以判斷第一個if語句的表達式不成立后,執(zhí)行的是“a=c;c=t;”,此時a=5,c=79。然后判斷第二個if語句的條件表達式,表達式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。

30.28

31.++pw[i-1]

32.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

33.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

34.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。

35.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進制輸出,十進制數(shù)的177代表的八進制數(shù)是261,所以該空格處應(yīng)該填寫261。

36.一對多一對多解析:實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián):一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相聯(lián)系。所以實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于一對多的聯(lián)系。

37.k-1k-1解析:第一處應(yīng)該是定義的某個變量,讀程序可知,變量k沒有定義,所以此處應(yīng)填入k。字符串的倒序,就是將首尾對應(yīng)的字符(數(shù)組元素)兩兩交換??捎脙蓚€游標變量i和j分別代表前端元素的下標和后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下標是它的長度減1,所以在第二處應(yīng)填入-1。

38.77解析:本題考查基本賦值運算符和賦值表達式。c=(b-=a-5))等價于c=b-(a-5)b=7。c%3=1,a=(c%3)+a=8)=9,但c的值在第二條語句只能夠并沒有被改變,因此c的值還是7。

39.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。

40.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.

41.C解析:C程序中所有語句都必須由一個分號“;”作為結(jié)束符。如果只有一個分號,這個分號也是一條語句,稱為“空語句”,程序執(zhí)行時不產(chǎn)生任何動作。程序設(shè)計中有時需要加一個空語句來表示存在一條語句,但隨意加分號也會導(dǎo)致邏輯上的錯誤,影響程序的運行。所以選項C的說法是錯誤的。

42.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:1,有且只有一根節(jié)結(jié)點,2,每一個結(jié)點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

43.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼;選項A)和C)左側(cè)的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應(yīng)該是加上'a',而不是減去'a'。

44.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結(jié)束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應(yīng)該選擇D。

45.B解析:對二又樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左,右子樹時,注意依舊按照“左子樹—根結(jié)點—右于樹”的順序。

46.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應(yīng)該屬于八進制整數(shù),而八進制整數(shù)只能用數(shù)字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數(shù)形式的實型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進制小數(shù)形式。

47.B[答案]B

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

[評析]

分析員對用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計算機上實現(xiàn),這是需求分析階段。

軟件工程中的瀑布模型:

問題定義,可行性研究,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,運行和維護

相關(guān)鏈點:

層次圖和HIPO圖是概要設(shè)計中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計程序語言PDL是詳細設(shè)計中的工具圖

48.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標準輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標準輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。

49.C

50.C解析:本題中定義字符數(shù)組s時沒有指定數(shù)組長度,s初始化后存放的內(nèi)容為'\\n123\\\\\\0',其中\(zhòng)'\\n\'和\'\\\\\'是轉(zhuǎn)義字符,所以strlen(s)=5,sizeof(s)=6。

51.A

52.A

53.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。

54.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后的y的類型是int型。

55.A解析:由二叉樹后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹。二叉樹BT的后序遍歷序列為dabec,故BT的根結(jié)點為c(后序遍歷序列的最后一個結(jié)點為樹的根結(jié)點):而BT的中序遍歷序列是debac,即遍歷序列中最后一個結(jié)點為根結(jié)點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹的根結(jié)點是e。再由中序遍歷序列可知其左子樹為d,右子樹為ba。因此BT的前序遍歷序列為cedba。

56.B解析:對于do…while循環(huán),程序先執(zhí)行一次循環(huán)體,再判斷循環(huán)是否繼續(xù)。本題先輸出一次i的值“0,”,再接著判斷表達式i++的值,其值為0,所以循環(huán)結(jié)束。此時變量i的值經(jīng)過自加已經(jīng)變?yōu)?,程序再次輸出i的值“1”。

57.D

58.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復(fù)制到字符串ss的末尾處。

59.A解析:?:運算符首先執(zhí)行?之前的表達式,如果表達式的值為真,則返回?和:之間的表達式的值,否則返回:之后的表達式的值。本題中m比x和y都要小,所以,3個表達式都沒有改變m的值,故應(yīng)該選擇A。

60.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當(dāng)再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。

61.B本題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。

62.BA選項中e后面的指數(shù)必須為整數(shù),所以錯誤。C語言規(guī)定,E之前必須要有數(shù)字,所以c選項錯誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項錯誤。

63.D數(shù)據(jù)結(jié)構(gòu)設(shè)計、給出系統(tǒng)模塊結(jié)構(gòu)以及定義模塊算法都屬于設(shè)計階段,而定義需求并建立系統(tǒng)模型屬于分析階段。

64.D

65.A若a為0,A)選項輸出x,其他輸出y,所以選擇A)。

66.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學(xué)生關(guān)系(學(xué)號,姓名,出生年月,性別),學(xué)號、姓名…都是屬性)選取一列或多列

溫馨提示

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

評論

0/150

提交評論