2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)_第1頁
2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)_第2頁
2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)_第3頁
2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)_第4頁
2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023學(xué)年湖南省婁底市全國計算機(jī)等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(12題)1.

2.數(shù)組A[0...4,-1...-3,5...7]中含有的元素個數(shù)是()。A.A.55B.45C.36D.16

3.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

4.若定義了函數(shù)double*function(),則函數(shù)function的返回值為()。

A.實數(shù)型B.實數(shù)的地址C.指向函數(shù)的指針D.函數(shù)的地址

5.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A.data的每個成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實參

6.有以下程序

#include<stdio.h>

main()

{charch[3][5]={“AAAA”,”BBB”,”CC”};

printf(“%s\n”,ch[1];)

}

程序運(yùn)行后的輸出結(jié)果是()A.A.AAAA

B.CC

C.BBBCC

D.BBB

7.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。

A.0242B.1593C.1351D.286

8.設(shè)變量已正確定義,則以下能正確計算n!的程序段是______。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

9.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

10.下列敘述中錯誤的是()。

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

11.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0

12.以下敘述中正確的是()。

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列中的隊尾指針一定大于隊頭指針

D.循環(huán)隊列中的隊尾指針一定小于隊頭指針

二、2.填空題(12題)13.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

①第0列元素和主對角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數(shù)據(jù)的個數(shù)每行遞增1。

請將程序補(bǔ)充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

)

14.下列程序的運(yùn)行結(jié)果是______。

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

15.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

16.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

17.有以下程序

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);}

程序運(yùn)行后,輸出結(jié)果是【】

18.軟件是程序、數(shù)據(jù)和【】的集合。

19.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

for(i=1;i<K;i++)

{…}

}

20.調(diào)用C語言標(biāo)準(zhǔn)庫函數(shù)時要求用【】命令。

21.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。請按題意,完成填空。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

for(i=1;i<x;i+=2)

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

clrscr();

printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);

fun(x,aa,&n);

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

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

printf("\n");

}

22.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

23.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

24.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

三、3.程序設(shè)計題(10題)25.編寫一個函數(shù)fun,它的功能是:實現(xiàn)兩個字符串的連接(不使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串后。

例如,分別輸入下面兩個字符串:

FirstString--

SecondString

程序輸出:

FirtString--SecondStdng

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

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

26.請編一個函數(shù)voidfun(inttt[M][N],intpp[N],tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{

}

main()

{

intt[M][N]={{68,32,54,12},{14,24,88,

58},{42,22,44,56}};

intp[N],i,j,k;

clrscr();

printf("Theriginaldatais:\n");

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

{

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

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

printf("\n");

}

fun(t,p);

printf("\nTheresultis:\n");

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

printf("%4d",p[k]);

printf("\n");

}

27.請編寫一個函數(shù)fun(),它的功能是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)為整數(shù)的函數(shù))。

例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。

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

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

試題程序:

#include<stdio.h>

#include<string.h>

longfun(char*p)

{

}

main()

{

chars[6];

longn;

printf("Enterastring:\n");

gets(s);

n=fun(s);

printf("%ld\n",n);

}

28.請編寫一個函數(shù)fun(),它的功能是:比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較K的字符串。若兩個字符串長度相等,則返回第1個字符串。

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

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

請勿改動主函數(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("Input1thstring:");

gets(a);

printf{"Input2thstring:");

gets(b);

printf("%s",fun(a,b));

}

29.已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun(),該函數(shù)的功能是:找出成績最低的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最低分)。己給出函數(shù)的首部,請完成該函數(shù)。

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

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

試題程序:

#include<stdio.h>

#include<string.h>

#include<aonio.h>

#defineN10

typedefstructss

{charnum[10];

ihts;

}STU;

fun(STUail,STU*s)

{

}

main()

{

STUa[N]={{"A01",81},{"A02",89},

{"A03",66},{"A04",87},{"A05",77},

{"A06",90},{"A07",79},{"A08",61},

{"A09",80),{"Al0",71}},m;

inti;

clrscr0;

printf("*****Theoriginaldata*****");

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

printf("No=%sMark=%d\n",ail].num,

a[i].s);

fun(a,&m);

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

printf("Thelowest:%s,%d\n",m.num,

m.s);

}

30.請編寫一個函數(shù)fun,它的功能是:比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長度相同,則返回第一個字符串。

例如,輸入beijingshah曲aj(為回車鍵),函數(shù)將返回shanghai。

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

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

31.請編寫函數(shù)fun,其功能是:計算并輸出下列多項式的值:

例如,在主函數(shù)中從鍵盤給n輸入15,則輸出為:s=2.718282。

注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。

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

32.請編寫函數(shù)fun(),該函數(shù)的功能是:實現(xiàn)B=A+A',即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main()函數(shù)中輸出。

例如,輸入下面矩陣:

123

456

789

其轉(zhuǎn)置矩陣為:

147

258

369

則程序輸出:

2610

61014

101418

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

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

試題程序:

#include<stdio.h>

#include<conio,h>

voidfun(inta[3][3],intb[3][3])

{

}

main()

{

inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},

t[3][3];

inti,j;

clrscr();

fun(a,t);

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

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

printf("%7d",t[i][j]);

printf("\n");

}

}

33.請編寫函數(shù)fun(),它的功能是計算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

s作為函數(shù)值返回。

在C語言中可調(diào)用log(n)函數(shù)求In(n)。log函數(shù)的引用說明是doublelog(doublex)。

例如,若m的值為15,則fun()函數(shù)值為723.570801。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(intm)

{

}

main()

{

clrscr();

printf("%f\n",fun(15));

}

34.編寫函數(shù)fun,其功能是:根據(jù)以下公式求P的值,結(jié)果由函數(shù)值帶回。m與n為兩個正整數(shù)且要求m>n。

例如:m=12,n=8時,運(yùn)行結(jié)果為495.000000。

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

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

四、單選題(0題)35.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

A.2B.3C.4D.5

五、單選題(0題)36.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達(dá)式D.一個整型表達(dá)式

六、單選題(0題)37.對線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序

參考答案

1.A

2.A

3.C由圖所知,其中,C中只有一個屬性,是除操作。

4.B

5.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項B是正確的。由于共用體變量中的所有成員共享存儲空間,因此變量中的所有成員的首地址相同,選項A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實參進(jìn)行傳遞,也可以傳送共用體變量的地址,選項D也是正確的。在內(nèi)存中,實數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個數(shù)值,因此選項C是錯誤的。

6.Dch[1]即輸出的為第二個字符串,即BBB。

7.B程序中,fun函數(shù)的功能是接收兩個數(shù)組a、b,以及數(shù)組a的元素個數(shù)n,然后通過for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回數(shù)組b的個數(shù)。所以main函數(shù)中,通過調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個元素,再通過for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項。

8.D解析:A選項,將f賦值為0,結(jié)果得到0,因為0乘任何數(shù)都為0;B選項,i<n,計算的是(n-1)!,C選項將陷入死循環(huán)。

9.D解析:觀察程序可知,a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

10.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

11.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);\r\n調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);\r\n調(diào)用函數(shù)fun(3)時,由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);\r\n調(diào)用函數(shù)fun(1)時,由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。\r\n因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。

12.B在實際應(yīng)用中,隊列的順序存儲結(jié)構(gòu)一般采用循環(huán)隊列的形式。當(dāng)循環(huán)隊列為滿或者為空時,隊尾指針=隊頭指針。本題答案為B選項。

13.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應(yīng)該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

14.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i-5,因為switch(3),所以執(zhí)行case3,調(diào)用P(a[-i)=p(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(s[i++])=P(a[4])=P(5),輸出5,之后i的n等于5。

15.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個表達(dá)式前面有一個邏輯運(yùn)算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。

16.軟件開發(fā)

17.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。

18.文檔文檔解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

19.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

20.includeinclude解析:include命令可調(diào)用標(biāo)準(zhǔn)的C語言庫函數(shù),可以用一對尖括號或一對雙引號將“.h”文件括起來,在include前面要加“#”。

21.*n=j*n=j解析:本題題干信息是能整除x且不是偶數(shù)的所有整數(shù)之和。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),*n=j;語句是記錄能夠符合題意的各個整數(shù)的各數(shù)。

22.jj解析:在C程序中的字符量可參與任何整數(shù)運(yùn)算。

23.33解析:條件表達(dá)式的一般形式為;表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。

24.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

25.

解析:該程序功能是實現(xiàn)兩個字符串的連接。本題要把串2連接到串1之后,則需要把串2的第一個字符放到串1的尾符的位置上,把串2的后面的字符放到串1的后面的位置。

26.voidfun(inttt[M][N]intpp[N]){intiimax;for(j=0;j<N;j++){max=tt[0][j];/*假設(shè)各列中的第一個元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max)/*如果各列中的其他元素比最大值大則將這個更大的元素看作當(dāng)前該列中最大元素*/max=tt[i][j];pp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/}}voidfun(inttt[M][N],intpp[N])\r\n{\r\ninti,i,max;\r\nfor(j=0;j<N;j++)\r\n{\r\nmax=tt[0][j];/*假設(shè)各列中的第一個元素最大*/\r\nfor(i=0;i<M;i++)\r\nif(tt[i][j]>max)/*如果各列中的其他元素比最大值大,則將這個更大的元素看作當(dāng)前該列中最大元素*/\r\nmax=tt[i][j];\r\npp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/\r\n}\r\n}解析:本題中函數(shù)的功能是求出二維數(shù)組中每列的最大元素。首先,假設(shè)各列中的第一個元素最大,然后利用行標(biāo)值的移動來依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個更大的元素看做當(dāng)前該列中最大的元素,繼續(xù)與該列中其他元素比較。

27.longfun(char*p){longn=0;intflag=1;if(*p=='-')/*負(fù)數(shù)時置flag為-1*/{p++;flag=-1;}elseif(*p=='+')/*正數(shù)時置flag為1*/p++;while(*p!='\0'){n=n*10+*p-'0';/*將字符串轉(zhuǎn)成相應(yīng)的整數(shù)*/p++;}returnn*flag;}longfun(char*p)\r\n{\r\nlongn=0;\r\nintflag=1;\r\nif(*p=='-')/*負(fù)數(shù)時置flag為-1*/\r\n{p++;flag=-1;}\r\nelseif(*p=='+')/*正數(shù)時置flag為1*/\r\np++;\r\nwhile(*p!='\\0')\r\n{n=n*10+*p-'0';/*將字符串轉(zhuǎn)成相應(yīng)的整數(shù)*/\r\np++;\r\n}\r\nreturnn*flag;\r\n}解析:if()的作用是判斷它是正數(shù)還是負(fù)數(shù)。while()循環(huán)的作用是將字符串轉(zhuǎn)成相應(yīng)的整數(shù)。注意*p是一個字符如'9','4',并不是一個數(shù),要將其轉(zhuǎn)成相應(yīng)的數(shù)字必須令其減去'0'(不是'\\0'),即*p-'0'就得到*p這個字符的相應(yīng)數(shù)字。如'0'-'0'=0,'8'-'0'=8等。必須在程序的前面加#include<stdlib.h>,函數(shù)atol()的作用是將字符串p轉(zhuǎn)成長整型數(shù),它是一個庫函數(shù)。

28.char*fun(char*schar*t){intii;for(i=0;s[i]!='\0';i++);/*求字符串的長度*/for(j=0;t[i]!='\0';j++);if(i>=j)/*比較兩個字符串的長度*/returns;/*函數(shù)返回較長的字符串若兩個字符串長度相等則返回第1個字符串*/elsereturnt;}char*fun(char*s,char*t)\r\n{\r\ninti,i;\r\nfor(i=0;s[i]!='\\0';i++);/*求字符串的長度*/\r\nfor(j=0;t[i]!='\\0';j++);\r\nif(i>=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)條件后面必須要有一個分號。

本題也可用如下技巧:

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

{if(strlen(s)>=strlen(t)returns;

elsereturnt;

}

29.fun(STUa[]STU*s){inti;*s=a[0];for(i=0;i<N;i++)/*先認(rèn)為第1個值最小*/if(s->s>aIi].s)/*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個值更小的則賦給*s*/*s=a[i];}fun(STUa[],STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*先認(rèn)為第1個值最小*/\r\nif(s->s>aIi].s)/*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個值更小的則賦給*s*/\r\n*s=a[i];\r\n}解析:我們先認(rèn)為第1個值最小,即*s=a[0]語句,如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個值更小的隨即賦給該*s就可以了。另外,還涉及到結(jié)構(gòu)體中的指向運(yùn)算符,請學(xué)習(xí)者注意。若要找出最高成績則if()中的條件改成s->s<a[i].s即可。

30.

解析:該程序功能是比較兩個字符串的長度。解題過程是首先分別求得兩個字符串的長度,然后對這兩個值進(jìn)行判斷,實現(xiàn)兩個字符串長度的比較。

31.

解析:該程序功能是計算并輸出多項式的值。該題的解題思路是。根據(jù)題干中給出的數(shù)列,首先推出每一項的表達(dá)式,然后再對多項式進(jìn)行累加求和。

32.voidfun(inta[3][3]intb[3][3])

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論