C语言第五章部分上机作业Word文件下载.docx
《C语言第五章部分上机作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言第五章部分上机作业Word文件下载.docx(32页珍藏版)》请在冰点文库上搜索。
if(i%10==0&
&
i!
=0)/*每行输出10个数*/
\n"
%5d"
aa[i]);
}
/******************************/
wf=fopen("
debug\\2.out"
"
w"
sum=fun(15,aa);
fprintf(wf,"
%d\n"
fclose(wf);
/*****************************/
return0;
2/*请编写函数fun,函数的功能是:
求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
例如,若二维数组中的值为
13579
29994
69998
13570
则函数值为61。
试题程序:
*/
#defineM4
#defineN5
intfun(inta[M][N])
/***************Begin************/
/***************End************/
voidmain()
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:
i<
M;
{for(j=0;
j<
N;
j++)
%6d"
aa[i][j]);
y=fun(aa);
\nThesun:
%d\n"
y);
debug\\out10.dat"
fprintf(wf,"
/*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
string.h>
voidfun(chara[][81],intnum,charmax[])
/***************Begin************/
/***************End************/
charss[10][81],ps[81];
chars[3][81]={"
abcd"
deg"
diegns"
},p[81];
inti=0,n;
输入若干个字符串:
"
gets(ss[i]);
puts(ss[i]);
while(!
strcmp(ss[i],"
****"
)==0)/*用4个星号作为结束输入的标志*/
i++;
n=i;
fun(ss,n,ps);
\nmax=%s\n"
ps);
debug\\out15.dat"
fun(s,3,p);
%s"
p);
/*请编写一个函数fun,它的功能是:
求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传给m的值为50,则程序输出:
711142122283335424449
#defineM100
intfun(intm,inta[])
{
intaa[M],n,k;
n=fun(50,aa);
for(k=0;
k<
n;
k++)
if((k+1)%20==0)/*每行输出20个数*/
{printf("
%4d"
aa[k]);
\n"
else
debug\\out4.dat"
将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。
例如,若输入字符串"
-1234"
则函数把它转换为整数值-1234。
#include<
longfun(charp[])
chars[6];
longn;
Enterastring:
gets(s);
n=fun(s);
%ld\n"
n);
debug\\out13.dat"
%ld"
fun("
));
/*请编写一个函数voidfun(charss[]),其功能是:
将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4EFg,则应输出aBc4EFg。
注意:
voidfun(charss[])
chartt[100];
FILE*out,*in;
printf("
Pleaseenterancharacterstringwithin50characters:
gets(tt);
\n\nAfterchanging,thestring\n%s"
tt);
fun(tt);
\nbecomes\n%s"
in=fopen("
in14.dat"
r"
out=fopen("
debug\\out14.dat"
fgets(tt,16,in);
strcat(tt,"
Afterchangingthestring"
fprintf(out,"
fclose(in);
fclose(out);
/*编写一个函数fun,它的功能是:
实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirstString
SecondString
则程序输出:
FirstStringSecondString
voidfun(charp1[],charp2[])
FILE*wf,*in;
chars1[80],s2[40];
charp1[80]="
FirstString"
p2[40]="
SecondString"
;
Enters1ands2:
);
%s%s"
s1,s2);
s1=%s\n"
s1);
s2=%s\n"
s2);
Invokefun(s1,s2):
fun(s1,s2);
Afterinvoking:
%s\n"
in=fopen("
in16.dat"
debug\\out16.dat"
fscanf(in,"
%s%s"
p1,p2);
fun(p1,p2);
p1);
fclose(in);
/*请编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,输入17,则应输出46891012141516。
intfun(intm,intxx[])
intm,n,zz[100];
\nPleaseenteranintegernumberbetween10and100:
"
n);
m=fun(n,zz);
\n\nThereare%dnon-primenumberslessthan%d:
m,n);
for(n=0;
n<
m;
n++)
\n%4d"
zz[n]);
debug\\out7.dat"
m=fun(30,zz);
/*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"
a"
到"
z"
26个字母各自出现的次数,
并依次放在pp所指数组中。
例如,当输入字符串abcdefghabcdeabc后,
程序的输出结果应该是:
333221110000000000000000000
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
voidfun(chartt[],intpp[])
voidmain()
charaa[1000];
intbb[26],k;
\nPleaseenteracharstring:
aa);
fun(aa,bb);
for(k=0;
26;
k++)
bb[k]);
debug\\out02.dat"
fun("
abcdefgabcdeabc"
bb);
程序填空
/*请补充函数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的横线上填入所编写的若干表达式或语句。
doublefun(doublex[10])
inti;
longt;
doubleavg=0.0;
doublesum=0.0;
10;
/**********FILL**********/
[1];
avg=sum/10;
avg=[2];
t=[3];
avg=(double)t/100;
returnavg;
doubleavg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};
\nTheoriginaldatais:
printf("
%6.1f"
x[i]);
\n\n"
avg=fun(x);
average=%f\n\n"
avg);
整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。
例如当x=20时,依次输出:
201042。
voidfun(intk,intbb[])
intj=0;
for([1];
=k;
if([2])
bb[j++]=i;
for(i=[3];
i>
=0;
i--)
%d"
bb[i]);
intk=1;
intbb[100];
\nPleaseinputX="
k);
fun(k,bb);
return0;
if([2])
/*请补充main函数,该函数的功能是:
从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。
结果仍然保存在原串中。
例如,输入"
abcdef"
指定字符为"
e"
则输出"
。
请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。
#defineN80
inti=0;
charstr[N];
charch;
\nInputastring:
gets(str);
\nInputacharator;
%c"
&
ch);
while(str[i]!
='
\0'
)
if(str[i]==ch)
;
str[i]=;
\n***displaystring***\n"
puts(str);
把一个整数转换成字符串,并倒序保存在字符数组str中。
例如,当n=13572468时,str="
86427531"
charstr[N];
voidfun(longintn)
while([1])
str[i]=[2];
n/=10;
i++;
[3];
longintn=13572468;
***theorigialdata***\n"
n=%ld"
fun(n);
\n%s"
str);
/*请补充main函数