C语言第五章部分上机作业解读.docx

上传人:b****5 文档编号:29450925 上传时间:2023-07-23 格式:DOCX 页数:32 大小:21.24KB
下载 相关 举报
C语言第五章部分上机作业解读.docx_第1页
第1页 / 共32页
C语言第五章部分上机作业解读.docx_第2页
第2页 / 共32页
C语言第五章部分上机作业解读.docx_第3页
第3页 / 共32页
C语言第五章部分上机作业解读.docx_第4页
第4页 / 共32页
C语言第五章部分上机作业解读.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C语言第五章部分上机作业解读.docx

《C语言第五章部分上机作业解读.docx》由会员分享,可在线阅读,更多相关《C语言第五章部分上机作业解读.docx(32页珍藏版)》请在冰豆网上搜索。

C语言第五章部分上机作业解读.docx

C语言第五章部分上机作业解读

1/*编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,

该函数返回所求出的素数的个数。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

#defineMAX100

intfun(intlim,intaa[MAX])

{

/**********Begin**********/

/**********End**********/

}

intmain()

{

FILE*wf;

intlimit,i,sum;

intaa[MAX];

printf("输入一个整数");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i

{

if(i%10==0&&i!

=0)/*每行输出10个数*/

printf("\n");

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

}

/******************************/

wf=fopen("debug\\2.out","w");

sum=fun(15,aa);

for(i=0;i

fprintf(wf,"%d\n",aa[i]);

fclose(wf);

/*****************************/

return0;

}

2/*请编写函数fun,函数的功能是:

求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

例如,若二维数组中的值为

13579

29994

69998

13570

则函数值为61。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

#defineM4

#defineN5

intfun(inta[M][N])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

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

inti,j,y;

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

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

printf("\n");

}

y=fun(aa);

printf("\nThesun:

%d\n",y);

printf("\n");

/******************************/

wf=fopen("debug\\out10.dat","w");

fprintf(wf,"%d",y);

fclose(wf);

/*****************************/

}

/*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

#include

voidfun(chara[][81],intnum,charmax[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

charss[10][81],ps[81];

chars[3][81]={"abcd","deg","diegns"},p[81];

inti=0,n;

printf("输入若干个字符串:

");

gets(ss[i]);

puts(ss[i]);

while(!

strcmp(ss[i],"****")==0)/*用4个星号作为结束输入的标志*/

{

i++;

gets(ss[i]);

puts(ss[i]);

}

n=i;

fun(ss,n,ps);

printf("\nmax=%s\n",ps);

/******************************/

wf=fopen("debug\\out15.dat","w");

fun(s,3,p);

fprintf(wf,"%s",p);

fclose(wf);

/*****************************/

}

/*请编写一个函数fun,它的功能是:

求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传给m的值为50,则程序输出:

711142122283335424449

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

#defineM100

intfun(intm,inta[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

intaa[M],n,k;

n=fun(50,aa);

for(k=0;k

if((k+1)%20==0)/*每行输出20个数*/

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

printf("\n");

}

else

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

printf("\n");

/******************************/

wf=fopen("debug\\out4.dat","w");

for(k=0;k

fprintf(wf,"%d\n",aa[k]);

fclose(wf);

/*****************************/

}

/*请编写一个函数fun,它的功能是:

将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

例如,若输入字符串"-1234",则函数把它转换为整数值-1234。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

longfun(charp[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

chars[6];

longn;

printf("Enterastring:

\n");

gets(s);

n=fun(s);

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

/******************************/

wf=fopen("debug\\out13.dat","w");

fprintf(wf,"%ld",fun("-1234"));

fclose(wf);

/*****************************/

}

/*请编写一个函数voidfun(charss[]),其功能是:

将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入abc4EFg,则应输出aBc4EFg。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

voidfun(charss[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

chartt[100];

FILE*out,*in;

printf("Pleaseenterancharacterstringwithin50characters:

\n");

gets(tt);

printf("\n\nAfterchanging,thestring\n%s",tt);

fun(tt);

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

/******************************/

in=fopen("in14.dat","r");

out=fopen("debug\\out14.dat","w");

fgets(tt,16,in);

strcat(tt,"Afterchangingthestring");

fun(tt);

fprintf(out,"%s",tt);

fclose(in);

fclose(out);

/******************************/

}

/*编写一个函数fun,它的功能是:

实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

例如,分别输入下面两个字符串:

FirstString

SecondString

则程序输出:

FirstStringSecondString

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

voidfun(charp1[],charp2[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf,*in;

chars1[80],s2[40];

charp1[80]="FirstString",p2[40]="SecondString";

printf("Enters1ands2:

\n");

scanf("%s%s",s1,s2);

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

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

printf("Invokefun(s1,s2):

\n");

fun(s1,s2);

printf("Afterinvoking:

\n");

printf("%s\n",s1);

/******************************/

in=fopen("in16.dat","r");

wf=fopen("debug\\out16.dat","w");

fscanf(in,"%s%s",p1,p2);

fun(p1,p2);

fprintf(wf,"%s",p1);

fclose(in);

fclose(wf);

/*****************************/

}

/*请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如,输入17,则应输出46891012141516。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

intfun(intm,intxx[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

intm,n,zz[100];

printf("\nPleaseenteranintegernumberbetween10and100:

");

scanf("%d",&n);

m=fun(n,zz);

printf("\n\nThereare%dnon-primenumberslessthan%d:

",m,n);

for(n=0;n

printf("\n%4d",zz[n]);

/******************************/

wf=fopen("debug\\out7.dat","w");

m=fun(30,zz);

for(n=0;n

fprintf(wf,"%d\n",zz[n]);

fclose(wf);

/*****************************/

}

/*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,

并依次放在pp所指数组中。

例如,当输入字符串abcdefghabcdeabc后,

程序的输出结果应该是:

333221110000000000000000000

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include

#include

voidfun(chartt[],intpp[])

{

/***************Begin************/

/***************End************/

}

voidmain()

{

FILE*wf;

charaa[1000];

intbb[26],k;

printf("\nPleaseenteracharstring:

");

scanf("%s",aa);

fun(aa,bb);

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

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

/******************************/

wf=fopen("debug\\out02.dat","w");

fun("abcdefgabcdeabc",bb);

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

fprintf(wf,"%d\n",bb[k]);

fclose(wf);

/*****************************/

}

程序填空

/*请补充函数fun,该函数的功能是:

求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。

例如,当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:

avg=15.030000。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

*/

#include

#include

doublefun(doublex[10])

{

inti;

longt;

doubleavg=0.0;

doublesum=0.0;

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

/**********FILL**********/

[1];

avg=sum/10;

/**********FILL**********/

avg=[2];

/**********FILL**********/

t=[3];

avg=(double)t/100;

returnavg;

}

voidmain()

{

doubleavg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};

inti;

printf("\nTheoriginaldatais:

\n");

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

printf("%6.1f",x[i]);

printf("\n\n");

avg=fun(x);

printf("average=%f\n\n",avg);

}

/*请补充函数fun,该函数的功能是:

整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。

例如当x=20时,依次输出:

201042。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

*/

#include

voidfun(intk,intbb[])

{

inti;

intj=0;

/**********FILL**********/

for([1];i<=k;i++)

{

/**********FILL**********/

if([2])

bb[j++]=i;

}

printf("\n\n");

/**********FILL**********/

for(i=[3];i>=0;i--)

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

}

intmain()

{

intk=1;

intbb[100];

printf("\nPleaseinputX=");

scanf("%d",&k);

fun(k,bb);

return0;

}

/*请补充函数fun,该函数的功能是:

整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。

例如当x=20时,依次输出:

201042。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

*/

#include

#include

voidfun(intk,intbb[])

{

inti;

intj=0;

/**********FILL**********/

for([1];i<=k;i++)

{

/**********FILL**********/

if([2])

bb[j++]=i;

}

printf("\n\n");

/**********FILL**********/

for(i=[3];i>=0;i--)

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

}

voidmain()

{

intk=1;

intbb[100];

printf("\nPleaseinputX=");

scanf("%d",&k);

fun(k,bb);

}

/*请补充main函数,该函数的功能是:

从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。

结果仍然保存在原串中。

例如,输入"abcdef",指定字符为"e",则输出"abcd"。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:

*/

#include

#include

#defineN80

intmain()

{

inti=0;

charstr[N];

charch;

printf("\nInputastring:

\n");

gets(str);

printf("\nInputacharator;\n");

scanf("%c",&ch);

while(str[i]!

='\0')

{

if(str[i]==ch)

/**********FILL**********/

/**********FILL**********/

;

}

/**********FILL**********/

str[i]=;

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

puts(str);

return0;

}

/*请补充函数fun,该函数的功能是:

把一个整数转换成字符串,并倒序保存在字符数组str中。

例如,当n=13572468时,str="86427531"。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

*/

#include

#include

#defineN80

charstr[N];

voidfun(longintn)

{

inti=0;

/**********FILL**********/

while([1])

{

/**********FILL**********/

str[i]=[2];

n/=10;

i++;

}

/**********FILL**********/

[3];

}

voidmain()

{

longintn=13572468;

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

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

fun(n);

printf("\n%s",str);

}

/*请补充main

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1