版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年四川省巴中市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
2.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}
A.20B.31C.321D.210
3.數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)表示時(shí),如果元素在存儲(chǔ)器中的相對(duì)位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲(chǔ)結(jié)構(gòu)為()。
A.存儲(chǔ)結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲(chǔ)結(jié)構(gòu)D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
4.程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9
5.有如下程序:main{inta=2,b=-1.c=2;if(a<0)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結(jié)果是()。A.0B.1C.2D.3
6.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l
7.以下選項(xiàng)中,值為1的表達(dá)式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
8.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
9.以下敘述中錯(cuò)誤的是()。
A.C語句必須以分號(hào)結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語句
10.以下選項(xiàng)中表示空函數(shù)的是()。
A.intfun(){return0;}
B.intfun();
C.intfun(){}
D.intfun(inta,intB){return1;}
11.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)
12.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個(gè)入口,可以有多個(gè)出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
13.數(shù)組A中,每個(gè)元素的長度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放在存儲(chǔ)器內(nèi),該數(shù)組按行存放時(shí),元素A[8][5]的起始地址為()。
A.SA+292B.SA+296C.SA+300D.304
14.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
15.下列敘述中正確的是()。
A.在C語言中,預(yù)處理命令行都以“#”開頭
B.預(yù)處理命令行必須位于C語言源程序的起始位置
C.“include<stdio.h>”必須放在C語言程序的開頭
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
16.在一棵高度為5的理想平衡樹中,至少含有16個(gè)結(jié)點(diǎn),最多含有()個(gè)結(jié)點(diǎn)。
A.31B.32C.30D.33
17.以下程序段運(yùn)行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12
18.下列程序段的時(shí)間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)
19.一個(gè)隊(duì)列的入隊(duì)序列是a,b,c,d,則出隊(duì)序列是()。
A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d
20.下列語句中,()是錯(cuò)誤的。A.x=x+1;B.x=x+y;C.x+y=x;D.x=4;
二、2.填空題(20題)21.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。
22.以下程序是求矩陣a、b的和,結(jié)果存入矩陣c中,請(qǐng)?zhí)羁铡?include<stdio.h>main(){inta[4][4]={1,2,6,7},{0,4,2,-8},{1,4,5,2},{2,4,6,8}};intb[4][4]={{-4,0,7,9},{2,-7,7,4),{6,9,0,1),{8,8,6,5)};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=();for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",c[i][j]);}
23.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
24.數(shù)據(jù)的______結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空問中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。
25.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
現(xiàn)在請(qǐng)你在下面的函數(shù)中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*3));
}
26.下列程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
27.計(jì)算機(jī)中存儲(chǔ)容量的基本單位是字節(jié),它的英文名稱是【】。
28.在C語言中,字符的比較就是對(duì)它們的【】碼進(jìn)行比較。
29.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的_______。
以下程序的輸出結(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);prr(&a,&b,&c);}
30.以下程序輸出的最后一個(gè)值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
31.下面程序的運(yùn)行結(jié)果是【】。
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);
}
32.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。
33.軟件測(cè)試的方法有動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和【】13種。
34.以下程序的運(yùn)行結(jié)果是【】。
main()
{inta=2,b=7,c=5;
switch(a>0)
{
case1:
switch(b<0)
{case1:printf("@");break;
case2:pnntf("!");break;
}
case0:
switch(c==5)
{case0:pnntf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
35.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
36.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
37.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對(duì)數(shù)據(jù)的操作運(yùn)算。
38.有以下程序:
#include<stdio.h>
intsub(intn)
{return(n/10+n%10);}
main()
{intx,y;
seanf("%d",&x);y=sub(sub(sub(x)));
printf("%d\n";,y);
}
若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是【】。
39.棧的基本運(yùn)算有三種:入棧、退棧和【】。
40.以下程序的功能是:從低位開始取出長整型變量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);}
三、1.選擇題(20題)41.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結(jié)果()
A.2,MB.3,EC.2,ED.輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定
42.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對(duì)data的成員a的正確引用是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
43.用scanf("%d,%d",&a,&b)輸入數(shù)據(jù)時(shí),下面輸入法中,正確的是______。
A.123,4B.1234C.123;4D.123:4
44.下面程序的輸出結(jié)果是()#definePI3.1415#defineARE(x)PI*x*xmain(){intr=2;printf("%f",ARE(r+1));}
A.28.26B.28.26C.9.28D.9.28
45.出下列程序執(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
46.有以下程序:#include<stdio.h>main(){eharc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getehar();c6=getchar();putehar(c1);putehar(c2);printf("%c%c\n",c5,c6);}23<回車>45678<回車>
A.1267B.1256C.1278D.1245
47.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%u,j=%x\n".i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.8.9C.89D.i=8,i=8
48.一個(gè)C語言的源程序中,______。
A.必須有一個(gè)主函數(shù)B.可以有多個(gè)主函數(shù)C.必須有主函數(shù)和其他函數(shù)D.可以沒有主函數(shù)
49.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
50.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。
①可測(cè)試性
②可移植性
③可復(fù)用性
④可靠性
A.全部B.①和③C.①、②和④D.②和④
51.有以下程序
#include<stdio.h>
intfun(chars[])
{intn=0;
while(*s<=′9′&&*s>=′0′){n=10*n+*s-′0′;s++;}
return(n);
}
main()
{chars[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};
printf("%d\n",fun(s));
}
程序的運(yùn)行結(jié)果是
A.9B.61490C.61D.5
52.設(shè)有說明語句如下:staticcharstr[]="Beijing";若執(zhí)行下列輸出語句:printf("%d\n",strlen(strcpy(str,"China")));則輸出結(jié)果為()。
A.5B.7C.12D.14
53.以下合法的賦值語句是()
A.x=y=100B.d--;C.x+y;D.c=int(a+b);
54.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析
55.以下程序段的輸出結(jié)果是chars[]="\\141\141abc\t";printf("%d\n",strlen(s));
A.9B.12C.13D.14
56.設(shè)有如下說明:typedefstruct{intn;charc;doublex;)STD;則以下選項(xiàng)中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是()。
A.STDtt[2]={{1,'A',62},{2,'B',75}};
B.STDtt[2]={1,"A",62},2,"B",75};
C.stmctt[2]={{1,'A'),{2,'B'}};
D.structt[2]={{1,"A",62.5),{2,"B",75.0}};
57.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
58.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。
A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程
59.若有以下定義和語句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p
60.請(qǐng)讀程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n”,a[2]);}上面程序的輸出結(jié)果是()
A.6B.8C.4D.2
四、選擇題(20題)61.
62.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.x=4B.X=8C.x=6D.x=12
63.
64.
65.有如下程序
#include"stdio.h"
voidfun(int*a,int*b)
{intm;
m=(*a+*b)*(*a+*b);
m+=(*a-*b)*(*a-*b);
printf("%d\n",m);}
main()
{inta=5,b=6,*x=&a,*y=&b;
fun(x,y);}
程序執(zhí)行后輸出的結(jié)果為
A.120B.121
C.122D.123
66.
67.
68.一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。
A.16B.10C.6D.4
69.
70.
71.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;
A.10B.20C.40D.30
72.以下程序運(yùn)行后的輸出結(jié)果是()。
A.zB.0C.元素Ch[5]地址D.字符y的地址
73.有以下程序
74.
75.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
76.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。.
A.3,3B.1,1C.2,3D.1,2
78.有下列程序:
main
{inty=10;
do{y--;}while(--y);
printf("%d\n",--y);
)
當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。
A.-1B.1C.4D.0
79.設(shè)變量均已正確定義,若要通過
scaIIf(”%d%c%d%c”,&;al,&;el,&;a2,&;c2);
語句為變量al和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Y。以下所示的輸入形式中正確的是()。(注:口代表空格字符)
80.有以下程序:
#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
五、程序改錯(cuò)題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}
參考答案
1.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。
2.A解析:n--是先使用后自減,--n是先自減后使用。n=4時(shí),執(zhí)行n--后,n變?yōu)?,執(zhí)行--n后,n變?yōu)?,所以,第一次輸出時(shí),n為2;同上過程,第二次輸出時(shí),n為0。
3.C
4.B[解析]每次內(nèi)循環(huán)只循環(huán)一-次就結(jié)束,第一次外循環(huán)時(shí)t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循環(huán)時(shí)t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時(shí)t=t+b[][2][]=2+b[2][2]=2+2=40
5.Celse與離它最近的if構(gòu)成if…else語句,而當(dāng)a為2時(shí),第一個(gè)if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項(xiàng)。
6.C只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇C選項(xiàng)。
7.B字符‘\\0’為空值,其ASCII值為0,所以B選項(xiàng)的值為1。字符‘0’的ASCII值為48,所以A、C、D選項(xiàng)的值均不為1。故本題答案為B選項(xiàng)。
8.B
9.C解析:C語句必須以分號(hào)結(jié)束,選項(xiàng)A是正確的。復(fù)合語句在語法上被看作一條語句,選項(xiàng)B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會(huì)被當(dāng)作條件子句或者循環(huán)體來看待,所以選項(xiàng)c是錯(cuò)誤的。賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語句,選項(xiàng)D正確。故本題應(yīng)該選擇C。
10.C空函數(shù)是函數(shù)體沒有執(zhí)行語句的函數(shù)。選項(xiàng)A、D不是空函數(shù);選項(xiàng)B是函數(shù)的聲明;只有選項(xiàng)C是空函數(shù)。故本題答案為C選項(xiàng)。
11.A本題考查簡單的for語句,程序中當(dāng)k<0時(shí)循環(huán)才執(zhí)行,所以答案選擇A。
12.A解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語句?!白皂斚蛳隆笔侵冈诔绦蛟O(shè)計(jì)時(shí),先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)?!爸鸩角缶笔侵笇?duì)復(fù)雜問題應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)節(jié)化。“模塊化”是指一個(gè)復(fù)雜問題由若干稍簡單的問題構(gòu)成;解決這個(gè)復(fù)雜問題的程序,也應(yīng)由若干稍簡單問題的小程序組成。
13.B
14.D考查結(jié)構(gòu)體的應(yīng)用,答案為21。
15.A預(yù)處理命令以“#”開頭,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、C選項(xiàng)錯(cuò)誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯的功能,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
16.A
17.D
18.C
19.A
20.C
21.19
22.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:求兩個(gè)矩陣的和只要將對(duì)應(yīng)元素相加即可。
23.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
24.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。
25.1.0/(i*i)或(double)1/(i*i)1.0/(i*i)或(double)1/(i*i)解析:表達(dá)式1+1/(2*2)+1/(3*3)+…+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)
n
即;∑1÷(i×i)
i=1
對(duì)應(yīng)的C語言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i*i)返回值為其值截尾取整,即恒為0。
26.HelloHello解析:語句b[5]=0;相當(dāng)于語句b[5]='\\0';且'\\0'為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'\\0'就停止輸出。
27.Brte
28.ASCⅡ
29.B
30.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。
②對(duì)靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值—次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。
③如在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來說,編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。(注意:C語言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個(gè)整數(shù)的階乘。
31.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:
f(&a,n)=a[0]+f(&a[1],n-1)n>1
f(&a,n)=a[0]n=1
本題中定義了一個(gè)長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f(),由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空白處應(yīng)該填6。
32.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時(shí)置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)循環(huán)隊(duì)列非空(s=1)時(shí)且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種情況稱為“上溢”。
33.正確性測(cè)試正確性測(cè)試
34.#&解析:首先看最外面的switch,其表達(dá)式為a>0,結(jié)果為真(即1),從case1:標(biāo)號(hào)處開始執(zhí)行。這里又是一個(gè)switch語句,其表達(dá)式為b<00,結(jié)果為假(即0),由于沒有case0:或default:標(biāo)號(hào),所以直接跳過此switch語句。因?yàn)闆]有遇到break;語句,所以繼續(xù)執(zhí)行進(jìn)入內(nèi)部第2個(gè)switch語句,其表達(dá)式為c==5,結(jié)果為真,從case1:標(biāo)號(hào)處開始執(zhí)行,輸出一個(gè)#,遇到break;語句,跳出該內(nèi)部switch語句,最后執(zhí)行default:標(biāo)號(hào)后的輸出語句輸出一個(gè)&后,整個(gè)外部switch語句執(zhí)行完畢。程序最后輸出的換行符不會(huì)顯示,所以本題應(yīng)該填#&。
35.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。
36.概念概念
37.存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。
38.1010解析:函數(shù)sub遞歸調(diào)用的返回值被作為再次調(diào)用sub函數(shù)的實(shí)參傳給函數(shù)sub的形參,共進(jìn)行3次遞歸調(diào)用。第1次調(diào)用sub(1234)的返回值為1234/10+1234%10=127;第2次調(diào)用sub(127)的返回值為127/10+127%10=19;第3次調(diào)用sub(19)的返回值為19/10+19%10=10。所以程序的輸出為10。
39.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素。
入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。
退棧運(yùn)算是指取出棧頂元素并賦給一個(gè)指定的變量。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個(gè)指定的變量,然后將棧頂指針退一(即top減1)。
讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。這個(gè)運(yùn)算不刪除棧頂元素,只是將它的值賦給一個(gè)變量。
40.s%10*s1+t
41.B
42.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。
43.A
44.D
45.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。
46.D解析:getchar函數(shù)只能接收一個(gè)字符,即使輸入多個(gè)字符也只能將第一個(gè)字符讀入。當(dāng)輸入123<回車>時(shí):seanf函數(shù)分別讀人字符'1'、'2'、'3'、'<回車>';再輸入45678<回車>,則getehar讀人字符'4'賦值給c5,字符'5'賦值給c6,所以輸出結(jié)果為1245。
47.A解析:本題考查函數(shù)printf()的格式。“%x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。
48.A
49.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
50.C
51.C解析:在fun函數(shù)中,while循環(huán)的功能是:逐個(gè)取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將其作為個(gè)位數(shù)字保存到變量n中,n的原數(shù)據(jù)的各個(gè)數(shù)位將相應(yīng)左移一個(gè)10進(jìn)制位。當(dāng)指針s指向數(shù)組的第3位時(shí),循環(huán)條件不成立,循環(huán)結(jié)束,返回n的值,輸出n的值為61。
52.A解析:本題考查求字符串的長度。數(shù)組str初始化的長度是7,使用strcpy函數(shù)將新字符串賦給str后,strlen函數(shù)返回的是新字符串的字符個(gè)數(shù)5。
53.B解析:選項(xiàng)A的結(jié)尾沒用‘;’,所以不是一條語句:選項(xiàng)C中的表達(dá)式不會(huì)改變?nèi)魏巫兞康膬?nèi)容,也不是合法的賦值語句;選項(xiàng)D有語法錯(cuò)誤,int應(yīng)該加上括號(hào)。所以,4個(gè)選項(xiàng)中只有選項(xiàng)B符合題意,運(yùn)行后d的內(nèi)容被減一。
54.D通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
軟件生命周期的主要活動(dòng)階段為:
①可行性研究和計(jì)劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實(shí)施計(jì)劃。
②需求分析。對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊(cè),提交評(píng)審。
③軟件設(shè)計(jì)。系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
④軟件實(shí)現(xiàn)。把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊(cè)、操作手冊(cè)等面向用戶的文檔,編寫單元測(cè)試計(jì)劃。
⑤軟件測(cè)試。在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個(gè)組成部分。編寫測(cè)試分析報(bào)告。
⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。
55.A解析:本題考核的知識(shí)點(diǎn)是字符串的長度。字符數(shù)組中可以存放字符串,但字符數(shù)組的長度并不是字符串的長度,字符串的長度是指字符數(shù)組中存放的有效字符個(gè)數(shù),即,\'\\0\'之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:\'\\\\'1'4'1'141'a'b'c'\\t\'和最后一個(gè)字符串結(jié)束標(biāo)記\'\\0\',故字符串的長度是9。所以,4個(gè)選項(xiàng)中A為所選。
56.A解析:本題定義了一個(gè)結(jié)構(gòu)體類型并自定義類型名為STD,用戶自定義類型后,就可以利用它進(jìn)行變量與數(shù)組的定義。定義的方法,與C語言中其他類型的定義完全一樣,定義結(jié)構(gòu)型數(shù)組并賦初值時(shí),每個(gè)元素用一對(duì){和}括起來,字符型元素用,括起來,選項(xiàng)A、B、C、D中只有選項(xiàng)A符合條件。所以,A選項(xiàng)為所選。
57.A解析:本題中首先計(jì)算switch后面括號(hào)里的表達(dá)式a%3,即15%3為0;執(zhí)行case0:后面的語句m++:m自加1,即m為1遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。所以選項(xiàng)A正確。
58.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。
59.A解析:引用一個(gè)數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。
60.A
61.C
62.Beoulinue的作用是跳出循環(huán)體中剩余的1語句而進(jìn)行下一次循環(huán)。第一次執(zhí)行外循環(huán)i的值為0,執(zhí)行|x++,x的值變?yōu)閘,第一次執(zhí)行內(nèi)層循環(huán)j的值為0,不滿足if1條件,執(zhí)行x++,x的值變?yōu)?,第二次內(nèi)循環(huán)j的值為1,if條1件成立,跳出本次循環(huán),第三次執(zhí)行內(nèi)循環(huán)j的值為2,不滿足lif條件,x的值變?yōu)?,第四次執(zhí)行內(nèi)循環(huán)j的值為3滿足條件1跳出本次內(nèi)循環(huán),x的值加l,即為4,第一次外循環(huán)結(jié)束。第1二次執(zhí)行外循環(huán)時(shí),同理,i的值被加了,4次,變?yōu)?,所以選擇I,B選項(xiàng)。
63.B
64.B
65.C在本題程序中,首先定義了一個(gè)fun函數(shù),函數(shù)帶有兩個(gè)指針變量的形參,在程序體中,定義一個(gè)整型變量m用來保存計(jì)算的結(jié)果,然后執(zhí)行第一條運(yùn)算語句,并將運(yùn)算結(jié)果保存至變量m,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026安徽蚌埠自貿(mào)區(qū)城發(fā)人力資源有限公司第一期招聘6人備考題庫附答案
- 歷史文化街區(qū)消防宣傳新媒體應(yīng)用細(xì)則
- 2025福建龍巖白沙中心幼兒園招聘教師1人參考題庫完美版
- 2026天津市政昕資管公司招聘2人參考題庫新版
- 大型等離子體醫(yī)療設(shè)備屏蔽室施工
- 六年級(jí)上學(xué)期語文單元復(fù)習(xí)題2026
- 農(nóng)村多人口低保申請(qǐng)書
- 船舶注銷申請(qǐng)書
- 生產(chǎn)計(jì)劃申請(qǐng)書范文
- 新品種的申請(qǐng)書
- 云南師大附中2026屆高三1月高考適應(yīng)性月考卷英語(六)含答案
- 2026湖北隨州農(nóng)商銀行科技研發(fā)中心第二批人員招聘9人筆試備考試題及答案解析
- 2026年上海市松江區(qū)初三語文一模試卷(暫無答案)
- 清華大學(xué)教師教學(xué)檔案袋制度
- 人教版九年級(jí)物理上學(xué)期期末復(fù)習(xí)(知識(shí)速記+考點(diǎn)突破+考點(diǎn)練習(xí)題)含答案
- GB/T 3098.5-2025緊固件機(jī)械性能第5部分:自攻螺釘
- 2026年安徽國防科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫及完整答案詳解1套
- 2025秋粵教粵科版(新教材)小學(xué)科學(xué)二年級(jí)上冊(cè)知識(shí)點(diǎn)及期末測(cè)試卷及答案
- 醫(yī)院信息系統(tǒng)零信任訪問控制方案
- 2025年7月國開電大??啤豆残姓W(xué)》期末紙質(zhì)考試試題及答案
- 2025年安徽省公務(wù)員考試申論真題及參考答案
評(píng)論
0/150
提交評(píng)論