




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年遼寧省沈陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.設(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]);
2.
3.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)()。
A.getcharB.getcC.getsD.scanf
4.有三個(gè)關(guān)系R、s和T如下:
由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡爾積D.交
5.函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語(yǔ)句下劃線處應(yīng)填入的選項(xiàng)是()。
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
6.有以下函數(shù):intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)功能敘述正確的是()。
A.將串s復(fù)制到串tB.比較兩個(gè)串的大小C.求字符串s的長(zhǎng)度D.求字符串s所占字節(jié)數(shù)
7.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
8.
9.有以下程序
#include<stdio.h>
voidfun(intx)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main()
{fun(7);printf(”\n”);}
程序運(yùn)行后的輸出結(jié)果是()。A.137B.731C.73D.37
10.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)??盏那闆rC.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
11.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
12.以下各選項(xiàng)中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;
B.intx=5,y=0;if(x)y=1;
C.intx=10,y=0;if(x=y)y=1;
D.intx=5,y=10;if(x=y)y=1;
13.一個(gè)n條邊的連通無向圖,其頂點(diǎn)的個(gè)數(shù)至多為()。
A.n-1B.nC.n+1D.nlogn
14.設(shè)有以下程序段:要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯(cuò)誤的輸入語(yǔ)句是()A.seanf(”%s”Ptrtitle);
B.scanf(”%s”,rec.title);
C.scanf(’’%s”,(*pu).title);
D.scanf(”%s”,ptr->title);
15.在下面棧的基本運(yùn)算中,不是加工型運(yùn)算的是______。
A.初始化B.進(jìn)棧C.退棧D.判棧空
16.設(shè)二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。
A.CBDAB.DCBAC.BCDAD.ACDB
17.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字堪的表達(dá)式是()。
A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c
18.有以下程序:#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);}程序輸出為()。
A.編譯有錯(cuò)B.0,0,0,3C.1,1,2,0D.0,1,2,0
19.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價(jià)的循環(huán)語(yǔ)句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
20.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)?)。A.由具體定義位置和extern說明來訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
二、2.填空題(20題)21.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
22.以下程序段中,錯(cuò)誤的行號(hào)是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
23.在E-R圖中,矩形表示【】。
24.以下程序的功能是:從低位開始取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請(qǐng)?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
25.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
26.以下程序的輸出結(jié)果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
27.樹中度為零的結(jié)點(diǎn)稱為______。
28.以下程序的運(yùn)行結(jié)果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
29.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。
30.測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______得目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
31.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一聯(lián)系、一對(duì)多(或多對(duì)多)的聯(lián)系與多對(duì)多聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于______的聯(lián)系。
32.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
33.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
primtf("%d,%d",POWER(i++),i);
}
34.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
35.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
36.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。
37.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
38.以下程序的運(yùn)行結(jié)果是【】。
intk=0;
voidfun(intm)
{m+=k;k+=m;
printf("m=%dk=%d",m,k++)
}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
39.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
40.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語(yǔ)句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);
三、1.選擇題(20題)41.一個(gè)采用順序存儲(chǔ)方式的線性表中,若線性表的第一個(gè)元素的存儲(chǔ)地址是200,每一個(gè)元素的長(zhǎng)度是2,則第6個(gè)元素的地址是______。
A.208B.210C.211D.212
42.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a%d,b=%d\n",a,B);}該程序的輸出結(jié)果是______。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
43.執(zhí)行x=5>1+2&&2||2*4<4-!0后,x的值為______。
A.-1B.0C.1D.5
44.以下程序運(yùn)行后,輸出結(jié)果是()。main(){inty=18,i=0,j,a[8];do{a[i]’y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
45.若有宏定義如下:#defineX5#defineYX+1#defineZY*X/2以下程序段的輸出結(jié)果是______。inta;a=Y;printf("%d\n",Z);printf("%d\n",--a);
A.76B.126C.125D.75
46.設(shè)有:
inta=1,b=2,c=3,d=4,m=2,n=2;
執(zhí)行(m=a>b)&&(n=c>d)后,n的值是
A.1B.2C.3D.4
47.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語(yǔ)句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
48.閱讀以下程序及對(duì)程序功能的描述,其中正確的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個(gè)磁盤文件合二為一的功能
C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中
D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出
49.運(yùn)行下面的程序,其輸出結(jié)果為______。main(){pintf("%d,%d",5%-3,-5%3);}
A.2,-2B.-2,2C.-2,-2D.2,2
50.執(zhí)行以下程序后輸出的結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
51.以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,21.12,42,22
52.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&C);prt(&a,&b,&C);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
53.若輸入1,2,下列程序的運(yùn)行結(jié)果為______。#defineSWAP(a,b)t=b;b=a;a=tmain(){inta,b,t;scanf("%d,%d",&a,&b);SWAP(a,b);printf("a=%d,b=%d\n",a,b);}
A.a=1,b=2B.a=2,b=1C.a=1,b=1D.a=2,b=2
54.若有定義:iht*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類型元素
55.出下列程序執(zhí)行后的輸出結(jié)果是______。mare(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i]0;i<3;i++){printf(("%d",m[k][i]);}}
A.456B.258C.369D.789
56.不能把字符串"Hello!"賦給數(shù)組b的語(yǔ)句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!"};
D.charb[10]="Hello!";
57.若有定義inta[2][3];,則對(duì)a數(shù)組的第i行第j列(假調(diào)i,j已正確說明并賦值)元素值的正確引用為
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
58.下面程序的輸出結(jié)果()main(){unsigneda=32768;printf("a=%d\n",a);}
A.a=32768B.a=32767C.a=-32768D.a=-1
59.分析以下程序,執(zhí)行后的輸出結(jié)果是()intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=f1(a,B);d=f1(d,C);e=f2(a,B);e=f2(e,C);f=a+b+c-d-e;printf("%d,%d,%d",d,f,e);}
A.3,4,5B.5,3,4C.5,4,3D.3,5,4
60.在函數(shù)調(diào)用過程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則
A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語(yǔ)言上不允許這樣的遞歸調(diào)用
四、選擇題(20題)61.C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個(gè)成員駐留在內(nèi)存中
62.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
63.
64.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
65.(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是()
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
66.若執(zhí)行下面的程序時(shí),從鍵盤輸入6和2,則輸出結(jié)果是()。
A.5B.3C.2D.0
67.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
68.以下描述中正確的是()。
A.由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句
B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號(hào)
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
69.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。
A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦臺(tái)
70.
71.設(shè)變量x為float型且已賦值,則以下語(yǔ)句能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第3位四舍五入的是()。
A.
B.
C.
D.
72.
73.
74.數(shù)據(jù)庫(kù)管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)
75.
76.有以下程序77.以下選項(xiàng)中,不合法的C語(yǔ)言用戶標(biāo)識(shí)符是()。A.a-一bB.AaBeC.a_bD.一1
78.
79.有以下程序
#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
80.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小
D.上述3種說法都不對(duì)
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個(gè)字符串中。例如,若二維數(shù)組中的數(shù)據(jù)為:
WWW
SSS
HHH
III
則字符串中的內(nèi)容應(yīng)是WSHIWSHIWSHI。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語(yǔ)句。
試題程序:
參考答案
1.AC語(yǔ)言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個(gè)參數(shù)是地址。因此,從4個(gè)答案中可以判斷,只有選項(xiàng)A是p[i]的地址,其他的均是變量本身。故本題答案為A選項(xiàng)。
2.C
3.C當(dāng)輸入字符串時(shí),函數(shù)scanf用“空格”間隔不同的字符串,scanf函數(shù)不能輸入空格。getchar函數(shù)用于輸入字符,其調(diào)用形式為ch=getchar(),getehar函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶按<Enter>鍵時(shí),讀入才開始執(zhí)行。gets函數(shù)的調(diào)用形式為getS(Str_adr),其中“str_adr”是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc函數(shù)的調(diào)用形式為ch=getc(Pf),其中“pf”是文件指針,函數(shù)的功能是從“pf”指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。故本題答案為C選項(xiàng)。
4.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
5.B函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*P,因此比較使用*P和*s,又因?yàn)檎易畲笾?,?dāng)*s<*p時(shí),修改指針s的指向。故本題答案為B選項(xiàng)。
6.Caaa函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過一個(gè)while循環(huán)讓指針t不斷遞增,直到t指向字符串結(jié)束標(biāo)識(shí)處。當(dāng)t指向結(jié)束標(biāo)識(shí)處時(shí),由于后綴“運(yùn)算符,它還會(huì)被再遞增1,因此“t--”語(yǔ)句讓它回到結(jié)束標(biāo)識(shí)處。最后返回t-s,s還是指向字符串第1個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長(zhǎng)度。故本題答案為C選項(xiàng)。
7.C
8.D
9.D解析:本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因?yàn)?7/2)>1,所以執(zhí)行f(3),以此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時(shí)x值為3,然后退出f(1.5)返回f(3),打印x值即7。所以選D。
10.A
11.D解析:C語(yǔ)言規(guī)定,字符常量在程序中要用單引號(hào)括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項(xiàng)的這種形式在C語(yǔ)言中沒有,所以選項(xiàng)D)正確.
12.C選項(xiàng)A的if條件表達(dá)式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項(xiàng)B的if條件表達(dá)式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項(xiàng)C的if條件表達(dá)式“x=y”是賦值語(yǔ)句,將y的值0賦給x,表達(dá)式的值為0,if語(yǔ)句不執(zhí)行,y的值為0;選項(xiàng)D的if條件表達(dá)式“x=y”是賦值語(yǔ)句,將y的值10賦給x,表達(dá)式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項(xiàng)。
13.C
14.A符號(hào)“_>”是指針特用的,符號(hào)“.”用于指定元素的成員。ptr是指針,只能用符號(hào)“一>”,因此選項(xiàng)A錯(cuò)誤。+P是指定元素(Fee)可以使用“.”運(yùn)算,因此選項(xiàng)D正確。選項(xiàng)B,F(xiàn)ee.title代表數(shù)組title,同理選項(xiàng)C正確。答案為A選項(xiàng)。
15.D
16.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點(diǎn),可以確定該二叉樹的根節(jié)點(diǎn)是A。再由中序序列為BCDA,可知以A為根節(jié)點(diǎn)的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項(xiàng)。
17.B選項(xiàng)B先計(jì)算關(guān)系表達(dá)式“A<=c”的值是0還是l,再比較該值與字符z之間的大小關(guān)系,不能實(shí)現(xiàn)題目所要求的功能。
18.AC語(yǔ)言中規(guī)定else總是和之前與其最近的且不帶else的if配對(duì)。題目中,“if(a=1)b=1;c=2;”默認(rèn)省略了else,導(dǎo)致下一句else沒有匹配語(yǔ)句。故本題答案為A選項(xiàng)。
19.C當(dāng)循環(huán)結(jié)束時(shí),w的值應(yīng)為-1,而其他選項(xiàng)中w的值為0,故選擇c選項(xiàng)。
20.A[解析]全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)
21.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
22.③數(shù)組可以在定義時(shí)整體賦初值,但不能在賦值語(yǔ)句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};
23.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。
24.s%10*s1+t
25.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
26.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語(yǔ)句。
27.葉子結(jié)點(diǎn)葉子結(jié)點(diǎn)解析:樹中度為零的結(jié)點(diǎn),也就是沒有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。
28.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。
29.連續(xù)連續(xù)解析:順序存儲(chǔ)結(jié)構(gòu)具有兩個(gè)特點(diǎn):1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。
30.軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定;調(diào)試也稱排錯(cuò),它是一個(gè)與測(cè)試有聯(lián)系又有區(qū)別的概念。具體來說,測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。\r\n\r\n
31.一對(duì)多或1:N。一對(duì)多或1:N。
32.66解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。
33.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
34.24
35.55解析:分析程序,當(dāng)a=3;b=4;c=5時(shí),判斷語(yǔ)句a>b不成立,所以不執(zhí)行后面的語(yǔ)句,直接執(zhí)行“printf('%d\\n',c);”語(yǔ)句,輸出c的值,輸出結(jié)果為5。
36.23
37.55解析:主函數(shù)首先聲明了一個(gè)結(jié)點(diǎn)數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語(yǔ)句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個(gè)結(jié)點(diǎn)指向其后面一個(gè)結(jié)點(diǎn),而最后一個(gè)結(jié)點(diǎn)指向第1個(gè)結(jié)點(diǎn),構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點(diǎn)指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個(gè)累計(jì)變量sum累加q->next->num和r->next->next->nm,因?yàn)閝指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。
38.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個(gè)變量i,并初始化為4。然后用表達(dá)式i++的值為實(shí)參調(diào)用函數(shù)fun(),因?yàn)楹缶Y”表達(dá)式的值為增1之前的值,故此時(shí)傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時(shí)k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個(gè)值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時(shí)i會(huì)被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結(jié)果是“m=4k=4i=5k=5”。
39.77解析:本題綜合考查帶參數(shù)的宏以及三目運(yùn)算符的計(jì)算方法。三目運(yùn)算符的一般形式是:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>?!?:”運(yùn)算符的含義是:先求表達(dá)式1的值,如果為真,則求表達(dá)式2的值,并把它作為整個(gè)表達(dá)式的值;如果表達(dá)式1的值為假,則求表達(dá)式3的值,并把它作為整個(gè)表達(dá)式的值。注意,在本題中宏替換時(shí)可采用逐步求解,最終為7>6?7:6*10,即t=7>6?7:60,其值為t=7。
40.77解析:本題考查基本賦值運(yùn)算符和賦值表達(dá)式。c=(b-=a-5))等價(jià)于c=b-(a-5)b=7。c%3=1,a=(c%3)+a=8)=9,但c的值在第二條語(yǔ)句只能夠并沒有被改變,因此c的值還是7。
41.B解析:順序結(jié)構(gòu)中,第n個(gè)元素的地址為An=A0+(n-1)*L(A為地址,L為元素長(zhǎng)度)。
42.A解析:在這個(gè)switch語(yǔ)句中,因?yàn)閤的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒有break語(yǔ)句,所以其后面的語(yǔ)句“a++;b++”也將被執(zhí)行,這樣一來,a=2,b=1。
43.C
44.B解析:do-while循環(huán)的功能是對(duì)數(shù)組a中的元素賦值,值為0、1、0、0、1。for循環(huán)的功能是將數(shù)組a中元素按下標(biāo)從大到小的順序輸出,所以選項(xiàng)B符合題意。
45.D解析:根據(jù)宏定義知:X=5,Y=X+1=6,Z=Y*X/2=X+1*X/2=7,a=Y=6,--a=5。
46.B本題考查邏輯與運(yùn)算符“&&”的使用。對(duì)于邏輯與運(yùn)算符&&來說,對(duì)象的結(jié)合方式為從左往右,只有&&左邊的值為真,才繼續(xù)右邊的運(yùn)算。題目中&&左邊的表達(dá)式為m=a>b,“>”運(yùn)算符優(yōu)先級(jí)高于“=”,故先判斷a>b,因?yàn)閍=1,b=2,所以a>b為假,于是m=0。“&&”左邊的值為假,所以不進(jìn)行右邊的運(yùn)算。n的值沒有發(fā)生改變,n=2。
47.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語(yǔ)句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語(yǔ)句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語(yǔ)句的使用。合理使用goto語(yǔ)句可以提高代碼的運(yùn)行效率,但goto語(yǔ)句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語(yǔ)句。因此,本題的正確答案是D。
48.C解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。
函數(shù)名:fopen功能:打開一個(gè)文件調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);
函數(shù)名:feof功能:檢查文件是否結(jié)束調(diào)用方式:feof(FILE*fp);
函數(shù)名:fputc功能:把一個(gè)字符寫到磁盤文件上去調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);
函數(shù)名:fclose功能:關(guān)閉一個(gè)文件調(diào)用方式:fclose(文件指針)。
49.A解析:在C中,參與%運(yùn)算的兩個(gè)參數(shù)都必須為整形,在大多數(shù)C編譯器下(包括TurboC)都采用了“向0靠近”的原則,即當(dāng)兩個(gè)運(yùn)算量有一個(gè)為負(fù)數(shù)時(shí),余數(shù)的符號(hào)由被除數(shù)的符號(hào)決定。故本題答案為A。
50.D解析:do-while語(yǔ)句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立,當(dāng)循環(huán)條件的值為0時(shí)循環(huán)結(jié)束。當(dāng)y=0時(shí)循環(huán)結(jié)束,printf('%d\\n',y-)語(yǔ)句是先輸出y再自減,所以輸出結(jié)果為0。
51.B解析:盡管C語(yǔ)言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達(dá)到修改實(shí)參變量值的目的,這是此題主要說明的問題。其次,應(yīng)注意表達(dá)式。(z++)的值是*z,其后的z++在程序中無實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。注意:指針作為參數(shù)的函數(shù)調(diào)用的執(zhí)行過程。
52.B解析:由于實(shí)參傳送的是變量的地址,所以對(duì)形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對(duì)實(shí)參內(nèi)容的改變。
53.B
54.B解析:指針數(shù)組也是一種數(shù)組,所有有關(guān)的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲(chǔ)類型數(shù)據(jù)類型*指針數(shù)組名[長(zhǎng)度1],其含義為:定義了一個(gè)長(zhǎng)度1的數(shù)組,其中數(shù)組元素為相應(yīng)存儲(chǔ)類型的指針。
55.C解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][0],m[2][2],即369。
56.B解析:在C語(yǔ)言中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,因此,“hello!”和“Hello!”是兩個(gè)不同的字符串。
57.A解析:本題考查了二維數(shù)組元素的引用方法。選項(xiàng)A中a+i指向了數(shù)組a的第i+1行,*(a+i)則是第i+1行第0列的地址值,*(a+i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州科技職業(yè)技術(shù)大學(xué)《建筑學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州肯恩大學(xué)《中學(xué)物理專題訓(xùn)練與研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省安全員考試題庫(kù)及答案
- 德宏職業(yè)學(xué)院《新媒體概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖南省五市十校教研教改共同體高一上學(xué)期12月月考?xì)v史試卷
- 山東石油化工學(xué)院《工程結(jié)構(gòu)反分析理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏職業(yè)學(xué)院《國(guó)際法與當(dāng)代中國(guó)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《互聯(lián)網(wǎng)+大學(xué)生創(chuàng)新創(chuàng)業(yè)設(shè)計(jì)與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年山西省建筑安全員《A證》考試題庫(kù)
- 桂林山水職業(yè)學(xué)院《幼兒教師職業(yè)道德與專業(yè)發(fā)展》2023-2024學(xué)年第二學(xué)期期末試卷
- 領(lǐng)子的分類課件
- 農(nóng)產(chǎn)品的互聯(lián)網(wǎng)營(yíng)銷課件
- 三年級(jí)下冊(cè)數(shù)學(xué)課件 兩位數(shù)除兩、三位數(shù) 滬教版 (共15張PPT)
- 《六大茶類》講義
- Unit 2 Listening and speaking 課件-高中英語(yǔ)人教版(2019)選擇性必修第二冊(cè)
- X會(huì)計(jì)師事務(wù)所的J城投公司發(fā)債審計(jì)項(xiàng)目研究
- 中國(guó)傳媒大學(xué)全媒體新聞編輯:案例教學(xué)-課件-全媒體新聞編輯:案例教學(xué)-第7講
- 生理學(xué)泌尿系統(tǒng)6學(xué)時(shí)課件
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter1 Introduction
- 人教三年級(jí)數(shù)學(xué)下冊(cè)表格式全冊(cè)
- 優(yōu)秀教研組評(píng)比制度及實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論