2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)
2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)
2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)
2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)
2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。A.數(shù)據(jù)的方法B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C.數(shù)據(jù)的對(duì)象D.數(shù)據(jù)的邏輯存儲(chǔ)

2.在下面的字符數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

3.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

4.設(shè)有定義“intx[10],*p=x,i;”,若要為數(shù)組x讀入數(shù)據(jù),以下選項(xiàng)正確的是()。

A.for(i=0;i<10;i++)scanf(“%d”,p+i);

B.for(i=0;i<10;i++)scanf(“%d”,*p+i);

C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));

D.for(i=0;i<10;i++)scanf(“%d”,x[i]);

5.

6.下列敘述中正確的是A.break語(yǔ)句只能用于switch語(yǔ)句

B.在switch語(yǔ)句中必須使用default

C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用

D.在switch語(yǔ)句中,不一定使用break語(yǔ)句

7.下列語(yǔ)句中,說(shuō)法正確的是______。

A.C程序書(shū)寫(xiě)格式嚴(yán)格,每行只能寫(xiě)一個(gè)語(yǔ)句

B.C程序書(shū)寫(xiě)格式嚴(yán)格,每行必須有行號(hào)

C.C程序書(shū)寫(xiě)格式自由,每行可以寫(xiě)多條語(yǔ)句,但之間必須用逗號(hào)隔開(kāi)

D.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行

8.

9.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}

A.16B.2C.9D.1

10.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無(wú)確定值

11.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

12.若有定義:int*p[3];,則以下敘述中正確的是()。

A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針

B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針

C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素

D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素

13.執(zhí)行完下列語(yǔ)句段后,i值為()。A.A.2B.4C.8D.無(wú)限遞歸

14.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。

A.5,5B.5,11C.11,11D.11,5

15.在深度為5的滿二叉樹(shù)葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。

A.32B.31C.16D.15

16.設(shè)有定義:floata=2,b=4,h=3;以下c語(yǔ)言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

17.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項(xiàng)中不能正確引用字符串的是()。

A.*p[3]B.p[3]C.str[2]D.*p

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

19.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的運(yùn)行結(jié)果是()。

A.1,1,2,0B.0,0,0,3C.編譯有錯(cuò)D.0,1,2,0

20.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

二、2.填空題(20題)21.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。

charch='B';

printf("%c%d\n",ch,ch);

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

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

{inti,p;

p=0;

w[*n]=x;

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

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

w[p]=x;

++*n;

}

23.寫(xiě)出下列程序的執(zhí)行結(jié)果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,則程序的運(yùn)行結(jié)果為()。

24.在宏定義#defineP13.14159中,用宏名PI代替一個(gè)______。

25.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

26.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請(qǐng)?zhí)羁铡?/p>

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

27.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

28.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為_(kāi)_____型。

29.設(shè)有宏定義:

#defineWIDTH80

#defineLENGTHWIDTH+40

則執(zhí)行賦值語(yǔ)句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。

30.下面的if語(yǔ)句與y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,請(qǐng)補(bǔ)充完整。

if(______)

if(______)y=2*x-1;

elsey=x;

elsey=3*x-11;

31.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對(duì)象稱為【】。

32.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

33.設(shè)有如下程序:

main()

{intn1,n2;

scanf("%d",&n2);

while(n2!=0)

{n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序運(yùn)行后,如果從鍵盤(pán)上輸入1298,貝愉出結(jié)果為【】。

34.若有以下定義語(yǔ)句,則不移動(dòng)指針p,并且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

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

35.fseek函數(shù)的正確調(diào)用形式是【】。

36.以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,把最大的數(shù)與最后一個(gè)數(shù)對(duì)換。請(qǐng)?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[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

37.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sum(head);

┆}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

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

39.fun1函數(shù)的功能是將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個(gè)變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個(gè)變量中的值。補(bǔ)足所缺語(yǔ)句。

fun2(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

fun1(int*p1,int*p2,int*p3)

{if(*p3>*p2)fun2(*P2,*p3);

if(*p1<*p3)fun2(______);

if(*p1<*p2)fun2(______);

}

main()

{inta,b,c;

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

fun1(&a,&b,&c);

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

}

40.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){chara:'a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序運(yùn)行后的輸出結(jié)果是()。

A.b,bB.b,cC.a,bD.a,c

42.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指

A.數(shù)據(jù)所占的存儲(chǔ)空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中表示C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D.存儲(chǔ)在外存中的數(shù)據(jù)

43.若fp是指向某文件的指針,且已讀到文件的末尾,則C語(yǔ)言函數(shù)feof(fp)的返回值是()

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

44.下面不屬于軟件設(shè)計(jì)原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

45.若以“葉”方式打開(kāi)一個(gè)己存在的文件,則下列敘述正確的是()。

A.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作

B.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作

C.文件打開(kāi)時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫(xiě)操作

D.以上3種說(shuō)法都不正確

46.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>

A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb

47.函數(shù)fseek的正確調(diào)用形式是()。

A.fseek(位移量,起始點(diǎn),文件類型指針);

B.fseek(文件類型指針,位移量,起始點(diǎn));

C.fseek(文件類型指針,起始點(diǎn),位移量);

D.fseek(起始點(diǎn),位移量,文件類型指針);

48.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

49.下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空structnode{floatx;structnode*next;};connect(structnode*t1,structnode*t2){if(t1->next==NULL)t1->next=t2;elseconnect(______,t2);}要實(shí)現(xiàn)此功能則應(yīng)該填入的選項(xiàng)是

A.t1.nextB.++t1.nextC.t1->nextD.++t1->next

50.下面能正確進(jìn)行字符串賦值操作的是

A.chars[5]={"ABCDE"};

B.chars[5]={′A′,′B′,′C′,′D′,′E′};

C.char*s;s="ABCDE";

D.char*s;scanf("%s",s);

51.若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}

A.-1B.0C.abcdefD.abdef

52.若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3,(int)(x+y)%2/4的值是

A.2.5B.2.75C.3.5D.0

53.下列說(shuō)法正確的是()

A.在執(zhí)行C程序時(shí)不是從main函數(shù)開(kāi)始的

B.C程序書(shū)寫(xiě)格式嚴(yán)格限制,一行內(nèi)必須寫(xiě)一個(gè)語(yǔ)句

C.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行上

D.C程序書(shū)寫(xiě)格式嚴(yán)格限制,一行內(nèi)必須寫(xiě)一個(gè)語(yǔ)句,并要有行號(hào)

54.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入ADescriptor<回車>,則下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getehar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

55.一個(gè)良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。

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

56.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

57.在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對(duì)

B.和之前與其最近的if配對(duì)

C.和之前與其最近的且不帶else的if配對(duì)

D.和之前的第一個(gè)if配對(duì)

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

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

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

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

59.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語(yǔ)言編譯系統(tǒng)決定

60.下列關(guān)于算法的時(shí)間復(fù)雜度陳述正確的是

A.算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間

B.算法的時(shí)間復(fù)雜度是指算法程序的長(zhǎng)度

C.算法的時(shí)間復(fù)雜度是指算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)

D.算法的時(shí)間復(fù)雜度是指算法程序中的指令條數(shù)

四、選擇題(20題)61.有以下程序:

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

A.11,12B.12,13C.13,14D.14,11

62.

63.

64.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

65.

66.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

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

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

68.有以下程序

#include<stdio.h>

voidfun(ints[])

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

{

intk,a[10]={1,2,3,4,5};

for(k=1;k<3;k++)fun(a);

for(k=0;k<5;k++)

printf("%d",a[k]);

}

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

A.34756B.23445

C.35745D.12345

69.設(shè)有定義:intx-2;,以下表達(dá)式中,值不為6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

70.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

71.C語(yǔ)言中,合法的字符串常量是()。

A."M"B.\tC.100D.MUST

72.

73.

74.

75.

76.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。

A.(!a==1)&&(!b==0)B.(a<b)&&!cC.D.1E.a&&bF.aG.H.(b+b)&&(c-a)

77.

78.閱讀下面程序,則執(zhí)行后的結(jié)果是()。

A.tomeetme

B.tmem

C.oete

D.tome

79.若fp是指向某文件的指針,且已讀到文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

80.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.abe,a23B.abe,123C.123,abeD.321,cba

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對(duì)M名學(xué)生的學(xué)習(xí)成績(jī),按從低到高的順序找出m(m≤10)名學(xué)生來(lái),并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)voidproc(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)、不為1的各整數(shù),并按從大到小的順序放在PP所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。

例如,若x的值為30,則有3個(gè)數(shù)符合要求,它們是15,5,3。

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

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

試題程序:

參考答案

1.B詳細(xì)解答:

數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門(mén)學(xué)科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。

2.D

3.A在C語(yǔ)言里不能直接表達(dá)“0<x<5”,需要分步驟來(lái)實(shí)現(xiàn),即使用“x>0&&x<5”來(lái)描述。在C語(yǔ)言里,“0<x<5”屬于一個(gè)邏輯運(yùn)算表達(dá)式,可以理解為“(0<x)<5”,因此選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。

4.AC語(yǔ)言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個(gè)參數(shù)是地址。因此,從4個(gè)答案中可以判斷,只有選項(xiàng)A是p[i]的地址,其他的均是變量本身。故本題答案為A選項(xiàng)。

5.D

6.D解析:break語(yǔ)句除了能用于switch語(yǔ)句外,還可以用于循環(huán)語(yǔ)句中,因此選項(xiàng)A不正確。在switch語(yǔ)句中,可以使用default來(lái)執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語(yǔ)句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開(kāi)始執(zhí)行,若沒(méi)有break語(yǔ)句中斷執(zhí)行的話,程序會(huì)一直執(zhí)行到switch的最后一條語(yǔ)句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對(duì)使用會(huì)讓所有case分支互不重疊條理明確,但不配對(duì)使用在C語(yǔ)言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。

7.D

8.B

9.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

10.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小:②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。

11.C解析:C語(yǔ)言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。

12.B解析:當(dāng)一個(gè)數(shù)組中的元素均為指針類型數(shù)據(jù)時(shí),該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個(gè)數(shù)組元素(指針變量)都是指向一個(gè)整型的指針變量。

13.B

14.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。

15.C根據(jù)二叉樹(shù)的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹(shù)為滿二叉樹(shù)。滿二叉樹(shù)的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹(shù)的性質(zhì),在滿二叉樹(shù)的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。

16.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

17.A“*P[3]”是一個(gè)字符,也就是str[3][0],不是字符串,選項(xiàng)A錯(cuò)誤。“P[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項(xiàng)。

18.C【答案】C

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

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

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

19.C本題中“if(a=1)b=1”與“elsed=3;”之間多了語(yǔ)句“c=2;”,所以會(huì)出現(xiàn)else語(yǔ)句的位置錯(cuò)誤的編譯失敗提示。故本題答案為C選項(xiàng)。

20.C

21.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。

22.++pw[i-1]

23.a=8b=7

24.本題考查字符替換格式:#define標(biāo)識(shí)符字符串。

25.fopenfopen解析:C語(yǔ)言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開(kāi),使用后要關(guān)閉。打開(kāi)文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。

26.m<10n%4!=0

27.完整性控制完整性控制

28.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過(guò)開(kāi)方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。

29.880

30.x<10x>=1

31.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對(duì)象。所以,屬性與操作相似的一組對(duì)象稱為類。

32.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

33.89218921解析:本題的程序的功能是將輸入的整數(shù)反向輸出。

34.*(p+5)

35.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點(diǎn))

“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開(kāi)始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長(zhǎng)度大于64k時(shí)不致出現(xiàn)問(wèn)題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。

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

37.structlink*headstructlink*head解析:因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn)逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有個(gè)指向結(jié)構(gòu)體變量的指針依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。注意:結(jié)構(gòu)體變量和共用體變量之間的區(qū)別為聯(lián)系。

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

39.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識(shí)點(diǎn)有3個(gè),①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。

40.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒(méi)有給a賦值,因此a的值不變;接下來(lái)執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

41.A解析:程序中pdntf('%c',++a)是先將a加1,再輸a,因此輸出的是\'b\',而pfintf('%c\\n',b=a++)是先將a的值賦給b,a再加1,所以輸出的也是\'b\'。

42.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)器內(nèi)的表示。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)用計(jì)算機(jī)語(yǔ)言的實(shí)現(xiàn),即建立數(shù)據(jù)的機(jī)內(nèi)表示。

43.D

44.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。

45.A解析:本題考查文件使用方式標(biāo)識(shí)符,以“葉”方式打開(kāi)一個(gè)已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。

46.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。

47.B解析:改變文件位置的指針函數(shù)fseek()的調(diào)用形式為:fseek(fp,offset,position);。fseek函數(shù)參數(shù)說(shuō)明:“fp”是指向該文件的文件型指針;“offset'’為位移量,指從起始點(diǎn)position.到要確定的新位置的字節(jié)數(shù)。也就是以起點(diǎn)為基準(zhǔn),向前移動(dòng)的字節(jié)數(shù)。ANSIC要求該參數(shù)為長(zhǎng)整型量;“position”為起始點(diǎn),指出以文件的什么位置為基準(zhǔn)進(jìn)行移動(dòng),position的值用整型常數(shù)表示,“0”表示文件的開(kāi)頭,“1”表示文件的當(dāng)前位置,“2”表示文件的末尾。

48.D解析:break語(yǔ)句只能在循環(huán)體和switch語(yǔ)句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語(yǔ)句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體.而continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語(yǔ)句,判斷if后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語(yǔ)句.因continue的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語(yǔ)句也仍然成立,因此循環(huán)將無(wú)止境地進(jìn)行下去。所以,4個(gè)選項(xiàng)中D為所選。

49.C解析:成員next中存放的是下一個(gè)結(jié)點(diǎn)的地址。

50.C解析:考查了一維字符數(shù)組的定義和初始化。選項(xiàng)A)和B)定義的數(shù)組空間太小,至少應(yīng)該為6個(gè)字符的長(zhǎng)度才可以。選項(xiàng)D)中的指針s未賦初值,所以指向一個(gè)不確定的地址,因而不能用scanf輸入數(shù)據(jù)到這一指針?biāo)赶虻牡刂分小?/p>

51.A

52.A解析:x+y的值為實(shí)型7.200000,經(jīng)強(qiáng)制類型轉(zhuǎn)化成整型7。a%3的值為1,1*7的值為7,7%2值為1。1/4的值為0,而非0.25,因而為兩個(gè)整數(shù)相除的結(jié)果為整數(shù),舍去小數(shù)部分。與實(shí)型x相加,最終得結(jié)果為2.500000。

53.C

54.D解析:由于只有4個(gè)元音字符,所以v1=4,v0和v2在循環(huán)11次中都要加1,共循環(huán)12次,由于v0的初值為1,所以v0=13,v2=12。

55.D解析:1966年,Bohra和Jacopini提出了以下三種結(jié)構(gòu),用這三咱基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。

56.B解析:指針變量p指向數(shù)組a的第5個(gè)元素,p[3]在原指向基礎(chǔ)上移3個(gè)單位,指針變量p將指向第8個(gè)元素(下標(biāo)為7的元素),值為7。

57.C解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書(shū)寫(xiě)格式無(wú)關(guān)。所以選項(xiàng)C)為正確答案。

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

59.D解析:在C語(yǔ)言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語(yǔ)言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。

60.C解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,也就是算法在執(zhí)行過(guò)程中所執(zhí)行的基本運(yùn)算的次數(shù),而不是指程序運(yùn)行需要的時(shí)間或是程序的長(zhǎng)度。

61.B本題中定義了一個(gè)結(jié)構(gòu)體數(shù)組dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函數(shù)中指針P指向了結(jié)構(gòu)體數(shù)組的第一個(gè)元素,因此P一>x值為ll,P_>y值為l2,自

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論