版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖南省岳陽市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4
3.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
4.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結(jié)果是A.5670B.656667C.567D.ABC
5.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
6.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
7.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
8.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護(hù)過程
9.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值
10.
11.在下列幾種排序方法中,空間復(fù)雜度最高的是()
A.歸并排序B.快速排序C.插入排序D.選擇排序
12.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
13.以下關(guān)于注釋的敘述中錯誤的是()。
A.注釋的邊界符號“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對程序的運行不起作用
D.注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套
14.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序運行時輸入5并按〈Enter〉鍵,則程序輸出結(jié)果為()。
A.5,6,7,B.0,1,2,3,4,C.6,7,D.6,7,8,
15.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運行后的輸出結(jié)果是()。A.11B.21C.6D.120
16.下列程序段的時間復(fù)雜度為()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)
17.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫C.字段D.記錄
18.若某鏈表最常用的操作是在最后一個結(jié)點之后插入一個結(jié)點或刪除最后一個結(jié)點。則采用()存儲方式最節(jié)省運算時間。
A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結(jié)點的雙循環(huán)鏈表
19.下面程序的運行結(jié)果是()。
A.gaeB.gaC.LanguageD.有語法錯
20.若一棵二叉樹具有10個出度為2的結(jié)點,則在該二叉樹中,出度為0的結(jié)點個數(shù)是()
A.9B.11C.12D.不確定
二、2.填空題(20題)21.性表的順序存儲中,元素之間的邏輯關(guān)系是通過【】決定的;性表的鏈接存儲中,元素之間的邏輯關(guān)系是通過【】決定的。
22.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%dh",k);
}
23.在關(guān)系運算中,【】運算是對兩個具有公共屬性的關(guān)系所進(jìn)行的運算。
24.以下程序運行后的輸出結(jié)果是______。
structNODE
{inthum;structNODE*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;
25.以下程序的功能是找出三個字符串中的最大串。
【】
#include<stdio.h>
main()
{inti;
charstring[20],str[3][20];
(i=0;i<3;i++)gets(【】);
if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);
printf("Thelargeststringis\n%s\n",string);
}
26.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達(dá)式是______。
27.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
printf("\n");
}
28.下面程序的運行結(jié)果是:【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
29.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
30.以下程序的輸出結(jié)果是_______。
main()
{char*p[]={"BOOL","OPK","H","SP:,};
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
31.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】。
32.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
33.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
34.執(zhí)行以下程序后的輸出結(jié)果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
35.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
36.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
37.函數(shù)rewind的作用是
38.以下程序運行的結(jié)果是【】。
#include<conio.h>
#include<stdio.h>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0‖i%11==0)
a[j++]=i;
*n=j;}
main()
{intaa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");}
39.下列程序段的運行結(jié)果是______。
charstr口="ABCD",*p=str;
printf("%d\n",*(p+3));
40.若有語句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為()。
三、1.選擇題(20題)41.設(shè)intx=1,y=1;表達(dá)式(|x‖--y)的值是()。
A.0B.1C.2D.-1
42.對長度為n的線性表進(jìn)行順序查找,在最壞的情況下所需要的比較次數(shù)為______。
A.log2nB.n/2C.nD.n+l
43.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
44.以下程序的輸出結(jié)果是(){intx=05;charz='a';printf("%d\n",(x&1)&&(z<'z'));}
A.0B.1C.2D.3
45.以下程序的輸出結(jié)果是()main(){charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss)):}
A.4,16B.7,7C.16,16D.4,7
46.若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
47.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是
A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7
48.有關(guān)return語句說法不正確的是()。
A.系統(tǒng)默認(rèn)的返回值類型為整型,故當(dāng)函數(shù)的返回值為int型時,在函數(shù)定義時,返回值的類型說明可以省略
B.當(dāng)函數(shù)有返回值時,凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)
C.當(dāng)函數(shù)沒有返回值時,函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”
D.函數(shù)的返回值類型必須與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準(zhǔn),并自動地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型
49.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。
A.while((ch=getchar())!='N')printf("%c",ch);
B.while(ch=getchar()!='N')printf("%c",ch);
C.while(ch=getchar()=='N')printf("%c",ch);
D.while((ch=getchar())=='N')printf("%c",ch):
50.能夠?qū)τ嬎銠C的硬件設(shè)備進(jìn)行管理,并使應(yīng)用軟件能夠方便、高效地使用這些設(shè)備的是()
A.數(shù)據(jù)庫存系統(tǒng)B.操作系統(tǒng)C.編輯軟件D.應(yīng)用軟件
51.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序易讀性
52.以下不是網(wǎng)絡(luò)操作系統(tǒng)的是()
A.Windows3.1B.WindowsNTC.NetWareD.UNIX
53.C語言程序的基本單位是______。
A.程序行B.語句C.函數(shù)D.字符
54.在下列關(guān)于二叉樹的敘述中,正確的一項是
A.在二叉樹中,任何一個結(jié)點的度都是2
B.二叉樹的度為2
C.在二叉樹中至少有一個結(jié)點的度是2
D.一棵二叉樹的度可以小于2
55.下列合法的字符型常量是()。
A.'\x13'B.'\081'C.'65'D.\n
56.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}
A.4和2B.4和1C.4和0D.3和1
57.當(dāng)執(zhí)行下面的語句定義一維數(shù)組a并賦以初值后,此數(shù)組的元素中不正確的一個賦值結(jié)果是()staticinta[10]={0,1,2,3,4,5};
A.a[2]=1B.a[0]=0C.a[3]=3D.a[9]=0
58.下面程序main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%d\n",k,a,B);}的輸出是_______。
A.003B.012C.103D.112
59.設(shè)有以下說明語句:typedefstruet{intn;charch[8];}PER;則下面敘述中正確的是()。
A.PER是結(jié)構(gòu)體變量名
B.PER是結(jié)構(gòu)體類型名
C.typedefstruct是結(jié)構(gòu)體類型
D.struct是結(jié)構(gòu)體類型名
60.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。
2743<CR>
程序的輸出結(jié)果是
A.66877B.668966C.6677877D.6688766
四、選擇題(20題)61.以下選項中,能定義S為合法的結(jié)構(gòu)體變量的是()。
A.
B.
C.
D.
62.若變量已確定義,則以下語句的輸出結(jié)果是()。
63.若有以下說明,則能打印出”An”的語句的是()。
A.
B.
C.
D.
64.
65.
66.有以下程序(注:字符a的ASCIl碼值為97)
#include<stdio.h>
main()
{char*s={"abc")
do
{printf("%d",*S%10");++S;}
while(*s);
}
隉序運行后的輸出結(jié)果是()。
A.abcB.789C.7890D.979899
67.設(shè)有定義下列:inta=1,b=2,c=3,d=4,m=2,n=2;則表達(dá)式(m=a>b)&&(n=c>d)運算后,n的值是()。
A.4B.3C.2D.0
68.(25)下面對對象概念描述錯誤的是()
A.任何對象都必須有繼承性
B.對象是屬性和方法的封裝體
C.對象間的通訊靠消息傳遞
D.操作是對象的動態(tài)性屬性
69.下列程序的輸出結(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
70.若有定義:charc;doubled;程序運行時輸入:12<;回車>;,能把字符1輸入給變量c、數(shù)值2輸入給變量d的輸入語句是()。
71.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0,0B.1,0C.3,2D.1,2
72.若變量已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a:a+7:c+b
73.以下選項中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
74.
75.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
76.以下程序段中的變量已正確定義:
程序段的輸出結(jié)果是()。
A.**B.****C.*D.********
77.
78.(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é)束程序運行
79.
80.
有下列程序:
main
{charp[]={a,h,c},q[]="a";
printf("%d%d\n".sizeof(P),sizeof(q));
}
程序運行后的輸出結(jié)果是()。
A.44B.33C.34D.43
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從高到低的順序找出前m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是刪除一個字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個字符串“World”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“Word”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf(“Enterthestring:\n”); gets(str1); printf(“Enterthepositionofthestringdeleted:”); scanf(“%d”,&n);fun(str1,str2,n); printf(“Thenewstringis:%s\n”,str2);}
參考答案
1.C
2.C根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。
3.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。
4.C
5.Ddouble*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f。否則,數(shù)據(jù)不能正確輸入。所以選項D正確。
6.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標(biāo)識符。本題中的類型為char*。
7.C解析:數(shù)組名s1是代表s1數(shù)組首地址的地址常量,而不是變量,因為“=”左邊不能出現(xiàn)常量,因此sl='ABCDE'的方法是錯誤的。
8.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
9.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進(jìn)行賦值,則它的值是一個隨機值。
10.A
11.A
12.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
13.D在編寫程序時可以在程序中加入注釋。在添加注釋時,注釋內(nèi)容必須放在符號“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),“/*”與“*/”之間不可以有空格,選項A正確;注釋可以用英文,可以用中文,可以出現(xiàn)在程序中任意合適的地方,選項B正確;注釋部分只適用于閱讀,對程序的運行不起作用,選項C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項D錯誤。故本題答案為D選項。
14.Cmain函數(shù)首先定義一個整型變量data,使用scanf函數(shù)輸入一個整數(shù)賦給data。接著執(zhí)行for循環(huán),i的值為0~7。當(dāng)i的值不大于data的值時,使用continue語句跳過當(dāng)前循環(huán),進(jìn)入下一輪循環(huán)。若從鍵盤輸入5,data的值為5,i取值為0~5時,都不執(zhí)行printf語句。當(dāng)i取值為6、7時,執(zhí)行printf語句,輸出6,7。故本題答案為C選項。
15.B本題考查靜態(tài)變量,C語言中靜態(tài)變量的生存期是從程序的開始到結(jié)束。本題中靜態(tài)變量x,隨著每次進(jìn)入循環(huán)不斷增長5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21,選B。
16.A
17.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。
18.D
19.A考查用指針來引用字符數(shù)組元素的方法。指針pl+k相當(dāng)于指針pl向后移動了k個字符的位置,指針p2同理。
20.B
21.相鄰位置鄰接指針相鄰位置\r\n鄰接指針
22.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++8,所以k=8。
23.自然連接自然連接解析:在關(guān)系運算中,自然連接運算是對兩個具有公共屬性的關(guān)系所進(jìn)行的運算。
24.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。
25.#include<string.h>str[i]0
26.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和z這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
27.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:題目要求排序的元素是下標(biāo)值為偶數(shù)的元素,外循環(huán)循環(huán)4次,i的值分別為0、2、4、6,所以內(nèi)循環(huán)也循環(huán)4次,i的值就應(yīng)為2、4、6、8,在循環(huán)體中已經(jīng)有了對j加1的操作,因此for后括號中的語句應(yīng)再對j加1,保證下標(biāo)為偶數(shù)。if語句的功能是如果后一個數(shù)比前一個數(shù)小則交換位置。
28.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向了實參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實參的值,所以函數(shù)調(diào)用返回后x和y依然是原來的值。
29.驅(qū)動模塊驅(qū)動模塊解析:在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
30.
31.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。
32.1616解析:本題中a+=8相當(dāng)于a=a+8。對表達(dá)式逐步進(jìn)行求解:在a+=(a=8)中,首先a被賦值為8,語句等價于a+=8;即a=a+8;結(jié)果為a=16。
33.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
34.a=14a=14解析:逗號表達(dá)式的值是以逗號分隔的最后一個表達(dá)式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結(jié)果是a=14。
35.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
36.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個表達(dá)式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。
37.A
38.77解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運算符。
當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:711142122283335424449。
39.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應(yīng)ASCII碼值68。
40.11解析:(int)(x/5)=3,3%2=1。
41.A解析:當(dāng)邏輯或運算符兩邊的運算對象至少有一個為1時,整個邏輯表達(dá)式的值是1;如果兩邊的運算對象都為0,則整個邏輯表達(dá)式的值為0。題中!x=0,--y=0,所以整個表達(dá)式的值是0。
42.C解析:順序查找的最壞情況是所找的元素性表的最后,因此查找的比較次數(shù)是線性表的長度,即n。
43.B解析:a=b=c+2實際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個表達(dá)式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應(yīng)改為(int)18.5%3;選項D)可理解為兩個表達(dá)式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達(dá)式或常量等。注意:C++語言賦值語句的運用,
44.B
45.A
46.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值;當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。
47.B解析:本題考查if條件語句。a=3,b=5,因此a>b條件不成立,c=a=3。此時c!=a條件不成立,不執(zhí)行c=b;語句,c的值仍然為5。結(jié)果a=3,b=5,c=3。
48.D函數(shù)的返回值類型一般與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準(zhǔn),并自動地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。
49.A解析:因為while是以條件為假時結(jié)束循環(huán),因此選項C、D不正確?!?=”的優(yōu)先級比“=”高,因此“ch=getchar()!='N'”相當(dāng)于“ch=(getchar!='N')”,ch并不能得到輸入的字符,只能得到true或者false值。
50.B
51.D結(jié)構(gòu)化程序設(shè)計由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變得單純而明確,為設(shè)計一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨立,因此,在設(shè)計其中一個模塊時,不會受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為可以充分利用現(xiàn)有的模塊作為積木式的擴展。
結(jié)構(gòu)化程序設(shè)計的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個新構(gòu)造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。
52.A
53.C解析:C語言是一個函數(shù)語言,C語言的主體就是一個主函數(shù),然后有庫函數(shù)和用戶自定義的函數(shù)來配合主函數(shù)完成一系列的任務(wù),所以說,C語言的基本單位是函數(shù)。
54.D解析:本題考查了二叉樹的基本概念。在二叉樹中,葉子節(jié)點的度是1;當(dāng)該二叉樹為空樹時,根節(jié)點的度為零;為非空樹時,根節(jié)點的度為2。
55.A解析:C語言的字符常量是用單引號(\')括起來的一個字符,也可以用以一個“\\”開頭的字符序列來表示字符常量。其中形式\\ddd表示1到3位8進(jìn)制數(shù)所代表的字符;形式\\xhh表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中\(zhòng)'\\x13\'表示回車符,是一個字符常量;而\'\\081\'用8進(jìn)制數(shù)所代表的字符形式不正確,因為8進(jìn)制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8”;\'65\'單引號(即撇號)括起來的不是一個字符,而是一個十進(jìn)制數(shù)字;'\\n'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
56.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。當(dāng)x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當(dāng)x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。
57.A
58.C解析:a++是先使用a值再將a的值加1,b-是先使用b的值再將b的值減1,所以題中的邏輯運算表達(dá)式的值應(yīng)當(dāng)為真,即為1,而經(jīng)過運算后,a和b的值已經(jīng)分別變成0和3了。
59.B解析:本題通過typedef在定義一個結(jié)構(gòu)體類型的同時,把它白定義成類型名PER,故PER是結(jié)構(gòu)體類型名。所以,4個選項中B為所選。
60.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。
61.B本題的考查點是結(jié)構(gòu)體變量的定義。定義一個結(jié)構(gòu)體類型的變量,可采用三種方法:
(1)先定義結(jié)構(gòu)體類型再定義變量;
(2)在定義類型的同時定義變量;
(3)直接定義結(jié)構(gòu)體類型變量,.即不出現(xiàn)結(jié)構(gòu)體名。選項B)符合第三種定義方法。
62.As=32^32值為0。
63.Cstr是指針數(shù)組,每個元素存放的是指向結(jié)構(gòu)體類型數(shù)據(jù)的地址,每個元素可看作是一個指針變量,通過結(jié)構(gòu)體指針變量引用結(jié)構(gòu)體變量各成員的形式有兩種,一是(*指針變量名).成員名;二是指針變量名->成員名,本題可以是“(*s
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度供應(yīng)鏈融資貸款延期還款協(xié)議3篇
- 二零二五年度工地燃油采購與施工企業(yè)信用評估合同3篇
- 《資治通鑒》導(dǎo)讀(復(fù)旦大學(xué))學(xué)習(xí)通測試及答案
- 2025年度環(huán)保產(chǎn)業(yè)聯(lián)盟組建與運營合同2篇
- 解讀春節(jié):從傳統(tǒng)到創(chuàng)新
- 二零二五年度房屋買賣與回購地產(chǎn)基金合作合同3篇
- 教育培訓(xùn)之我行我素
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測試(零模)英語 含解析
- 陜西測繪地理信息局所屬事業(yè)單位2025年上半年招聘87人和重點基礎(chǔ)提升(共500題)附帶答案詳解
- 保險學(xué)期末試題及答案
- 高一數(shù)學(xué)上學(xué)期期末模擬試卷01-【中職專用】2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期(高教版2023基礎(chǔ)模塊)(解析版)
- 嚴(yán)重精神障礙患者隨訪服務(wù)記錄表
- 2024-2025學(xué)年人教版八年級上冊地理期末測試卷(一)(含答案)
- 統(tǒng)編版(2024新版)七年級上冊道德與法治第四單元綜合測試卷(含答案)
- 滬教版英語小學(xué)六年級上學(xué)期期末試題與參考答案(2024-2025學(xué)年)
- 北京市海淀區(qū)2023-2024學(xué)年四年級上學(xué)期語文期末試卷
- 混凝土企業(yè)安全培訓(xùn)
- 《腫瘤與營養(yǎng)》課件
評論
0/150
提交評論