2021-2022年山東省萊蕪市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁(yè)
2021-2022年山東省萊蕪市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁(yè)
2021-2022年山東省萊蕪市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁(yè)
2021-2022年山東省萊蕪市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁(yè)
2021-2022年山東省萊蕪市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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ì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序運(yùn)行后的輸出結(jié)果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0

2.

3.某二叉樹(shù)的前序和后序序列正好相反,則該二叉樹(shù)一定是_____的二叉樹(shù)

A.空或者只有一個(gè)結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無(wú)左孩子D.任一結(jié)點(diǎn)無(wú)右孩子

4.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8

5.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運(yùn)行結(jié)果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

6.若有定義“floata=25,b,*p=&b;”,則下列對(duì)賦值語(yǔ)句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個(gè)語(yǔ)句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個(gè)語(yǔ)句都是使P指向變量a

7.根據(jù)二叉樹(shù)的定義可知道二叉樹(shù)共有種不同形態(tài)的二叉樹(shù)()。

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

8.

9.設(shè)計(jì)一個(gè)判別表達(dá)式中左、右括號(hào)是否配對(duì)出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.線性表的順序存儲(chǔ)結(jié)構(gòu)B.隊(duì)列C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D.棧

10.下面結(jié)構(gòu)中最適于表示稀疏無(wú)向圖的是()。

A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表

11.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

12.一個(gè)函數(shù)返回值的類(lèi)型是由()決定的。

A.return語(yǔ)句中表達(dá)式的類(lèi)型B.定義函數(shù)時(shí)指定的函數(shù)類(lèi)型C.在調(diào)用函數(shù)時(shí)臨時(shí)指定D.調(diào)用函數(shù)的主調(diào)函數(shù)的類(lèi)型

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

A.IB.JC.KD.H

14.以下哪種操作最適合先進(jìn)行排序處理()

A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

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

A.21B.11C.20D.10

16.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

17.

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

A.向量屬于線性結(jié)構(gòu)B.二叉鏈表是二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)C.棧和隊(duì)列是線性表D.循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

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

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

20.

二、2.填空題(20題)21.有如下程序段:

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!='\0')

{n=fun();i++;}

printf("%d\n",n*argc);

}

intfun()

{staticints=0;

s+=1;

returns;

}

假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam,exe,若鍵入如下命令行:

examl23<回車(chē)>

則運(yùn)行結(jié)果為【】。

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

23.設(shè)有以下定義:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下圖所示鏈表結(jié)構(gòu),

請(qǐng)寫(xiě)出刪除點(diǎn)y的賦值語(yǔ)句【】。

24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

25.函數(shù)sstrcmp()的功能是對(duì)兩個(gè)字符串進(jìn)行比較。當(dāng)s所指字符串和t所指字符串相等時(shí),返回值為0;當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0;當(dāng)s所指字符串小于t所指字符串時(shí),返回值小于0(功能等同于庫(kù)函數(shù)strcmp())。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

26.數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)這3個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是【】。

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

28.以下程序用業(yè)統(tǒng)計(jì)文件十字符個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

main()

{FTLE*fp;longnum=OL;

if((fp=fopen("fname.dat","r"))==NUlL)

{pirntf("Openerror\n");exit(0);}

while()

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

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

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0||i%11==0)a[j++]=i;

*n=j;

}

main()

{intaa[M],n,k;

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");

}

30.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

31.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。

32.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

33.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

34.在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。

35.對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【】。

36.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。

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

#inelude<stdio.h>

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);printf("%d\n",s);

}

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

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

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

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

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

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

fclose(f1);

fclose(f2);

}

39.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。

40.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>

main()

{

intfindbig(int,int,int);

int(*f)(),x,yz,z,big;

f=【】;

scanf("%d%d%d",&X,&y,&z);

big=(*f)(x,y,z);

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

}

三、1.選擇題(20題)41.在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶所見(jiàn)的數(shù)據(jù)模式為A.概念模式B.外模式C.內(nèi)模式D.物理模式

42.若已定義x為int類(lèi)型變量,說(shuō)明指針變量p的正確語(yǔ)句是______。

A.intp=&x;B.int*p=x;C.int*p=&x;D.*p=*x;

43.有以下程序#defineP3voidF(intx){return(p'x'x);main(){pritnf("%d\n",F(3+5));}程序運(yùn)行后的輸出結(jié)果是

A.192B.29C.25D.編譯出錯(cuò)

44.在C語(yǔ)言中,存儲(chǔ)類(lèi)型為()的變量只在使用它們時(shí)才占用存儲(chǔ)空間。

A.static和auto

B.register和auto

C.static和register

D.register和extem

45.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

46.下面的程序段運(yùn)行后,輸出結(jié)果是

inti,j,x=0;

staticinta[8][8];

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

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

a[i][j]=2*i+j;

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

x+=a[i][j];

printf("%d",x);

A.9B.不確定值C.0D.18

47.以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p->y);printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

48.設(shè)有聲明語(yǔ)句chara='\72';,則變量a______。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.聲明不合法

49.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}

A.字符串a(chǎn)的長(zhǎng)度B.字符串b的長(zhǎng)度C.字符串a(chǎn)和b的長(zhǎng)度之差D.字符串a(chǎn)和b的長(zhǎng)度之和

50.標(biāo)準(zhǔn)庫(kù)函數(shù)fgets(s,n,f)的功能是()

A.從文件f中讀取長(zhǎng)度為n的字符串存入指針s所指的內(nèi)存

B.從文件f中讀取長(zhǎng)度不超過(guò)n-1的字符串存入指針s所指的內(nèi)存

C.從文件f中讀取n個(gè)字符串存入指針s所指的內(nèi)存

D.從文件f中讀取長(zhǎng)度為n-1的字符串存入指針s所指的內(nèi)存

51.在函數(shù)調(diào)用過(guò)程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則()。

A.稱(chēng)為函數(shù)的直接遞歸調(diào)用B.稱(chēng)為函數(shù)的間接遞歸調(diào)用C.稱(chēng)為函數(shù)的循環(huán)調(diào)用D.C語(yǔ)言中不允許這樣的遞歸調(diào)用

52.線性表常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

53.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是

A.12B.15C.16D.20

54.下列程序的輸出結(jié)果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

55.以下程序的輸出結(jié)果是main(){charc='z';printf("%c",c-25);}

A.aB.ZC.z-25D.y

56.判斷char型變量cl是否為大寫(xiě)字母的正確表達(dá)式是()。

A.'A'<=cl<='Z'

B.(cl>=A)&&(cl<=Z)

C.('A'>=cl)||('Z'<=cl)

D.(cl>='A')&&(cl<='Z')

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

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

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

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

58.有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,ij);}}main(){intx[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\"n);}程序運(yùn)行后的輸出結(jié)果是()。

A.1268B.8621C.8162D.8612

59.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

60.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

四、選擇題(20題)61.

62.

63.以下敘述中錯(cuò)誤的是()。A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

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

C.c語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

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

64.有以下程序若想通過(guò)鍵盤(pán)輸入,使得al的值為12,a2的值為34,el的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是()。

65.在c語(yǔ)言中,變量的隱含存儲(chǔ)類(lèi)別是()。

A.autoB.staticC.externD.無(wú)存儲(chǔ)類(lèi)別

66.閱讀以下程序:

該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,原因是()。

A.定義語(yǔ)句出錯(cuò),Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符

B.定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符

C.定義語(yǔ)句無(wú)錯(cuò),sCanf不能作為輸入函數(shù)使用

D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出Case的值

67.有如下程序段

#include"stdio.h"

voidfun(int*a,int*b,int*c,int*d,int*e)

{inti,j,k,m;

for(i=0;i<*a;i++)

for(j=0;j<*b;j++)

for(k=0;k<*c;k++)

for(m=0;m<*d;m++)

++*e;

}

main()

{inta=10,b=10,c=10,d=10,e=0;

fun(&a,&b,&c,&d,&e);

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

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

A.10000B.1000

C.100D.0

68.

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

#include<stdio.h>

intfun(inta)

{intb=0;

staticintc=4:

a=c++:b++;

return(a):

main

{inta=2,i,c;

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

c=f(a+1):

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

}

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

69.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9

70.

71.在執(zhí)行完下列的c語(yǔ)句段之后,則B的值是()。chara=A;intb;B=((34&&56)&&(a<b));A.0B.1C.TRUED.FALSE

72.下面各選項(xiàng)中,均是C語(yǔ)言合法標(biāo)識(shí)符的選項(xiàng)組是()。

A.

B.

C.

D.

73.

74.有以下程序:

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

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

75.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

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

A.to

B.tomeet

C.toee

D.程序段不能通過(guò)編譯

76.

77.程序調(diào)試的目的是

A.發(fā)現(xiàn)程序中的錯(cuò)誤B.改正程序中的錯(cuò)誤C.驗(yàn)證程序的正確性D.改善軟件的性能

78.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車(chē)>,輸出結(jié)果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

79.

80.在一個(gè)C語(yǔ)言源程序文件中所定義的全局變量,其作用域?yàn)?)。

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說(shuō)明來(lái)決定范圍

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開(kāi)始依次取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個(gè)新數(shù)存放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為7654321時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include<;stdi0.h>;

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳給m的值為70,則程序輸出:7111421222833354244495556636670注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){ }voidmain{intarr[N],n,k;system("CLS");proc(70,arr,&n);for(k=0;k<n;k++)if((k+1)%20==0)//每行輸出20個(gè)數(shù){printf("%4d",arr[k]);printf("\n");}elseprintf("%4d",arr[k]);printf("\n");}

參考答案

1.A本題考查簡(jiǎn)單的賦值運(yùn)算,在程序中c=(a-=am5),先算括號(hào)中的a-=a-5=5,所以c=5,再計(jì)算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案選擇A。

2.D

3.B

4.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個(gè)f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

5.B在函數(shù)fun中,前一個(gè)while循環(huán)的作用是,如果形參指針t所指內(nèi)容不為0,則讓t增1,直到它指向0;后一個(gè)while循環(huán)的作用是,將s所指內(nèi)容賦給t所指地址,然后兩者同時(shí)增1,直到賦給t的內(nèi)容為0。由此可見(jiàn),函數(shù)fun的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當(dāng)于庫(kù)函數(shù)strcat。主函數(shù)中使用fun將數(shù)組aa中的字符串連接到數(shù)組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序最后輸出的結(jié)果是accbbxxyy,bbxxyy。故本題答案為B選項(xiàng)。

6.C“P”是指針變量,指向一個(gè)地址:“*P”為P指針?biāo)赶虻刂返膬?nèi)容“&”是取變量地址。

7.B

8.A

9.D

10.C

11.A

12.B

13.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六進(jìn)制數(shù),轉(zhuǎn)為十進(jìn)制數(shù)x=9?!皃rintf(“%C\\n”,‘A’+9);”,輸出格式要求是“%c”,因此將字符‘A’按字母順序向后偏移9個(gè)位置,可得結(jié)果為“J”。故本題答案為B選項(xiàng)。

14.C

15.A聲明data是結(jié)構(gòu)S的數(shù)組。初始化時(shí)data[0].a(chǎn)=10;data[0].b:104);data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[11.b;執(zhí)行語(yǔ)句prinff(”%dkn”,++(p.A));打印輸出時(shí)p.a(chǎn)先增l再打印。即p.a(chǎn)=data[1].a(chǎn)=20,先增1等于21,因此程序運(yùn)行結(jié)果是21。

16.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

17.D

18.D循環(huán)鏈表是線性表的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)。因此D選項(xiàng)敘述錯(cuò)誤。本題答案為D選項(xiàng)。

19.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)(x):(y)是x>y時(shí)輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時(shí),(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。

20.D

21.66解析:本題中命令行輸入2個(gè)符號(hào)串,所以argc=2,argv[0]指向符號(hào)串'exam',argv[1]指向符號(hào)串'123',while循環(huán)的作用是計(jì)算argv[1]所指向的字符串的長(zhǎng)度,執(zhí)行完while循環(huán)后n=3,所以n*argc=3×2=6。

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

23.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要?jiǎng)h除結(jié)點(diǎn)y,只需讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此把結(jié)點(diǎn)z的地址賦給x的指針域就可以了,即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)z。而結(jié)點(diǎn)z的地址保存在結(jié)點(diǎn)y的指針域中,因此只需把結(jié)點(diǎn)y的指針域賦值給結(jié)點(diǎn)x的指針域即可。

24.軟件開(kāi)發(fā)

25.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比較兩個(gè)字符串的大小方法是:從第一個(gè)字符開(kāi)始依次向后比較,若對(duì)應(yīng)的字符相等則接著比較下一個(gè)字符,一直到兩個(gè)字符串中對(duì)應(yīng)字符不等,或者有一個(gè)為“\\0”,此對(duì)應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為“\\0”,且*s和*t相同,第一處應(yīng)填“*t”或其他等價(jià)形式。根據(jù)題意可知第二處應(yīng)填“*s-*t”或其等價(jià)形式。

26.數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)解析:在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,通過(guò)系統(tǒng)提供的映像功能,數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性。數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)階段;

27.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒(méi)有限制。

28.!feof(fp)!feof(fp)解析:本題中統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開(kāi)了文件“fname.daf”,如果打開(kāi)成功則把返回的文件型指針賦值給fp,然后通過(guò)循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。

29.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整數(shù),a[j++]=i是將滿足條件的數(shù)放到a數(shù)組中,變量j記錄了滿足條件的數(shù)據(jù)個(gè)數(shù),main函數(shù)通過(guò)變量n得到此數(shù)據(jù)個(gè)數(shù)。如果m的值為50,即表達(dá)式fun(10,aa,&n)為fun(50,aa,&n)時(shí),輸出結(jié)果為:711142122283335424449

30.物理獨(dú)立性物理獨(dú)立性

31.封裝封裝

32.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測(cè)試字符串str的長(zhǎng)度,函數(shù)的值為字符串中實(shí)際長(zhǎng)度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

33.NN解析:函數(shù)說(shuō)明語(yǔ)句中的類(lèi)型名必須與函數(shù)返回值的類(lèi)型一致。本題實(shí)現(xiàn)的是在字符'A'的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。

34.3131解析:設(shè)隊(duì)列容量為m,如果:rear>front,則隊(duì)列中元素個(gè)數(shù)為rear-front;如果rear<front,則隊(duì)列中元素個(gè)數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

35.4545解析:假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后掃描和遍的從后往前掃描,需要比較次數(shù)為。

36.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

37.66解析:已知aa[3]={1,2,3},n=3,調(diào)用函數(shù)f,n>1成立,執(zhí)行a[0]+f(&a[1],n-1);即1+f(&a[1],2),遞歸調(diào)用函數(shù)f,將a[1]的地址作為參數(shù)傳給數(shù)組a,使數(shù)組a的首地址變?yōu)?a[1],數(shù)組中的元素只有2,3;2傳給n,這時(shí)n=2,n>1仍然成立,繼續(xù)調(diào)用a[0]+f(&a[1],n-1);即執(zhí)行1+2+f(&a[1],1),因?yàn)樯洗芜f歸調(diào)用函數(shù)f后數(shù)組中的元素為2,3,所以此次的a[1]為3,調(diào)用后的a[0]為3。所以最后結(jié)果為1+2+3=6。

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

39.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和x這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

40.findbigfindbig解析:本題首先定義了一個(gè)指向函數(shù)的指針變量f,如果希望讓它指向某個(gè)函數(shù),只需把函數(shù)名賦給該指針變量即可。所以本題的空白處應(yīng)該填入函數(shù)名findbig。

41.B解析:數(shù)據(jù)庫(kù)管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式也稱(chēng)子模式或用戶模式,是指數(shù)據(jù)庫(kù)用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式也稱(chēng)邏輯模式,是數(shù)據(jù)庫(kù)中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見(jiàn)到的數(shù)據(jù)視圖的總和。內(nèi)模式也稱(chēng)存儲(chǔ)模式或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方法的描述。根據(jù)上述介紹可知,數(shù)據(jù)庫(kù)系統(tǒng)中用戶所見(jiàn)到的數(shù)據(jù)模式為外模式。因此,本題的正確答案是B。

42.C

43.D解析:本題考查的是函數(shù)的定義。C語(yǔ)言中有兩種函欺,一種是沒(méi)有返回值的函數(shù),這種函數(shù)的返回值類(lèi)型是void;另一種是有返回值的函數(shù),其返回值類(lèi)型是void以外的任何類(lèi)型。void類(lèi)型函數(shù)不能返回值,否則編譯通不過(guò)。本題是一道陷阱題,考生如果沒(méi)注意到F()函數(shù)被定義為void類(lèi)型的話,很容易錯(cuò)選為選項(xiàng)A,其實(shí)應(yīng)該選擇選項(xiàng)D,編譯出錯(cuò)!

44.D

45.A解析:在程序語(yǔ)句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語(yǔ)句,輸出1,此時(shí)k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語(yǔ)句。所以程序的最后結(jié)果為1。

46.C解析:本題主要考查的是用二維數(shù)組首地址和下標(biāo)來(lái)引用二維數(shù)組元素的方法。通過(guò)分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:

012

234

456

由于數(shù)組的下標(biāo)是從0開(kāi)始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對(duì)應(yīng)位置的元素。

47.D解析:本題中是一個(gè)結(jié)點(diǎn)的循環(huán)鏈表。C語(yǔ)言中結(jié)構(gòu)體的定義為:struet結(jié)構(gòu)體類(lèi)型名{成員項(xiàng)表;};

48.A解析:轉(zhuǎn)文字符常量'\\xx'可以把'\\'后面的數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符。

49.D解析:第一個(gè)while循環(huán)是字符串a(chǎn)的長(zhǎng)度,第二個(gè)while是將字符串b接在a的后面,num在a串長(zhǎng)度上繼續(xù)累計(jì),為兩個(gè)字符串長(zhǎng)度之和。

50.B

51.B解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱(chēng)為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱(chēng)為函數(shù)的間接遞歸調(diào)用。顯然題目中所說(shuō)得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

52.AA.【解析】線性表的存儲(chǔ)通常要用兩種存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

53.A解析:此題考查的是編譯預(yù)處理命令以及自加運(yùn)算符。F(a++,b++)先取a和b的值,參加運(yùn)算,再把a(bǔ)和b的值分別加1,所以F(a++,b++)=F(3,4)=3*4=12。

54.B

55.A解析:'z'的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后,得97,以字符形式輸出是a。所以本題答案是A)。

56.D解析:字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲(chǔ)的,英文大寫(xiě)字母和小寫(xiě)字母在ASCII碼表中都是連續(xù)的。大寫(xiě)字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫(xiě)字母。A)、C)表示形式錯(cuò)誤,B)的字符A、Z沒(méi)有用單引號(hào)括起來(lái)。

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

58.C解析:函數(shù)fun()中用了—個(gè)if語(yǔ)句,當(dāng)數(shù)組下標(biāo)i小于數(shù)組下標(biāo)j時(shí),交換數(shù)組元素a[i]和a[j]的值,并使i值加1,j值減1。其功能就是把數(shù)組a中從下標(biāo)i到j(luò)的元素首尾互換。主函數(shù)中定義一個(gè)數(shù)組,在定義該數(shù)組的時(shí)候缺省了定義長(zhǎng)度,定義的同時(shí)將其初始化賦值,所以該數(shù)組的長(zhǎng)度為初始化該數(shù)組時(shí)的元素的個(gè)數(shù)即4,接著調(diào)用fun(a,0,3),其中將a數(shù)組的第一個(gè)元素的下標(biāo)0和最后一個(gè)元素的下標(biāo)3傳給了函數(shù)fun(),故執(zhí)行完該函數(shù)后,數(shù)組a中的元素首尾互換,因此最后依次輸出的數(shù)組a中值為8,1,6和2,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

59.C解析:帶參數(shù)的宏定義命令行形式如下:

#define宏名(形參表)替換文本

在編譯的時(shí)候編譯預(yù)處理程序用“替換文本”來(lái)替換宏,即M(n,m)被替換為n%m,之后計(jì)算,將計(jì)算的結(jié)果賦給a。注意,宏替換是在編譯時(shí)由預(yù)處理程序完成的,宏替換不占用運(yùn)行的時(shí)間,而函數(shù)調(diào)用是在程序運(yùn)行時(shí)進(jìn)行的,在函數(shù)的調(diào)用過(guò)程中需要占用一系列的處理時(shí)間。

60.C解析:字符串少一個(gè)結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

61.D

62.A

63.A使用順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問(wèn)題,而不只是解決簡(jiǎn)單問(wèn)題,因此A)選項(xiàng)錯(cuò)誤。

64.A在輸入多個(gè)數(shù)據(jù)時(shí),如果格式控制串中沒(méi)有非格式字符,則認(rèn)為所有輸入的字符均為有效字符。因此應(yīng)按選項(xiàng)A)的順序輸人數(shù)據(jù)。

65.A解析:auto變量:無(wú)static聲明的局部變量。用auto作存儲(chǔ)類(lèi)別的聲明時(shí),可以不寫(xiě)auto,存儲(chǔ)類(lèi)別隱含確定為auto(自動(dòng)存儲(chǔ)類(lèi)別),是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來(lái)改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字'auto'可以省略,auto不寫(xiě)則隱含確定為'自動(dòng)存儲(chǔ)類(lèi)別',屬于動(dòng)態(tài)存儲(chǔ)方式。

66.A標(biāo)識(shí)符不能與c編譯系統(tǒng)已經(jīng)預(yù)定義的、具有特殊用途的保留標(biāo)識(shí)符(即關(guān)鍵字)同名,否則程序在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。題目源程序中使用了已經(jīng)預(yù)定義的關(guān)鍵字case,所以將出現(xiàn)錯(cuò)誤。

67.A在本題中,程序首先定義了一個(gè)無(wú)返回值的函數(shù)fun,該函數(shù)帶有五個(gè)整型的指針形參變量,然后通過(guò)一個(gè)四層循環(huán)來(lái)操作++*e;語(yǔ)句,由于*與++運(yùn)算符的優(yōu)先級(jí)一樣,它們都是自右至左結(jié)合的操作,因此,++*e等價(jià)于++(*e),這個(gè)操作可描述為:先用地址取值,然后對(duì)其進(jìn)行自加,由于是通過(guò)傳址傳值法的,因此,還需要將相加后的結(jié)果傳遞到實(shí)參中。

在主函數(shù)中,定義五個(gè)整型變量并分別賦初值,然后調(diào)用fun函數(shù),傳遞的參數(shù)是剛定義的五個(gè)整型變量的地址,采用的是傳址傳值法,能為實(shí)參帶回一個(gè)結(jié)果值。從fun函數(shù)中我們不難看出,當(dāng)變量a,b,c,d分別為10時(shí),循環(huán)總共執(zhí)行10000次,即自加進(jìn)行了10000次,而且每次自加后都改變了實(shí)參的結(jié)果。因此,循環(huán)結(jié)束后,變量e的值為10000。本題的正確答案是A。

68.D

\nstatic變量是局部度量,函數(shù)無(wú)法修改,所以當(dāng)i=1時(shí),第2次進(jìn)入f函數(shù)時(shí)c=5,所以最終main函數(shù)中C的值為5。

\n

69.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。

70.D

71.B本題考查3個(gè)知識(shí)點(diǎn):將一個(gè)字符賦給一個(gè)字符變量時(shí),是將該字符對(duì)應(yīng)的ASCIl碼存儲(chǔ)到內(nèi)存單元中;常見(jiàn)ASC

溫馨提示

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