




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年江蘇省揚州市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)有一個二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。
A.688B.678C.692D.696
2.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
3.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
4.一個棧的入棧序列是a,b,c,d,e,f,則棧的不可能的輸出序列為()
A.fedcbB.defbcC.defcbD.abcdef
5.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
6.下面哪種排序的平均比較次數(shù)最少()
A.插入排序B.選擇排序C.堆排序D.快速排序
7.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.
B.
C.
D.
8.下面判斷正確的是
A.char*a="china";等價于char*a;*a="china";
B.charstr[5]={"china"};等價于charstr[]={"china"};
C.char*s="china";等價于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";
9.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
10.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進先出”原則組織數(shù)據(jù)
11.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強
12.下列敘述中錯誤的是()。
A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動存儲類別
D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量
13.
14.在嵌套使用if語句時,C語言規(guī)定else總是A.和之前與其具有相同縮進位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近的且不帶else的if配對
D.和之前的第一個if配對
15.
16.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
17.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
18.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
19.以下四個選項,不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
20.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);
B.scanf("%If%If%hd",&a,&b,&c);
C.scanf("%If%f%hd",&a,&b,&c);
D.scanf("%f%f%d",&a,&b,&c);
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
#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);
}
22.有以下程序
voidf(inty,int*x)
{y=y+*x;*X=*X+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
執(zhí)行后輸出結(jié)果是______。
23.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。
24.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
25.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
26.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
請在下面的函數(shù)中填空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<=n;i++)s=s+【】。
return(sqrt(6*s));
}
27.以下程序運行后的輸出結(jié)果是【】。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
28.下面程序的運行結(jié)果是______。
main()
{inti=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
29.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*fl)int(*12)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】
30.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
31.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
32.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
33.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
34.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。
35.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。
36.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
37.以下程序的輸出結(jié)果是______。
main()
{inta=0;
a+-(a=8);
printf("%d\n",a);
}
38.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。
39.以下程序運行結(jié)果是【】。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)return(2);
p=x*func(x-1);
return(p);}
main()
{printf("%d\n",func(4));}
40.對數(shù)組中的元素值進行排序。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[]={2,4,15,3,17,5,8,23,9,7,11,13,}i,j,k;
for(k=0;k<12;k++)
for(i=k;i<12;i++)
if(a[i]>【】)
{j=a[i];
a[i]=【】;
【】=j(luò);}
for(i=0;i<12;i++)
printf("%4d",a[i]);
printf("\n");
}
三、1.選擇題(20題)41.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使I、j、k的值分別為2、3、4,
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scanf("%d,%d,%d",&i,&j,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.seanf("i=%dj=%d,k=%d",&i,&j,&k);
42.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.0C.1D.2
43.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對庫函數(shù)的正確調(diào)用。
A.strcpy(strl,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
44.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain(){inta=9,k=3,m=2;a/=S(k+m)/S(k+m);printf("%d",a);}
A.1B.4C.9D.0
45.有如下程序:#include<stdio.h>main(){intx=1,a=0,b=0;switch(x){casc0: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
46.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達式是______。
A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z
47.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
48.下列關(guān)于算法的時間復(fù)雜度陳述正確的是
A.算法的時間復(fù)雜度是指執(zhí)行算法程序所需要的時間
B.算法的時間復(fù)雜度是指算法程序的長度
C.算法的時間復(fù)雜度是指算法執(zhí)行過程中所需要的基本運算次數(shù)
D.算法的時間復(fù)雜度是指算法程序中的指令條數(shù)
49.設(shè)有二維數(shù)組A[8][9],其每個元素占2個字節(jié),從首地址400開始,按行優(yōu)先順序存放,則元素A[8,5]的存儲地址為______。
A.570B.506C.410D.482
50.已知inta=1,b=3則a^b的值為
A.3B.1C.2D.4
51.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為
A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1
52.語句“a=2;p=&a;b=*p++;”執(zhí)行后的結(jié)果是()。
A.a=3b=3B.a=2b=2C.a=2b=1D.a=2b=3
53.在計算機中,算法是指()
A.加工方法B.解題方案的準(zhǔn)確而完整的描述C.排序方法D.查詢方法
54.以下敘述中正確的是______。
A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達形式
D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點
55.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a>b);printf("%d,%d\n"m,k,m);}程序運行后的輸出結(jié)果是()。
A.0,0B.O,1C.1,0D.1,1
56.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}}:
57.在C語言中,while和do…while循環(huán)的主要區(qū)別是()。
A.do…while的循環(huán)體不能是復(fù)合語句
B.do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)
C.whil8的循環(huán)體至少被執(zhí)行一次
D.do…while的循環(huán)體至少被執(zhí)行一次
58.現(xiàn)有如下程序段,此程序段編譯有錯誤,則程序段的錯誤出在#include<stdio.h>main(){inta=30,b=40,c=50,d;d=a>30?b:c;swish(d){casea:Printf("%d,",a);caseb:printf("%d,",b);casec:printf("%d,",c);defaultprintf("#");}}
A.default:printf("#");這個語句
B.d=a>30?b:c;這個語句
C.casea:printf("%d,",a);caseb:printf("%d,",b);casec:printf("%d,",c);這三個語句
D.switch(d)這個語句
59.fwrite函數(shù)的一般調(diào)用形式是
A.fwrite(buffer,count,size,fp);
B.fwrite(fP,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
60.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
四、選擇題(20題)61.
62.有以下程序
main()
{intm=14,n=24;
printf("%d,%d",m++,++n);
printf("%d,%d\n",n++,++m);
}
程序運行后的輸出結(jié)果是
A.15252616B.14252515
C.14252516D.14252615
63.以下敘述中正確的是()。
A.在C語言中,預(yù)處理命令行都以“#”開頭
B.預(yù)處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開頭
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
64.
65.有以下程序段
#include"stdio.h"
main()
{intj,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))
break;
if(i>=j-1)
{printf("%d",j);
k++;}
}
}
程序執(zhí)行后輸出的結(jié)果是
A.5359B.5953
C.3595D.9535
66.結(jié)構(gòu)化程序設(shè)計的主要特征是()。
A)封裝和數(shù)據(jù)隱藏B)集成和重用
C)數(shù)據(jù)和處理數(shù)據(jù)的過程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個整體
67.下列關(guān)于C語言文件的敘述中正確的是()。A.文件睦數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件
C.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件
D.文件由字符序列組成,其類型只能是文本文件
68.
69.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如下圖所示的結(jié)點:
則以下選項中,可將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是
A.(*p).next=(*q).next;free(p);B.p=q->next;free(q);
C.p=q;free(q);D.p->next=q->next;free(q);
70.
有以下程序.
#include<stdio.h>
main
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar;c6=getchar;
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運行后,若從鍵盤輸入(從第l列開始)
123<回車>
45678<回車>
則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
71.設(shè)變量x為float型且已賦值,則以下語句能將x中的數(shù)值保留到小數(shù)點后兩位,并將第3位四舍五入的是()。
A.
B.
C.
D.
72.有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序執(zhí)行后的輸出結(jié)果是()。A.A.45B.20C.25D.36
73.有以下程序:
以下敘述中正確的是()。
A.在給P和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B.由于P數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符長度為3
C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但P數(shù)組中字符長度為3
D.由于P和q數(shù)組中沒有字符串結(jié)束符,故長度都不能確定
74.
75.下列敘述中正確的是()。
A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.以上說法都不正確
76.(33)有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:printf("%d\n",n);break;
case2:
case4:printf("%d\n",n);continue;
case0:exit(0);
}
printf("%d\n",n);
}
以下關(guān)于程序段執(zhí)行情況的敘述,正確的是
A)for循環(huán)語句固定執(zhí)行8次
B)當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
C)當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
D)當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
77.
78.
79.以下程序中函數(shù)f的功能是:當(dāng)na9為1時,進行由小到大排序;當(dāng)fla9為oN。進行由大到小排序。程序運行后的輸出結(jié)果是()
80.
當(dāng)c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時,t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。 例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。 注意:部分源程序給出如下。 請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。 試題程序: #include<stdio.h=:{> #include<conio.h> woidproc(char*str) { } voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.C
2.A程序定義一個二維字符數(shù)組v,使用5個字符串對其初始化。對于表達式“*v”等價于“*(v+0)”,輸出的是數(shù)組v的第1個元素efg;“**(v+3)”等價于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個元素的第1個字符h;“v[4]”表示數(shù)組v的第5個元素,“v[4]+2”表示輸出從下標(biāo)2開始的所有字符,即z;“v[2]”表示數(shù)組v的第3個元素,“*(v[2]+4)”表示數(shù)組v的第3個元素的下標(biāo)為4的字符q;“v[1]+1”表示數(shù)組v的第2個元素從下標(biāo)1開始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項。
3.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
4.B
5.C在計算(float)(a4-b)/2時,由于通過強制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進行計算,得4.500000。在計算(int)x%(int)y時,先將x和y通過強制類型轉(zhuǎn)換成int型,再進行求余運算,結(jié)果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級類型從高級類型,并進行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。
6.D
7.AB)選項中switch(n[nx);語句中不應(yīng)該有最后的分號。switch(expr1),中的exp1不能用浮點類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達式的類型必須與switch后面表達式的類型一致,所以D)錯誤。
8.C解析:選項A)char*a;*a=“china”應(yīng)改為a=china;,選項B)應(yīng)該是charstr[6];D)項表述方法有錯誤。
9.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進行賦值后,然后返回變量a。
10.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。
11.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。
12.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。
13.A
14.C解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書寫格式無關(guān)。所以選項C)為正確答案。
15.D
16.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。
①有且僅有一個特定的稱為根的結(jié)點。
②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個。
17.B
18.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。
19.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。
20.Cscanf函數(shù)用于輸入數(shù)據(jù)。第1個參數(shù)表示輸入格式控制。本題變量a是double類型,使用格式控制符%If;變量b是float類型,使用%If;變量c是short類型,使用%hd,選項C正確。本題答案為C選項。
21.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。
22.8484解析:本題考核的知識點是函數(shù)的調(diào)用、值傳遞和地址傳遞的區(qū)別?!爸祩鬟f”指實參將值傳遞給形參后,實參與形參再無聯(lián)系。也就是說對行參的改變將不影響實參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實參產(chǎn)生影響.函數(shù)f(Y*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實參的y的值將不改變,而實參x的值將改變,故最后輸出的y的值為4,而x的值為8。
23.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預(yù)防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
24.k-1k\r\n-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
25.30253025解析:本題考核的知識點是變量的存儲屬性和算術(shù)運算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標(biāo)識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
26.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運算結(jié)果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。
27.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,使后一個數(shù)為前一個數(shù)的2倍加1。所以最后輸出為1、3、7、15。
28.
29.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參n與C分別是兩個指向函數(shù)的指針。在f中執(zhí)行nf2(x),實際上是執(zhí)行了fo(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為2^3-2^2=4。
30.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。
31.邏輯關(guān)系邏輯關(guān)系
32.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。
33.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
34.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應(yīng)用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨立性是指當(dāng)邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。
35.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
36.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
37.1616解析:在程序中首先將8賦值給變量a,然后在進行復(fù)合賦值運算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
38.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。
39.4848解析:本題主要考查的是函數(shù)的遞歸調(diào)用,遞歸的終止條件是x==0或x==1,然后用已知值逐步遞推向上求未知值,直到得到最終的結(jié)果。
func(4)=4*func(3);
func(3)=3*func(2);
func(2)=2*func(1);
func(1)=2;
所以func(2)=2*2=4;
func(3)=3*4=12;
fune(4)=4*12=48。
40.a[k]a[k]a[k]
41.B解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串;輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。
42.A解析:本題考查ifelse語句。在intf(a,b)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句;第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。
43.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。
44.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
45.A解析:該程序的關(guān)鍵是要搞清楚程序執(zhí)行的路線。由于x的值等于1,所以在switch語句中,程序從case1后面的語句開始執(zhí)行。由于case1后面沒有break語句,所以程序順序執(zhí)行case2后面的語句。程序共執(zhí)行了三條語句:a++;a++;b++;所以,變量a和b最后的值分別為2和l。選項A)正確。
46.A解析:按照自左向右的運算邏輯,選項A是先做x/y,然后再乘以x,顯然與題意不符。
47.B解析:調(diào)用函數(shù)f()時,將數(shù)組a的地址傳遞給了指針q,此時q指向的就是數(shù)組a的第一個元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
48.C解析:算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,也就是算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),而不是指程序運行需要的時間或是程序的長度。
49.A
50.C解析:^是按位異或運算,如果對應(yīng)位不同則結(jié)果為1,相同則為0。
51.B解析:本題考查了二維數(shù)組元素的引用及基本概念。元素a[i][j]是數(shù)組a的第i+1行,j+1列位置上的元素。由于數(shù)組a有m列,所以a[i][j]之前還有i*m+j個元素。
52.B解析:執(zhí)行p=&a;,將變量a的地址賦給指針變量p,運算符*和++的優(yōu)先級相同,都具有自右向左的結(jié)合性,p++是先使用p的值再對p加1,則計算*p,即取p所指向的存儲單元的值2,賦值給b,再對p的值加1。輸出結(jié)果為a=2b=2。
53.B在計算機中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。
在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。
54.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。
55.C解析:在||運算中當(dāng)其左邊的表達式為真,右邊的表達式將不再執(zhí)行。主函數(shù)中,||左邊的表達式k=(n=b>a),2>1為真,所以n被賦值為1,接著k被賦值1,即||運算符左邊表達式為真,此時不再計算||右邊的表達式,因此m的值沒有被改變?nèi)詾?,最后的輸出結(jié)果1,0。所以,4個選項中選項C符合題意。
56.B解析:(1)二維數(shù)組的定義
二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。
二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。
(2)二維數(shù)組元素的引用
二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達式其范圍為:0~(常量表達式-1)。
(3)二維數(shù)組的初始化
可以用以下方法對二維數(shù)組元素初始化:
①分行給二維數(shù)組賦初值
例如:inta[2][2]={{1,2},{3,4}};
這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。
②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。
③可以對部分元素賦初值,沒有初始化的元素值為0。
④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。
57.D解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
58.C解析:case也是關(guān)鍵字,與其后面的常量表達式合稱case語句標(biāo)號,常量表達式的類型必須與switch后的表達式類型相同。這個程序段主要考查的是case后是常量表達式。
59.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示準(zhǔn)備輸出的數(shù)據(jù)塊的起始地址,size表示每個數(shù)據(jù)塊的字節(jié)數(shù),count用來指定每寫一次或輸出的數(shù)據(jù)塊,fp為文件指針。
60.A解析:條件表達式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達式b的值;當(dāng)a為假時,其值等于表達式c的值。
表達式運算過程:第1個表達式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【可行性報告】2025年第三方醫(yī)學(xué)實驗室項目可行性研究分析報告
- 江蘇電子信息職業(yè)學(xué)院《工程倫理學(xué)與環(huán)境保護》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年棉布鞋項目可行性研究報告
- 2025年中國腕部功能訓(xùn)練器行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年防氣鎖抽油泵項目投資可行性研究分析報告
- 2025年卷柏行業(yè)深度研究分析報告
- 2025-2030年推拿理療床墊企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025-2030年文化用品藝術(shù)推廣行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年變形兒童游樂桌椅行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年手腕康復(fù)冷熱敷理療包行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 新產(chǎn)品開發(fā)(toshiba案例分析組)
- 4.1.1 有理數(shù)指數(shù)冪-參考課件
- 人教版六年級數(shù)學(xué)下冊全冊大單元教學(xué)任務(wù)單
- JJF(新) 112-2023 微量殘?zhí)繙y定儀校準(zhǔn)規(guī)范
- 2024銷售人員年終工作總結(jié)2篇
- 2024年牛排行業(yè)分析報告及未來發(fā)展趨勢
- 食品投訴處理培訓(xùn)課件
- 血液科品管圈PDCA案例合集
- 創(chuàng)傷患者護理和評估
- 【全套】醫(yī)院智能化系統(tǒng)報價清單
- 北師大版五年級數(shù)學(xué)上冊典型例題系列之期中專項練習(xí):分段計費問題(解析版)
評論
0/150
提交評論