版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年湖南省永州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是()。
intf1(intx,inty){returnx>y?x:y;}
intf2(intx,inty){returnx>y?y:x;}
main()
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,B),f1(c,D));
f=f1(f2(a,B),f2(c,D));
g=a+b+C+d-e-f;
phntf("%d,%d,%d\n",e,f,g);
}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
2.線性表是具有n個(gè)()的有限序列。
A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項(xiàng)
3.設(shè)某文件內(nèi)排序后得到100個(gè)初始?xì)w并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數(shù)最少為()
A.5B.6C.7D.8
4.下列語句組中,正確的是()。
5.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。
A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510
6.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A.A.必須是邏輯值
B.必須是整數(shù)值
C.必須是正數(shù)
D.可以是任意合法的數(shù)值
7.在一個(gè)C語言源程序文件中所定義的全局變量,其作用域?yàn)?)。
A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍
8.下列程序段的時(shí)間復(fù)雜度為()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
9.算法的時(shí)間復(fù)雜度取決于()
A.問題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B
10.在執(zhí)行()操作時(shí),需要使用隊(duì)列做輔助存儲空間。
A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹D.廣度優(yōu)先搜索網(wǎng)
11.
12.C語言中的變量名只能由字母,數(shù)字和下劃線三種字符組成,且第一個(gè)字符()。
A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字或下劃線中的任意一種
13.已知待排序的n個(gè)元素可分為n/k個(gè)組,每個(gè)組包含k個(gè)元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時(shí)間下界應(yīng)為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)
14.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序運(yùn)行后的輸出結(jié)果是()。
A.Three,4B.出錯(cuò)C.Three,5D.Five,5
15.下列程序的運(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
16.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
17.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。
A.歸并排序B.選擇排序C.交換排序D.插入排序
18.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
19.某完全二叉樹有256個(gè)節(jié)點(diǎn),則該二叉樹的深度為()。
A.7B.8C.9D.10
20.信息隱蔽的概念與下述哪一種概念直接相關(guān)?
A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型的劃分D.模塊耦合度
二、2.填空題(20題)21.在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。
22.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。
23.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。
24.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
25.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號之間加上一個(gè)星號,它的作用是跳過對應(yīng)的輸入數(shù)據(jù);當(dāng)輸入以下數(shù)據(jù)時(shí),100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
26.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個(gè)數(shù)。累加的和放入x所指的存儲單元中。
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0;k<n;k++)r=【】;
【】=r;
}
27.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
28.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
29.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。
fun(doubleA)
{returna*a*a;}
30.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublerun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
31.下面定義的結(jié)構(gòu)體類型包含3個(gè)成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實(shí)型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請將定義補(bǔ)充完整。
structstu
{intx;
【】
【】next;}
32.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
33.下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
34.執(zhí)行以下程序時(shí),若輸入end<回車>,則輸出結(jié)果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
35.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
36.下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制的方式寫到一個(gè)名為bi.dat的新文件中。請?zhí)羁铡?/p>
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"));=NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】);
}
fclose(fp);
}
37.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個(gè)最大值中的最小的那個(gè)數(shù)作為函數(shù)值返回。請?zhí)羁誣_____。
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++)
for(max=a[row][0],col=1;col<N;col++)
if()max=a[row][col];
if(row==0)min=max;
elseif()min=max;
returnmin;
}
38.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。
39.以下程序的輸出結(jié)果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
40.下列程序中的數(shù)組a包括10個(gè)整數(shù)元素,分別將前項(xiàng)和后項(xiàng)之和存入數(shù)組b,并按每行4個(gè)元素輸出數(shù)組bo請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4==0)printf("\n");
printf("%3d",b[i]);
}
}
三、1.選擇題(20題)41.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試
42.以下4個(gè)選項(xiàng)中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
43.有以下程序main(){intx=10,y=10;printf("%d%d\n",x--,--y);}程序運(yùn)行后的輸出結(jié)果是()
A.1010B.99C.910D.109
44.下列程序執(zhí)行后的輸出結(jié)果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{inti=0;func1(i);printf("\n");}
A.helloB.helC.hloD.m
45.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運(yùn)行后的輸出結(jié)果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
46.設(shè)x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個(gè)語句后t的值為
A.2B.1C.0D.不定值
47.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddel(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}}main(){chars[]="aa89gggh";del(s);printf("\n%s",s);}
A.aaB.89C.ggghD.aa89gggh
48.有以下程序structSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i-0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum};}程序運(yùn)行后的輸出結(jié)果是
A.260B.270C.280D.285
49.以下程序調(diào)用findmax函數(shù)返回?cái)?shù)組中的最大值findmax(inE*a,intn){int*p,*s;for(p=a,s=a;p-a<n;p++)if(______)s=p;return(*S);}main(){intx[5]={12,21,13,6,18);printf("%d\n",findmax(x'5));}在下劃線處應(yīng)填入的是
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
50.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。
A.1B.5C.9D.死循環(huán)
51.以下程序的輸出結(jié)果是
#include<stdio.h>
intfun(intn,int*s)
{intf1,f2;
if(n==0||n==1)
*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}}
voidmain()
{intx;
fun(6,&x);
printf("\n%d",x);}
A.7B.13C.9D.10
52.C語言函數(shù)返回值的類型是由______決定的。
A.return語句中的表達(dá)式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時(shí)臨時(shí)D.定義函數(shù)時(shí)所指定的函數(shù)類型
53.下列函數(shù)的運(yùn)行結(jié)果是main(){inti=2,p;intj,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.1C.2D.編譯出錯(cuò),無法運(yùn)行
54.下列敘述中正確的是()。
A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表的頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
55.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
56.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2為真的是______。
A.8B.23C.17D.6
57.下列程序運(yùn)行后的輸出結(jié)果是______。main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);
A.0B.1C.2D.3
58.結(jié)構(gòu)化程序設(shè)計(jì)的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計(jì)方法C.結(jié)構(gòu)化設(shè)計(jì)理論D.結(jié)構(gòu)化編程方法
59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
60.以下程序的輸出結(jié)果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
四、選擇題(20題)61.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
62.有以下程序:
fun(inta,intb)
{a++;b++;
if(a>b)return(a);
elsereturn(b);
}
void
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y++),2*z);
printf("%d\n",r);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.13B.6
C.8D.12
63.
64.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.1,3B.2,3C.1,4D.1.2
65.
66.
67.有以下程序
main()
{inti=010,j=0X10;
pirntf("%d,%d\n",i,j);
}
該程序的輸出結(jié)果是
A.10,10B.8,10
C.8,16D.10,16
68.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
69.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
70.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
71.對于存儲同樣的一組數(shù)據(jù)元素而言().
A.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)易于擴(kuò)充空間
B.順序結(jié)構(gòu)與鏈接結(jié)構(gòu)相比,更有利于對元素進(jìn)行插入、刪除運(yùn)算
C.順序結(jié)構(gòu)占用整塊空間,而鏈接結(jié)構(gòu)不要求整塊空間
D.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)多占存儲空間
72.設(shè)a=l,b=2,c=3,d=4,則表達(dá)式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.A.4B.3C.2D.1
73.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
74.
75.以下關(guān)于宏的敘述中正確的是()。
A.宏替換沒有數(shù)據(jù)類型限制
B.宏定義必須位于源程序中所有語句之前
C.宏名必須用大寫字母表示
D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間
76.
77.下列關(guān)系表達(dá)式中,結(jié)果為“假”的是()。
A.(3+4)>6
B.(3!=4)>2
C.3<=4
D.
E.3
F.(3<4)=1
78.有以下程序:
voidmain()
{inta=1,b;
for(b=1;b<1;b++)
{if(a>=8)break;
if(a%2==1){a+5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.1C.5D.6
79.以下選項(xiàng)中與
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從低到高的順序找出前m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號之外,將串中其他*號全部刪除。在編寫函數(shù)時(shí).不得使用C語言提供的字符串函數(shù).
參考答案
1.A解析:根據(jù)函數(shù)intf1(intx,inty){returnx>y?x:y;}和int饅(intx,inty){retumx>y?y:x;}的定義可知,如果x>y成立,則函數(shù)n返回x的值,函數(shù)C返回y的值。所以n(a,B=4,n(c,d)=5,C(a,B=3,f2(c,d)=2,故e=f2(4,5)=4,f=n(3,2)=3,g=4+3+5+2-4-3=7。
2.A
3.A
4.A字符型指針變量可以用選項(xiàng)A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項(xiàng)C)的寫法:char*s,s={1.Olympic”};是錯(cuò)誤的。字符數(shù)組可以在定義的時(shí)候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項(xiàng)B)和選項(xiàng)D)都是錯(cuò)誤的。對于本例,選項(xiàng)B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志“\0”)。
5.A解析:本題考核的知識點(diǎn)是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個(gè)一維數(shù)組a并初始化,由于定義該數(shù)組的時(shí)候省略了長度,因此該數(shù)組的長度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
6.D
7.D
\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個(gè)源文件結(jié)束止。當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對此全局變量進(jìn)行說明,以便通知編譯程序該變量是一個(gè)已在外部定義了的全局變量,這時(shí)全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。
\n
8.C
9.C
10.D
11.A
12.C
13.B
14.Cmain函數(shù)定義一個(gè)二維字符數(shù)組str,它包含3個(gè)字符串,每個(gè)字符串存放在一個(gè)長度為10的一維數(shù)組中。指針變量P指向str[0],即第1個(gè)字符串“One”。由于“One”存放在長度為10的一維數(shù)組中,因此P+10指向下一個(gè)字符串“Three”,長度為5。故本題答案為C選項(xiàng)。
15.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。
16.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
17.D
18.D
19.C
20.B解析:采用信息隱蔽的目的就是為了確保每個(gè)模塊的獨(dú)立性。
21.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。
22.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測試。測試一般有兩種方法:黑盒測試和白盒測試。黑盒測試不考慮程序的內(nèi)部邏輯結(jié)構(gòu)和處理過程,只著眼于程序的外部特性。用黑盒測試來發(fā)現(xiàn)程序中的錯(cuò)誤,必須用所有可能的輸入數(shù)據(jù)來檢查程序能否都能產(chǎn)生正確的輸出。白盒測試是在了解程序內(nèi)部結(jié)構(gòu)和處理過程的基礎(chǔ)上,對程序的所有路徑進(jìn)行測試,檢查路徑是否都能按預(yù)定要求正確工作。因此,劃線處應(yīng)填入“白盒(箱)”或“WhiteBox”。
23.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。
24.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運(yùn)算符邏輯與“&&”的用法。
25.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳過對應(yīng)的輸入數(shù)據(jù),所以第二個(gè)輸入數(shù)200被跳過去了,只有100,300,400三個(gè)數(shù)被從鍵盤輸入了進(jìn)來。
26.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標(biāo),因此有r=r+b[k];由于x是傳地址調(diào)用,*x是其指向存儲單元的內(nèi)容,要把累加的和放入x所指的單元,因此有*x=r。
27.存儲結(jié)構(gòu)
28.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。
29.int類型int類型
30.k=k*ik=k*i解析:本題小通過for循環(huán)求s表達(dá)式中每一項(xiàng)的和,表達(dá)式“fac=fac/k;”求的是每一項(xiàng)的值,所以k的值應(yīng)為n!,在求n!的時(shí)候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故木題填k=k*i。
31.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實(shí)型變量。要求變量next是指向自身結(jié)構(gòu)體的指針,因此變量next應(yīng)該是結(jié)構(gòu)體stu的指針型變量。
32.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對一個(gè)在有限步驟內(nèi)終止算法和所需存儲空間大小的估計(jì)。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。
33.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。
34.Bend
35.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個(gè)字符,\'\\n\'是1個(gè)字符,'012'又是3個(gè)字符,最后的\'\\1\'和\'\\\\\'都是1個(gè)字符。所以最終字符串的長度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。
36."bi.dat"fp
37.a[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]max<min或min>maX或max<=min或min>=maxa[iow][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[iow][col]\r\nmax<min或min>maX或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量iow、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值;min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進(jìn)行比較。如果大于max則將其值賦給max,當(dāng)每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個(gè)空應(yīng)該填a[row][col]>max或a[row][col]=max.退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時(shí),將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時(shí),將min和每行的max比較,如果大于max,則將max值賦min,所以第二個(gè)空應(yīng)該填max<min或min>max,當(dāng)退出外循環(huán)時(shí),min為所有行中的最大值的最小值。
38.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。
39.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個(gè)成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]…b[9]的值相加,結(jié)果為22。
40.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實(shí)現(xiàn)將一個(gè)數(shù)組的前項(xiàng)和后項(xiàng)之和存入另一數(shù)組。
41.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個(gè)模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測試用例,多個(gè)模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個(gè)模塊連接起來,必須精心計(jì)劃,應(yīng)提交集成測試計(jì)劃、集成測試規(guī)格說明和集成測試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計(jì)時(shí)犯的錯(cuò)誤。
(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時(shí)犯下的錯(cuò)誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計(jì)測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個(gè)計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時(shí)犯下的錯(cuò)誤。
42.D解析:選項(xiàng)D)為兩條語句。
43.D
44.C解析:考查函數(shù)的調(diào)用。函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)參列表)
首先調(diào)用函數(shù)func1(0),輸出st[0]=h。i值變?yōu)?,并調(diào)用函數(shù)func2(2),輸出st[2]=l。i值此時(shí)變?yōu)?,又調(diào)用函數(shù)func1(4),輸出st[4]=0。此時(shí)i值大于等于3,執(zhí)行完畢,因此,輸出結(jié)果為hlo。函數(shù)調(diào)用的一般格式以及函數(shù)的返回值。
45.B解析:f函數(shù)用了顯式傳地址的方式,因此主函數(shù)中的s值發(fā)生了變化。
46.B解析:邏輯與(&&)優(yōu)先于邏輯或(‖)優(yōu)先于賦值運(yùn)算符。由于邏輯運(yùn)算符的結(jié)果為邏輯值,真為1,假為0,題目中的邏輯值為真。
47.B解析:本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入s數(shù)組中的字符,如果遇到數(shù)字,則將其重新存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串s中的所有數(shù)字。
48.B解析:本題考查的知識點(diǎn)是結(jié)構(gòu)體數(shù)組元素的成員元素的引用。程序中首先定義了一個(gè)結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點(diǎn)型數(shù)組。在main()首先定義了一個(gè)結(jié)構(gòu)體數(shù)組并初始化.接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個(gè)元素中數(shù)組成員即{'20021',90,95,85'}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。所以4個(gè)選項(xiàng)中B正確。
49.B解析:在main()函數(shù)中定義了一個(gè)具有5個(gè)元素的x數(shù)組并賦初值,然后調(diào)用findmax()函數(shù)求數(shù)組中元素的最大值。調(diào)用時(shí)把數(shù)組元素x的首地址,傳給了形參指針變量a,把5傳給形參n。在函數(shù)findmax()中定義了兩種指針變量p和s,其中s用來記錄最大元素的地址,p作為循環(huán)控制變量,表示每個(gè)元素的地址.求最大值的算法是先將第一個(gè)元素(用s記下它的地址)做為最大值,然后用最大值(*s)與后面的每個(gè)元素比較(*p),若后面的元素大,則用s記下它的地址,所以下劃線應(yīng)填“*s<*p*或“*P>*s”。所以,4個(gè)選項(xiàng)中B為所選。
50.B解析:因?yàn)樵谘h(huán)中存在一條這樣的語句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時(shí)候循環(huán)會被強(qiáng)行結(jié)束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應(yīng)該選擇B。
51.B解析:考查函數(shù)的遞歸調(diào)用。n=0或n=1是遞歸的終止條件,然后利用已知值逐步遞推求出未知值。通過傳送地址值,在被調(diào)用函數(shù)中直接改變調(diào)用函數(shù)中的變量的值。
52.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時(shí)指定的。在定義函數(shù)時(shí)對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型—致,如果不—致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。
53.A解析:函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算應(yīng)得結(jié)果為“-1”。
54.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。
55.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。
56.B
57.C
58.CC?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計(jì)的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計(jì)理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化編程方法。
59.A解析:在程序語句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時(shí)k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。
60.A解析:觀察子函數(shù)fun()可知,它是實(shí)現(xiàn)—個(gè)數(shù)組首末元素位置互相依次交換。聯(lián)系主函數(shù),可以看出,是對字符串中的元素依次進(jìn)行首末位置的對調(diào)。
61.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。
62.A函數(shù)的功能是將a,b的值增1后將較大的值返回。因此fun(x,y++)=10,fun(10,12)=13,所以r=13.
63.D
64.Af函數(shù)功能使第二個(gè)指針指向的元素增1,第一個(gè)指針指向的元素不變,所以答案選擇A)。
65.B
66.C
67.C本題主要考查八進(jìn)制數(shù)與十六進(jìn)制數(shù)的十進(jìn)制輸出。做這類題目的關(guān)鍵是對數(shù)據(jù)進(jìn)行數(shù)制轉(zhuǎn)換。
在程序中,首先定義了兩個(gè)變量i和j,其中i的初值為一個(gè)八進(jìn)制數(shù)10,而j的初值為一個(gè)十六進(jìn)制數(shù)10,然后輸出它們的十進(jìn)制數(shù)。
一般情況下,八進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換通過二進(jìn)制來實(shí)現(xiàn),即先將八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后將二進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù)。八進(jìn)制數(shù)的一位對應(yīng)二進(jìn)制數(shù)的三位,那么將八進(jìn)制數(shù)10轉(zhuǎn)換成二進(jìn)制應(yīng)該為001000,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度智能家居系統(tǒng)安裝合同
- 2024年食堂餐飲品牌代理合同3篇
- 福建省南平市五夫中學(xué)高三物理月考試卷含解析
- 11 變廢為寶有妙招 ( 說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治四年級上冊
- 2024年電腦硬件及軟件購買合同
- 領(lǐng)跑未來家居設(shè)計(jì)
- 科學(xué)知識解密
- 外包保潔合同(2篇)
- 揭秘農(nóng)業(yè)生態(tài)系統(tǒng)
- 2024年虛擬現(xiàn)實(shí)技術(shù)研發(fā)與應(yīng)用委托合同
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 2025年中考語文復(fù)習(xí)之現(xiàn)代文閱讀:非連續(xù)性文本閱讀(10題)
- 小紅書推廣合同范例
- GB/T 9755-2024合成樹脂乳液墻面涂料
- 商業(yè)咨詢報(bào)告范文模板
- 2024年度軟件定制開發(fā)合同(ERP系統(tǒng))3篇
- 家族族譜模板
- 家譜修編倡議書范文
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
評論
0/150
提交評論