版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021年江蘇省南通市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若變量已正確定義,要求程序段完成5!的計算,不能完成此操作的程序段是______。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
2.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
3.第
17
題
若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
4.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運行時若輸入:howareyou?Iamfine<回車>則輸出結(jié)果是()。A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
5.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
6.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運行后的輸出結(jié)果是()。
A.48B.34C.35D.45
7.
8.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior
B.p->prior->prior
C.s->prior->next=s
D.s->prior->prior=s
9.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI碼為65.程序運行后的輸出結(jié)果是()。A.E.68B.D.69C.E,DD.輸出無定值
10.
11.下列敘述中正確的是A.程序設(shè)計就是編制程序
B.程序的測試必須由程序員自己去完成
C.程序經(jīng)調(diào)試改錯后還應(yīng)進行再測試
D.程序經(jīng)調(diào)試改錯后不必進行再測試
12.無向圖中一個頂點的度是指圖中與該頂點相鄰接的頂點數(shù)。若無向圖G中的頂點數(shù)為n,邊數(shù)為e,則所有頂點的度數(shù)之和為()
A.n*eB.n+eC.2nD.2e
13.若程序中有宏定義行“#defineN100”,則下列敘述中正確的是()。
A.宏定義行中定義了標(biāo)識符N的值為整數(shù)100
B.在編譯程序?qū)語言源程序進行預(yù)處理時用100替換標(biāo)識符N
C.上述宏定義行實現(xiàn)將100賦給標(biāo)識符N
D.在運行時用100替換標(biāo)識符N
14.
15.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
16.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
17.
18.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
19.以下關(guān)于順序存儲結(jié)構(gòu)的敘述中,()是不正確的。
A.存儲密度大
B.邏輯上相鄰的結(jié)點物理上不必鄰接
C.可以通過計算機直接確定第i個結(jié)點的存儲地址
D.插入、刪除運算操作不方便
20.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
22.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
23.冒泡排序算法在最好的情況下的元素交換次數(shù)為【】。
24.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
25.若a=10,b=20,則表達式!(a<b)的值是【】。
26.在對文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。
27.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。
28.以下程序運行后的輸出結(jié)果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
29.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。
30.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
31.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
32.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個數(shù),累加的和值放入x所指的存儲單元中。請?zhí)羁铡?/p>
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0,k<n;k++)r=【】;
【】=r;
}
33.以下程序的輸出結(jié)果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
34.下面程序的輸出結(jié)果是【】。
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j])
}
35.以下程序中,select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=【】;
return(【】);
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf(“max=%d,line=%d\n”,max,n);
}
36.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case′y′:
case′Y′:printf("\nThisisYES.\n");
case′n′:
case′N′:printf("\nThisisNO.\n");}
main()
{charch;
printf("\nEnterachary,Yorn,N:");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
37.下列程序的輸出結(jié)果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
38.以下程序的輸出結(jié)果是【】。
main()
{intx=0;
sub(&x,8,1);
printf(“%d\n”,x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
39.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
40.以下程序運行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*p=m,*q=m+4;
inti=0;
while(p!=q)
{p->k=++i;p++
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)
printf("%d",m[i].k);
ptintf("\n");
}
三、1.選擇題(20題)41.下列敘述中,不屬于測試的特征的是
A.測試的挑剔性B.完全測試的不可能性C.測試的可靠性D.測試的經(jīng)濟性
42.設(shè)有如下定義:inta=4;則計算表達式“a+=a-a*a”后的值是()。
A.0B.-12C.-24D.-8
43.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運行的結(jié)果是()。
A.234B.432C.23D.4534554334344523
44.在面向?qū)ο蟮姆椒ㄖ校?)描述的是具有相似屬性與操作的一組對象。
A.屬性B.事件C.方法D.類
45.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是()。A.A.數(shù)據(jù)分布性和邏輯整體性B.位置透明性和復(fù)制透明性C.分布性D.數(shù)據(jù)冗余
46.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n"i,j);}程序運行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
47.一個C程序中______。
A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main函數(shù)必須出現(xiàn)在固定位置
48.以下選項中合法的實型常數(shù)是
A.5E2.0B.E-3C.2.00E+00D.1.3E
49.以下程序運行后,輸出結(jié)果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}
A.cdeB.字符c的AScII碼值C.字符c的地址D.出錯
50.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結(jié)果是
A.16B.12C.28D.21
51.某二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為()
A.n+1B.n-1C.2nD.n/2
52.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):
指針p指向變量a,指針q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語句組是()。
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
53.s1和s2已正確定義并分別指向兩個字符串,若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句S;則以下選項中正確的是
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,s1)>0)S;
D.if(strcmp(s1,82)>0)S;
54.下列選項中不合法的十六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
55.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
56.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序運行后的輸出結(jié)果是______。
A.2B.1C.3D.0
57.以下所列的c語言常量中,錯誤的是______。
A.0xFFB.1.2e0.5C.2LD.'\72'
58.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結(jié)果是(選項D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
59.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是______。
A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上
60.若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
四、選擇題(20題)61.設(shè)有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
62.
63.有以下結(jié)構(gòu)體說明、變量定義和賦值語句:
則以下scanf函數(shù)調(diào)用語句有錯誤的是()。
A.scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].a(chǎn)ge);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
64.
65.下列關(guān)于棧的敘述中正確的是()。
A.在棧中只能插入數(shù)據(jù),不能刪除數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù),不能插入數(shù)據(jù)
C.棧是先進后出(FILO.的線性表
D.棧是先進先出(FIFO.的線性表
66.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
67.有以下程序:
程序運行后的輸出結(jié)果是()。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
68.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。A.A.&B.^C.||D.~
69.
70.
71.
72.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
73.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
74.
75.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
76.
77.下列選項中,能正確定義數(shù)組的語句是()。
A.
B.
C.
D.
78.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
79.有以下程序程序運行后的輸出結(jié)果是()。A.24B.28C.32D.36
80.以下選項中不能用作C程序合法常量的是()。
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:求出1~1000之間能被7或11整除,但不能同時被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。
注意:部分原程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.B解析:選項B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運算結(jié)果,執(zhí)行完while循環(huán)后p=5。
2.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進制整數(shù),即87,然后將緊接著的6賦給b,因為b的值為單精度數(shù)在,即6.000000,故選擇B選項。
3.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。
4.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。
5.B
6.A\n第一調(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。
\n
7.A
8.D
9.A[解析]本題目中字符變量c1是字符A的ASCII碼加上4.即69所對應(yīng)的字符E。字符變量c2是字符'A'的ASCII碼加上3.即68所對應(yīng)的字符D'。但是打印輸出時,c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68.
10.B
11.C解析:軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其日的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件調(diào)試后要進行回歸測試,防止引進新的錯誤。
12.D
13.B宏定義在編譯程序時做了一個簡單的替換,所以B選項正確。故本題答案為B選項。
14.D
15.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。
16.C
17.C
18.D本題考查邏輯運算符的使用。當(dāng)“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
19.B
20.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。
21.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
22.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
23.0
24.x+=1;
25.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。
26.rewind()或fseek()rewind()或fseek()
27.類類
28.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。
29.22解析:計算機存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。
30.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。
31.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
32.r+b[k]*x
33.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。
34.AB
35.rowa[row][colum]row\r\na[row][colum]解析:指針變量作為函數(shù)參數(shù)及二維數(shù)組的一個典型算法——求最大值及其下標(biāo)。通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標(biāo),colum的作用是用來記錄最大元素的列下標(biāo)。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colum中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][colum]作為函數(shù)值返回。
36.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。
37.5656解析:本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
38.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。
39.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對S求和時,相鄰兩項的符號剛好相反,而在函數(shù)fun中沒有對數(shù)據(jù)進行取反的操作,故第—空的目的是對數(shù)據(jù)進行取反,以保證序列中相鄰兩項的符號不同。故第—個應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。
40.1343113431解析:程序首先定義了一個結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個該結(jié)構(gòu)體的數(shù)組m[5]和兩個結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第—個元素):q指向m+4(指向數(shù)組的最后一個元素)。接下來定義并初始化一個整型變量i為0。然后用一個while循環(huán),在p和q不相等的時候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個結(jié)構(gòu)體。i從0開始交替調(diào)用++i和i++,兩個表達式的值依次分別為1和1、3和3……。所以當(dāng)p==q循環(huán)結(jié)束時,實際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。
41.C解析:軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。它有3個方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經(jīng)濟性。其中沒有測試的可靠性這一說法。注意:軟件測試與軟件調(diào)試的概念,以及相應(yīng)的方法。
42.D解析:a+=a-a*a等價于a=a+a-a*a=4+4-4*4=-8。
43.D解析:本題主要考查for循環(huán)語句的嵌套。外層主循環(huán)執(zhí)行了3次,嵌套的循環(huán)語句每輪執(zhí)行2次,每次輸出i+j的值,推出嵌套循環(huán)語句后換行。
44.D解析:類(calss)描述的是具有相似屬性與操作的一組對象,而一個具體對象則是其對應(yīng)類的一個實例。
45.D解析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性的特點,其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲,數(shù)據(jù)也并非必須重復(fù)存儲,主要視數(shù)據(jù)的分配模式而定。若分配模式是一對多的,即一個片段分配到多個場地存放,則是冗余的數(shù)據(jù)庫,否則是非冗余的數(shù)據(jù)庫。
46.D解析:本題中首先定義了字符數(shù)組a,由于它的長度省略,所以其長度由初值個數(shù)確定,為9。接著將sizeof()函數(shù)返回的值賦給i(SIZeof()函數(shù)的作用是返回運算對象占用的字符數(shù)),所以i值為9。然后將strlen()函數(shù)的返回值賦給j(strlen()函數(shù)的作用是返回字符串的長度,不包括字符串的結(jié)束標(biāo)記'\\0'),所以j值為8,所以最后輸出的i,j的值為9,8。所以4個選項中D正確。
47.B解析:本題主要考查main函數(shù)的基本知識。main函數(shù)可以出現(xiàn)在C程序的任何地方。
48.C解析:在C語言中,實數(shù)有兩種表示形式:十進制數(shù)形式與指數(shù)形式。
1)一般形式的實數(shù):小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點)。
2)指數(shù)形式的小數(shù):指數(shù)形式的實數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字;選項D中,E后面沒有數(shù)字。
49.C解析:指針數(shù)組中的每一個元素都相當(dāng)于一個指針變量。一維指針數(shù)組的定義形式為:類型名*數(shù)組名[數(shù)組長度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為“cde”的首地址。%x是指以十六進制數(shù)形式輸出整數(shù)。
50.A解析:在循環(huán)體中有一條if語句,其后面表達式為“i%2”,當(dāng)i的值為奇數(shù)時,其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當(dāng)i的值為偶數(shù)時,“i%2”為假,執(zhí)行“i++;s+1”。在循環(huán)中i為偶數(shù)時的值分別為0、2、4、6,加1過后的值分別為1、3、5、7,s中存放的是它們的和,值為16.所以,A選項為所選。
51.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為n+1。因此,本題的正確答案是選項A。
52.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn)。b和c是變量,選項A)錯誤;p是指針變量,選項B)表達錯誤;選項C)的賦值/頃序錯誤。
53.D解析:在C語言中字符串的比較用stremp()函數(shù),該函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若小于返回值小于0,相等返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符中,女B果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本題中要求當(dāng)sl所指字符串大于s2所指串時,執(zhí)行語句s,因此應(yīng)該為stremp(s1,s2)>0或者strcmp(s2,s1)<0。
54.C解析:十六進制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、e、f這6個字母。
55.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計算后的y的類型是int型。
56.A解析:題目中定義了一個指針變量r作為形參f()的函數(shù)。在主函數(shù)main()中定義了兩個變量m和r,同時給m賦初值7,調(diào)用函數(shù)f(m,&r)并執(zhí)行,函數(shù)f()通過指針r將最后的值返回。
57.B解析:在C語言中常量可以用十進制數(shù)、八進制數(shù)、十六進制數(shù)來表示:也可以用轉(zhuǎn)義字符、長整型、科學(xué)計數(shù)法等來表示。選項A為十六進制表示法正確,故選項A正確。選項B為科學(xué)計數(shù)法,但在選項B中的科學(xué)計數(shù)的表示形式是錯誤的,指數(shù)不能為小數(shù),故選項B的表示法是錯誤的。選項C為長整型表示法正確,故C正確。選項D為轉(zhuǎn)義字符表示正確,故選項D的表示法是正確的。所以,4個選項中選項B符合題意。
58.B本題考核的知識點是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個字符數(shù)組s并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調(diào)用put(str_adr)函數(shù)時,將從str_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結(jié)束輸出,并自動輸出一個換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個元素開始輸出到第3個元素結(jié)束(因為執(zhí)行*(p4)c0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個選項中選項B符合題意。
59.B解析:視圖設(shè)汁一般有3種設(shè)計次序,它們分別是自頂向下、自底向上和由內(nèi)
向外,它們又為視圖設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握,可以
單獨使用也可混合使用。
注意:數(shù)據(jù)庫概念設(shè)計的過程:首先選擇局部應(yīng)用,再進行局部視圖設(shè)計,最后
對局部視圖進行集成得到概念模式。
60.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石材基層施工方案(3篇)
- 供水接管施工方案(3篇)
- 污水處理廠項目實施方案
- 動力電池項目可行性研究報告
- 2025年保險經(jīng)紀(jì)服務(wù)崗位操作規(guī)范考核題目及答案
- 廣告裝修-施工方案(3篇)
- 冬季施工方案防滑(3篇)
- 硅基新材料技項目建議書
- 攀登鋼管施工方案(3篇)
- 生活垃圾分揀中心建設(shè)項目初步設(shè)計
- 北京市石景山區(qū)2020-2021學(xué)年三年級下學(xué)期期末考試語文試卷
- 商業(yè)合作計劃書怎么寫
- 《MATLAB編程及應(yīng)用》全套教學(xué)課件
- GA 2113-2023警服女禮服
- 國開機考答案-鋼結(jié)構(gòu)(本)(閉卷)
- 紀(jì)委談話筆錄模板經(jīng)典
- 消防安全制度和操作規(guī)程
- 叉車安全技術(shù)交底
- 工業(yè)園區(qū)綜合能源智能管理平臺建設(shè)方案合集
- 正弦函數(shù)、余弦函數(shù)的圖象 說課課件
- 《你看起來好像很好吃》繪本課件
評論
0/150
提交評論