2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)_第1頁
2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)_第2頁
2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)_第3頁
2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)_第4頁
2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022學年湖南省邵陽市全國計算機等級考試C語言程序設計真題一卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(12題)1.

有以下程序:

main

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

執行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

2.恢復系統默認菜單的命令是()。

A.SETMENUTODEFAULT

B.SETSYSMENUTODEFAULT

C.SETSYSTEMMENUTODEFAULT

D.SETSYSTEMTODEFAULT

3.數據庫的故障恢復一般是由()來執行恢復

A.電腦用戶B.數據庫恢復機制C.數據庫管理員D.系統普通用戶

4.下列敘述中正確的是()。

A.順序存儲結構的存儲一定是連續的,鏈式存儲結構的存儲空間不一定是連續的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節省存儲空間

5.有以下程序執行程序時,給變量X輸入l0,程序的輸出結果是()。

A.55B.54C.65D.45

6.定義int*swap()指的是______。

A.—個返回整型值的函數swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數swap()的指針,函數返回一個整型值

D.以上說法均錯

7.

8.以下敘述中錯誤的是()。

A.將函數內的局部變量說明為static存儲類是為了限制其他編譯單位的引用

B.—個變量作用域的開始位置完全取決于變量定義語句的位置

C.全局變量可以在函數以外的任何部位進行定義

D.局部變量的“生存期”只限于本次函數調用,因此不能將局部變量的運算結果保存至下一次調用

9.算法的時間復雜度是指______。

A.執行算法程序所需要的時間B.算法程序的長度C.算法執行過程中所需要的基本運算次數D.算法程序中的指令條數

10.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運行結果是()。A.*****a*bB.a*bC.a*b****D.ab

11.在圖采用鄰接表存儲時,求最小生成樹的Prim算法的時間復雜度為()。

A.O(n)B.O(n+e)C.O(n2)D.O(n3)

12.軟件生命周期中的活動不包括()

A.軟件維護B.市場調研C.軟件測試D.需求分析

二、2.填空題(12題)13.以下程序從終端讀入數據到數組中,統計其中正數的個數,并計算它們之和。請填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

14.Windows的空口分為兩類,一類是應用程序窗口,另一類是【】窗口。

15.某二叉樹中度為2的結點有n個,則該二叉樹中有【】個葉子結點。

16.在結構化設計方法中,數據流圖表達了問題中的數據流與加工間的關系,并且每一個______實際上對應一個處理模塊。

17.函數my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請填空。

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

18.若a的值為1,則表達式!a‖++a的值是______。

19.下列程序的運行結果是______。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf('%s\n",p);

}

20.函數sstrcmp()的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數strcmp())。請填空。

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

21.算法的基本特征是可行性、確定性、【】和擁有足夠的情報。

22.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數據域(data)和指針域(next),數據域為整型。以下函數求出鏈表中所有鏈結點數據域的和值,作為函數值返回。請在橫線處填入正確內容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

23.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數”的表達式是______。

24.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

三、3.程序設計題(10題)25.編寫一個函數,從num個字符串中找出最長的一個字符串,并通過形參指針max傳回該串地址。(注意:主函數中用¨¨作為結束輸入的標志。)

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

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

26.編寫函數fun(),它的功能是:計算和輸出下列級數的和。

S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))

例如,當n=10時,函數值為0.909091。

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

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

試題程序;

#include<conio.h>

#include<stdio.h>

doublefun(intn)

{

}

main()

{

clrscr();

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

}

27.請編寫函數fun,函數的功能是:將大于形參m且緊靠m的k個素數存入xx所指的數組中。例如,若輸入17,5,則應輸出:19,23,29,3l,37。

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

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花插號中填入你編寫的若干語句。

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

例如:二維數組中的值為:

13579

29994

69998

13570

則函數值為61。

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

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

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

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

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

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

30.請編寫函數fun,其功能是求出數組的最大元素在數組中的下標并存放在k所指的存儲單元中。

例如,輸入如下整數:87667589610l30l401980431451777則輸出結果為:6,980

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

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

31.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),該函數的功能是:把高于等于平均分的學生數據放在b所指的數組中,低于平均分的學生數據放在c所指的數組中,高于等于平均分的學生人數通過形參n傳回,低于平均分的學生人數通過形參m傳回,平均分通過函數值返回。

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

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

試題程序:

#include<stdio.h>

#defineN12

typedefstruct

{charnum[10];

doubleS;

}STREC;

doublefun(STREC*a,STREC*b,STREC*C,int*n,int*m)

{

}

main()

{

STRECs[N]={{“GA05”,65},{“GA03”,86},

{“GA02”,76},{“GA04”,95},{“GA01”,93},

{“GA07”,78},{“GA08”,68},{“GA06”,88},

{“GA09”,60},{“GAll”,54},{“GAl2”,56},

{“GAl0”,98}};

STRECh[N],l[N],t;

FILE*out;

inti,j,m,n;

doubleave;

ave=fun(S,h,l,&n,&m);

printf("The%dstudentdatawhichishigherthan%7.3f:\n",n,ave);

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

printf("%s%4.lf\n",h[i].num,

h[i].s);

printf("\n");

printf("The%dStudentdatawhichiSlowerthan%7.3f:\n",m,ave);

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

printf("%s%4.1f\n",l[i].num,l[i].s);

printf("\n");

ut=fopen("out26.dat","w");

fprintf(out,"%d\n%7.3f\n",n,ave);

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

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

if(h[i].s<h[j].s)

{t=h[i];h[i]=h[i];h[j]=t;}

/*分數從現到低排列*/

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

fprintf(out,“%4.1f\n",h[i].s);

fprintf(out,"%d\n%7.3f\n",m,ave);

for(i=0;i<m-1;i++)

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

if(l[i].s<l[j].s)

{t=l[i];l[i]=l[j];l[j]=t;}

/*分數從高到低排列*/

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

fprintf(out,"%4.1f\n",l[i].s);

fclose(out);

}

32.請編寫一個函數fun(),它的功能是:將ss所指字符串中所有下標為偶數位置的字母轉換為小寫(若該位置上不是字母,則不轉換)。

例如,若輸入ABC4efG,則應輸出aBc4efg。

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

請勿改動主函數miain和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*SS)

{

}

main()

{

chartt[81];

clrscr();

printf("\nPleaseenteranstringwithin80

characters:\n");

gets(tt);

printf("\n\nAfterchanging,thestring\n

\%s",tt);

fun(tt);

printf("\nbecomes\n\%S\n",tt);

}

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

a=01279

19745

23831

45682

59141

則返回土程序后s的值應為3.375。

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

請勿改動主函數main和其他函數中的仟何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#defineN5

doublefun(intw[][N])

{

}

main()

{

inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,

3,8,3,1,4,5,6,8,2,5,9,1,4,1};

inti,j;

doubles;

clrscr();

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

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

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

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

printf("\n");

}

s=fun(a);

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

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

}

34.假定輸入的字符串中只包含字母和*號。請編寫函數fun(),它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。

例如,若字符串中的內容為****A*BC*DEF*G*******,刪除后,字符串中的內容則應當是A*BC*DEF*G*******。

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

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

試題程序;

#include<stdio.h>

#include<conio.h>

voidfun(char*a)

{

}

main()

{

chars[81];

printf("Enterastring:\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:\n");

puts(s);

}

四、單選題(0題)35.連通圖G中有n個頂點,G的生成樹是()連通子圖。

A.包含G的所有頂點B.包含G的所有邊C.不包含G的所有頂點D.包含G的所有頂點和所有邊

五、單選題(0題)36.設有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數據所占字節數的表達式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

六、單選題(0題)37.樹最適合用來表示()。

A.有序數據元素B.無序數據元素C.元素之間具有分層次關系的數據D.元素間無聯系的數據

參考答案

1.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數,每個整數域寬是2。而在C語言中規定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數12,等于十進制的10)。所以,4個選項中選項C符合題意。

2.BB。【解析】考查菜單。在菜單中恢復系統菜單用的是SETSYSMENUTODEFAULT。所以答案選擇B。

3.CC)【解析】數據庫一旦發生故障,需要及時進行故障恢復,并由數據庫管理員負責執行故障恢復。

4.A解析:順序存儲結構就是用一組地址連續的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結構中各數據結點的存儲序號是不連續的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結構,所以選項B、C不正確。順序結構使用的是連續物理空間,鏈式結構可以使用零散的物理空間存儲,鏈式結構更靈活,不存在誰節約空間的說法,所以選項D不正確。

5.A本題考查的是遞歸算法的分析。一個直接或間接地調用自身的算法稱為遞歸算法。在一個遞歸算法中,至少要包含一個初始值和一個遞歸關系。本題的fun()函數在n等于l時返回1,而在其余情況下返[fi]n+fun(n一1),所以本題的遞歸算法可以這樣來表示:fun(n)=1(n=1)(初始值)fun(n)=n+fun(n一1)(n≠1)(遞歸關系)此時不難看出,該遞歸算法實現的是計算l+2+3+…+n,而且n必須大于0,否則會陷入死循環。故題目輸出的結果是l+2+3+..+10=55.應該選擇A)。

6.B解析:—個函數可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數據,即地址。本題的定義中,包括括號和*號,由于()優先級高于*。故它是—個返回整型指針的函數。

7.B

8.A將函數內的局部變量說明為static存儲類,第1次調用該函數時才對其初始化,后續調用時使用上一次調用結束后的值;函數體內的局部變量無論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項A錯誤,其他選項正確。本題答案為A選項。

9.C解析:算法的時間復雜度實際上就是執行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據一個算法所編制出的程序之中,其指令條數往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數來度量算法的時間復雜度。所以,本題正確答案為C。

10.C解析:主函數main()定義了指向字符串的指針和一個字符數組,接著調用fun(s,t)函數,進行實參向形參傳遞,函數fun()第一個while語句判斷*a中的值為“*”時繼續掃描,當遇到不是“*”時結束,接著第二個while循環語句,將*a中從“a”開始的后續所有字符都賦予*b,也就是t[80]中的內容為“a*b****”,所以此題的運行結果為選項C)。

11.B

12.B【答案】:B

【知識點】:軟件生命周期

【解析】:一個軟件產品或軟件系統要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生命周期。它把整個軟件生存周期劃分為若干階段,使得每個階段有明確的任務,使規模大,結構復雜和管理復雜的軟件開發變的容易控制和管理。通常,軟件生存周期包括可行性分析與開發項計劃、需求分析、設計(概要設計和詳細設計)、編碼、測試、維護等活動,可以將這些活動以適當的方式分配到不同的階段去完成。故選B。

13.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數中一開始定義了一個長度為20的整形數組,然后通過一個循環,循環20次給它的每個元素賦初值,所以在第一個空格處應填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環執行20次,每循環一次,先判斷該循環是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應該填入數組元素,即應該填a[i]或*(a+i)。

14.文檔文檔

15.n+1n+1解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為0的結點多一個。

16.加工加工解析:數據流圖是從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。

17.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環,直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環結束。循環結束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。

18.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結果為1。

19.efghefgh解析:本題考核的知識點是通過指針引用字符串.函數“的作用是讓形參指針s指向該字符串的右半部分.主函數中首先定義了一個字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調用函數ss,將實參str傳給形參s,因此可知該函數返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調用函數ss(sD)的返回值)所指向的字符串為“efgh。

20.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為“\\0”,此對應字符的ASCII碼大的字符串就大。故循環條件是*s和*t不為“\\0”,且*s和*t相同,第一處應填“*t”或其他等價形式。根據題意可知第二處應填“*s-*t”或其等價形式。

21.有窮性有窮性解析:算法有四個基本特征:可行性、確定性、有窮性和擁有足夠的情報。

22.structlink*headstructlink*head解析:考查用指針引用結構體變量成員數據的方法。因為本題中是用結構體變量構成了鏈表,所以要從鏈表頭節點,逐個節點的引用結構體的數據域,需要有指向結構體變量的指針,依次指向各個節點,即p=p->next,而用指針引用結構體成員數據的方法為:p->data。

23.((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中至少有兩個為正數”,即x、y和x這3個數中必須有兩個是正數,且這3個數中的哪兩個數都有可能是正數,所以它們之間是或的關系。

24.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

25.

解析:該程序功能是找出最長的一個字符串。解題思路,首先指定第一個字符串為長度最大的字符串,然后在循環過程中將其與其他的所有串的長度進行比較,求出最長的串。

26.doublefun(intn){inti;doubles=0.0;for(i=l;i<=n;i++)s=s+l.0/(i*(i+l));/*求級數的和*/returns;}doublefun(intn)\r\n{\r\ninti;\r\ndoubles=0.0;\r\nfor(i=l;i<=n;i++)\r\ns=s+l.0/(i*(i+l));/*求級數的和*/\r\nreturns;\r\n}解析:解決數學序列的問題,我們的思路依然是“數學先行”,即先看清楚題目的數學邏輯,然后再根據C語言來“翻譯”出來。本題中,每一項的值都是n*(n+1)的倒數。當輸入n時,從1開始循環,注意,此處for(i=1;i

27.

解析:(1)該程序功能是取大于整數m且緊靠m的k個素數。其中,素數是指只能被1和自身除盡的正整數(>1),所以判別n是否為素數,只要用2~n-1這些數逐個去除n,判斷余數是否為0即可。只要有一次余數為0,n就不是素數,否則n為素數。

它的解題思路,可以分解為以下幾步:判斷是否為素數一判斷素數個數是否滿足要求一存儲素數到指定的數組。

(2)從已給部分源程序的main主函數開始入手,核心函數“fun(m,n,zz);”中的參數由題目可知,zz存放素數,n為要求的素數個數。

28.

解析:該程序功能是求出二維數組周邊元素之和。其中周邊元素是指數組的最上和最下的兩行,最左和最右的兩列。數組第一行元素的行下標為0,最后一行元素的行下標為M-1,第一列的列下標為0,最后一列的列下標為N-1。

29.

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

30.

解析:(1)該程序功能是求最大元素在數組中的下標。它的解題思路是,用最大值變量max標記第一個待找數據,逐個把所有待找數據和max進行比較,并用pos標記其當前最大值所在位置,從而找出最大值。(2)從已給部分源程序的main主函數開始入手,核心函數“fun(a,10,&k);”中的參數a存放著給出的整數,fun函數實現查找最大元素的下標。

31.doublefun(STREC*aSTREC*bSTREC*Cint*nint*m){inti;doubleav=0.0;*n=0;*m=0;for(i=0;i<N;i++)av=av+a[i].S;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];/*將高于等于平均分的學生存從所指存儲單元中并統計人數*/*n=*n+l;}else{c[*m]=a[i];/*將低于平均分的學生存入c所指存儲單元中并統計人數*/*m=*m+1;}returnav;/*返回平均分*/}doublefun(STREC\u3000*a,STREC*b,STREC*C,int*n,int*m)\r\n{\r\ninti;\r\ndoubleav=0.0;\r\n*n=0;\r\n*m=0;\r\nfor(i=0;i<N;i++)\r\nav=av+a[i].S;\r\nav=av/N;/*求平均值*/\r\nfor(i=0;i<N;i++)\r\nif(av<=a[i].s)\r\n{\r\nb[*n]=a[i];/*將高于等于平均分的學生存從所指存儲單元中,并統計人數*/\r\n*n=*n+l;\r\n}\r\nelse\r\n{\r\nc[*m]=a[i];/*將低于平均分的學生存入c所指存儲單元中,并統計人數*/\r\n*m=*m+1;\r\n}\r\nreturnav;/*返回平均分*/\r\n}解析:本題中第1個循環的作用求出所有分數的總和,只有進行了av=av/N后才得到平均值(我們在前面的程序中碰到過類似問題)。第2個循環的作用是將高于等于平均分的學生存/kb所指存儲單元中,將低于平均分的學生存入c所指存儲單元中。同一結構體變量之間可以互相賦值。

本程序中直接用*n,*m來分別表示b,c的下標,注意開始時要給*n,*m賦0,且使用時不能少*號。因為單獨的n,m是一個指針變量,而我們要用的是它所指向的那個存儲單元中的值。

32.voidfun(char*ss){inti;for(i=0;ss[i]!='\0'i++)/*將ss所指字符串中所有下標為偶數位置的字母轉換為小寫*/if(i%2==0&&ss[i]>='A'&&ss[i]<='z')ss[i]=ss[i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論