2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁
2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁
2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁
2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁
2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(12題)1.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()

A.[2,1,4,3,9,5,8,6,7]

B.[1,2,5,4,3,9,8,6,7]

C.[2,3,1,4,7,9,5,8,6]

D.[1,2,5,4,3,9,7,8,6]

2.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

A.17B.18C.19D.20

3.對于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

4.

5.以下程序的運行結(jié)果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.612D.55

6.下列條件語句中,輸出結(jié)果與其他語句不同的是()。

A.if(a)printf("%dn",x);elseprint[("%d\n",y)

B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)

C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)

D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)

7.用鏈接方式存儲的隊列,在進行刪除運算時()。

A.僅修改頭指針B.僅修改尾指針C.頭、尾指針都要修改D.頭、尾指針可能都要修改

8.設(shè)已有定義“floatx;”,則下列對指針變量P進行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float*p=1024;

9.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。

A.歸并排序B.選擇排序C.交換排序D.插入排序

10.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

11.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

12.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

二、2.填空題(12題)13.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

14.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

15.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

16.軟件生命周期包括8個階段。為使各時期的任務(wù)更明確,又可以分為以下3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

17.strcat函數(shù)的作用是【】。

18.下列程序段的運行結(jié)果是______。

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

19.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

20.數(shù)據(jù)結(jié)構(gòu)分為線性數(shù)據(jù)結(jié)構(gòu)和非線性數(shù)據(jù)結(jié)構(gòu),帶鏈的隊列屬于()。

21.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡?/p>

a>=0?【】:【】

22.以下程序的輸出結(jié)果是【】。

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

23.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

24.下列程序的運行結(jié)果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

primtf("%d,%d",POWER(i++),i);

}

三、3.程序設(shè)計題(10題)25.請編寫一個函數(shù)fun(),它的功能是:比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較短的字符串。若兩個字符串長度相等,則返回第1個字符串。

例如,輸入nanjing<CR>nanchang<CR>(<CR>為回車鍵),函數(shù)將返回nanjing。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<stdio.h>

char*fun(char*S,char*t)

{

}

main()

{

chara[20],b[10],*p,*q;

inti;

printf("Inputlthstring:");

gets(a);

printf("Input2thstring:");

gets(b);

printf(“%s”,fun(a,b));

}

26.下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][N]),該函數(shù)的功能是使數(shù)組右上半三角元素中的值全部置成0。例如a數(shù)組中的值為

a=456

179

326,

則返回主程序后a數(shù)組中的值應(yīng)為

000

100

320

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#defineN5

intfun(inta[][N])

{

}

main()

{

inta[N][N],i,j;

clrscr();

printf("*****Thearray*****\n");

for(i=0;i<N;i++)

/*產(chǎn)生—個隨機的5*5矩陣*/

{for(j=0;j<N;j++)

{a[i][j]=rand()%10;

printf(“%4d”,a[i][j]);

}

printf(“\n”);

}

fun(a);

printf(“THERESULT\n”);

for(i=0;i<N;i++)

{for(j=0;i<N;j++)

printf(“%4d”,a[i][j]);

printf(“\n”);

}

}

27.請編寫函數(shù)fun(),函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。

例如:若二維數(shù)組中的值為

13579

29994

69998

13570

則函數(shù)值為61。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM4

#defineN5

intfun(inta[M][N])

{

}

main()

{

intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},

{6,9,9,9,8},{1,3,5,7,0}};

inti,j,y;

clrscr();

printf("Theoriginaldatais:\n");

for(i=0;i<N;i++)

{for(j=0;j<N;j++)

printf("%6d",aa[i][j]);

printf("\n");

}

y=fun(aa);

printf("\nThesun:%d\n",y);

printf("\n");

}

28.函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s所指串中剩余的字符形成的新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCII碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除:而字符1的ASCII碼值為奇數(shù),在數(shù)組中的下標也為奇數(shù),因此不應(yīng)當刪除,其他依此類推。

最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDFl2345”。

注意:部分源程序存在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

29.請編寫函數(shù)fun(),它的功能是:求出1到1000之內(nèi)能被7或11整除、但不能同時被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(int*a,int*n)

{

}

main()

{

intaa[1000],n,k;

clrscr();

fun(aa,&n);

for(k=0;kif((k+1)%10==0)

{printf("%5d",aa[k]);

printf("\n");}/*一行寫9個數(shù)*/

else

printf("%5d",aa[k]);

}

30.請編寫函數(shù)fun,函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010。

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

31.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫一個函數(shù)fun(),函數(shù)的功能是:求數(shù)組周邊元素的平方和,并作為函數(shù)值返回給主函數(shù)。例如,若數(shù)組a中的值為

01279

1112155

2216111

979102

54141

則返回主程序后s的值應(yīng)為310。

[注意]部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

[試題源程序]

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#defineN5

intfun(intw[][N])

{

}

main()

{

inta[N][N]=(0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1);

inti,j;

ints;

clrscr()

printf("*****Thearray*****\n");

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

printf("%4d",a[i][j]);

}

printf("\n");

}

s=fun(a);

printf("*****THERESULT*****\n");

printf("Thesumis:%d\n",s);

}

32.函數(shù)fun的功能是:將s所指字符串中除了下標為偶數(shù)、同時ASCII值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一含新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl23456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當刪除:其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此也應(yīng)當刪除;而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標也為偶數(shù),因此不應(yīng)當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“246”。

注意:部分源程序存在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

33.請編寫函數(shù)fun(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。

S=1+x+x2/2!3/3!+…/xn/n!

例如,當n=10,x=0.3時,函數(shù)值為1349859。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(doublex,intn)

{

}

main()

{

clrscr();

printf("%f",fun(0,3,10));

}

34.編寫函數(shù)intfun(intlim,intaa[MAX]),該函數(shù)的功能是求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素數(shù)的個數(shù)。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#defineMAX100

intfun(intlim,intse[MAX])

{

}

main()

{

intlimit,i,sum;

intaa[MAX];

clrscr();

printf("輸入一個整數(shù)");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i<sum;i++)

{

if(i%10==0&&i!=0)/*每行輸出10個數(shù)*/

printf("\n");

printf("%5d",aa[i]);

}

}

四、單選題(0題)35.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

五、單選題(0題)36.以下函數(shù)的時間復(fù)雜度和空間復(fù)雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

六、單選題(0題)37.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.9,2,7,4,5,6,3,8,1,10,

D.1,10,3,8,5,6,7,4,9,2,

參考答案

1.D

2.D

3.A

4.D

5.A

6.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結(jié)論可知,輸出結(jié)果不同的為D選項。

7.D

8.B指針是用來存放地址的變量,定義指針變量的形式為:類型名*指針變量名。賦值時應(yīng)將某個變量地址,如選項B中變量x的地址&x賦給指針變量。故本題答案為B選項。

9.D

10.B

11.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

12.D

13.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

15.JD

16.軟件開發(fā)。軟件開發(fā)。解析:通常,軟件生命周期包括8個階段:問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計、詳細設(shè)計、編碼、測試、運行維護。還分為3個時期,軟件定義期:包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計、詳細設(shè)計、編碼和測試4個階段;軟件維護期:即運行維護階段。

17.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

18.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

19.D

20.線性數(shù)據(jù)結(jié)構(gòu)線性數(shù)據(jù)結(jié)構(gòu)解析:隊列的鏈式存儲稱為鏈隊列,它屬于線性數(shù)據(jù)結(jié)構(gòu)。

21.1+a1-a1+a\r\n1-a解析:因為題目中求的是1+|a|的值,即1和a的絕對值之和。所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則,當a>=0時,絕對值取本身,當a<0時,絕對值取相反數(shù),再結(jié)合條件運算符的計算規(guī)則可得到本題的答案為a>=0。注意:逗號表達式的求值規(guī)則。

22.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。

23.101091101091解析:for(表達式1;表達式2;表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

24.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

25.char*fun(char*Schar*t){intij;for(i=0s[i]!=‘\0’;i++);/*求字符串的長度*/for(j=0;t[j]!=‘\0’;j++);/*比較兩個字符串的長度*/returns;/*函數(shù)返回較短的字符串若兩個字符串長度相等則返回第1個字符串*/elsereturnt;}char*fun(char*S,char*t)\r\n{\r\ninti,j;\r\nfor(i=0,s[i]!=‘\\0’;i++);/*求字符串的長度*/\r\nfor(j=0;t[j]!=‘\\0’;j++);/*比較兩個字符串的長度*/\r\nreturns;/*函數(shù)返回較短的字符串,若兩個字符串長度相等,則返回第1個字符串*/\r\nelse\r\nreturnt;\r\n}解析:本題中,第1個for循環(huán)的作用是求出s的字符個數(shù)i,第2個for循環(huán)的作用是求出t的字符個數(shù)j,因為任何循環(huán)都要控制—條語句,所以在每—個for循環(huán)條件后面必須要有—個分號。

本題也可用如下技巧:

#include<string.h>/*一定要注意在最前面加#include<string.h>*/

char*fun(char*s,char*t)

{

if(strlen(S)>=strten(t)

returns;

elsereturnt;

}

26.intfun(inta[][N)){intij;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/}intfun(inta[][N))\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=i;j<N;j++)\r\na[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/\r\n}解析:本題旨在考查控制數(shù)組中右上半三角元素的算法,也就是兩個千篇一律的循環(huán)語句,希望學(xué)習(xí)者能夠掌握消化。

27.intfun(inta[M][N]){intijsum=0;for(i=0;i<M;i++)for(j=0;i<N;j++)if(i==0||i==M-1||j==0||j==N-1)/*只要下標中有一個為0或M-1或N-1則它一定是周邊元素*/sum=sum+a[i][j];/*將周邊元素相加*/returnsum;}intfun(inta[M][N])\r\n{\r\ninti,j,sum=0;\r\nfor(i=0;i<M;i++)\r\nfor(j=0;i<N;j++)\r\nif(i==0||i==M-1||j==0||j==N-1)/*只要下標中有一個為0或M-1或N-1,則它一定是周邊元素*/\r\nsum=sum+a[i][j];/*將周邊元素相加*/\r\nreturnsum;\r\n}解析:本題采用逐一判斷的方式,周邊元素的下標一定有一個是0或M-1或N-1,且只要下標中有一個為0或M-1或N-1,則它一定是周邊元素。

28.

解析:該程序功能是刪除下標為偶數(shù)同時ASCII值為奇數(shù)的字符。解題過程利用if判斷表達式選擇下標為偶數(shù)同時ASCII值為奇數(shù)的字符,然后將符合條件的字符放入指定的字符串,這樣就實現(xiàn)了函數(shù)功能。

29.voidfun(int*aint*n){intij=0;for(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時被7和11整除的所有整數(shù)并放入數(shù)組a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;/*傳回滿足條件的數(shù)的個數(shù)*/}voidfun(int*a,int*n)\r\n{\r\ninti,j=0;\r\nfor(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時被7和11整除的所有整數(shù),并放入數(shù)組a中*/\r\nif((i%7==0||i%11==0)&&i%77!=0)\r\na[j++]=i;\r\n*n=j;/*傳回滿足條件的數(shù)的個數(shù)*/\r\n}解析:注意本題題目應(yīng)是找出能被7或11整除但不能同時被7和11整除的所有整數(shù)。能同時被7和11整除的整數(shù)一定能被77整除,且不能被77整除的數(shù)不一定就是能被7或11整除的數(shù)。所以可得出程序中的if()。按運算優(yōu)先級可知(i%7==0||i%11==0),注意,兩邊必須要有小括號。

30.

解析:該程序功能是刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。解題思路是,首先在函數(shù)中定義臨時變量指向每一個元素,然后在循環(huán)過程中將臨時值和其他元素進行比較,如果相同,那么跳過相同字符。

31.intfun(intw[][N]){intijk=0;ints=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1){s=s+w[i][j]*w[i][j];}returns;}intfun(intw[][N])\r\n{\r\ninti,j,k=0;\r\nints=0;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<N;j++)\r\nif(i==0||i==N-1||j==0||j==N-1)\r\n{\r\ns=s+w[i][j]*w[i][j];\r\n}\r\nreturns;\r\n}

32.

解析:該程序功能是將字符串中除了下標為偶數(shù)、ASCII值也為偶數(shù)的字符外,其余的全都刪除。解題過程利用if條件判斷表達式選擇符合條件的字符,然后將符合條件的字符放入指定的字符串。

33.doublefun(doublexintn){inti;doubles=1.0.s1=1.0;for(i=1;i<=n;i++){s1=s1*i;/*各項中的階乘*/s=s+pow(xi)/s1;/*按公式求出*/}returns;}doublefun(doublex,intn)\r\n{\r\ninti;\r\ndoubles=1.0.s1=1.0;\r\nfor(i=1;i<=n;i++)\r\n{s1=s1*i;/*各項中的階乘*/\r\ns=s+pow(x,i)/s1;/*按公式求出*/\r\n}\r\nreturns;\r\n}解析:本程序中用s1來表示每項的分母(即各項中的階乘),要注意本程序中s和s1的初值都為1。

34.intfun(intlimintaa[MAX]){intijk=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數(shù)*/{for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;;/*將求出的素數(shù)放入數(shù)組aa中*/}returnk;/*返回所求出的素數(shù)的個數(shù)*/}intfun(intlim,intaa[MAX])\r\n{\r\ninti,j,k=0;\r\nfor(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數(shù)*/\r\n{for(j=2;j<i;j++)\r\nif(i%j==0)break;\r\nif(j>=i)\r\naa[k++]=i;;/*將求出的素數(shù)放入數(shù)組aa中*/\r\n}\r\nreturnk;/*返回所求出的素數(shù)的個數(shù)*/\r\n}解析:在做這道題時,我們只需掌握素數(shù)的基本算法就可以了,一般表示素數(shù)的方法如下:

for(j=2;j<i;j++)

if(i%j==0)break;

if(j>=i)

35.C本題考查for循環(huán)及if語句。當執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現(xiàn)時,break跳出循環(huán),執(zhí)行下列的printf語句。

36.A

37.C解析:本題考核的知識點是程序中算法的基本分析。sort()函數(shù)作用是將數(shù)組aa中的下標為偶數(shù)的元素按大到小排序.主函數(shù)中首先定義了一個長度為10的數(shù)組并賦值,然后調(diào)用sort()函數(shù),將數(shù)組aa中奇數(shù)個元素的值按大到小排序,因此執(zhí)行完該函數(shù)后,數(shù)組中奇數(shù)個元素的值為9,7、5、3和1,故主函數(shù)中最后通過一個for循環(huán)輸出數(shù)組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個選項中選項C符合題意。2022-2023學(xué)年湖南省湘潭市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(12題)1.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()

A.[2,1,4,3,9,5,8,6,7]

B.[1,2,5,4,3,9,8,6,7]

C.[2,3,1,4,7,9,5,8,6]

D.[1,2,5,4,3,9,7,8,6]

2.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

A.17B.18C.19D.20

3.對于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

4.

5.以下程序的運行結(jié)果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.612D.55

6.下列條件語句中,輸出結(jié)果與其他語句不同的是()。

A.if(a)printf("%dn",x);elseprint[("%d\n",y)

B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)

C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)

D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)

7.用鏈接方式存儲的隊列,在進行刪除運算時()。

A.僅修改頭指針B.僅修改尾指針C.頭、尾指針都要修改D.頭、尾指針可能都要修改

8.設(shè)已有定義“floatx;”,則下列對指針變量P進行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float*p=1024;

9.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。

A.歸并排序B.選擇排序C.交換排序D.插入排序

10.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

11.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

12.下列代碼的復(fù)雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

二、2.填空題(12題)13.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

14.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

15.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

16.軟件生命周期包括8個階段。為使各時期的任務(wù)更明確,又可以分為以下3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

17.strcat函數(shù)的作用是【】。

18.下列程序段的運行結(jié)果是______。

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

19.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

20.數(shù)據(jù)結(jié)構(gòu)分為線性數(shù)據(jù)結(jié)構(gòu)和非線性數(shù)據(jù)結(jié)構(gòu),帶鏈的隊列屬于()。

21.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡?/p>

a>=0?【】:【】

22.以下程序的輸出結(jié)果是【】。

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

23.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

24.下列程序的運行結(jié)果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

primtf("%d,%d",POWER(i++),i);

}

三、3.程序設(shè)計題(10題)25.請編寫一個函數(shù)fun(),它的功能是:比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較短的字符串。若兩個字符串長度相等,則返回第1個字符串。

例如,輸入nanjing<CR>nanchang<CR>(<CR>為回車鍵),函數(shù)將返回nanjing。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<stdio.h>

char*fun(char*S,char*t)

{

}

main()

{

chara[20],b[10],*p,*q;

inti;

printf("Inputlthstring:");

gets(a);

printf("Input2thstring:");

gets(b);

printf(“%s”,fun(a,b));

}

26.下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][N]),該函數(shù)的功能是使數(shù)組右上半三角元素中的值全部置成0。例如a數(shù)組中的值為

a=456

179

326,

則返回主程序后a數(shù)組中的值應(yīng)為

000

100

320

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#defineN5

intfun(inta[][N])

{

}

main()

{

inta[N][N],i,j;

clrscr();

printf("*****Thearray*****\n");

for(i=0;i<N;i++)

/*產(chǎn)生—個隨機的5*5矩陣*/

{for(j=0;j<N;j++)

{a[i][j]=rand()%10;

printf(“%4d”,a[i][j]);

}

printf(“\n”);

}

fun(a);

printf(“THERESULT\n”);

for(i=0;i<N;i++)

{for(j=0;i<N;j++)

printf(“%4d”,a[i][j]);

printf(“\n”);

}

}

27.請編寫函數(shù)fun(),函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。

例如:若二維數(shù)組中的值為

13579

29994

69998

13570

則函數(shù)值為61。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM4

#defineN5

intfun(inta[M][N])

{

}

main()

{

intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},

{6,9,9,9,8},{1,3,5,7,0}};

inti,j,y;

clrscr();

printf("Theoriginaldatais:\n");

for(i=0;i<N;i++)

{for(j=0;j<N;j++)

printf("%6d",aa[i][j]);

printf("\n");

}

y=fun(aa);

printf("\nThesun:%d\n",y);

printf("\n");

}

28.函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s所指串中剩余的字符形成的新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCII碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除:而字符1的ASCII碼值為奇數(shù),在數(shù)組中的下標也為奇數(shù),因此不應(yīng)當刪除,其他依此類推。

最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDFl2345”。

注意:部分源程序存在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

29.請編寫函數(shù)fun(),它的功能是:求出1到1000之內(nèi)能被7或11整除、但不能同時被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(int*a,int*n)

{

}

main()

{

intaa[1000],n,k;

clrscr();

fun(aa,&n);

for(k=0;kif((k+1)%10==0)

{printf("%5d",aa[k]);

printf("\n");}/*一行寫9個數(shù)*/

else

printf("%5d",aa[k]);

}

30.請編寫函數(shù)fun,函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010。

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

31.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫一個函數(shù)fun(),函數(shù)的功能是:求數(shù)組周邊元素的平方和,并作為函數(shù)值返回給主函數(shù)。例如,若數(shù)組a中的值為

01279

1112155

2216111

979102

54141

則返回主程序后s的值應(yīng)為310。

[注意]部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

[試題源程序]

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#defineN5

intfun(intw[][N])

{

}

main()

{

inta[N][N]=(0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1);

inti,j;

ints;

clrscr()

printf("*****Thearray*****\n");

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

printf("%4d",a[i][j]);

}

printf("\n");

}

s=fun(a);

printf("*****THERESULT*****\n");

printf("Thesumis:%d\n",s);

}

32.函數(shù)fun的功能是:將s所指字符串中除了下標為偶數(shù)、同時ASCII值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一含新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl23456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當刪除:其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此也應(yīng)當刪除;而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標也為偶數(shù),因此不應(yīng)當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“246”。

注意:部分源程序存在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

33.請編寫函數(shù)fun(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。

S=1+x+x2/2!3/3!+…/xn/n!

例如,當n=10,x=0.3時,函數(shù)值為1349859。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(doublex,intn)

{

}

main()

{

clrscr();

printf("%f",fun(0,3,10));

}

34.編寫函數(shù)intfun(intlim,intaa[MAX]),該函數(shù)的功能是求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素數(shù)的個數(shù)。

注意:部分源程序給出如下。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#defineMAX100

intfun(intlim,intse[MAX])

{

}

main()

{

intlimit,i,sum;

intaa[MAX];

clrscr();

printf("輸入一個整數(shù)");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i<sum;i++)

{

if(i%10==0&&i!=0)/*每行輸出10個數(shù)*/

printf("\n");

printf("%5d",aa[i]);

}

}

四、單選題(0題)35.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

五、單選題(0題)36.以下函數(shù)的時間復(fù)雜度和空間復(fù)雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

六、單選題(0題)37.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.9,2,7,4,5,6,3,8,1,10,

D.1,10,3,8,5,6,7,4,9,2,

參考答案

1.D

2.D

3.A

4.D

5.A

6.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結(jié)論可知,輸出結(jié)果不同的為D選項。

7.D

8.B指針是用來存放地址的變量,定義指針變量的形式為:類型名*指針變量名。賦值時應(yīng)將某個變量地址,如選項B中變量x的地址&x賦給指針變量。故本題答案為B選項。

9.D

10.B

11.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

12.D

13.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

15.JD

16.軟件開發(fā)。軟件開發(fā)。解析:通常,軟件生命周期包括8個階段:問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計、詳細設(shè)計、編碼、測試、運行維護。還分為3個時期,軟件定義期:包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計、詳細設(shè)計、編碼和測試4個階段;軟件維護期:即運行維護階段。

17.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

18.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

19.D

20.線性數(shù)據(jù)結(jié)構(gòu)線性數(shù)據(jù)結(jié)構(gòu)解析:隊列的鏈式存儲稱為鏈隊列,它屬于線性數(shù)據(jù)結(jié)構(gòu)。

21.1+a1-a1+a\r\n1-a解析:因為題目中求的是1+|a|的值,即1和a的絕對值之和。所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則,當a>=0時,絕對值取本身,當a<0時,絕對值取相反數(shù),再結(jié)合條件運算符的計算規(guī)則可得到本題的答案為a>=0。注意:逗號表達式的求值規(guī)則。

22.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。

23.101091101091解析:for(表達式1;表達式2;表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

24.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

25.char*fun(char*Schar*t){intij;for(i=0s[i]!=‘\0’;i++);/*求字符串的長度*/for(j=0;t[j]!=‘\0’;j++);/*比較兩個字符串的長度*/returns;/*函數(shù)返回較短的字符串若兩個字符串長度相等則返回第1個字符串*/elsereturnt;}char*fun(char*S,char*t)\r\n{\r\ninti,j;\r\nfor(i=0,s[i]!=‘\\0’;i++);/*求字符串的長度*/\r\nfor(j=0;t[j]!=‘\\0’;j++);/*比較兩個字符串的長度*/\r\nreturns;/*函數(shù)返回較短的字符串,若兩個字符串長度相等,則返回第1個字符串*/\r\nelse\r\nreturnt;\r\n}解析:本題中,第1個for循環(huán)的作用是求出s的字符個數(shù)i,第2個for循環(huán)的作用是求出t的字符個數(shù)j,因為任何循環(huán)都要控制—條語句,所以在每—個for循環(huán)條件后面必須要有—個分號。

本題也可用如下技巧:

#include<string.h>/*一定要注意在最前面加#include<string.h>*/

char*fun(char*s,char*t)

{

if(strlen(S)>=strten(t)

returns;

elsereturnt;

}

26.intfun(inta[][N)){intij;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/}intfun(inta[][N))\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=i;j<N;j++)\r\na[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/\r\n}解析:本題旨在考查控制數(shù)組中右上半三角元素的算法,也就是兩個千篇一律的循環(huán)語句,希望學(xué)習(xí)者能夠掌握消化。

27.intfun(inta[M][N]){intijsum=0;for(i=0;i<M;i++)for(j=0;i<N;j++)if(i==0||i==M-1||j==0||j==N-1)/*只要下標中有一個為0或M-1或N-1則它一定是周邊元素*/sum=sum+a[i][j];/*將周邊元素相加*/returnsum;}intfun(inta[M][N])\r\n{\r\ninti,j,sum=0;\r\nfor(i=0;i<M;i++)\r\nfor(j=0;i<N;j++)\r\nif(i==0||i==M-1||j==0||j==N-1)/*只要下

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論