2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年山東省濟(jì)南市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&y

B.x<=y

C.x||y+z&&y-z

D.!((x<y)&&!z||1)

2.對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

3.用單鏈表方式存儲(chǔ)的線性表,存儲(chǔ)每個(gè)結(jié)點(diǎn)需要兩個(gè)域,一個(gè)數(shù)據(jù)域,另一個(gè)是()。

A.當(dāng)前結(jié)點(diǎn)的所在地址B.后繼結(jié)點(diǎn)的所在地址C.空指針域D.空閑域

4.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯(cuò)的是()。

A.逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果

B.運(yùn)算符“%”只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算

C.語句“ch=(unsignedint)a+b;”是對(duì)a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch

D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a

5.

6.

7.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti,S=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3))s+=i;printf("%d\n",s);}A.4B.39C.45D.6

8.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)

9.程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。

A.空格或逗號(hào)B.逗號(hào)或回車C.逗號(hào)或分號(hào)D.空格或回車

10.以下程序的輸出結(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

11.下面不正確的字符賦值或賦初值的方式為()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

12.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)該采用的算法是()

A.直接選擇排序B.堆排序C.快速排序D.直接插入排序

13.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

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

A.一個(gè)C程序中可以包含多個(gè)不同名的函數(shù)

B.一個(gè)C程序只能有一個(gè)主函數(shù)

C.C程序在書寫時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

D.C程序的主函數(shù)必須用main作為函數(shù)名

15.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

16.

17.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。

A.&B.^C.‖D.~

18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.1,0B.1,1C.1,4D.4,4

19.設(shè)有以下語句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

20.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為______。

A.0B.1C.真D.假

二、2.填空題(20題)21.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

22.若x為int類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式______。

23.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測試屬于【】期。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

25.在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。

26.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

27.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。

28.執(zhí)行下面程序段后,k值是【】。

k=1;n=263;

do

{k*=n%10;n/=10;

}while(n);

29.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為______。

30.以下程序中,主函數(shù)調(diào)用了LineMax函數(shù),實(shí)現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值。

請(qǐng)?zhí)羁铡?/p>

#defineN3

#defineM4

voidLineMax(intx[N][M])

{inti,j,P;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j])【】;

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

}

main()

{intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

【】;

}

31.軟件是程序、數(shù)據(jù)和【】的集合。

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

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

}

34.若a的值為1,則表達(dá)式!a‖++a的值是______。

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

#include<stdio.h>

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[[i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

pdnff("%d'\n",s);

}

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

main()

{inti,n[]=10,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

37.已知字符'A'的ASCII碼為65,以下程序運(yùn)行后的輸出結(jié)果是【】。

#include<stdio.h>

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.以下程序調(diào)用函數(shù)swap將指針s和t所指單元(a和B)中的內(nèi)容交換,請(qǐng)?zhí)羁?。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swap(int*ss,int*tt){intte;te=*ss;*ss=*tt;*tt=te;}

39.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

40.若從鍵盤輸入58,則以下程序的輸出結(jié)果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

三、1.選擇題(20題)41.下列選項(xiàng)中錯(cuò)誤的說明語句是

A.chara[]={'t','o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\0";

D.chara[]='toyou\0';

42.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}

A.49B.36C.25D.64

43.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

44.下面程序的運(yùn)行結(jié)果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

45.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

46.以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]>a[p])______;return(p);}在下劃線處應(yīng)填入的內(nèi)容是()。

A.i=pB.a[p]=a[i]C.p=jD.p=i

47.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對(duì)

48.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

49.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對(duì)象可以是任何變量和常量

B.它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量

50.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}執(zhí)行后輸出結(jié)果是

A.28B.22C.16D.4

51.下面函數(shù)的功能是______。exchange(int*ptr1,*ptr2){int*ptr;ptr=-ptr1;ptr1=ptr2;ptr2=ptr;}

A.交換*ptr1和*ptr2的值

B.無法改變*ptr1和*ptr2的值

C.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?/p>

D.交換*ptr1和*pb2的地址

52.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

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

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

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

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

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

54.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用<>(尖括號(hào))括起時(shí),尋找被包含文件的方式是()。

A.僅僅搜索當(dāng)前目錄

B.僅僅搜索源程序所在目錄

C.在標(biāo)準(zhǔn)目錄下查找指定的文件

D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找

55.若變量都已正確說明,則以下程序段()。#include<stdio.h>main(){inta=8;intb=6;printf(a>b?"&&&a=%d":"!!!b=%d",a,B);}

A.輸出為:&&&a=8

B.輸出為:!!!b=8

C.輸出為:&&&a=8!!!b=6

D.全部錯(cuò)誤

56.下列程序的輸出結(jié)果是______。main(){union}inta[2];longk;charc[4];}un,*sp=&un;sp->a[0]=0x39;sp->a[1]=0x38;printf("%1x\n",sp->k);}

A.3938B.3839C.390038D.380039

57.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

58.下面程序段的運(yùn)行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

59.設(shè)有如下定義:structsk{inta;floatb;}data,*p;若有p=&data;,則對(duì)data中的a域的正確引用是()

A.(*p).dataB.(*p).a(chǎn)C.p->dataD.p.data.a(chǎn)

60.下面程序的運(yùn)行結(jié)果是#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=S;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&aa[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bC";delch(item);printf("\

A.abcB.34C.a34D.a34bc

四、選擇題(20題)61.下列敘述中正確的是()。

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

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

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

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

62.有以下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intc=20,d=20;

*a=c/3;

b=d/5;}

main()

{inta=3,b=5;

fun(&a,&b);

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

}

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

A.6,5B.5,6

C.20,25D.3,5

63.

64.下列定義變量的語句中錯(cuò)誤的是()。

65.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中

66.

67.以下不能正確定義二維數(shù)組的選項(xiàng)是()。

A.

B.

C.

D.

68.在c語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A.auto和static

B.extern和register

C.auto和register

D.static和register

69.

70.

能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)

B.(x>=1)

C.

D.(x<2=10)

E.

F.(x>=100)

G.

H.(x<=1l0)

I.(gt;=1)&&(x<=10)

J.

K.(gt;=100)&&(x<=110)

71.

72.

73.下列描述中正確的是()。

A.算法是指對(duì)解題方案的準(zhǔn)確而完整的描述

B.算法的有窮性是指算法程序的長度是有限的

C.算法是否有效與擁有的情報(bào)無關(guān)

D.算法的基本特征有可行性、確定性和有窮性

74.以下程序愛中,與語句:

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

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

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

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

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

76.下列敘述中正確的是()。A.數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨(dú)立性問題,而文件系統(tǒng)不能

B.數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件

C.數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少

D.數(shù)據(jù)庫系統(tǒng)獨(dú)立性較差,而文件系統(tǒng)獨(dú)立性較好

77.

78.有以下程序:

若要按以下形式輸出數(shù)組右上半三角:

則在程序下劃線處應(yīng)填人的語句是()。

A.i-1B.i+1C.iD.4-i

79.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

80.下列選項(xiàng)中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。

A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式的值。

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+m)

例如,若主函數(shù)從鍵盤給m輸入20后,則輸出為s=1.904762。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。

試題程序:

參考答案

1.D解析:本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都足邏輯1時(shí),表達(dá)式才返回值是1;當(dāng)“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值是1。選項(xiàng)A)中,x和y都是邏輯1,所以返回值是1;選項(xiàng)B)中,x=4<=y(tǒng)=6為邏輯1,所以返回值是1;選項(xiàng)C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達(dá)式4||14&&-2的值不為0;選項(xiàng)D)中,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

2.D解析:后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,道先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn):并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。

3.B

4.C逗號(hào)表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的運(yùn)算結(jié)果,選項(xiàng)A正確;運(yùn)算符“%”是求余運(yùn)算符,只能對(duì)整數(shù)類型的變量進(jìn)行運(yùn)算,選項(xiàng)B正確;在語句“ch=(unsignedint)a+b”中,圓括號(hào)優(yōu)先級(jí)最高,所以首先將a強(qiáng)制轉(zhuǎn)換成無符號(hào)整型,再與b相加,結(jié)果賦值給ch,選項(xiàng)C錯(cuò)誤;復(fù)合運(yùn)算“a*=b+ch”,先計(jì)算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項(xiàng)D正確。故本題答案為C選項(xiàng)。

5.A

6.D

7.Dif語句的條件是當(dāng)i既是3的倍數(shù)又是2的倍數(shù)時(shí)成立,所以此程序?qū)崿F(xiàn)的功能是將10以內(nèi)既是3的倍數(shù)又是2的倍數(shù)的數(shù)相加。

8.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。

9.D

10.B函數(shù)調(diào)用時(shí),prt函數(shù)的作用是為使m數(shù)組中的數(shù)自增1,因此數(shù)組下標(biāo)從0開始,每個(gè)元素都自加1。

11.C

12.D

13.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。

14.C【答案】C

【知識(shí)點(diǎn)】C程序的函數(shù)

【解析】C程序必須有且只有一個(gè)主函數(shù)main()。一個(gè)C程序可以包含多個(gè)不重名的子函數(shù)。C程序在書寫時(shí)沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。

15.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對(duì)于變量,通過地址運(yùn)算符“&”求出內(nèi)存中的地址;對(duì)于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。

16.A

17.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。

18.A&&是邏輯與運(yùn)算符,x、y的取值為4、2,兩個(gè)都是非零值,所以x&&y的結(jié)果為真,值為1;&是位運(yùn)算符,x的二進(jìn)制為0100,y的二進(jìn)制為0010,0100&0010的結(jié)果為0。本題答案為A選項(xiàng)。

19.B解析:結(jié)構(gòu)體類型的定義格式為:

strcut結(jié)構(gòu)體名

{成員說明列表};

結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時(shí)定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說明列表}變量;第二種先定義一個(gè)結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strcutstudent{成員說明列表):student變量;第三種:定義一個(gè)無名稱的結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量,如:Strctstudent{成員說明列表}變量。和上面三種情況比較我們不難得知只有選項(xiàng)B是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

20.B

21.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

22.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

23.軟件開發(fā)軟件開發(fā)解析:軟件生命周期可以分為3個(gè)時(shí)期:軟件定義期,包括問題定義、可行性研究和需求分析3個(gè)階段;軟件開發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測試屬于軟件開發(fā)階段。

24.33解析:分析程序運(yùn)行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

25.3

26.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

27.邏輯關(guān)系邏輯關(guān)系

28.3636解析:本題循環(huán)體共執(zhí)行了3次。第一次:k=3,n=26:第二次:k=18,n=2;第三次:k=36,n=0。

29.繼承繼承

30.p=jx[i][p]LineMax(x)

31.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

32.2525解析:#NAME?

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

34.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

35.9292解析:本題考查循環(huán)的嵌套。

①當(dāng)i=0時(shí)執(zhí)行while語句,i++<4成立,這時(shí)i=1,不執(zhí)行continue語句,繼續(xù)執(zhí)行j=0;然后執(zhí)行do-while語句,共循環(huán)4次:

a)j=0時(shí),s=0+a[1][0]=5,j=j+1=1。

b)j=1時(shí),s=5+a[1][1]=5+6=11,j=j+1=2。

c)j=2時(shí),s=11+a[1][2]=11+7=18,j=j+1=3。

d)j=3時(shí),s=18+a[1][3]=18+8=26,j=j+1=4。終止循環(huán)。

②當(dāng)i=1時(shí)執(zhí)行while語句,i++<4成立,這時(shí)i=2,執(zhí)行continue語句,結(jié)束本次循環(huán)。

③當(dāng)i=2時(shí)執(zhí)行while語句,i++<4成立,這時(shí)i=3,不執(zhí)行continue語句,繼續(xù)執(zhí)行j=0;然后執(zhí)行do-while語句,共循環(huán)4次:

a)s=26+a[3][0]=26+15=41,j+1=1。

b)s=41+a[3][1]=41+16=57,j+1=2。

c)s=57+a[3][2]=57+17=74,j+1=3。

d)s=74+a[3][3]=74+18=92,j+1=4。終止循環(huán)。

④i=3時(shí),執(zhí)行while語句,i++<4成立,這時(shí)i=4,執(zhí)行continue語句,結(jié)束本次循環(huán)。

⑤當(dāng)i=4時(shí),執(zhí)行while語句,i++<4不成立,結(jié)束while循環(huán)。輸出s的結(jié)果92。

36.1371513715解析:本題中,定義了一個(gè)整型數(shù)組n并初始化,在for循環(huán)語句中,再對(duì)數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。

37.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式輸出\'C\'的ASCII碼為67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式輸出為\'G\'。

38.swap(st);swap(s,t);解析:本題要在主函數(shù)中調(diào)用swap函數(shù)交換a、b的值,實(shí)現(xiàn)數(shù)據(jù)交換需要進(jìn)行地址傳遞,所以函數(shù)的形參都應(yīng)該是需要交換的數(shù)據(jù)的地址,程序中通過“s=&a;t=&b;”將指針變量s和t指向變量a、b的地址,因此,引用時(shí)直接引用指針變量s和t即可。

39.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

40.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個(gè)if語句,因?yàn)?,a=58>50,執(zhí)行第一個(gè)if語句后面的輸出語句,輸出58;接著執(zhí)行第二個(gè)if語句,因?yàn)椋琣=58>40,執(zhí)行第二個(gè)if語句后面的輸出語句,輸出58;接著執(zhí)行第三個(gè)if語句,因?yàn)?,a=58>30,執(zhí)行第三個(gè)if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

41.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時(shí)直接賦字符串常量。選項(xiàng)B)和C)后面的'\\0'是多余的,不過也不錯(cuò),在C語言中,系統(tǒng)會(huì)自動(dòng)在字符串的結(jié)尾處加上一個(gè)字符'\\0'作為串的結(jié)束標(biāo)記。

42.C解析:本題考查if語句.當(dāng)執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過break語句跳出循環(huán),執(zhí)行下列的printf語句。

43.C解析:求余運(yùn)算符'%'兩邊的運(yùn)算對(duì)象必須是整型,而選項(xiàng)B)和D)中'%'兩邊的運(yùn)算對(duì)象有浮點(diǎn)整數(shù)據(jù),所以選項(xiàng)B)和D)是錯(cuò)誤的表達(dá)式。在選項(xiàng)A)中賦值表達(dá)式的兩邊出現(xiàn)相同的變量x,也是錯(cuò)誤的。選項(xiàng)C)是一個(gè)逗號(hào)表達(dá)式,所以正確答案為C)。

44.B解析:本題考查了用指針處理字符串的方法。用指針處理字符串,首先要使指針指向該字符串。例如本題中的s1='AbDeG'就是使字符指針指向了字符串'AbDeG',而指針s1+=2則是指針向后移動(dòng)了兩個(gè)字符的位置,指向了字符‘D’。strcmp則是字符串比較函數(shù)。

45.B解析:視圖設(shè)汁一般有3種設(shè)計(jì)次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設(shè)計(jì)提供了具體的操作方法,設(shè)計(jì)者可根據(jù)實(shí)際情況靈活掌握,可以

單獨(dú)使用也可混合使用。

注意:數(shù)據(jù)庫概念設(shè)計(jì)的過程:首先選擇局部應(yīng)用,再進(jìn)行局部視圖設(shè)計(jì),最后

對(duì)局部視圖進(jìn)行集成得到概念模式。

46.D解析:該題目要求的是最大數(shù)的位置(下標(biāo))。程序通過對(duì)a所指數(shù)組中的元素進(jìn)行逐個(gè)比較,記錄最大數(shù)的下標(biāo)i,并把該下標(biāo)記錄在變量p中,所以,如果a[i]>a[p]關(guān)系成立,應(yīng)該把i的值賦給p,這樣才滿足題目的要求。

47.C解析:a數(shù)組存放的是字符串,系統(tǒng)會(huì)自動(dòng)在字符串的最后加上一個(gè)'\\0',所以a數(shù)組的長度為4,而b數(shù)組的長度為3,故a數(shù)組長度大于b數(shù)組長度。

48.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

49.D本題主要考查自加與自減運(yùn)算符。在C語言中,自加與自減運(yùn)算符具有以下性質(zhì):

(1)自加運(yùn)算符“++”和自減運(yùn)算符“--”的運(yùn)算本身是一種賦值運(yùn)算,其結(jié)果是使運(yùn)算對(duì)象的值增1或減1。

(2)++、--運(yùn)算符是單目運(yùn)算符,運(yùn)算對(duì)象可以是整型變量或字符型變量,也可以是實(shí)型變量,但不能是常量和表達(dá)式。

(3)自加、自減運(yùn)算符無論是作為前綴還是后綴運(yùn)算符,對(duì)于變量而言,其效果相同,但作為表達(dá)式來說,其值不同。

(4)++和--運(yùn)算符的結(jié)合方向是“自右向左”。

(5)不要在一個(gè)表達(dá)式中對(duì)同一個(gè)變量進(jìn)行多次自增或自減運(yùn)算??梢灾辣绢}正確的答案是D。

50.A解析:本題考核的知識(shí)點(diǎn)是宏定義的簡單應(yīng)用。本題中首先將所有的宏替換掉,則表達(dá)式為i=4+4*4+4/2+2*2+2,故最后輸出的i的值為28。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

51.B解析:函數(shù)中將指針變量ptr1和ptr2中的值交換,而不是交換指針ptr1和ptr2所指變量中的值。

52.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

53.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對(duì)。scanf()的輸入變量必須為地址,因此C是錯(cuò)誤的。

54.C解析:本題考查文件包含的知識(shí)點(diǎn):格式1:#include(文件名),預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include“文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄中尋找指定的文件,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找。

55.A

56.D解析:結(jié)構(gòu)體變量un的存儲(chǔ)情況如圖18-3所示,第一列表示地址,第二列為每個(gè)字節(jié)的值,可用兩位的十六進(jìn)制數(shù)表示,當(dāng)把這4個(gè)字節(jié)的內(nèi)容作為long型數(shù)據(jù)時(shí),高地址字節(jié)的值表示高位,低地址字節(jié)的值表示低位。

57.D解析:由于20000+20000、4000+10及30000+10000都是整型表達(dá)式,故運(yùn)算的結(jié)果仍然是整型,表達(dá)式運(yùn)算的結(jié)果超出了整型數(shù)據(jù)的范圍,不正確。而D是長整型運(yùn)算,不會(huì)超出長整型的范周。

58.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長字符多一個(gè)元素,以存放‘\\0’。

59.B

60.B

61.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。

62.A在本題中,首先定義了一個(gè)fun函數(shù),函數(shù)中用兩個(gè)指針變量作為形參,在函數(shù)體中,定義了兩個(gè)整型變量,然后做除法運(yùn)算,并試圖將結(jié)果保存到形參中,語句“*a=c/3;”中由于變量c與3都是整型,其運(yùn)算結(jié)果也應(yīng)該為整型,運(yùn)算過程中舍去小數(shù)部分,得到計(jì)算結(jié)果為6,并保存到指針變量a指向的存儲(chǔ)單元中;語句“b=d/5;”同樣是整數(shù)運(yùn)算,其運(yùn)算結(jié)果為4,但很明顯,賦值的方法不正確,不能改變指針變量b指向單元的值。

在主函數(shù)中,定義了兩個(gè)整型變量,并分別賦初值,然后調(diào)用fun函數(shù),由于函數(shù)的形參是指針變量,采用的傳值方式是傳地址,能實(shí)現(xiàn)數(shù)據(jù)的雙向傳遞,因此,調(diào)用函數(shù)后,變量a的值變?yōu)榱?,而變量b的值不變,最后輸出的結(jié)果是6,5。

63.B

64.A變量命名規(guī)范:由字母、數(shù)字、下劃線組成,且數(shù)字不作為開頭。所以A)錯(cuò)誤。

65.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制到s1字符串,要保證sl的容量。

66.D

67.D本題的考查點(diǎn)是二維數(shù)組的定義和初始化。

選項(xiàng)A)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,0

2.O

選項(xiàng)B)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,2

3.4

選項(xiàng)c)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,0

2.3

選項(xiàng)D)錯(cuò)在省略了第2維的長度。C中在對(duì)數(shù)組進(jìn)行初始化時(shí),如果對(duì)全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時(shí)對(duì)第一維的長度可以不指定,但第二維的長度不能省。

68.CC語言的存儲(chǔ)類型為auto、register、extern、static。下面分別解釋每種存儲(chǔ)類型的含義。auto:函數(shù)中的局部變量,動(dòng)態(tài)地分配存儲(chǔ)空間,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中,在調(diào)用該函數(shù)時(shí),系統(tǒng)會(huì)給它們分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束后自動(dòng)釋放這些存儲(chǔ)空間。register:為了提髙效率,C語言允許將局部變量的值放在CPU的寄存器中,這種變量叫“寄存器變量”,只有局部自動(dòng)變量和形參可以作為寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域?yàn)閺淖兞慷x處開始到本程序文件的末尾。如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件末尾。static:靜態(tài)局部變量,屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。故本題答案為C選項(xiàng)。

69.B

70.C

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論