五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

全國計算機等級考試二級C語言練習(xí)題(一)

2021-02-12 09:01 作者:朝顏晚扶桑  | 我要投稿

1.程序填空題

程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3門課的成績。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到student.dat文件中。函數(shù)fun的功能是從指定文件中找出指定學(xué)號的學(xué)生數(shù)據(jù),讀入此學(xué)生數(shù)據(jù),對該生的分?jǐn)?shù)進(jìn)行修改,使每門課的分?jǐn)?shù)加3分,修改后重寫文件中該學(xué)生的數(shù)據(jù),即用該學(xué)生的新數(shù)據(jù)覆蓋原數(shù)據(jù),其他學(xué)生數(shù)據(jù)不變;若找不到,則什么都不做。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <stdio.h>

#define N 5

typedef struct student

{long sno;

char name[10];

float Score[3];

}STU;

void fun(char *filename, long sno)

{

FILE *fp;

STU n; int I;

fp=fopen(filename,"rb+");

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

while(!___1___)

{

fread(&n,sizeof(STU),1,fp);

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

if(n.sno___2___) break;

}

if(!feof(fp))

{

for(i=0;i<3;i++) n.Score[i]+=3;

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

fseek(fp,1L*___3___,SEEK_CUR);

fwrite(&n, sizeof(STU), 1, fp);

}

fclose(fp);

}

main(

{

STU t[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}},ss[N];

int I,j; FILE *fp;

fp=fopen("student.dat","wb");

fwrite(t, sizeof(STU), N, fp);

fclose(fp);

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

fp=fopen("student.dat","rb");

fread(ss, sizeof(STU), N, fp);

fclose(fp);

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

{

printf("\nNo:%ld Name:%-8sScores: ",

ss[j].sno,ss[j].name);

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

printf("%6.2f ",ss[j].Score[i]);

printf("\n");

}

fun("student.dat",10003);

fp=fopen("student.dat","rb");

fread(ss,sizeof(STU),N,fp);

fclose(fp);

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

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

{

printf("\nNo:%ld Name: %-8s Scores:",

ss[j].sno,ss[j].name);

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

printf("%6.2f",ss[j].Score[i]);

printf("\n");

}

}【答案】

(1)feof(fp) (2)==sno (3)sizeof(STU)?

2.程序修改題

給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指子字符串的地址,通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。

例如,當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”、t中的內(nèi)容為“ab”時,輸出結(jié)果應(yīng)是abcdx。當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”、t中的內(nèi)容為“abd”時,則程序輸出未找到信息not be found!。

請改正程序中的錯誤,使其能得出正確的結(jié)果。

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

#include <stdio.h>

#include <string.h>

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

{

char *p,*r,*a;

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

a=Null;

while(*s)

{

p=s;r=t;

while(*r)

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

if(r==p)

{r++;p++;}

else break;

if(*r=='\0') a=s;

s++;

}

return a ;

}

main()

{

char s[100],t[100],*p;

printf("\nPlease enter string S :");

scanf("%s",s);

printf("\nPlease enter substring t :");

scanf("%s",t);

p=fun(s,t);

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

else printf("\nNot found !\n");

}

【答案】

(1)將a=Null; 改為:a=NULL;

(2)將if(r==p) 改為:if(*r==*p)

3.程序設(shè)計題

程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(int a[][N], int n),函數(shù)的功能是:使N×N的二維數(shù)組左下三角元素中的值乘以n。

例如:若n的值為3,a數(shù)組中的值為:

1 9 7

2 3 8

4 5 6

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

3 9 7

6 9 8

12 15 18

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

#include <stdio.h>

#include <stdlib.h>

#define N 5

int fun(int a[][N],int n)

{

}

main()

{

int a[N][N],n,I,j;

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

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

{

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

{

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

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

printf("\n");

}

do n=rand()%10; while(n>=3);

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

fun(a,n);

printf ("***THE RESULT***\n");

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

{

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

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

printf("\n");

}

}

【答案】

int fun(int a[][N],int n)

{

int j,k;

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

for(k=0;k<j+1;k++)

a[j][k]*=n;

}

1.程序填空題

給定程序中,函數(shù)fun的功能是:找出N×N矩陣中每列元素中的最大值,并按順序依次存放于形參b所指的一維數(shù)組中。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <stdio.h>

#define N 4

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

{

int I,j;

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

{

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

b[i]=___1___;

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

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

if(b[i]___2___a[j][i])

b[i]= a[j][i];

}

}

main()

{

int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],I,j;

printf("\nThe matrix :\n");

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

{

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

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

printf("\n");

}

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

fun(___3___);

printf("\nThe result is:");

for(i=0; i<N; i++) printf("%3d",y[i]);

printf("\n");

}【答案】

(1)a[0][i] (2) <=或< (3)x, y

3.程序設(shè)計題

編寫函數(shù)fun,它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個實根。

Yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0。

(2)y0=y1,把y1的值賦給y0。

(3)y1=cos(y0),求出一個新的y1。

(4)若y0-y1的絕對值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2)。

(5)所求y1就是方程cos(x)-y=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。

#include <conio.h>

#include <math.h>

#include <stdio.h>

float fun()

{

}

main()

{

FILE *out;

float cos=fun();

printf("Result=%f\n",cos);

out=fopen("outfile.dat","w");

fprintf(out,"%f",cos);

fclose(out);

}

【答案】

float y1=0.0,y0;

do

{

y0=y1;

y1=cos(y0);

}

while(fabs(y0-y1)>=1e-6);

return y1;

1.程序填空題

在主函數(shù)中從鍵盤輸入若干個數(shù)放入數(shù)組a中,用0結(jié)束輸入但不計入數(shù)組。下列給定程序中,函數(shù)fun的功能是:輸出數(shù)組元素中小于平均值的元素。

例如,數(shù)組中元素的值依次為34、54、675、456、453、121,則程序的運行結(jié)果為34、54、121。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <conio.h>

#include <stdio.h>

void fun(___1___,int n)

{

double count=0.0;

double average=0.0;

int i=0;

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

___2___;

average=___3___;

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

if(a[i]<average)

{

if(i%5==0)

printf("\n");

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

}

}

main()

{

int a[1000];

int i=0;

printf("\nPlease enter datas(end with 0):");

do

{

scanf("%d",&a[i]);

}while(a[i++]!=0);

fun(a,i-1);

}

【答案】

(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n

2.程序修改題

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

y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)

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

請改正程序中的錯誤,使其能得出正確的結(jié)果。

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

#include <stdio.h>

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

}

【答案】

(1)將for(i=2;i<m;i++) 改為:

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

(2)將y+=1/(i*i); 改為:y +=1.0/(i*i);

3.程序設(shè)計題

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

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

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

#include <stdio.h>

#include <string.h>

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

}

【答案】

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

{

int k,n=0;

for(k=0;k<strlen(s);k++)

if(k%2==0 && s[k]%2==0)

t[n++]=s[k];

t[n]= '\0';

}

1.程序填空題

請補充函數(shù)fun,該函數(shù)的功能是:統(tǒng)計所有小于等于x(x>2)的素數(shù)的個數(shù),素數(shù)的個數(shù)作為函數(shù)值返回。例如,輸入x=20,結(jié)果:2,3,5,7,11,13,17,19。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <stdio.h>

int fun(int x)

{

int I,j,count=0;

printf("\nThe prime number between 2 to %d\n",x);

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

{

for(___1___;j<I;j++)

if(__2___%j==0)

break;

if(___3___>=i)

{

count++;

printf(count%15 ? "%5d" : "\n%5d",i);

}

}

return count;

}

main()

{

int x=20,result;

result=fun(x);

printf("\nThe number of prime is : %d\n",result);

}

【答案】

(1)j=2 (2)i (3)j

2.程序修改題

給定程序中,函數(shù)fun的功能是:依次取出字符串中所有數(shù)字字符,形成新的字符串,并取代原字符串。

請改正程序中的錯誤,使其能得出正確的結(jié)果。

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

#include <stdio.h>

void fun(char *s)

{

int I,j;

for(i=0,j=0;s[i]!='\0';i++)

if(s[i]>='0'&&s[i]<='9')

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

s[j]=s[i];

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

s[j]="\0";

}

main()

{

char item[80];

printf("\nEnter a string:");

gets(item);

printf("The string is:%s\n",item);

fun(item);

printf("The string of changing is:%s\n",item);

}

【答案】

(1)將s[j]=s[i]; 改為:s[j++]=s[i];

(2)將s[j]="\0"; 改為:s[j]= '\0';

3.程序設(shè)計題

請編寫函數(shù)fun,它的功能是:計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。

例如,若有5門課程的成績是90.5、72、80、61.5、55,則函數(shù)的值為:71.80。

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

#include <stdio.h>

float fun(float *a,int n)

{

?

}

main()

{

float Score[30]={90.5,72,80,61.5,55},

aver;

aver=fun(Score,5);

printf("Average Score is:%5.2f\n",

aver);

}

【答案】

float fun(float *a,int n)

{

float s=0.0;

int I;

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

s+=a[i];

return s/n;

}

1.程序填空題

給定程序中,函數(shù)fun的功能是:計算下式前n項的和作為函數(shù)值返回:

S=1*3/2*2+3*5/4*4+5*7/6*6+…+(2n-1)*(2n+2)/

(2n)*(2n)

例如:當(dāng)行參n的值為10時,函數(shù)返回9.612558。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

注意:部分源程序已給出。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

double fun(int n)

{

int I; double s,t;

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

s=___1___;

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

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

{

t=2.0*I;

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

s=s+(2.0*i-1)*(2.0*i+1)/___3___;

}

return s;

}

main()

{

int n=-1;

while(n<0)

{

printf("Please input(n>0): ");

scanf("%d",&n);

}

printf("The result is: %f\n",fun(n));

}

【答案】

(1)0 (2)n (3)(t*t)

2.程序修改題

在給定程序中,fun函數(shù)的功能是:將n個無序整數(shù)從小到大排序。

請改正程序中的錯誤,使其能得出正確的結(jié)果。

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

#include <stdio.h>

#include <stdlib.h>

fun(int n,int*a)

{

int I,j,p,t;

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

{

p=j;

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

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

if(a[p]>a[i])

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

t=I;

if(p!=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

}

putarr(int n,int *z)

{

int I;

for(i=1;i<=n;i++,z++)

{

printf("%4d",*z);

if(!(i%10)) printf("\n");

}

printf("\n");

}

main()

{

int aa[20]={9,3,0,4,1,2,5,6,8,10,7},

n=11;

printf("Before sorting%d numbers:\n",n);

putarr(n,aa);

fun(n, aa);

printf("After sorting%d numbers:\n",n);

putarr(n,aa);

}

【答案】

(1)將for(i=j+1;i<n-1;i++) 改為:

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

(2)將t=i;改為:p=i;

3.程序設(shè)計題

請編寫一個函數(shù)unsigned fun(unsigned n),n是一個大于10的無符號整數(shù),若n是m(m≥2)位的整數(shù),則函數(shù)求出n的后m-1位的數(shù)作為函數(shù)值返回。

例如,若n的值為1234,則fun()函數(shù)值為234。

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。

#include <conio.h>

#include <stdio.h>

unsigned fun(unsigned m)

{

?

}

main()

{

unsigned n;

FILE *out;

printf("Enter a unsigned integer data : ");

scanf ("%u",&n);

printf("The original data is : %u\n",n);

if(n<10)

printf("Data error!");

else

printf("The result : %u\n",fun(n));

out=fopen("outfile.dat","w");

fprintf(out,"%u",fun(28));

fclose(out);

}

【答案】

unsigned t,s=0,s1=1,p=0;

t=m;

while(t>10)

{

if(t/10)

p=t%10;

s=s+p*s1;

s1=s1*10;

t=t/10;

}

return s;

1.程序填空題

給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后新字符串的首地址作為函數(shù)值返回。

例如,s所指字符串為:asd123fgh543df,處理后新字符串為:asdfghdf12543。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

char *fun(char *s)

{

int I,j,k,n;

char *p,*t;

n=strlen(s)+1;

t=(char*)malloc(n*sizeof(char));

p=(char*)malloc(n*sizeof(char));

j=0;k=0;

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

{

if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z')))

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

{ t[j]=___1___;j++;}

else

{p[k]=s[i];k++;}

}

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

for(i=0;i<___2___;i++) t[j+i]=p[i];

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

t[j+k]=___3____;

return t;

}

main()

{

char s[80];

printf("Please input: ");

scanf("%s",s);

printf("The result is:%s\n",fun(s));

}

【答案】

(1)s[i] (2)k (3)'\0'

2.程序修改題

下列給定程序中,函數(shù)fun的功能是:求三個數(shù)的最小公倍數(shù)。例如,給變量a、b、c分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。

請改正程序中的錯誤,使其能得到正確的結(jié)果。

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

#include <stdio.h>

int fun(int x,int y,int z)

{

int I,temp,n,m;

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

i=1;

temp=m=n=1;

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

while(temp!=0 && m!=0 && n!=0)

{

i=i+1;

temp=i%x;

m=i%y;

n=i%z;

}

return I;

}

main()

{

int a,b,c,I;

printf("Input a b c: ");

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

printf("a=%d,b=%d,c=%d \n",a,b,c);

i=fun(a,b,c);

printf("The minimal common multipleis:%d\n",i);

}

【答案】

(1)將i=1;改為:i=0;

(2)將while(temp!=0 && m!=0 && n!=0)改為:while(temp!=0 || m!=0 || n!=0)

3.程序設(shè)計題

編寫函數(shù)fun,其功能是:根據(jù)以下公式計算s,將結(jié)果作為函數(shù)值返回;n通過形參傳入:

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

例如:若n的值為11時,函數(shù)的值為:1.833333

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。

#include <stdio.h>

float fun(int n)

{

?

}

main()

{

int n;

float s;

printf("\nPlease enter N:");

scanf("%d", &n);

s=fun(n);

printf("the result is: %f\n", s);

}

【答案】

float fun(int n)

{

float s=0.0;

int t=0, k;

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

{ t+=k; s+=1.0/t; }

return s;

}

1.程序填空題

程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3門課的成績。函數(shù)fun的功能是將形參a所指結(jié)構(gòu)體變量中的數(shù)據(jù)賦給函數(shù)中的結(jié)構(gòu)體變量b,并修改b中的學(xué)號和姓名,最后輸出修改后的數(shù)據(jù)。

例如:a所指變量中的學(xué)號、姓名、和三門課的成績依次是:10001、“ZhangSan”、95、80、88,則修改后輸出b中的數(shù)據(jù)應(yīng)為:10002、“LiSi”、95、80、88。

請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

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

#include <stdio.h>

#include <string.h>

struct student

{long sno;

char name[10];

float Score[3];

};

void fun(struct student a)

{

struct student b; int I;

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

b=___1___;

b.sno=10002;

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

strcpy(___2___,"LiSi");

printf("The data after modified:\n");

printf("No:%ld Name:%s\n Scores: ",b.sno,b.name);

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

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

printf("%6.2f",b.___3___);

printf("\n");

}

main()

{

struct student

s={10001,"ZhangSan",95,80,88};

int I;

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

printf("No:%ld Name:%s\nScores: ",s.sno,s.name);

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

printf("%6.2f", s.Score[i]);

printf("\n");

fun(s);

}

【答案】

(1)a (2)b.name (3)Score[i]

2.程序修改題

給定程序是建立一個帶頭結(jié)點的單向鏈表,并用隨機函數(shù)為各結(jié)點賦值。函數(shù)fun的功能是將單向鏈表結(jié)點(不包括頭結(jié)點)數(shù)據(jù)域為偶數(shù)的值累加起來,并且作為函數(shù)值返回。

請改正程序中的錯誤,使其能得出正確的結(jié)果。

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

#include <stdio.h>

#include <stdlib.h>

typedef struct aa

{int data; struct aa*next;}NODE;

int fun(NODE*h)

{

int sum=0;

NODE *p;

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

p=h;

while(p)

{

if(p->data%2==0)

sum+=p->data;

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

p=h->next;

}

return sum;

}

NODE *creatlink(int n)

{

NODE *h,*p,*s,*q;

int I,x;

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

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

{

s=(NODE*)malloc(sizeof(NODE));

s->data=rand()%16;

s->next=p->next;

p->next=s;

p=p->next;

}

p->next=NULL;

return h;

}

outlink(NODE *h,FILE *pf)

{

NODE *p;

p=h->next;

fprintf(pf,"THE LIST :\n HEAD");

while(p)

{

fprintf(pf,"->%d",p->data);

p=p->next;

}

fprintf(pf,"\n");

}

outresult(int s,FILE *pf)

{

fprintf(pf,"The sum of even numbers :

%d\n",s);

}

main()

{

NODE *head; int even;

head=creatlink(12);

head->data=9000;

outlink(head,stdout);

even=fun(head);

printf("The result :\n");

outresult(even, stdout);

}

【答案】

(1)將p=h; 改為:p= h->next;

(2)將p=h->next; 改為:p=p->next;

3.程序設(shè)計題

請編寫函數(shù)fun,其功能是:計算并輸出3到m之間所有素數(shù)的平方根之和。

例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。

注意:部分源程序已給出。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。

#include <math.h>

#include <stdio.h>

double fun(int m)

{

?

}

main()

{

int m;

double s;

FILE *out;

printf("\n\nInput m: ");

scanf("%d",&m);

s=fun(m);

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

out=fopen("outfile.dat","w");

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

fprintf(out,"%f\n",fun(m+80));

fclose(out);

}

【答案】

int n,k,i;

double sum=0.0;

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

{

k=sqrt(n);

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

if(n%i==0) break;

if(i>=k+1)

sum+=sqrt(n);

}

return sum;


全國計算機等級考試二級C語言練習(xí)題(一)的評論 (共 條)

分享到微博請遵守國家法律
凤翔县| 湖南省| 通辽市| 海盐县| 汝州市| 施甸县| 益阳市| 芜湖市| 荥阳市| 浮山县| 丘北县| 牡丹江市| 蓝田县| 枣阳市| 福安市| 鄢陵县| 仁布县| 濉溪县| 安达市| 朝阳县| 固原市| 冷水江市| 新绛县| 宁明县| 康平县| 什邡市| 香河县| 民县| 临夏市| 农安县| 神农架林区| 洱源县| 杭锦旗| 和林格尔县| 沙洋县| 卓尼县| 平泉县| 讷河市| 平罗县| 龙胜| 车险|