2021年四川省宜賓市全國計算機等級考試C語言程序設計_第1頁
2021年四川省宜賓市全國計算機等級考試C語言程序設計_第2頁
2021年四川省宜賓市全國計算機等級考試C語言程序設計_第3頁
2021年四川省宜賓市全國計算機等級考試C語言程序設計_第4頁
2021年四川省宜賓市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年四川省宜賓市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知intt=0;while(t=1){…}則以下敘述正確的是()。

A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對

2.針對二分查找算法,假設一個有序數(shù)組有136個元素,那么要查找到第10個元素,需要比較的元素為()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

3.設fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

4.

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

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

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

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

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

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

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

7.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

8.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

9.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

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

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設計語言

D.結(jié)構(gòu)化程序設計提倡模塊化的設計方法

11.

12.線性表(a1,a2,?,an)以鏈式方式存儲,訪問第i位置元素的時間復雜度為()。

A.O(0)B.O(1)C.O(n)D.O(n2)

13.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

14.

15.設整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

16.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

17.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。

A.廣播電視是一種雙向的、點到多點的信息交互系自

B.網(wǎng)絡聊天是一種雙向的,以信息交互為主要目的系統(tǒng)

C.電話是一種雙向的、點對點的、以信息交互為主要的的系統(tǒng)

D.雷達是一種以感測和識別為主要目的的系統(tǒng)

18.設變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

19.以下關(guān)于typedef的敘述錯誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代表

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性

20.若有如下形式的函數(shù):intfun(inta[],int*p,intn){…}調(diào)用函數(shù)之前需要對函數(shù)進行聲明,則以下選項中錯誤的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

main()

{

intx=0210;

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

}

22.設有以下結(jié)構(gòu)體類型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:

fwrite(student,【】,1,fp);

23.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和方法的機制稱為______。

24.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

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

26.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

27.在數(shù)據(jù)庫理論中,數(shù)據(jù)物理結(jié)構(gòu)的改變,如存儲設備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應用程序的變化,稱為______。

28.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

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

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

}

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

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

32.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

34.函數(shù)rewind的作用是

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

main()

{charc=′z′;

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

36.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

37.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i{i=x[m];p0=m;}

elseif(x[m]<j{j=x[m];p1:m;}

}

t=x[p0];x[p0]=x

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

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

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

三、1.選擇題(20題)41.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應的

D.算法的時間復雜度與空間復雜度一定相關(guān)

42.對于―個非空的數(shù)據(jù)結(jié)構(gòu),如果它有且只有―個根結(jié)點,并且每一個結(jié)點最多有一個前件,也最多有―個后件,那么()

A.肯定是一個線形結(jié)構(gòu)B.肯定是一個非線性結(jié)構(gòu)C.還不足以證明是一個線形結(jié)構(gòu)D.很可能是一個非線形結(jié)構(gòu)

43.有以下程序structSTU{charname[10];intnum;floatTotalScore;};voldf(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s++p;++q;*p=*q;}main(){structSrUs[3]={{"YangSan",20041,703),{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.of\n",S[1].name,s[1].num,s[1].Totalscore);}程序運行后的輸出結(jié)果是

A.SunDan20044550

B.Penghua20045537

C.USiGuo20042580

D.SunDan20041703

44.若有下列定義和語句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);則輸出結(jié)果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

45.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的語句是()。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

46.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

47.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結(jié)果是

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

48.對建立良好的程序設計風格,下列描述正確的是()。

A.程序應該簡單、清晰、可讀性好B.符號名的命名只需要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

49.有以下程序voidfun(char*c,intD){*c-*c+1;d=d+1;printf("%c,%c,",*c,D);}main(){chara='A',b='a';fun(&b,A);printf("%c,%c\n",a,B);}程序運行后的輸出結(jié)果是

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

50.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應填入的是

A.i-1B.iC.i+1D.4-i

51.下列能正確定義字符串的語句是()。

A.charstr[]={'\64'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

52.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

53.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

54.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

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

55.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護

B.設計階段、編程階段、測試階段

C.總體設計、詳細設計、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設計

56.下列程序執(zhí)行后的輸出結(jié)果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的輸出結(jié)果是()。

A.you&meB.meC.youD.err

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

A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結(jié)束時,應當用fclose函數(shù)關(guān)閉已打開的文件

C.在利用fread函數(shù)從二進制文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)

D.不可以用FILE定義指向二進制文件的文件指針

58.下列程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

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

A.C程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C程序的注釋行對程序的運行功能不起任何作用,所以注釋應該盡可能少寫

D.C程序的每個語句都以分號結(jié)束

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

A.輸入項可以是一個實型常量,如scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&f)

D.當輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f",&f);

四、選擇題(20題)61.下面程序的運行結(jié)果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

62.

63.

64.

65.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00

66.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

A.順序結(jié)構(gòu)B.GOT0跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(循環(huán))結(jié)構(gòu)

67.

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

A.算法就是程序B.設計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設計C.設計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對

69.

70.

71.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.log2nB.n2C.nD.n+1

72.有以下程序:

程序運行后,若從鍵盤輸入(從第l列開始.:

123<回車>

45678<回車>

則輸出結(jié)果是()。

A.1267B.1256C.1278D.1245

73.整型變量X和Y的值相等,且為非0值,則以下選項中結(jié)果為0的表達式是()。

A.X‖YB.X|YC.X&YD.X^Y

74.具有3個結(jié)點的二叉樹有

A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)

75.

76.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是()。

A.循環(huán)隊列B.棧C.隊列D.二叉樹

77.

78.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

79.用黑盒技術(shù)測試用例的方法之一為

A.因果圖B.邏輯覆蓋C.循環(huán)覆蓋D.基本路徑測試

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分數(shù)序列的前n項之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。

2.B

3.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數(shù)fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項C為正確答案。

4.D

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

6.D

7.C因為x=0xFFFF=11111111,因此當以整型形式輸出時對應的數(shù)為一1。

8.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉(zhuǎn)換。

9.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。

10.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。

11.A

12.C

13.Alink結(jié)構(gòu)體中的next是鏈表中下一個節(jié)點的地址。由于p當前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確。或者使用解引用“*”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達式(*p).next->next->dt引用了C節(jié)點的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。

14.A

15.D解析:C語言中有基本的算術(shù)運算符(+、-、*、/)還包括自增自減運算符(++、-),在C語言解析表達式時,它總是進行貪婪咀嚼,這佯,該表達式就被解析為i+++++i,顯然該表達式不合C語言語法。

16.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

17.A廣播/電視是一種單向的、點對多點(面)的以信息傳遞為主要目的的系統(tǒng)。

18.A運算符“%”的左右兩個操作數(shù)均應為整數(shù),所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。

19.A用typedef沒有增加新類型,所以選擇A)。

20.AC語言中,函數(shù)聲明的函數(shù)名、返回值類型和參數(shù)列表必須與函數(shù)定義相同。其中參數(shù)列表中可以省略參數(shù)名。題干中,fun函數(shù)返回整型,3個參數(shù)分別是:整型指針、整型指針、整型。選項A中,第1個參數(shù)應該是整型指針類型,第2個參數(shù)也應該是指針類型,錯誤;其他選項都正確。故本題答案為A選項。

21.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數(shù)中,%X表示以十六進制無符號形式輸出一個整數(shù),且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉(zhuǎn)換為十六進制,可以先將其轉(zhuǎn)換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880

22.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。

23.繼承繼承解析:在面向?qū)ο蟮某绦蛟O計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

24.關(guān)系或一個關(guān)系關(guān)系或一個關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關(guān)系。

25.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應用程序不必修改,稱為物理獨立性。

26.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標志“'\\0'”,所以共有2個字節(jié)。

27.物理獨立性物理獨立性解析:數(shù)據(jù)的物理結(jié)構(gòu)改變,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應用程序的變化,這種性質(zhì)叫做物理獨立性。

28.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

29.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

30.efghefgh解析:函數(shù)ss返回形參s所指向的符號串的后半部分,故p='efgh'。

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

32.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

33.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i:3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1執(zhí)行第三次for循環(huán)時,i=5,訌語句條件滿足,所以執(zhí)行printf('%d\\n',i)輸出5,然后break語句跳出了for循環(huán)。

34.A

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

36.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。

37.函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1)交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應該填入x[0]。\r\n\r\n

38.eybdooG

39.參照完整性參照完整性

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

41.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復雜度是指算法在計算機內(nèi)執(zhí)行時所需時間的度量;與時間復雜度類似,空間復雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。

數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)??梢?,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應的。因此,選項C的說法是錯誤的。

有時人們?yōu)榱颂岣咚惴ǖ臅r間復雜度,而以犧牲空間復雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。

42.A

43.B解析:在主函數(shù)中,首先聲明了一個結(jié)構(gòu)體數(shù)組s[3],然后用數(shù)組名調(diào)用函數(shù)f,而數(shù)組名是數(shù)組首地址的指針,因此,傳遞給函數(shù)的是指向上函數(shù)中s[0]的指針。在函數(shù)中,將參數(shù)指針往后移動了一位++p;,所以該指針現(xiàn)在指向主函數(shù)中的s[1],函數(shù)中也聲明?一個結(jié)構(gòu)體數(shù)組s[2]和一個結(jié)構(gòu)體指針q,q雖然初始化指向函數(shù)中的結(jié)構(gòu)數(shù)組s[2]的首地址,但也被往后移動了一位,所以函數(shù)調(diào)用的結(jié)果是將函數(shù)中的s[1]賦給了主函數(shù)中的s[1],故最終輸出為:Penghua20045537,應該選擇B。

44.C解析:在C語言中,“%d”表示輸出帶符號的十進制整型數(shù);“%x”表示以十六進制無符號型輸出整型數(shù)據(jù)(即不帶前導0x或0x);“%o”表示以八進制無符號型輸出整型數(shù)據(jù)(即不帶前導0)。

45.A解析:選項B中d已經(jīng)為地址,不應在加上求地址符號“&”,故選項B不正確;選項C中,a和b都為變量不是地址,應該在a和b之前加上求地址符號“&”,故選項C不正確:選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址,故選項D不正確,所以,4個選項中A為所選。

46.A解析:C語言的字符常量是用單引號(\')括起來的一個字符,也可以用以一個“\\”開頭的字符序列來表示字符常量。其中形式\\ddd表示1到3位8進制數(shù)所代表的字符;形式\\xhh表示1到2位16進制數(shù)所代表的字符。在本題中\(zhòng)'\\x13\'表示回車符,是一個字符常量;而\'\\081\'用8進制數(shù)所代表的字符形式不正確,因為8進制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8”;\'65\'單引號(即撇號)括起來的不是一個字符,而是一個十進制數(shù)字;'\\n'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。

47.C解析:本題考核的知識點是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個全局變量a和局部變量a在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中.此時s的值為5,然后執(zhí)行該復合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到。中后s的值變?yōu)?,故最后輸出的s的值為7,所以,4個選項中選項C符合題意。

48.A解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。

49.D解析:本題考查用地址作為參數(shù)與值作為參數(shù)傳遞之間的不同。在c語言中,數(shù)據(jù)傳遞是單向傳遞的?!爸祩鬟f”就是實參把對應的值傳給相應的形參變量,然后形參和實參不再有任何聯(lián)系,在被調(diào)用函數(shù)中,對形參的修改并不影響對應的實參。“地址傳遞”就是實參把相應的地址傳給相應的行參變量,在被調(diào)用函數(shù)中對行參的修改將修改對應的實參地址對應的值.程序中定義了兩個字符型變量'a'和'b',并分別賦初值為,At和'a',然后調(diào)用函數(shù)fun(),將b的地址和a值作為實參.在函數(shù)fun()中第一個參數(shù)是傳遞地址,故在調(diào)用函數(shù)fun()中對參數(shù)做的修改(即將b值加一)將影響字符型變量的值(變?yōu)閎),函數(shù)fun()第二個參數(shù)是傳值的,故在調(diào)用函數(shù)fun()對第二個參數(shù)做的修改不影響字符型變量a(即'a'的值仍為'A'),所以在fun()函數(shù)中輸出的是d為b,B,接著在主函數(shù)中,輸出a,b,然后退出fun()函數(shù),接著執(zhí)行后面的語句,輸出A,b.所以最后輸出為b,B,A,b。所以4個選項中D正確。

50.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應填i。

51.D解析:字符串常量是用一對雙括號括起來的一串字符。它用字符數(shù)組來存放,不能用一對大括號對括起來。

52.C解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進行比較,直到兩者相符,查找到所要找的元素為止.在最壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。

53.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。

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

55.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。

56.A解析:本題定義了一個二維字符數(shù)組arr[2][4],該二維數(shù)組可以看成一個含有兩個元素arr[0]、arr[1]的一維字符數(shù)組,分別看成是含有4個元素,也可以看成是以arr為首地址的一個一維字符數(shù)組。函數(shù)strcpy(arr,“you”)是把字符串“you”復制到arr指向的空間,strcpy(arr[1],“me”)同理,在以arr[0]為首地址的字符數(shù)組中有“you”,在以air[1]為首地址的字符數(shù)組中有“me”。arr[0][3]=‘&’;是給arr[0]為首地址的字符數(shù)組的第4個元素賦值為‘&’。因此輸出為you&me。

57.D解析:順序文件只能從頭讀寫,二進制文件可以隨機讀寫,選項A正確:文件在使用后應關(guān)閉,當程序結(jié)束時,應當把打開的文件關(guān)閉,選項B正確:用fread()函數(shù)可以一次性地讀取同類型的很多數(shù)據(jù),選項C正確;在C語言中指向各種文件的文件指針都是通過FILE來定義的,故選項D是錯誤的。所以4個選項中選D

58.C

59.C解析:本題涉及C語言基本的3個知識點:①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;③注釋行雖然對程序的運行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。

60.D

61.C本題考查的是逗號表達式。逗號表達式的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就是最后一個表達式N的值。表達式(x=3*y,x+6)中,x=15。表達式y(tǒng)=x—1=14。

62.C

63.AAAAAAAACCCCCCCCDDDDEEEEEEEEEFFHHIIIIIIJJJKKLLMNNNNNNOOOOOOOPPPPQRRRRRRSSSSSTTTTTTUUUUUVXXY

64.D

65.A結(jié)構(gòu)體和共用體;在“聯(lián)合”中,各成員共享一段內(nèi)存空間,一個聯(lián)合變量的長度等于各成員中最長的長度。應該說明的是,這里所謂的共享不是指把多個成員同時裝入一個聯(lián)合變量內(nèi),而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值

66.B1966年Boehm和Jacopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設計方法。

67.B

68.D算法是指解題方案的準確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項。

69.D

70.C

71.C對線性表進行順序查找,最壞的情況是待查數(shù)據(jù)在表中不存在,所以比較的次數(shù)與表中的元素個數(shù)一樣多。

72.Dputchar(c1)輸出l,putchar(c2)輸出2,

73.DX||Y是將X和Y作邏輯或運算,因為都是非0,所以結(jié)果為1,X|Y是做位或運算,即相同位置的數(shù)字只要有一個為1,結(jié)果為1,其結(jié)果也為非0,X&Y是為與運算,相同位置的數(shù)字都為1的時候才為1,其結(jié)果為非0,X^Y做位異或運算,即同0異1,因為X與Y的值相等,所以相同位置的數(shù)字一定相同。

74.D解析:因為二叉樹有左、右子樹之分,所以有3個結(jié)點的二叉樹具有5種不同的形態(tài)。

75.D

76.BB。【解析】在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。

77.B

78.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風格的程序是不允許出現(xiàn)的。

79.A解析:黑盒測試主要方法有等價值劃分法,邊界值分析法。錯誤推測法、因果圖法等。白盒測試的主要方法有邏輯覆蓋、基本路徑測試循環(huán)覆蓋等。因此只有A屬于黑盒測試。

80.A

81.(1)錯誤:fun(intn)

正確:doublefun(intn)

(2)錯誤:s=s+(Double)a/b;

正確:s=s+(double)a/b;

【解析】本題考查函數(shù)的定義規(guī)則。函數(shù)定義的一般形式為類型標識符函數(shù)名(形式參數(shù)表列){函數(shù)體}。fun()函數(shù)中,最后返回的是變量s,由變量s的定義可知,返回值是double型,所以fun()函數(shù)定義時應明確注明標識符double類型。Double為書寫問題,寫程序時切記書寫格式。

82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過P的移動來達\n\n\n\t到使P指向第一個不是*號的字符\n\n\n\tfor(;*p!=\0

;p++,str++)//把從第一個\n\n\n\t不是*號的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0

;//最后用\0作為字符串結(jié)束標志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。\n2021年四川省宜賓市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知intt=0;while(t=1){…}則以下敘述正確的是()。

A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對

2.針對二分查找算法,假設一個有序數(shù)組有136個元素,那么要查找到第10個元素,需要比較的元素為()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

3.設fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

4.

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

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

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

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

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

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

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

7.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

8.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

9.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

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

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設計語言

D.結(jié)構(gòu)化程序設計提倡模塊化的設計方法

11.

12.線性表(a1,a2,?,an)以鏈式方式存儲,訪問第i位置元素的時間復雜度為()。

A.O(0)B.O(1)C.O(n)D.O(n2)

13.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

14.

15.設整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

16.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

17.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。

A.廣播電視是一種雙向的、點到多點的信息交互系自

B.網(wǎng)絡聊天是一種雙向的,以信息交互為主要目的系統(tǒng)

C.電話是一種雙向的、點對點的、以信息交互為主要的的系統(tǒng)

D.雷達是一種以感測和識別為主要目的的系統(tǒng)

18.設變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

19.以下關(guān)于typedef的敘述錯誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代表

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性

20.若有如下形式的函數(shù):intfun(inta[],int*p,intn){…}調(diào)用函數(shù)之前需要對函數(shù)進行聲明,則以下選項中錯誤的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

main()

{

intx=0210;

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

}

22.設有以下結(jié)構(gòu)體類型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:

fwrite(student,【】,1,fp);

23.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機制稱為______。

24.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

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

26.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

27.在數(shù)據(jù)庫理論中,數(shù)據(jù)物理結(jié)構(gòu)的改變,如存儲設備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應用程序的變化,稱為______。

28.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

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

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

}

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

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

32.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

34.函數(shù)rewind的作用是

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

main()

{charc=′z′;

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

36.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

37.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i{i=x[m];p0=m;}

elseif(x[m]<j{j=x[m];p1:m;}

}

t=x[p0];x[p0]=x

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

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

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

三、1.選擇題(20題)41.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應的

D.算法的時間復雜度與空間復雜度一定相關(guān)

42.對于―個非空的數(shù)據(jù)結(jié)構(gòu),如果它有且只有―個根結(jié)點,并且每一個結(jié)點最多有一個前件,也最多有―個后件,那么()

A.肯定是一個線形結(jié)構(gòu)B.肯定是一個非線性結(jié)構(gòu)C.還不足以證明是一個線形結(jié)構(gòu)D.很可能是一個非線形結(jié)構(gòu)

43.有以下程序structSTU{charname[10];intnum;floatTotalScore;};voldf(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s++p;++q;*p=*q;}main(){structSrUs[3]={{"YangSan",20041,703),{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.of\n",S[1].name,s[1].num,s[1].Totalscore);}程序運行后的輸出結(jié)果是

A.SunDan20044550

B.Penghua20045537

C.USiGuo20042580

D.SunDan20041703

44.若有下列定義和語句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);則輸出結(jié)果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

45.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的語句是()。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

46.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

47.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結(jié)果是

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

48.對建立良好的程序設計風格,下列描述正確的是()。

A.程序應該簡單、清晰、可讀性好B.符號名的命名只需要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

49.有以下程序voidfun(char*c,intD){*c-*c+1;d=d+1;printf("%c,%c,",*c,D);}main(){chara='A',b='a';fun(&b,A);printf("%c,%c\n",a,B);}程序運行后的輸出結(jié)果是

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

50.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應填入的是

A.i-1B.iC.i+1D.4-i

51.下列能正確定義字符串的語句是()。

A.charstr[]={'\64'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

52.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

53.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

54.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

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

55.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護

B.設計階段、編程階段、測試階段

C.總體設計、詳細設計、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設計

56.下列程序執(zhí)行后的輸出結(jié)果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的輸出結(jié)果是()。

A.you&meB.meC.youD.err

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

A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結(jié)束時,應當用fclose函數(shù)關(guān)閉已打開的文件

C.在利用fread函數(shù)從二進制文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)

D.不可以用FILE定義指向二進制文件的文件指針

58.下列程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

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

A.C程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C程序的注釋行對程序的運行功能不起任何作用,所以注釋應該盡可能少寫

D.C程序的每個語句都以分號結(jié)束

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

A.輸入項可以是一個實型常量,如scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&f)

D.當輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f",&f);

四、選擇題(20題)61.下面程序的運行結(jié)果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

62.

63.

64.

65.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00

66.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

A.順序結(jié)構(gòu)B.GOT0跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(循環(huán))結(jié)構(gòu)

67.

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

A.算法就是程序B.設計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設計C.設計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對

69.

70.

71.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.log2nB.n2C.nD.n+1

72.有以下程序:

程序運行后,若從鍵盤輸入(從第l列開始.:

123<回車>

45678<回車>

則輸出結(jié)果是()。

A.1267B.1256C.1278D.1245

73.整型變量X和Y的值相等,且為非0值,則以下選項中結(jié)果為0的表達式是()。

A.X‖YB.X|YC.X&YD.X^Y

74.具有3個結(jié)點的二叉樹有

A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)

75.

76.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是()。

A.循環(huán)隊列B.棧C.隊列D.二叉樹

77.

78.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

79.用黑盒技術(shù)測試用例的方法之一為

A.因果圖B.邏輯覆蓋C.循環(huán)覆蓋D.基本路徑測試

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分數(shù)序列的前n項之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。

2.B

3.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數(shù)fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項C為正確答案。

4.D

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

6.D

7.C因為x=0xFFFF=11111111,因此當以整型形式輸出時對應的數(shù)為一1。

8.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉(zhuǎn)換。

9.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。

10.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。

11.A

12.C

13.Alink結(jié)構(gòu)體中的next是鏈表中下一個節(jié)點的地址。由于p當前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論