亚洲国产福利在线一二三观看_精品国产伦一区二区三区欲臀_国产a∨视频精品视频护士_精品八戒人妻少妇av

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
全國(guó)計(jì)算機(jī)二級(jí)C題庫(kù)第51--60套

 

 

本題目如果下載后發(fā)現(xiàn)有錯(cuò)誤的地方,請(qǐng)聯(lián)系網(wǎng)站管理員:QQ121431055

 

考試時(shí),上機(jī)操作題目有三套,基本操作題、簡(jiǎn)單應(yīng)用題、綜合應(yīng)用題

 

51套:

給定程序中,函數(shù)fun的功能是:計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù),

作為函數(shù)值返回。為便于統(tǒng)計(jì),規(guī)定各單詞之間用空格隔開(kāi)。

例如,形參s所指的字符串為:This is a C language program.,函數(shù)

的返回值為6。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

 

 

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

int fun(char *s)

{ int n=0, flag=0;

while(*s!='\0')

{ if(*s!=' ' && flag==0) {

/**********found**********/

__1__ ; flag=1;}

/**********found**********/

if (*s==' ') flag= __2__ ;

/**********found**********/

__3__ ;

}

return n;

}

main()

{ char str[81]; int n;

printf("\nEnter a line text:\n"); gets(str);

n=fun(str);

printf("\nThere are %d words in this text.\n\n",n);

}

解題思路:

本題是統(tǒng)計(jì)字符串中包含的單詞個(gè)數(shù)。

第一處:?jiǎn)卧~個(gè)數(shù)用變量n來(lái)統(tǒng)計(jì),當(dāng)當(dāng)前字母不是空格且flag狀態(tài)標(biāo)志為0時(shí),則單詞數(shù)

就加1,將狀態(tài)標(biāo)志flag置為1,所以應(yīng)填:n++。

第二處:當(dāng)當(dāng)前字符是空格時(shí),flag狀態(tài)標(biāo)志置0,所以應(yīng)填:0。

第三處:到字符串下一個(gè)位置,所以應(yīng)填:s++。

***************************************************

給定程序MODI1.C中函數(shù) fun 的功能是:從n(形參)個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低

于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單

元中。

例如,若輸入 8 名學(xué)生的成績(jī):80.5 60 72 90.5 98 51.5 88 64

則低于平均分的學(xué)生人數(shù)為: 4 (平均分為:75.5625 )。

請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。

注意:不要改動(dòng) main 函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#define N 20

int fun ( float *s, int n, float *aver )

{ float ave, t = 0.0 ;

int count = 0, k, i ;

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

/**************found**************/

t = s[k] ;

ave = t / n ;

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

 

 

if ( s[ i ] < ave ) count++ ;

/**************found**************/

*aver = Ave ;

return count ;

}

main()

{ float s[30], aver ;

int m, i ;

printf ( "\nPlease enter m: " ) ; scanf ("%d", &m ) ;

printf ( "\nPlease enter %d mark :\n ", m ) ;

for( i = 0 ; i < m ; i++ ) scanf ( "%f", s + i ) ;

printf( "\nThe number of students : %d \n" , fun ( s, m, &aver ) );

printf( "Ave = %f\n", aver ) ;

}

解題思路:

第一處:應(yīng)求累加和,而不賦值,所以應(yīng)改為t+=s[k];。

第二處:ave不需要取地址,直接賦給*aver就可以了。

***************************************************

請(qǐng)編寫(xiě)函數(shù)fun,其功能是求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k

指的存儲(chǔ)單元中。

例如, 輸入如下整數(shù): 876 675 896 101 301 401 980 431 451 777

則輸出結(jié)果為: 6, 980

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

int fun(int *s, int t, int *k)

{

}

main( )

{

int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;

fun(a, 10, &k) ;

printf("%d, %d\n", k, a[k]) ;

NONO( ) ;

}

 

解題思路:

本題是考察考生如何在指定的數(shù)組找出最大元素值的下標(biāo),通過(guò)形參*k返回到主程序中。

給出的程序是使用for循環(huán)語(yǔ)句進(jìn)行處理的,在循環(huán)之前,首先把數(shù)組的第一個(gè)元素值賦給

最大值變量max,位置pos0,然后通過(guò)循環(huán)依次判斷下一元素值是否大于最大值max,如果大

于,那么把這個(gè)數(shù)重新賦給max,位置i賦給pos,循環(huán)結(jié)果,即可得到最大值的位置pos,最后

執(zhí)行語(yǔ)句*k=pos就可以實(shí)現(xiàn)返回了。

參考答案:

int fun(int *s, int t, int *k)

{

int i, pos = 0, max = *s ;

for(i = 1 ; i < t ; i++) {

if(max < *(s + i)) {

max = *(s + i) ;

pos = i ;

}

}

*k = pos ;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

52套:

給定程序中,函數(shù)fun的功能是:將N×N矩陣中元素的值按列右移1個(gè)位置,

 

 

右邊被移出矩陣的元素繞回左邊。例如,N=3,有下列矩陣

1 2 3

4 5 6

7 8 9

計(jì)算結(jié)果為

3 1 2

6 4 5

9 7 8

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#define N 4

void fun(int (*t)[N])

{ int i, j, x;

/**********found**********/

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

{

/**********found**********/

x=t[i][___2___] ;

for(j=N-1; j>=1; j--)

t[i][j]=t[i][j-1];

/**********found**********/

t[i][___3___]=x;

}

}

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

printf("The original array:\n");

for(i=0; i

{ for(j=0; jprintf("\n");

}

fun(t);

printf("\nThe result is:\n");

for(i=0; i

{ for(j=0; jprintf("\n");

}

}

解題思路:

第一處:函數(shù)fun是對(duì)N×N矩陣進(jìn)行操作,for循環(huán)的終止值為N

第二處:把最后一列的元素值賦值給臨時(shí)變量x保存用來(lái)交換,所以應(yīng)填:N-1。

第三處:第1列元素值使用x替換,由于C語(yǔ)言的下標(biāo)是從0開(kāi)始的,所以應(yīng)填:0

***************************************************

 

 

例如,若q的值為: 50.0,則函數(shù)值為: 49.394948。

請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

double fun( double q )

{ int n; double s,t;

n = 2;

s = 2.0;

while (s<=q)

{

t=s;

/************found************/

s=s+(n+1)/n;

n++;

}

printf("n=%d\n",n);

/************found************/

return s;

}

main ( )

{

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

}

解題思路:

第一處:如果兩個(gè)整數(shù)類(lèi)型相除,結(jié)果仍為整數(shù),所以必須轉(zhuǎn)換其中一個(gè)數(shù)的類(lèi)型,所以

應(yīng)改為:s+=(float)(n+1)/n;

第二處:返回結(jié)果錯(cuò)誤,應(yīng)改為:return t;。

***************************************************

編寫(xiě)函數(shù)fun,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個(gè)數(shù),結(jié)果

由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:

F(0)0F(1)1

F(n)F(n1)F(n2)

例如:當(dāng)t = 1000時(shí),函數(shù)值為:1597。

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

#include

int fun( int t)

 

 

{

}

main() /* 主函數(shù) */

{ int n;

n=1000;

printf("n = %d, f = %d\n",n, fun(n));

NONO();

}

 

解題思路:

本題是考察考生用遞推算法來(lái)求出斐波那契數(shù)列中每項(xiàng)的值。給出的程序就是用變量f、f0

f1來(lái)表示遞推的過(guò)程,給變量f0f1最初分別置數(shù)列中第1項(xiàng)和第2項(xiàng)的值01,然后進(jìn)入循

環(huán),執(zhí)行語(yǔ)句f=f0+f1;將所得和值存入f中,這就是數(shù)列的第3項(xiàng),把f1的值移入f0中,將f

值移入f1中,為求數(shù)列的下一列作好準(zhǔn)備;接著進(jìn)入下一次循環(huán),通過(guò)語(yǔ)句f=f0+f1求得數(shù)列的

4項(xiàng),不斷重復(fù)以上步驟,每重復(fù)一次就依次求得數(shù)列的下一項(xiàng),直至某項(xiàng)滿足要為止。

參考答案:

int fun( int t)

{

int f0 = 0, f1 = 1, f ;

do {

f = f0 + f1 ;

f0 = f1 ;

f1 = f ;

} while(f < t) ;

return f ;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

53套:

函數(shù)fun的功能是:計(jì)算

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

double fun(double x)

{ double f, t; int n;

f = 1.0 + x;

/**********found**********/

t = ___1___;

n = 1;

do {

n++;

/**********found**********/

t *= (-1.0)*x/___2___;

f += t;

}

/**********found**********/

while (___3___ >= 1e-6);

return f;

}

 

 

main()

{ double x, y;

x=2.5;

y = fun(x);

printf("\nThe result is :\n");

printf("x=%-12.6f y=%-12.6f\n", x, y);

}

解題思路:

第一處:根據(jù)公式可知,變量t的值為x。

第二處:根據(jù)公式可知,此處應(yīng)該除以n,所以應(yīng)填:n。

第三處:根據(jù)試題中條件的要求,所以應(yīng)填:fabs(t)。

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是: 求整數(shù)xy次方的低3位值。例如,

數(shù)56次方為15625, 此值的低3位值為625

請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤, 使它能得出正確的結(jié)果。

注意: 不要改動(dòng)main函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

long fun(int x,int y,long *p )

{ int i;

long t=1;

/**************found**************/

for(i=1; i

t=t*x;

*p=t;

/**************found**************/

t=t/1000;

return t;

}

main()

{ long t,r; int x,y;

printf("\nInput x and y: "); scanf("%ld%ld",&x,&y);

t=fun(x,y,&r);

printf("\n\nx=%d, y=%d, r=%ld, last=%ld\n\n",x, y,r,t );

}

解題思路:

第一處:錯(cuò)誤在for循環(huán)語(yǔ)句上,根據(jù)試題要求,終止條件應(yīng)該是i<=y。

第二處:要取低3位的值時(shí),應(yīng)模1000取余數(shù),而不是整除1000取商。

***************************************************

例如, 在主函數(shù)中從鍵盤(pán)給x輸入0.21,輸出為:s=1.100000

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

 

 

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun

花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

#include

double fun(double x)

{

}

main()

{ double x,s;

printf("Input x: "); scanf("%lf",&x);

s=fun(x);

printf("s=%f\n",s);

NONO();

}

解題思路:

本題是根據(jù)給定的公式進(jìn)行計(jì)算。具體操作請(qǐng)看答案程序中的說(shuō)明。

參考答案:

double fun(double x)

{

int n=1; /* 循環(huán)計(jì)數(shù)*/

double sn=1; /* 累計(jì)數(shù)*/

double xn=1,xn1=0; /*xn,以及xn-1;*/

while(fabs(xn-xn1)>=0.000001)/*絕對(duì)值是否滿足條件*/

{

xn=xn*x*(0.5-n+1)/n; /*表達(dá)式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/

n+=1;

sn+=xn; /*sn累加上xn*/

}

return(sn);

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

54套:

給定程序中,函數(shù)fun的功能是:計(jì)算出帶有頭結(jié)點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)

域中值之和作為函數(shù)值返回。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

#define N 8

typedef struct list

{ int data;

struct list *next;

} SLIST;

SLIST *creatlist(int *);

void outlist(SLIST *);

int fun( SLIST *h)

{ SLIST *p; int s=0;

p=h->next;

while(p)

{

/**********found**********/

s+= p->___1___;

/**********found**********/

p=p->___2___;

}

return s;

}

 

 

 

 

main()

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48};

head=creatlist(a); outlist(head);

/**********found**********/

printf("\nsum=%d\n", fun(___3___));

}

SLIST *creatlist(int a[])

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST));

for(i=0; i

{ q=(SLIST *)malloc(sizeof(SLIST));

q->data=a[i]; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist(SLIST *h)

{ SLIST *p;

p=h->next;

if (p==NULL) printf("The list is NULL!\n");

else

{ printf("\nHead ");

do

{ printf("->%d", p->data); p=p->next; }

while(p!=NULL);

printf("->End\n");

}

}

解題思路:

本題是計(jì)算出帶有頭結(jié)點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域中值之和。

第一處:累加數(shù)據(jù)域中的值,所以應(yīng)填:data

第二處:指定p的下一個(gè)指針,所以應(yīng)填:next

第三處:函數(shù)調(diào)用,在主函數(shù)中已經(jīng)給出了head,所以應(yīng)填:head

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是:s所指字符串中出現(xiàn)的與t1所指字符

串相同的子串全部替換成t2所指字符串,所形成的新串放在w所指的數(shù)組中。在此

處,要求t1t2所指字符串的長(zhǎng)度相同。

例如,當(dāng)s所指字符串中的內(nèi)容為:"abcdabfab",t1所指子串中的內(nèi)容為:

"ab",t2所指子串中的內(nèi)容為:"99"時(shí), 結(jié)果在w所指的數(shù)組中的內(nèi)容應(yīng)為:

"99cd99f99"。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

int fun (char *s, char *t1, char *t2 , char *w)

 

 

 

 

{

int i; char *p , *r, *a;

strcpy( w, s );

while ( *w )

{ p = w; r = t1;

/************found************/

while ( r )

if ( *r == *p ) { r++; p++; }

else break;

if ( *r == '\0' )

{ a = w; r = t2;

while ( *r ){

/************found************/

*a = *r; a++; r++

}

w += strlen(t2) ;

}

else w++;

}

}

main()

{

char s[100], t1[100], t2[100], w[100];

printf("\nPlease enter string S:"); scanf("%s", s);

printf("\nPlease enter substring t1:"); scanf("%s", t1);

printf("\nPlease enter substring t2:"); scanf("%s", t2);

if ( strlen(t1)==strlen(t2) ) {

fun( s, t1, t2, w);

printf("\nThe result is : %s\n", w);

}

else printf("Error : strlen(t1) != strlen(t2)\n");

}

解題思路:

第一處:判斷字符串當(dāng)前字符是否是字符串結(jié)束符,所以應(yīng)改為:while(*r)。

第二處:語(yǔ)句后缺少分號(hào)。

***************************************************

函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符

形成的新串放在t所指數(shù)組中。

例如,當(dāng)s所指字符串中的內(nèi)容為:"ABCDEFGHIJK"

t所指數(shù)組中的內(nèi)容應(yīng)是:"BDFHJ"。

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

#include

void fun(char *s, char t[])

 

 

 

 

{

}

main()

{

char s[100], t[100];

printf("\nPlease enter string S:"); scanf("%s", s);

fun(s, t);

printf("\nThe result is: %s\n", t);

NONO();

}

 

解題思路:

本題是從一個(gè)字符串按要求生成另一個(gè)新的字符串。我們使用for循環(huán)語(yǔ)句來(lái)解決這個(gè)問(wèn)

題。

參考答案:

void fun(char *s, char t[])

{

int i, j = 0 ;

for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ;

t[j] = 0 ;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

55套:

給定程序中,函數(shù)fun的功能是:判斷形參s所指字符串是否是"回文"

Palindrome),若是,函數(shù)返回值為1;不是,函數(shù)返回值為0。"回文"

是正讀和反讀都一樣的字符串(不區(qū)分大小寫(xiě)字母)。

例如,LEVELLevel"回文",而LEVLEV不是"回文"

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除, 使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

#include

int fun(char *s)

{ char *lp,*rp;

/**********found**********/

lp= __1__ ;

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp)) && (lp

/**********found**********/

lp++; rp __2__ ; }

/**********found**********/

if(lp

else return 1;

}

main()

{ char s[81];

printf("Enter a string: "); scanf("%s",s);

if(fun(s)) printf("\n\"%s\" is a Palindrome.\n\n",s);

else printf("\n\"%s\" isn't a Palindrome.\n\n",s);

}

解題思路:

本題是判斷字符串是否是“回文”。

 

 

 

 

第一處:根據(jù)函數(shù)體fun中,對(duì)變量lp的使用可知,lp應(yīng)指向形參s,所以應(yīng)填:s。

第二處:rp是指向字符串的尾指針,當(dāng)每做一次循環(huán)rp指向就要指向前一個(gè)字符,所以應(yīng)

填:--

第三處:當(dāng)lprp相等時(shí),則表示字符串是回文并返回1,否則就返回0,所以應(yīng)填:return

0。

***************************************************

給定程序MODI1.Cfun函數(shù)的功能是:求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。

2 3 5 8 13 21

┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……

1 2 3 5 8 13

和值通過(guò)函數(shù)值返回main函數(shù)。

例如,若 n = 5,則應(yīng)輸出: 8.391667。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng) main 函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

/**************found**************/

fun (int n )

{ int a = 2, b = 1, c, k ;

double s=0.0 ;

for ( k = 1; k <= n; k++ )

{ s = s + 1.0 * a / b ;

/**************found**************/

c = a; a += b; b += c;

}

return(s) ;

}

main( )

{ int n = 5 ;

printf( "\nThe value of function is: %lf\n", fun ( n ) ) ;

}

解題思路:

第一處:由于計(jì)算的實(shí)型值要通過(guò)函數(shù)返回,所以必須定義函數(shù)的返回類(lèi)型,只要intvoid

可以省略,其他都要定義類(lèi)型。由于返回是實(shí)型值,所以應(yīng)在數(shù)名前加上doublefloat等定義。

第二處:根據(jù)公式可知,在for循環(huán)內(nèi)b的值應(yīng)是c。

***************************************************

請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:將大于形參m且緊靠mk個(gè)素?cái)?shù)存入xx所指

的數(shù)組中。例如,若輸入17, 5,則應(yīng)輸出:19, 23, 29, 31, 37。函數(shù)fun中給

出的語(yǔ)句僅供參考。

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

void fun(int m, int k, int xx[])

{

/* 以下代碼僅供參考 */

 

 

 

 

int i, j=1, t=m+1;

while(j<=k)

{

/* 以下完成判斷素?cái)?shù),并存放到數(shù)組xx */

}

}

main()

{

int m, n, zz[1000] ;

printf( "\nPlease enter two integers:") ;

scanf("%d%d", &m, &n ) ;

fun( m, n, zz) ;

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

printf("%d ", zz[m]) ;

printf("\n") ;

NONO( ) ;

}

 

解題思路:

本題是考察考生如何判斷一個(gè)數(shù)是素?cái)?shù),再判斷所求出的素?cái)?shù)是否符合題義要求,如果符

合,則存入指定的數(shù)組xx中保存,最后由形參xx返回。

本題是用while循環(huán)語(yǔ)句分別求出5個(gè)符合題義的素?cái)?shù)。其中,j是控制變量,m是所求素?cái)?shù)

要大于這個(gè)數(shù)且還要緊靠這個(gè)數(shù),k是所求素?cái)?shù)的個(gè)數(shù),j是當(dāng)前所求第幾個(gè)素?cái)?shù)。其中while

循環(huán)體中的for循環(huán)語(yǔ)句是判斷t是否是素?cái)?shù)。

參考答案:

void fun(int m, int k, int xx[])

{

/* 以下代碼僅供參考 */

int i, j=1, t=m+1;

while(j<=k)

{

/* 以下完成判斷素?cái)?shù),并存放到數(shù)組xx */

 

 

 

 

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

if(t % i==0) break;

if(i==t) {

xx[j-1] = i;

j++;

}

t++;

}

}

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

56套:

給定程序的功能是:從鍵盤(pán)輸入若干行文本(每行不超過(guò)80個(gè)字符),寫(xiě)到

文件myfile4.txt,-1作為字符串輸入結(jié)束的標(biāo)志。然后將文件的內(nèi)容讀出顯

示在屏幕上。文件的讀寫(xiě)分別由自定義函數(shù)ReadTextWriteText實(shí)現(xiàn)。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

 

 

 

 

#include

#include

void WriteText(FILE *);

void ReadText(FILE *);

main()

{ FILE *fp;

if((fp=fopen("myfile4.txt","w"))==NULL)

{ printf(" open fail!!\n"); exit(0); }

WriteText(fp);

fclose(fp);

if((fp=fopen("myfile4.txt","r"))==NULL)

{ printf(" open fail!!\n"); exit(0); }

ReadText(fp);

fclose(fp);

}

/**********found**********/

void WriteText(FILE ___1___)

{ char str[81];

printf("\nEnter string with -1 to end :\n");

gets(str);

while(strcmp(str,"-1")!=0) {

/**********found**********/

fputs(___2___,fw); fputs("\n",fw);

gets(str);

}

}

void ReadText(FILE *fr)

{ char str[81];

printf("\nRead file and output to screen :\n");

fgets(str,81,fr);

while( !feof(fr) ) {

/**********found**********/

printf("%s",___3___);

fgets(str,81,fr);

}

}

解題思路:

本題要求是把鍵盤(pán)上輸入的內(nèi)容寫(xiě)到指定的文件中。程序中共有三處要填上適當(dāng)?shù)膬?nèi)容,

使程序能運(yùn)行出正確的結(jié)果。

第一處:要求填寫(xiě)文件流的自變量名,在這個(gè)函數(shù)中,已有的語(yǔ)句fputs("\n",fw);分析可

知:由于文件流變量fw在函數(shù)體沒(méi)有定義過(guò),所以本處應(yīng)填*fwfw[]。

第二處:通過(guò)while循環(huán)語(yǔ)句,把鍵盤(pán)上輸入的內(nèi)容,要寫(xiě)入到指定的文件中,鍵盤(pán)上輸入

的內(nèi)容已存入字符串str變量中,因此,本處應(yīng)填寫(xiě)str。

第三處:要把已存入文件中的內(nèi)容,再?gòu)奈募凶x出且已存入字符串變量str中,最后在屏

幕顯示出來(lái),因此,此處應(yīng)填寫(xiě)str

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是:從低位開(kāi)始取出長(zhǎng)整型變量s中奇數(shù)位

 

 

 

 

上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:7531。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

/************found************/

void fun (long s, long t)

{ long sl=10;

*t = s % 10;

while ( s > 0)

{ s = s/100;

*t = s * sl + *t;

/************found************/

\TAB sl = sl*100;

}

}

main()

{ long s, t;

printf("\nPlease enter s:"); scanf("%ld", &s);

fun(s, &t);

printf("The result is: %ld\n", t);

}

解題思路:

第一處:在函數(shù)fun中使用了*t,但在函數(shù)定義時(shí)沒(méi)有使用*t,所以應(yīng)改為:void fun(long

s,long *t)。

第二處:每循環(huán)一次,sl的值就乘以10,所以應(yīng)改為:sl=sl*10;。

***************************************************

函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)ab合并形成一個(gè)整數(shù)放在c中。

合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上, b數(shù)的十位

和個(gè)位數(shù)依次放在c數(shù)的千位和十位上。

例如,當(dāng)a45b=12時(shí),調(diào)用該函數(shù)后,c=1524

注意: 部分源程序存在文件PROG1.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

void fun(int a, int b, long *c)

{

}

main()

{ int a,b; long c;

printf("Input a, b:");

scanf("%d,%d", &a, &b);

fun(a, b, &c);

printf("The result is: %ld\n", c);

NONO();

 

 

 

 

}

 

解題思路:

本題是給出兩個(gè)兩位數(shù)的正整數(shù)分別取出各位上的數(shù)字,再按條件組成一個(gè)新數(shù)。

a十位數(shù)字的方法:a/10

a個(gè)位數(shù)字的方法:a

參考答案:

void fun(int a, int b, long *c)

{

*c=(b/10)*1000+(a)*100+(b)*10+(a/10);

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

57套:

函數(shù)fun的功能是:把形參a所指數(shù)組中的最小值放在元素a[0]中,接著把

形參a所指數(shù)組中的最大值放在a[1]元素中;再把a所指數(shù)組元素中的次小值放

a[2]中,把a所指數(shù)組元素中的次大值放在a[3];其余以此類(lèi)推。例如:若a

所指數(shù)組中的數(shù)據(jù)最初排列為:91、4、2、3、6、5、8、7;則按規(guī)則移動(dòng)

后,數(shù)據(jù)排列為:1、9、2、8、3、7、4、6、5。形參n中存放a所指數(shù)組中數(shù)

據(jù)的個(gè)數(shù)。

注意:規(guī)定fun函數(shù)中的max存放當(dāng)前所找的最大值,px存放當(dāng)前所找最大

值的下標(biāo)。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

# include

#define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t;

for (i=0; i

{

/**********found**********/

max = min = ___1___;

px = pn = i;

for (j=i+1; j

/**********found**********/

if (max<___2___)

{ max = a[j]; px = j; }

/**********found**********/

if (min>___3___)

{ min = a[j]; pn = j; }

}

if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t;

if (px == i) px =pn;

}

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; }

}

}

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i;

printf("\nThe original data :\n");

for (i=0; iprintf("\n");

fun(b, N);

printf("\nThe data after moving :\n");

 

 

 

 

for (i=0; iprintf("\n");

}

解題思路:

第一處:外循環(huán)每循環(huán)一次均把數(shù)組a當(dāng)前位置的值,分別賦值給maxmin變量,所以應(yīng)填:

a[i]。

第二處:判斷max是否小于a[j],若小于,則把a[j]賦值給max,所以應(yīng)填:a[j]

第三處:判斷min是否大于a[j],若大于,則把a[j]賦值給min,所以應(yīng)填:a[j]。

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n

項(xiàng)的值。從第1項(xiàng)起,斐波拉契數(shù)列為:11、2、3、5、813、21、……

例如,若給n輸入7,該項(xiàng)的斐波拉契數(shù)值為:13

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

給定源程序:

#include

long fun(int g)

{

/**********found**********/

switch(g);

{ case 0: return 0;

/**********found**********/

case 1 ;case 2 : return 1 ;

}

return( fun(g-1)+fun(g-2) );

}

main()

{ long fib; int n;

printf("Input n: "); scanf("%d",&n); printf("n = %d\n",n);

fib=fun(n);

printf("fib = %d\n\n",fib);

}

解題思路:

第一處:switch后有多余的分號(hào)。

第二處:case 1后沒(méi)有返回語(yǔ)句,也應(yīng)該為return 1;。所以應(yīng)改為:case 1: return 1; case

2:return 1;

***************************************************

某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課程成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課程的成績(jī)已

在主函數(shù)中給出。請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:求出該學(xué)生的平均分放在記錄的

ave成員中。

例如,學(xué)生的成績(jī)是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分應(yīng)當(dāng)

是:78.875

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun部位中填入你編

寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

 

 

 

 

#define N 8

typedef struct

{ char num[10];

double s[N];

double ave;

} STREC;

void fun(STREC *a)

{

}

main()

{ STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};

int i;

fun( &s );

printf("The %s's student data:\n", s.num);

for(i=0;i

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

printf("\nave=%7.3f\n",s.ave);

NONO();

}

 

解題思路:

本題是求記錄結(jié)構(gòu)中學(xué)生課程成績(jī)的平均值,其結(jié)果仍放在該記錄結(jié)構(gòu)中。

參考答案:

void fun(STREC *a)

{

int i ;

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

a->ave = a->ave + a->s[i] ;

a->ave /= N ;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

58套:

給定程序中,函數(shù)fun的功能是:把形參s所指字符串中最右邊的n個(gè)字符復(fù)制

到形參t所指字符數(shù)組中,形成一個(gè)新串。若s所指字符串的長(zhǎng)度小于n,則將整個(gè)

 

 

 

 

字符串復(fù)制到形參t所指字符數(shù)組中。

例如,形參s所指的字符串為:abcdefgh,n的值為5,程序執(zhí)行后t所指字符數(shù)

組中的字符串應(yīng)為:defgh。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除, 使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

#define N 80

void fun(char *s, int n, char *t)

{ int len,i,j=0;

len=strlen(s);

/**********found**********/

if(n>=len) strcpy(__1__);

else {

/**********found**********/

for(i=len-n; i<=len-1; i++) t[j++]= __2__ ;

/**********found**********/

t[j]= __3__ ;

}

}

main()

{ char s[N],t[N]; int n;

printf("Enter a string: ");gets(s);

printf( "Enter n:"); scanf("%d",&n);

fun(s,n,t);

printf("The string t : "); puts(t);

}

解題思路:

本題是根據(jù)要求來(lái)復(fù)制字符串。

第一處:當(dāng)給定的長(zhǎng)度n大于該字符串s的長(zhǎng)度,那么把該字符串直接拷貝到t就可以了,所

以應(yīng)填:t,s。

第二處:使用for循環(huán)語(yǔ)句,把最右邊n個(gè)字符依次添加到t中,所以應(yīng)填:s[i]。

第三處:字符串操作結(jié)束,需要到t加一個(gè)字符串結(jié)束符,所以應(yīng)填:'\0'。

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是:找出一個(gè)大于形參m且緊隨m的素?cái)?shù),

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

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

int fun(int m)

{ int i, k ;

for (i = m + 1 ; ; i++) {

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

 

 

 

 

/**************found**************/

if (i % k != 0)

break ;

/**************found**************/

if (k < i)

return(i);

}

}

void main()

{

int n ;

n = fun(20) ;

printf("n=%d\n", n) ;

}

解題思路:

第一處:判斷素?cái)?shù)的條件是一個(gè)數(shù)i除自身或1除外不被任何數(shù)k整除的數(shù),如果一個(gè)數(shù)i

另一個(gè)數(shù)k取模,模值等于零,那么這個(gè)不是素?cái)?shù)并退出循環(huán)體,所以應(yīng)改為if(i%k==0)。

第二處:如果i不被循環(huán)中任一個(gè)k值不整除,那么循環(huán)結(jié)束后k的值應(yīng)該等于i,所以應(yīng)改

if(k==i)if(k>=i)也可以。

***************************************************

請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:求出能整除形參x且不是偶數(shù)的各整數(shù),并按從

小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。

例如,若 x 中的值為: 35,則有 4 個(gè)數(shù)符合要求,它們是: 1, 5, 7, 35

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

void fun ( int x, int pp[], int *n )

{

}

main( )

{ int x, aa[1000], n, i ;

printf( "\nPlease enter an integer number:\n" ) ; scanf("%d", &x) ;

fun(x, aa, &n ) ;

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

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

printf("\n") ;

NONO( ) ;

}

 

解題思路:

本題是求出能整除形參x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,

這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。

參考答案:

void fun ( int x, int pp[], int *n )

{

int i;

*n=0;

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

if((x % i== 0) && (i % 2)) pp[(*n)++]=i;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

59套:

給定程序中,函數(shù)fun的功能是:在3×4的矩陣中找出在行上最大、在列上最

小的那個(gè)元素,若沒(méi)有符合條件的元素則輸出相應(yīng)信息。

例如,有下列矩陣:

1 2 13 4

7 8 10 6

 

 

 

 

3 5 9 7

程序執(zhí)行結(jié)果為:find: a[2][2]=9

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除, 使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#define M 3

#define N 4

void fun(int (*a)[N])

{ int i=0,j,find=0,rmax,c,k;

while( (i

{ rmax=a[i][0]; c=0;

for(j=1; j

if(rmax

/**********found**********/

rmax=a[i][j]; c= __1__ ; }

find=1; k=0;

while(k

/**********found**********/

if (k!=i && a[k][c]<=rmax) find= __2__ ;

k++;

}

if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);

/**********found**********/

__3__ ;

}

if(!find) printf("not found!\n");

}

main()

{ int x[M][N],i,j;

printf("Enter number for array:\n");

for(i=0; i

for(j=0; j

printf("The array:\n");

for(i=0; i

{ for(j=0; jprintf("\n\n");

}

fun(x);

}

解題思路:

本題是在矩陣中找出在行上最大、在列上最小的那個(gè)元素。

第一處:找出行上最大的數(shù),并該位置j(列)保存在c中,所以應(yīng)填:j。

第二處:使用while循環(huán)語(yǔ)句和控制變量find,如果該數(shù)不是列是最小數(shù),那么把find0

所以應(yīng)填:0。

 

 

 

 

第三處:iwhile的控制變量,所以每做一次循環(huán),該數(shù)均要加1,所以應(yīng)填:i++。

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是:根據(jù)整型形參m的值,計(jì)算如下公式的

值。

1 1 1

t = 1 - ----- - ----- - …… - -----

2*2 3*3 m*m

例如,若 m 中的值為: 5,則應(yīng)輸出: 0.536389。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

double fun ( int m )

{ double y = 1.0 ;

int i ;

/**************found**************/

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

/**************found**************/

y -= 1 /(i * i) ;

return( y ) ;

}

main( )

{ int n = 5 ;

printf( "\nThe result is %lf\n", fun ( n ) ) ;

}

解題思路:

第一處:使用for循環(huán)計(jì)算公式,必須計(jì)算到m,所以應(yīng)改為for(i=2; i<=m; i++)。

第二處:在除法運(yùn)算中,如果除數(shù)和被除數(shù)都是整數(shù),所么所除結(jié)果也是整數(shù),因此應(yīng)改

y-=1./(i*i)。

***************************************************

m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:將低于平均

分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。

例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、2030、40、50、60、70、80、90時(shí),

函數(shù)返回的人數(shù)應(yīng)該是4, below中的數(shù)據(jù)應(yīng)為: 10、2030、40。

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

#include

int fun(int score[], int m, int below[])

{

}

main( )

{ int i, n, below[9] ;

int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;

n = fun(score, 9, below) ;

 

 

 

 

printf( "\nBelow the average score are: " ) ;

for (i = 0 ; i < n ; i++) printf("%d ", below[i]) ;

NONO() ;

}

 

解題思路:

本題是計(jì)算平均成績(jī),再把低于平均成績(jī)的分?jǐn)?shù)存入依次數(shù)組below中。

參考答案:

int fun(int score[], int m, int below[])

{

float av=0.0 ;

int i, j=0 ;

for(i=0; i

av /= m;

for(i=0; i

if(av>score[i]) below[j++]=score[i];

return j;

}

 

※※※※※※※※※※※※※※※※※※※※※※※※※

60套:

給定程序中,函數(shù)fun的功能是:將形參指針?biāo)附Y(jié)構(gòu)體數(shù)組中的三個(gè)元素按

num成員進(jìn)行升序排列。

請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

typedef struct

{ int num;

char name[10];

}PERSON;

/**********found**********/

void fun(PERSON ___1___)

{

/**********found**********/

___2___ temp;

if(std[0].num>std[1].num)

{ temp=std[0]; std[0]=std[1]; std[1]=temp; }

if(std[0].num>std[2].num)

{ temp=std[0]; std[0]=std[2]; std[2]=temp; }

if(std[1].num>std[2].num)

{ temp=std[1]; std[1]=std[2]; std[2]=temp; }

}

main()

{ PERSON std[ ]={ 5,"Zhanghu",2,"WangLi",6,"LinMin" };

int i;

/**********found**********/

fun(___3___);

printf("\nThe result is :\n");

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

printf("%d,%s\n",std[i].num,std[i].name);

}

解題思路:

本題是要求對(duì)結(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成員升序排列。

 

 

 

 

第一處:由于在函數(shù)體fun中,已經(jīng)使用了std變量,所以應(yīng)填:*std。

第二處:由于temp是存放交換記錄的中間變量,所以應(yīng)填:PERSON。

第三處:函數(shù)的調(diào)用,所以應(yīng)填:std。

***************************************************

給定程序MODI1.C中函數(shù)fun的功能是: m1m10)個(gè)字符串連接起來(lái),

組成一個(gè)新串,放入pt所指存儲(chǔ)區(qū)中。

例如:把3個(gè)串:"abc","CD","EF"連接起來(lái),結(jié)果是 "abcCDEF"。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng) main 函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

給定源程序:

#include

#include

int fun ( char str[][10], int m, char *pt )

{

/************found************/

Int k, q, i ;

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

{ q = strlen ( str [k] );

for (i=0; i

/************found************/

pt[i] = str[k,i] ;

pt += q ;

pt[0] = 0 ;

}

}

main( )

{ int m, h ;

char s[10][10], p[120] ;

printf( "\nPlease enter m:" ) ;

scanf("%d", &m) ; gets(s[0]) ;

printf( "\nPlease enter %d string:\n", m ) ;

for ( h = 0; h < m; h++ ) gets( s[h]) ;

fun(s, m, p) ;

printf( "\nThe result is : %s\n", p) ;

}

解題思路:

第一處:保留字int錯(cuò)寫(xiě)成Int

第二處:字符數(shù)組的字符串書(shū)寫(xiě)格式錯(cuò)誤。

***************************************************

程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)

fun( int a[][N]),函數(shù)的功能是:使數(shù)組左下三角元素中的值全部置成0

例如:a 數(shù)組中的值為

| 1 9 7 | | 0 9 7 |

a = | 2 3 8 | 則返回主程序后a數(shù)組中的值應(yīng)為 | 0 0 8 |

| 4 5 6 | | 0 0 0 |

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

請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

 

 

 

 

你編寫(xiě)的若干語(yǔ)句。

給定源程序:

#include

#include

#define N 5

int fun ( int a[][N] )

{

}

main ( )

{ int a[N][N], i, j;

printf("***** The array *****\n");

for ( i =0; i

{ for ( j =0; j

{ a[i][j] = rand(); printf( "M", a[i][j] ); }

printf("\n");

}

fun ( a );

printf ("THE RESULT\n");

for ( i =0; i

{ for ( j =0; j

printf("\n");

}

NONO( );

}

 

解題思路:

本題是利用兩重循環(huán)給二維數(shù)組左下三角元素中的值全部置成0。

參考答案:

int fun ( int a[][N] )

{

int i, j;

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

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

a[i][j] = 0 ;

}