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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.

2.有以下函數(shù):intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函數(shù)的功能是()。

A.將y所指字符串賦給x所指存儲空間

B.查找和y所指字符串中是否有"\0'

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

D.統(tǒng)計(jì)x和y所指字符串中相同的字符個數(shù)

3.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3

4.以下程序的輸出結(jié)果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n",m(a+b.b+c,c+a));}A.19B.17C.15D.12

5.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

6.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內(nèi)存

7.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

8.如有inta=11;則表達(dá)式(a++*1/3)的值是()。

A.0B.3C.4D.12

9.若x=10010111,則表達(dá)式(3+(int)(x))&(~3)的運(yùn)算結(jié)果是()。

A.10011000B.10001100C.10101000D.10110000

10.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值

11.高度為h的滿二叉樹的結(jié)點(diǎn)數(shù)是________個。

A.log2h+1B.2h+1C.2h-1D.2h-1

12.采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

13.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

14.眾所周知數(shù)據(jù)結(jié)構(gòu)中非常基本的樹結(jié)構(gòu)包括二叉查找樹(BST)。當(dāng)我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點(diǎn)深度為0,不執(zhí)行平衡二叉樹操作)()

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

15.廣義表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

16.

17.

18.設(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之間用空格間隔

19.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

20.數(shù)據(jù)流圖(DFD)的作用是()。

A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)的功能建模C.支持軟件系統(tǒng)的面向?qū)ο蠓治鯠.描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)

二、2.填空題(20題)21.數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

22.一般來說,數(shù)據(jù)庫的設(shè)計(jì)過程要經(jīng)歷3個大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計(jì)階段、設(shè)計(jì)實(shí)施與系統(tǒng)運(yùn)行階段。概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)屬于數(shù)據(jù)庫設(shè)計(jì)的【】階段。

23.有以下程序,其功能是:以二進(jìn)制“寫”方式打開文件d1.dat,寫入1~100這100個整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開文件d1.dat,將這100個整數(shù)讀入到另一個數(shù)組b中,并打印輸出。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

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

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

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

}

24.若變量a,b已定義為int類型并分別賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的輸出語句行:【】。

25.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

26.以下程序段的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

28.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

29.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b+*;break;

}

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

}

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

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

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

}

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

main()

{charc='z';

printf("%c",c-25);}

33.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實(shí)現(xiàn)的。

34.以下程序用來統(tǒng)計(jì)文件中字符的個數(shù)。請?zhí)羁铡?/p>

#include“stadio.h”

main()

{FILE*fp;longnum=0L;

if((fp=fopen(“fname.dat”,“r”))==NULL);

{printf(“0penerror\n”);exit(0);}

while(【】)

{fsetc(fp);num++;}

printf(“num=%1d\n”,num-1);

fclose(fp);

}

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

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

p=a;

36.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為【】。

37.strcat函數(shù)的作用是【】。

38.若運(yùn)行時給變量x輸入12,則以下程序的運(yùn)行結(jié)果是【】;

main(){

intx,y;

scanf(""%d"",&x);

y=x>12?x+10:x-12;

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

}

39.下列函數(shù)從字符數(shù)組s[]中刪除和c一樣的字符,請?jiān)谙旅鏅M線處填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}

40.當(dāng)運(yùn)行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

三、1.選擇題(20題)41.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}

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

42.有以下程序main(){charstr[][10]={"China",Beijing"},*p=str;printf("%s\n",p+10);}程序運(yùn)行后的輸出結(jié)果是

A.ChinaB.BeijingC.ngD.ing

43.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

44.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時從鍵盤上輸入:6,5,65,66<回車>,則輸出結(jié)果是______。

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

45.當(dāng)a=1、b=2、c=3、d=4時,執(zhí)行下面程序段后,x的值是()。if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2:elsex=3:elsex=6:elsex=7:

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

46.有以下定義

#include<stdio.h>

chara[10],*b=a;

不能給a數(shù)組輸入字符串的語句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

47.以下程序中函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址。#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*庫函數(shù)strcpy對字符串進(jìn)行復(fù)制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時依次輸入:abcd、abba和abc三個字符串,則輸出結(jié)果為()。

A.abcdB.abbaC.abcD.baca

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

A.一個C語言源程序可以由一個函數(shù)組成也可以由多個函數(shù)組成

B.main()中的“()”是函數(shù)的參數(shù)部分,括號內(nèi)可為空,但括號不能省略

C.C語言程序是以函數(shù)為基本單位的

D.在C語言程序中,注釋行只能位于一條語句的后面

49.若有以下說明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;則數(shù)值為4的表達(dá)式是()

A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]

50.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

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

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

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

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

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

52.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

53.在執(zhí)行以下程序時,如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

54.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計(jì)算機(jī)識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)的最晚,具有其他語言的—切優(yōu)點(diǎn)

55.有定義:inta=1,b=2,c=3,x;則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3的是()。

A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

56.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

57.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}

A.1.9B.111133331.9C.33331.9D.1111233331.9

58.對線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序

59.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是()。

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

60.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);}該函數(shù)的類型是()。

A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

四、選擇題(20題)61.設(shè)有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

62.有以下函數(shù)

fun(char*a,char*b)

{

while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))

{

a++;b++;

}

return(*a-*b);

}

該函數(shù)的功能是

A.計(jì)算a和b所指字符串的長度之差

B.將b所指字符串連接到a所指字符串中

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

63.有以下程序:

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

A.33B.197C.143D.28

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

A.都是先進(jìn)后出B.都是先進(jìn)先出

C.只允許在端點(diǎn)處插入和刪除元素

D.沒有共同點(diǎn)

65.

有以下程序

#include<stdio.h>

main

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

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

A.741B.963C.852D.875421

66.有以下程序:

fun(inta,intb)

{a++;b++;

if(a>b)return(a);

elsereturn(b);

}

void

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y++),2*z);

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

}

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

A.13B.6

C.8D.12

67.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性

68.以下敘述中正確的是

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

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

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

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

69.

70.

71.下列關(guān)于棧的描述中錯誤的是()。

A.棧是先進(jìn)先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

72.

73.下面的變量說明中__________是正確的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

74.以下程序的輸出結(jié)果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1

75.

下面程序的運(yùn)行結(jié)果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

for(i=0,j=0;a[i]!=\0;i++)

{if(a[i]>=0&&a[i]<=9)

{s[j]=a[i];

j++;

}

s[j]=\0;

}

}

main

{char*s="aa89gggh";

del(s):

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

}

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

76.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

77.

78.有以下程序:

#include<stdio.h>

main()

{inta=7;

while(a--);

print[("%d\n",a);

}

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

A.-l

B.0

C.1

D.7

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,當(dāng)x的值為1,y的值為2,z的值為3時,函數(shù)值為2.O0。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計(jì)一行字符串中單詞的個數(shù),并將其作為函數(shù)值返回。字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}

參考答案

1.B

2.C本題中由循環(huán)條件可知遇到“0或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。

3.Asizeof是運(yùn)算符,計(jì)算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標(biāo)識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4。“strier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項(xiàng)。

4.DM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

5.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

6.D\nD【解析】存儲器中.存取速度最快的是內(nèi)存。

\n

7.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。

8.B

9.A解析:本題主要考查運(yùn)算表達(dá)式的運(yùn)算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。

10.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進(jìn)行賦值,則它的值是一個隨機(jī)值。

11.C

12.D

13.B題目中先是將s2字符串寫入adc.dat中,然后執(zhí)行rewind函數(shù)將寫指針放置于文件開頭,寫入s1字符串。s1字符串將前5個字符覆蓋,所以最終結(jié)果為Chinang。故本題答案為B選項(xiàng)。

14.B

15.C

16.D

17.C

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

\n

19.A字符常量是使用單引號標(biāo)注的單個字符,選項(xiàng)A錯誤;選項(xiàng)B屬于浮點(diǎn)數(shù)常量,正確;選項(xiàng)C屬于轉(zhuǎn)義字符常量,正確;選項(xiàng)D屬于轉(zhuǎn)義字符,代表八進(jìn)制數(shù)011的ASCII值的字符,正確。本題答案為A選項(xiàng)。

20.B數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變化過程,它直接支持系統(tǒng)的功能建模。本題答案為B選項(xiàng)。

21.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

22.系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)解析:系統(tǒng)設(shè)計(jì)階段是系統(tǒng)的具體設(shè)計(jì)過程,主要包括概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)3個步驟。這3個不同層次上的設(shè)計(jì)過程,是把實(shí)體以及相互之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實(shí)于計(jì)算機(jī)中。

23.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根據(jù)題目要求,在下劃線位置應(yīng)該填入一個能實(shí)現(xiàn)二進(jìn)制讀的使用文件方式的參數(shù)即可。所以,可以填'rb'或'r+b'或'rb+'。

24.printf("a=%db=%d"ab);printf('a=%d,b=%d',a,b);解析:根據(jù)printf函數(shù)的格式可知輸出語句應(yīng)該為:printf('a=%d,b=%d',a,b);

25.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

26.x=2

27.x=11x=11解析:在對無符號數(shù)的右移是高位補(bǔ)0。

28.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

29.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。

30.2121解析:本題考查switch語句。首先x=1,執(zhí)行switch(y),因?yàn)閥=0,所以執(zhí)行case0:a++;break;此時a=1執(zhí)行case2:a++;b++;這時a=2,b=1;最后輸出結(jié)果是21。

31.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

32.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運(yùn)算后得97,以字符形式輸出是a。

33.封裝封裝

34.!feof(fP)!feof(fP)解析:統(tǒng)計(jì)文件中字符個數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個字符,同時字符的個數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dar”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。

35.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。

36.n(n-1)/2

37.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

38.00解析:三目運(yùn)算符的形式為(表達(dá)式1)?(表達(dá)式2):(表達(dá)式3)。當(dāng)(表達(dá)式1)值為真時,返回(表達(dá)式2)的值;為假時,返回(表達(dá)式3)的值。題中因?yàn)閤>12為假,所以結(jié)果為x-12,即為0。

39.s[i]!='\0's[i]!='\\0'解析:本題是要刪除字符數(shù)組中和c一樣的字符,for循環(huán)實(shí)現(xiàn)的功能是逐個讀出字符數(shù)組s中的元素,并和字符c做比較,直到遇到字符串結(jié)束標(biāo)志'\\0',結(jié)束循環(huán),所以橫線上應(yīng)該填s[i]!='\\0'。

40.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實(shí)現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。

41.C解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結(jié)束循環(huán)。

42.B解析:本題考核的知識點(diǎn)是二維數(shù)組的定義、初始化和指針的應(yīng)用。本題中首先定義了一個字符串?dāng)?shù)組并初始化,初始化后使得str[0]='China',str[1]='Beijing',然后定義一個指針變量p并讓其指向str,而在該二維數(shù)組中定義每個字符串的長度為10所以p+10將指向str[1]的,因此最后輸出*(p+10)的值為Beijing。所以,4個選項(xiàng)中選項(xiàng)B符合題意。

43.D解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)控制語言負(fù)責(zé)數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

44.A解析:char型數(shù)據(jù)類型以%d的形式輸入時,輸入的是ASCII值。65是字符A的ASCII碼值,66是字符B的ASCII值。

45.A

46.B解析:函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。

47.B解析:本題考查返回指針值的函數(shù)。一個函數(shù)可以帶回一個整型值、字符值、實(shí)型值等,也可以帶回指針型的數(shù)據(jù),即地址。函數(shù)strcmp(字符串1,字符串2)的作用是比較字符串1和字符中2。如果字符串1=字符串2,函數(shù)值為0;如果字符串1,字符串2,函數(shù)值為一正整數(shù);如果字符串1<字符串2,函數(shù)值為一負(fù)整數(shù)。本題程序中scmp函數(shù)的作用是比較s1和s2的大小,對strcmp函數(shù)的返回值進(jìn)行判斷,如果字符串1<字符串2,則返回字符串1的值,反之返回字符串2的值。所以main函數(shù)中scmp(str[0],str[1])的返回值是abba,通過strcpy函數(shù)把返回值abba復(fù)制到string中。當(dāng)執(zhí)行scmp(string,str[2])時,scrap函數(shù)的返回值為abba,再次復(fù)制到string中,最后string的值為abba。

48.D解析:本題涉及C語言基本的3個知識點(diǎn):①C語言是以函數(shù)為基本單位的,每一個函數(shù)完成相對獨(dú)立的功能,一個程序可以包括多個函數(shù),但有且僅有一個主函數(shù);②主函數(shù)main()的圓括號內(nèi)是填寫參數(shù)的,可以沒有參數(shù),但括號不可以省略;③程序的注釋部分應(yīng)該在“/*…………*/”之間,它允許出現(xiàn)在程序的任何位置。

49.D

50.D解析:字符串的輸入有兩種方式:使用scanf()函數(shù)和使用get()函數(shù)。采用scanf()函數(shù)輸入時,輸入項(xiàng)為字符串的地址值,輸入字符依次放入以這一地址為起點(diǎn)的存儲單元中。選項(xiàng)C是正確的,輸入字符從數(shù)組的第2個位置開始存放;選項(xiàng)D是錯誤的,s[1]是字符,不是地址值。gets()的調(diào)用形式為:gets(str_adr),其中str_adr為存放字符串的首地址。選項(xiàng)A中,&s[0]為數(shù)組的首地址,選項(xiàng)C中,s也為數(shù)組的首地址.因此選項(xiàng)A和C都是正確的。

51.C解析:C語句必須以分號結(jié)束,選項(xiàng)A是正確的。復(fù)合語句在語法上被看作一條語句,選項(xiàng)B也是正確的。空語句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當(dāng)作條件子句或者循環(huán)體來看待,所以選項(xiàng)c是錯誤的。賦值表達(dá)式末尾加分號就構(gòu)成賦值語句,選項(xiàng)D正確。故本題應(yīng)該選擇C。

52.A解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為表中的一個屬性,對應(yīng)表中的一個字段;在二維表中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。

53.B

54.C解析:計(jì)算機(jī)語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項(xiàng)A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計(jì)算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項(xiàng)B錯誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項(xiàng)D也是錯誤的。

55.C解析:選項(xiàng)A),因?yàn)榍懊鎯蓚€條件都不滿足,所以執(zhí)行x=3。選項(xiàng)B),a<3成立,執(zhí)行x=3。選項(xiàng)C),a<3成立,執(zhí)行x=3;a<2成立,執(zhí)行x=2;a<1不成立,不執(zhí)行x=1,所以執(zhí)行此段程序后x=2。選項(xiàng)D),a<b成立,執(zhí)行x=b,此時x=2;b<c成立,執(zhí)行x=c,此時x=3;c<a不成立,不執(zhí)行x=a,所以執(zhí)行此段程序后x=3。

56.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

57.B解析:switch語句只接受int型變量,如果不是則隱式轉(zhuǎn)換為int,由于C語言中float到int的轉(zhuǎn)換是截尾取整,故在switch中從case1:標(biāo)號處開始執(zhí)行,首先輸出4個1。此時又因?yàn)閏ase2:之前并沒有break;之類的跳轉(zhuǎn)語句,所以case2:標(biāo)號處的語句也被執(zhí)行,輸出4個3。最后以默認(rèn)的浮點(diǎn)數(shù)格式輸出變量a,變量a在switch語句中并未被改變,故最后輸出為1.900000,所以應(yīng)該選擇B。

58.A解析:對線性表進(jìn)行二分法檢索,要求線性表是

溫馨提示

  • 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

提交評論