2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁
2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁
2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁
2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁
2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年內(nèi)蒙古自治區(qū)呼和浩特市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運(yùn)行后的輸出結(jié)果是()。A.b,bB.b,cC.a,bD.a,c

2.設(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)

3.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是().

A.地址傳遞B.單向值傳遞C.由實(shí)參傳給形參,再由形參傳回實(shí)參D.傳遞方式由用戶指定

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

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

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

D.用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性

5.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

6.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員

7.

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

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

9.以下選項(xiàng)中合法的實(shí)型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

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

A.2B.3C.4D.無確定值

11.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

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

A.在C語言中,預(yù)處理命令行都以“#”開頭

B.預(yù)處理命令行必須位于c源程序的起始位置

C.#include<stdi0.h>必須放在C程序的開頭

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

13.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。

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

14.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為非空的循環(huán)單鏈表first的尾結(jié)點(diǎn)(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

15.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0

16.程序設(shè)計(jì)的任務(wù)包括()。

A.編寫程序代碼并上機(jī)調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項(xiàng)均正確

17.

18.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運(yùn)行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

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

19.以下()不是隊(duì)列的基本運(yùn)算

A.從隊(duì)尾插入一個(gè)新元素B.從隊(duì)列中刪除第i個(gè)元素C.判斷一個(gè)隊(duì)列是否為空D.讀取隊(duì)頭元素的值

20.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運(yùn)行時(shí)輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。

A.x=10.200000y=-3.200000

B.x=6.700000y=-13.700000

C.x=7.000000y=-3.500000

D.x=13.400000y=-7.000000

二、2.填空題(20題)21.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)谙聞澗€中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

【】

main()

{printf("\n");

try_me();

printf("\n");}

22.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為______。

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

voidfun()

{staticinta;

a+=2;

printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<=4;cc++)fun();

printf("\n");

}

24.最簡(jiǎn)單的交換排序方法是______。

25.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

26.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

27.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

28.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個(gè)數(shù)中,求出最大的和最小的數(shù)據(jù),請(qǐng)?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;}

29.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;

return(num);

}

30.以下程序的功能是調(diào)用函數(shù)fun計(jì)算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請(qǐng)?zhí)羁铡?/p>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=______;

}

returnm;

}

main()

{printf("%d\n",【】);}

31.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

32.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有______。

33.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。

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

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

36.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");)

}

37.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

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

40.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。

三、1.選擇題(20題)41.十進(jìn)制數(shù)1385轉(zhuǎn)換成十六進(jìn)制數(shù)為()

A.568B.569C.D85D.D55

42.有以下程序

intfun(intn)

{if(n==1)return1;

else

return(n+fun(n-1));

}

main()

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",x)

}

執(zhí)行程序時(shí),給變量x輸入10,程序的輸出結(jié)果是

A.55B.54C.65D.45

43.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j*2)continue;x++;}x++;}printf("x=%d\n”,x);}程序執(zhí)行后的輸出結(jié)果是()。

A.x=4B.x=8C.x=6D.x=12

44.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關(guān)系

45.編制一個(gè)好的程序,首先要保證它的正確性和可靠性,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,在書寫功能性注釋時(shí)應(yīng)考慮

A.僅為整個(gè)程序作注釋B.僅為每個(gè)模塊作注釋C.為程序段作注釋D.為每個(gè)語句作注釋

46.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4:*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5},k,x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}

A.5,4,3,2,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,

47.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

48.有以下程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}

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

49.以下只有使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類型說明是()

A.auto和static

B.auto和register

C.register和static

D.extern和register

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

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號(hào)“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號(hào)是C語句之間的分隔符,不是語句的一部分

51.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

52.已知字母A的ASCII參政值是65,字母a的ASCII碼值是97,以下程序列______。main(){chara='A';intb=20;printf("%d,%o",(a=a+a,a+b,b),a+'a'+'A',b);}

A.表達(dá)式非法,輸出零或不確定值

B.因輸出項(xiàng)過多,無輸出或輸出不確定值

C.輸出結(jié)果為20,141

D.輸出結(jié)果為20,141,20

53.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

54.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

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

55.有以下程序main(){char*s="abcde";s+=2;printf("%ld\n",s);}程序運(yùn)行后的輸出結(jié)果是()

A.cdeB.字符c的ASCII碼值C.字符c的地址D.出錯(cuò)

56.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。

A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)

57.以下各選項(xiàng)企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int

B.typedefv2=int;

C.typedefintv3;

D.typedefv4=int

58.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運(yùn)行時(shí)出錯(cuò),x無定值

59.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge

60.以下程序的輸出結(jié)果是______。fun(int*s,int*p){staticintt=3;*p=s[t];t--;}main(){intstr[]={1,2,3,4},i,m=0;for(i=0;i<4;i++){fun(str,&m);printf("%d",m);}printf("\n");}

A.0B.444412C.1234D.4321

四、選擇題(20題)61.下列關(guān)于棧的描述中錯(cuò)誤的是()。

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

62.有以下程序:

運(yùn)行時(shí),若輸入123450<;回車>;,則輸出結(jié)果是()。

A.66656B.6566456C.66666D.6666656

63.設(shè)變量x為float型且已賦值,則以下語句能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第3位四舍五入的是()。

A.

B.

C.

D.

64.下列關(guān)于棧敘述正確的是()。A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠(yuǎn)不能被刪除D.棧底元素最先能被胍除

65.

66.有以下程序:

#include<stdio.h>

main

{inta=1,b=2;

while(a<6){b+=a;a4+=2;b%=10;)

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

}

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

A.5,11B.7,1C.7,11D.6,1

67.若有定義和語句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

則輸出結(jié)果是()。A.A.20,10B.20,20C.10,20D.10,10

68.在一個(gè)C程序中

A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置

69.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。

70.

71.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。

A)20B)40

C)60D)80

72.

有以下程序:

main

{inta[]=(2,4,6,8,10},y=0,x,*P;

p=&a[1];

for(x=1;x<3;x++)y+=p[x];

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

}

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

A.10B.11C.14D.15

73.若想定義int型變量a,b,c,d并都賦值為1,以下寫法中錯(cuò)誤的是()。

A.inta=b=c=d=1;

B.inta=1,b=1,c=1,d=1;

C.inta,b,c,d;a=b=c=d=1;

D.inta,b,c,d=1;a=b=c=d;

74.

75.下述程序的輸出結(jié)果是()。

#include<stdio.h>

main

{charch[2][5]-{”1234”,”5678”},*p[2];

inti,j,s=0;

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

p[i]=ch[i];

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

{s=p[i][j]一'0';

printf("%d",s);}

}A.A.6357B.6135C.1357D.691357

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

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

77.下列函數(shù)的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的長(zhǎng)度

B.比較兩字符串的大小

C.將字符串s復(fù)制到字符串t中

D.將字符串s連接到字符串t后

78.已知各變量的類型說明如下:

則以下不符合C語言語法的表達(dá)式是()。

A.

B.

C.

D.

79.

80.有以下程序

#include"stdio.h"

voidfun(int*a,int*b,intc)

{c=*a+*b;}

main()

{inta[2]={6,9},c=0;

fun(a,a+1,&c);

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

}

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

A.6B.9

C.0D.15

五、程序改錯(cuò)題(1題)81.寫出下列程序的運(yùn)行結(jié)果。

#include“stdio.h”

Main

{inta[]={1,2,3,-4,5};

intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);

printf(“%d%d%d”,*p,m,n);}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun(),其功能是除了字符串前導(dǎo)和尾部的*號(hào)外,將字符串中其他的*號(hào)全部刪除。形參h指向字符串中第一個(gè)字母,形參p指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

參考答案

1.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。

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

3.B

4.A解析:本題考查的重點(diǎn)是typedef的理解運(yùn)用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項(xiàng)A是錯(cuò)誤的。

5.B

6.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。

7.C

8.D解析:程序不僅是編寫完就結(jié)束了,為了測(cè)試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,即程序的易讀性,“清晰第一,效率第二”。

9.C解析:在C語言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。

1)一般形式的實(shí)數(shù):小數(shù)形式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。

2)指數(shù)形式的小數(shù):指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項(xiàng)A中,5E2.0中E后面的2.0不是整數(shù);選項(xiàng)B中,E前面沒有數(shù)字;選項(xiàng)D中,E后面沒有數(shù)字。

10.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小;2)當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),則第一維的劃、:所得的商數(shù)+1。

11.D此題考查的是基本的循環(huán),答案為D。

12.A預(yù)處理命令是以“#”號(hào)開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯(cuò)誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯(cuò)誤。

13.A解析:在主函數(shù)main()中,語句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

14.C

15.C調(diào)用函數(shù)fun(7)時(shí),由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);\r\n調(diào)用函數(shù)fun(5)時(shí),由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);\r\n調(diào)用函數(shù)fun(3)時(shí),由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);\r\n調(diào)用函數(shù)fun(1)時(shí),由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。\r\n因此函數(shù)調(diào)用fun(7)等價(jià)于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。

16.D程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計(jì)的任務(wù)包括選項(xiàng)A)、B)、c)等方面。

17.D

18.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

19.B

20.Asub函數(shù)接收兩個(gè)參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結(jié)果存放在a中;然后再將pb指向的變量值與a的新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會(huì)修改實(shí)參x的值,但會(huì)修改實(shí)參y的值。當(dāng)輸入10.23.5時(shí),實(shí)參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項(xiàng)。

21.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用#include文件包含命令將定義函數(shù)的文件包含進(jìn)來。

22.繼承繼承

23.2468

24.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡(jiǎn)單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

25.存儲(chǔ)結(jié)構(gòu)

26.k-1k,-1解析:顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個(gè)空框處應(yīng)填入k。

27.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時(shí)b的值并未被改變。在第2個(gè)表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。

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

29.\0'n++\\0'\r\nn++解析:第1個(gè)循環(huán)是求字符串a(chǎn)的長(zhǎng)度,并存儲(chǔ)在變量num中,循環(huán)條件要控制是否取到字符串末尾的'\\0'。第2個(gè)循環(huán)通過兩個(gè)變量num和n的改變,將b字符串連接到a字符串后面,并將新的字符串長(zhǎng)度記錄到num中。

30.fun中的答案為-fmain函數(shù)中的答案為fun(10)fun中的答案為-f,main函數(shù)中的答案為fun(10)解析:根據(jù)題意可知函數(shù)fun的功能是計(jì)算12+3-4+…+n的和,所以空格處應(yīng)填入-f,main函數(shù)中輸出1-2+3-4+…+9-10的結(jié)果,所以函數(shù)的實(shí)參為10,函數(shù)調(diào)用為fun(10)。

31.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

32.前件前件

33.(x>10&&x<100)||x<0

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

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

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

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

36.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。

37.交換排序交換排序解析:常見的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。

38.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。

39.概念(或概念級(jí))概念(或概念級(jí))

40.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。

41.B

42.A本題主要考查函數(shù)的遞歸調(diào)用。在做遞歸調(diào)用函數(shù)類型的題目時(shí),我們首先要找到函數(shù)的出口和遞歸結(jié)束的條件。

在本題中,程序首先定義了一個(gè)fun函數(shù),函數(shù)的形參是一個(gè)整型變量n,從后面的程序可以看出,該函數(shù)是一個(gè)遞歸函數(shù)。在函數(shù)體中,首先執(zhí)行條件判斷語句,如果條件結(jié)果為真,說明變量n為1,此時(shí)返回1,這是遞歸函數(shù)的出口;否則返回函數(shù)的遞歸調(diào)用。

在主函數(shù)中,定義一個(gè)變量x,并試圖通過鍵盤輸入的方式為變量x賦初值,然后調(diào)用fun函數(shù),并用x作為其形參,用x保存最后的運(yùn)行結(jié)果輸出。

變量x的初值為10,從上面的分析我們知道,遞歸調(diào)用的出口是n=1,而每遞歸一次n的值減1,因此,函數(shù)fun遞歸調(diào)用了9次,其運(yùn)算相當(dāng)于10+9+8+7+6+5+4+3+2+1=55。因此,程序最終的輸出結(jié)果是55。

43.B解析:內(nèi)層for循環(huán)語句實(shí)現(xiàn)x=x+2,故外層for循環(huán)語句單次循環(huán)實(shí)現(xiàn)x=x+4,所以程序執(zhí)行后的輸出結(jié)果為x=8。

44.B數(shù)據(jù)庫可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,只不過這個(gè)倉庫在計(jì)算機(jī)的大容量存儲(chǔ)器上,例如,硬盤就是一種最常見的計(jì)算機(jī)大容量存儲(chǔ)設(shè)備。數(shù)據(jù)必須按一定的格式存放,因?yàn)樗粌H需要存放,而且還要便于查找和使用。

數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的完成數(shù)據(jù)管理的系統(tǒng)軟件。它是用戶與數(shù)據(jù)庫的接口。應(yīng)用程序一般要通過DBMS才能訪問數(shù)據(jù)庫。在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一控制。

數(shù)據(jù)庫系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。數(shù)據(jù)庫是整個(gè)數(shù)據(jù)庫系統(tǒng)最基本的成分。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。數(shù)據(jù)庫管理員是數(shù)據(jù)庫系統(tǒng)的責(zé)任維護(hù)者,負(fù)責(zé)對(duì)數(shù)據(jù)庫系統(tǒng)的整體維護(hù)。

綜上所述,本題中只有B選項(xiàng)的描述是正確的。

45.C解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會(huì)怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。

46.A解析:本題考查的是靜態(tài)變量以及函數(shù)的實(shí)參與形參之間的地址值傳遞。sub()函數(shù)數(shù)中定義的變量m是一個(gè)靜態(tài)變量,系統(tǒng)可為其分配固定的存儲(chǔ)空間,重復(fù)使用時(shí),變量的值保留;所以當(dāng)mam()函數(shù)中的for循環(huán)中語句sub(a,&x);執(zhí)行時(shí),sub函數(shù)中m的值依次是4,3,2,1,0;因?yàn)樽兞縳進(jìn)行的是地址值傳遞,所以最后依次輸出的是數(shù)組a的元素a[4]、a[3]、a[2]、a[1]、a[0]。

47.B解析:本題考查變量的定義方法。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開,因此選項(xiàng)A)和D)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,故選項(xiàng)C)錯(cuò)誤。

48.B解析:本題考查swish語句。第一個(gè)switch語句,因?yàn)閍=6,a%2=0,所以執(zhí)行case0,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。

49.B

50.A解析:花括號(hào)“{”和“}”不僅可以作為函數(shù)體的定界符,而且可以作為復(fù)合語句的定界符,選項(xiàng)B錯(cuò)誤;main()函數(shù)不可以由用戶命名,選項(xiàng)C錯(cuò)誤;分號(hào)是C語句的結(jié)束符,是構(gòu)成C語句的必要組成部分,選項(xiàng)D錯(cuò)誤。

51.D解析:指針變量是通過指向變量地址來指定變量值的。這里只要取m的地址賦給p,即可實(shí)現(xiàn)使p為指向m的指針變量。

52.C解析:本題中首先輸出逗號(hào)表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+'a'-'A'的值為97對(duì)應(yīng)的八進(jìn)制數(shù)141,由于最后一個(gè)表達(dá)式b沒有對(duì)應(yīng)輸出格式的輸出項(xiàng)表列就不會(huì)輸出。

53.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。

54.A解析:本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時(shí)的表達(dá)式的值參與運(yùn)算;②后綴變量“i++、i--”,先使用此時(shí)的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。本題中計(jì)算表達(dá)式c=(a++)-1時(shí)先使用a的值進(jìn)行計(jì)算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達(dá)式c+=-a+++(++b)等價(jià)于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時(shí)a=4,b=3。

55.C

56.D解析:因?yàn)樽址麛?shù)組s1)中的數(shù)組名s表示的是一個(gè)地址常量。所以語句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位,因而程序編譯時(shí)出錯(cuò)。

57.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個(gè)別名。

58.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個(gè)指針變量中存儲(chǔ)的地址是不同的。變量x接受的是一個(gè)關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€(gè)地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。

59.D解析:結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個(gè)指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項(xiàng)A和選項(xiàng)B就是通過指針變量來引用結(jié)構(gòu)體的成員,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,而在選項(xiàng)D中stu[3].a(chǎn)ge不正確,因?yàn)榻Y(jié)構(gòu)體數(shù)組stu共有三個(gè)元素,其下標(biāo)應(yīng)該為0,1,2。

60.D解析:程序的功能是將字符數(shù)組str中的內(nèi)容以反序輸出。函數(shù)fun中t為靜態(tài)變量,每一次調(diào)用函數(shù)fun時(shí),t的值為上一次調(diào)用函數(shù)結(jié)束時(shí)的值。

61.B

\n棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用,??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

\n

62.Bswitch語句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)e·*后面的常量表達(dá)式的值相等,就執(zhí)行此ca*后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號(hào)中表達(dá)式的值與所有ca$e后面的常量表達(dá)式都不等,則執(zhí)行default后面前語句。然后退出。所以輸入l時(shí)打印65,輸入2時(shí)打印6,輸入3時(shí)打印64,輸入4時(shí)打印5,輸入5時(shí)打印6。

63.B(int)(x*100+0.5)把float型數(shù)據(jù)(x*100+0.5)強(qiáng)轉(zhuǎn)成int,這樣就可以去掉小數(shù)點(diǎn),+0.5就是為了四舍五人。例如x=1.234,則(1.234*100+0.5)=123.9.則(int)123.9/100.0=123/100.0=1.23。

64.A棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,所以本題答案為A)。

65.B

66.B“b+=a;”等價(jià)于“b=b+a;”,“a+=2;”等價(jià)于“a=a±2;”,“bA=10;”等價(jià)于“b=b%=10;”。循環(huán)體執(zhí)行3次,最終結(jié)果為7,1。

67.D本題考查指針變量的賦值。**PP是定義一個(gè)指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

68.B在C語言中,函數(shù)是C程序的基本組成部分,用來完成子程序的功能。一個(gè)完整的C程序至少應(yīng)該包括一個(gè)main()函數(shù),其他函數(shù)可以沒有,

溫馨提示

  • 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)論