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)行舉報或認(rèn)領(lǐng)

文檔簡介

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

一、單選題(20題)1.下列關(guān)于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

2.

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

A.有一個以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B.只有一個根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

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

D.雙向鏈表是非線性結(jié)構(gòu)

4.對初始狀態(tài)為遞增序列的數(shù)組按遞增順序排序,最省時間的是插入排序算法,最費(fèi)時間的算法是()

A.堆排序B.快速排序C.插入排序D.歸并排序

5.

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

A.getehar函數(shù)用于從磁盤文件讀入字符

B.gets匿數(shù)用于從終端讀入字符串

C.取ns函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

7.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運(yùn)行后的輸出結(jié)果是()。

A.CBB.BCAC.CCBBD.CDBCA

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

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

9.

10.在關(guān)系代數(shù)運(yùn)算中,有5種基本運(yùn)算,它們是()。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)

B.并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)

C.并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)

D.并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)

11.有如下定義:inta[5],*p;p=a;則下列描述錯誤的是()。

A.表達(dá)式p=p+1合法的B.表達(dá)式a=a+1是合法的C.表達(dá)式p-a是合法的D.表達(dá)式a+2是合法的

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

A.54321

B.12345

C.12345

D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}

13.有以下程序:

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

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

14.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序運(yùn)行后的輸出結(jié)果是()。

A.>073<B.>73<C.>142<D.>59<

15.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

16.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

17.有3個關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

18.以下關(guān)于C語言文件系統(tǒng)的敘述中正確的是()。

A.fprintf與fwrite函數(shù)功能相同

B.文件以“r”方式打開后,可以存儲文本類型的數(shù)據(jù)

C.fscanf與fread函數(shù)功能相同

D.以“w”或“wb”方式打開的文件,不可以從中讀取數(shù)據(jù)

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

A.C程序可以由多個程序文件組成

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

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

D.—個C語言函數(shù)可以單獨(dú)作為一個C語言程序文件存在

20.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{

inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{

if(i==2||==4)continue;

j=0;

do

{

s+=a[i][j];

j++;

}while(j<4);

}

Printf("%d\n",s);

}

22.當(dāng)輸入1、3、2時,程序運(yùn)行的結(jié)果為【】。

#include<math.h>

main()

{floata,b,c,disc,x1,x2,p,q;

do

{scanf("%f,%f,%f",&a,&b,&c);

disc=b*b-4*a*c;

}while(disc<=0);

p=-b/(2*a);q=sqrt(disc)/(2*a);

x1=p+q;x2=p-q;

printf("\nx1=%6.2f;x2=%6.2f\n",x1,x2);

}

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

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

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

main()

{inta=5,b=4,c=3,d;

d=(a>b>C);

printf(“%d\n”,D);

}

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

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

#include<stdio.h>

main()

{staticintb[2][3]={{1,2,3},{4,5,6}};

staticint*pb[]={b[0],b[1]};

inti,j;

i=0;

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

printf("b[%d][%d]=%d",i,j,*(pb[i]+j));

printf("\n");

}

27.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

29.實(shí)現(xiàn)程序可將磁盤中的一個文件復(fù)制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補(bǔ)全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

30.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

31.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

32.若要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

33.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

34.如果輸入'1'、'2'、'3'、'4',則以下程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{charc;

inti,k;

k=0;

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

{while(1)

{c=getchar();

if(c>='0'&&c<='9')break;

}

k=k*10+c-'0';

}

printf("k=%d\n",k);

}

35.數(shù)據(jù)的獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。

36.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的【】。

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

38.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達(dá)式是【】。

39.對于長度為n的線性表,若進(jìn)行順序查找,時間復(fù)雜性為【】;若進(jìn)行二分查找,則時間復(fù)雜性為【】。

40.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個數(shù)中,求出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

三、1.選擇題(20題)41.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。

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

42.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);::}

A.a+(i++)B.&5[i+1]C.a+iD.&a[++i]

43.有下列程序main(){intt,a=1,b=5,c=-2;while(a>b>c){t=a;a=b;b=t;c++;}printf("%d,%d,%d",a,b,c);}程序輸出的結(jié)果是()。

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

44.以下程序的運(yùn)行結(jié)果為______。char*c[]={"ENTER","NEW","POINT","FIRST"};char**cp[]={c+3,c+2,c+1,c};char***cpp=cp;main(){printf("%s\n",**++cpp);}

A.ENTERB.NEWC.POINTD.FIRST

45.概要設(shè)計(jì)是軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì),不屬于概要設(shè)計(jì)的是

A.把軟件劃分成模塊B.確定模塊之間的調(diào)用關(guān)系C.確定各個模塊的功能D.設(shè)計(jì)每個模塊的偽代碼

46.關(guān)于語句“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)”,下面說法中錯誤的是()。

A.for語句中的三個表達(dá)式不可以同時省略

B.for語句可以用于循環(huán)次數(shù)不確定的情況

C.for語句中表達(dá)式2可以是關(guān)系表達(dá)式或邏輯表達(dá)式

D.for語句中表達(dá)式1和表達(dá)式3可以是逗號表達(dá)式

47.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

48.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結(jié)果是(注意:ch[0]在低字節(jié),ch[1]在高字節(jié))()。

A.13B.14C.208D.209

49.若定義inta=10,則表達(dá)式a+=a-=a*=a的值是()。

A.0B.-180C.-100D.-90

50.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf("%d",a<b?a:d<c?d:B);}

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

51.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

52.有如下程序:#include<stdio.h>longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%d\n",fib(3));}該程序的輸出結(jié)果是()。

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

53.在數(shù)據(jù)流圖中,帶有箭頭的線段表示的是()

A.控制流B.數(shù)據(jù)流C.模塊調(diào)用D.事件驅(qū)動

54.以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}

A.p和q的類型不一致,不能執(zhí)行*p=*q;語句

B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句

C.q沒有指向具體的存儲單元,所以*q沒有實(shí)際意義

D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結(jié)果

55.下列選項(xiàng)中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

56.下列選項(xiàng)中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

57.在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠()。

A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類

58.有以下程序main(){ihtm=3,n=r,x;x=-m++;X=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是

A.3B.5C.-1D.-2

59.字符串"\\\"abc\"\\"的長度是()

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

60.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

四、選擇題(20題)61.以下敘述中錯誤的是()。

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

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

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

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

62.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

63.

64.以下關(guān)于字符串的敘述中正確的是()。65.以下敘述正確的是()。A.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

B.C語言程序是由過程和函數(shù)組成的

C.c語言函數(shù)不可以單獨(dú)編譯

D.c語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在

66.

67.若有定義語句:“intkl一10,k2=20;”,執(zhí)行表達(dá)式(kl=kl>k2)(k2=k2>

k1)后,kl和k2的值分別為()。

A.0和1B.0和20C.10和1D.10和20

68.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

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

A.CDEFB.ABEFC.ABCDD.CDAB

70.

71.設(shè)有定義:

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

A.data2=(2,6);

B.data2=datal;

C.data;real=datal.real;

D.data2.real=datal.unreal;

72.

73.有以下函數(shù):

以下關(guān)于aaa函數(shù)功能敘述正確的是()。

A.將串s復(fù)制到串tB.比較兩個串的大小C.求字符串s的長度D.求字符串s所占字節(jié)數(shù)

74.

75.

76.在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠()。

A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類

77.有以下程序段:

為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

78.以下敘述中正確的是()。A.A.break語句只能用在循環(huán)體內(nèi)和switch’語句體內(nèi)

B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

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

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

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串連接起來,組成一個新串,放入pt所指字符串中,例如,把2個字符串a(chǎn)bc、CD串聯(lián)起來,結(jié)果是abcCD。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù)、同時ASCⅡ碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCⅡ碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCⅡ碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所寫的若干語句。試題程序:

參考答案

1.C文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。故本題答案為C選項(xiàng)。

2.A

3.B解析:如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:(l)有且只有一個根結(jié)點(diǎn);(2)每個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項(xiàng)錯誤。有一個根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項(xiàng)說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項(xiàng)錯誤。

4.B

5.B

6.A本題考查的是文件操作。題中“fopen(fn,”w”)”的作用是打開fn所指向的文件,使用文件方式為“寫入”;

“每uts(str,fp)”的作用是將字符str的值輸出到fb所指向的文件中去。在程序中,兩次使用“寫入”的方式打開同一個文件,在第二次打開時,文件指針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的數(shù)據(jù),故本題中tl.dat的內(nèi)容為end。故本題答案為A)。

7.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項(xiàng)。

8.D本題考查while循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1.循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句。退出循環(huán)。結(jié)果為D。

9.A

10.D解析:關(guān)系代數(shù)運(yùn)算的基本運(yùn)算符有4類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)運(yùn)算符和邏輯運(yùn)算符。并、差、笛卡兒積、投影、選擇是5種基本的運(yùn)算,其他運(yùn)算可以通過基本的運(yùn)算導(dǎo)出。

11.B

12.B

13.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。

14.D題干中x是一個整型變量,賦值為072。以0開頭的整數(shù)是八進(jìn)制的表示形式。printf函數(shù)中,格式字符%d表示以十進(jìn)制形式輸出“x+1”,所以需要將072轉(zhuǎn)換成十進(jìn)制數(shù),即7×8+2=58,輸出“x+1”為59。故本題答案為D選項(xiàng)。

15.D當(dāng)k=1時,引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當(dāng)k=2時,引用的是數(shù)組元素w[2][2],即字符串“KL”;當(dāng)k=3時,結(jié)束程序的執(zhí)行。注意:字符串?dāng)?shù)組的定義。

16.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。“(*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。

17.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

18.Dfprintf函數(shù)和fscanf函數(shù)都可以讀寫文本文件,而fwrite和fread函數(shù)可以讀寫二進(jìn)制文件,選項(xiàng)A、C錯誤;文件以“r”方式打開后,只可以讀取文本數(shù)據(jù),選項(xiàng)B錯誤。故本題答案為D選項(xiàng)。

19.B在一個C語言程序中可以實(shí)現(xiàn)多種算法,所以B選項(xiàng)錯誤。故本題答案為B選項(xiàng)。

20.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強(qiáng)調(diào)的是感覺媒體。

21.9292解析:主函數(shù)中首先定義了一個4行4列的二維數(shù)組,然后執(zhí)行一個while循環(huán),該循環(huán)中又嵌套了一個do-while循環(huán)。現(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結(jié)束循環(huán)當(dāng)i++的值為4的時候結(jié)束循環(huán),當(dāng)i=0時,執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓i=0,然后執(zhí)行do-while循環(huán)體,我們不難看出do-whilo循環(huán)的功能是將第i+1行的所有元素加起來,所以這時s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3)=26,當(dāng)i=1時,i+1=2,uf后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當(dāng)i=2時,i加1變?yōu)?,把第3+1行的所有元素的加到s上,此時s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,當(dāng)i=3時,3+1=4,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán),當(dāng)i=3時,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán)當(dāng)i=4時while循環(huán)結(jié)束,所以最后輸出的s的值為92。

22.x1=-1.00;x2=-2.00

23.無定值無定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

24.00解析:關(guān)系運(yùn)算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達(dá)式a>b=c;從左向右開始計(jì)算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。

25.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。

“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計(jì)算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計(jì)算表達(dá)式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

26.b[0][0]=1b[0][1]=2b[0][2]=3

27.2525解析:#NAME?

28.2002Shangxian2002Shangxian解析:本題中首先定義一個結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實(shí)現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d,第二個if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。

29.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。

30.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。

31.概念(或概念級)概念(或概念級)

32.(double*)(double*)解析:一般用malloc函數(shù)為變量分配存儲單元時,要在前面用強(qiáng)制類型轉(zhuǎn)換符說明該存儲單元中數(shù)據(jù)的類型。本題要為指向雙精度浮點(diǎn)型數(shù)據(jù)的指針變量p分配存儲單元,因此用(double*)說明。

33.-4-4解析:因?yàn)閚=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。

34.k=1234

35.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)和應(yīng)用程序相互獨(dú)立,分為物理獨(dú)立性和邏輯獨(dú)立性。其中物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨(dú)立性是指當(dāng)邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。

36.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等。

37.封裝封裝

38.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。

39.O(n)O(log2n)

40.q<p+nq<p+n解析:通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進(jìn)行引用。

41.C解析:本題在定義字符數(shù)組時沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個數(shù)5。strlen(s)返回值為串中字符的個數(shù)(不計(jì)最后的'\\0'),則輸出值為5。sizeof(s)計(jì)算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項(xiàng)正確。

42.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個元素的地址,所以在四個選項(xiàng)中,選項(xiàng)B和C只能輸入一個數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

43.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達(dá)式是否成亢,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。

44.C

45.D解析:概要設(shè)計(jì)是數(shù)據(jù)庫的總體設(shè)計(jì),其目的就是要按照需求規(guī)格說明書把軟件按照功能劃分為多個模塊,然后確定每個模塊要實(shí)現(xiàn)的功能,最后確定模塊之間的調(diào)用關(guān)系,而設(shè)計(jì)每個模塊的偽代碼則屬于詳細(xì)設(shè)計(jì)。

46.A解析:for語句中的3個表達(dá)式可以同時省略,但兩個;不能省略。所以選項(xiàng)A的說法錯誤。

47.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識符(*指針變量名)()。其中,“類型標(biāo)識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

48.A解析:根據(jù)共用體的定義可知:共用體a的成員i和成員ch[2]共用同一段內(nèi)存空間,所以,當(dāng)程序給a.ch[0]和a.ch[1]賦值后,實(shí)際上,共用體成員i的值就確定為13了,所以打印輸出的結(jié)果應(yīng)當(dāng)為13。

49.B解析:算術(shù)運(yùn)算符的運(yùn)算規(guī)則是:從右到左的原則。所以表達(dá)式中先計(jì)算a=a-a*(上標(biāo))a的值是-90,再計(jì)算a=a+a的值是-180。

50.A

51.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項(xiàng)的個數(shù)是3,所以對于多余的輸出項(xiàng)k不予輸出;第2個pfintf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進(jìn)制和八進(jìn)制無符號型輸出整型數(shù)據(jù)(不帶前導(dǎo)Ox或O):②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出:⑧格式說明與輸出項(xiàng)的個數(shù)也要相等,如果格式說明的個數(shù)少于輸出項(xiàng)的個數(shù),則對于多余的輸出項(xiàng)不予輸出。

52.B解析:本題考查函數(shù)的遞歸調(diào)用。fib(3)=fib(2)+fib(1),而fib(2)的返回值為2,fib(1)的返回值也為2,故輸出的fib(3)的值為4。

53.BB)【解析】數(shù)據(jù)流圖中帶箭頭的線段表示數(shù)據(jù)流,沿箭4方向傳遞數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。

54.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。

55.D解析:本題考核的知識點(diǎn)是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個不同的字符,如:ACD和acd是兩個不同的標(biāo)識符號。選項(xiàng)D中用下劃線作為第一個字符,這是不合法的,故選項(xiàng)D不正確,所以,4個選項(xiàng)中選項(xiàng)D符合題意。

56.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應(yīng)的ASCII碼值。"\0"用雙引號故不正確。

57.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開發(fā)提供了一種新的方法學(xué)。

封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個內(nèi)含的部件中(對象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行模彩敲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對象也都具有該類的全部,這就是繼承性。繼承性自動在類與子類間共享功能與數(shù)據(jù),當(dāng)某個類作了某項(xiàng)修改,其子類會自動改變,子類會繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達(dá)到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對象在接收到相同的消息時,采用不同的動作。例如,一個應(yīng)用程序包括許多對象,這些對象也許具有同一類型的工作,但是卻以不同的做法來實(shí)現(xiàn)。不必為每個對象的過程取一過程名,造成復(fù)雜化,可以使過程名復(fù)用。同一類型的工作有相同的過程名,這種技術(shù)稱為多態(tài)性。

經(jīng)過上述分析可知,在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠對象的封裝。正確答案是選項(xiàng)C。

58.D解析:主函數(shù)中首先定義了整型變量m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=-m++等價于x=-(m++),其值即為-3,第二條x=x+8/++n等價于x=x+8/(++n),即為x=-3+8/5=-2,因此最后輸出x的值為-2。

59.B

60.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

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

62.D本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會生成參數(shù)C的一個副本,而不會改變c的值,所以c值維持原值,選項(xiàng)D正確。

63.B

64.A空格是一種字符,所以空串肯

溫馨提示

  • 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

提交評論