实验答案函数Word文件下载.docx
《实验答案函数Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验答案函数Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
x[j]=c;
}
puts(x);
2.下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;
(如:
abcd123efg456变为123456)。
修改该程序,要求将红色部分用一个函数来实现。
#include"
"
main()
{chars[15];
inti,j;
scanf("
%s"
s);
for(i=0,j=0;
s[i]!
='
\0'
;
i++)
if(s[i]>
0'
&
&
s[i]<
9'
)
{s[j]=s[i];
j++;
s[j]='
printf("
\nTheresult:
voidfun(charx[]);
chars[15];
Inputcharstofills[15]:
scanf("
fun(s);
voidfun(charx[])
for(i=0,j=0;
x[i]!
if(x[i]>
x[i]<
{x[j]=x[i];
x[j]='
3.编写带有函数的程序(函数名为:
intfun(ints[],int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如:
输入如下整数876675896101301401980431451777
则输出结果为:
6,980。
voidfun(ints[],int*k)
inti,max=s[0];
for(i=1;
10;
if(max<
s[i])
{max=s[i];
*k=i;
{
inta[10]={876,675,896,101,301,401,980,431,451,777};
intk;
fun(a,&
k);
%d,%d\n"
k,a[6]);
4.在main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。
原来数组的元素依次为4、6、8、41、56、77、102。
若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。
voidfun(ints[],intm)
if(s[i]<
m&
s[i+1]>
m)break;
for(j=6;
j>
i;
j--)
s[j+1]=s[j];
s[i+1]=m;
ints[8]={4,6,8,41,56,77,102};
inti,m;
puts("
Pleaseinputm:
%d"
&
m);
fun(s,m);
8;
%d"
s[i]);
putchar('
\n'
5.下面程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。
拷贝时,’\0’也拷贝过去,但’\0’后面的字符不拷贝。
chars1[80],s2[80];
inti;
s2);
for(i=0;
s2[i]!
=’\0’;
s1[i]=s2[i];
s1[i]=’\0’;
s1:
%s\n"
s1);
voidxp(chars1[],chars2[])
s1[i]='
chars1[80],s2[80];
Inputcharsofs2[]:
gets(s2);
xp(s1,s2);
6.编写带有函数的程序(函数名为:
fun()),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0开始的)。
输入abbcc45ghNj,则应输出aBbCc45GhNj。
x[i]!
i=i+2)
'
a'
z'
x[i]=x[i]-32;
charss[80];
Inputcharstofillss[]:
gets(ss);
fun(ss);
puts(ss);
7.在main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。
intfun(inta[][3])
inti,j,s=0;
3;
for(j=0;
if(i==j)s=s+a[i][j];
returns;
inti,j,k,a[3][3];
Input9numberstofilla[3][3]:
a[i][j]);
k=fun(a);
主对角线之和=%d"
k);
8.下面程序的功能是用冒泡法对10个整数按降序进行排序。
{inta[11],i,j,t;
Input10numbers:
for(i=1;
11;
a[i]);
for(j=1;
=9;
=10-j;
if(a[i]<
a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
Thesortednumbers:
a[i]);
voidfun(inta[])
inti,j,t;
for(j=1;
j++)
{t=a[i];
inta[11],i;
fun(a);
9.编写带有函数的程序(函数名为:
intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
结果应该是:
15455154
intfun(intb[])
inti,j=0;
=55;
if(i%3==0)
if(i/10==5||i%10==5)
{b[j]=i;
returnj;
inta[100],k,m;
m=fun(a);
Theresultis:
for(k=0;
k<
m;
k++)
%4d"
a[k]);
10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。
inti=0,j;
scanf(“%s”,s2);
while(s1[i]!
=’\0’)i++;
for(j=0;
s2[j]!
)
s1[i++]=s2[j++];
inti=0,j;
while(s1[i]!
i++;
Inputcharstofills1[]:
gets(s1);
Inputcharstofills2[]:
puts(s1);
11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。
输入2,再输入字符1则应输出3。
intfun(chara[],charch)
inti,x=0;
a[i]!
if(a[i]==ch)x++;
returnx;
chara[20],ch;
Pleaseenterastring:
gets(a);
Pleaseenterachar:
ch=getchar();
Thechar\"
%c\"
hasappeared%dtimes!
ch,fun(a,ch));
12.调用函数fun(),其功能是从字符串中删除指定的字符。
同一字母的大小写按不同字符处理。
输入字符串为:
turbocandBorlandc++
输入字符n,则输出为turbocadBorladc++。
voidfun(charc[],charx)
c[i]!
if(c[i]!
=x)
{c[j]=c[i];
c[j]='
charx,c[80];
Inputcharstofillc[]:
Inputthecharx:
%c"
x);
fun(c,x);
puts(c);
13.在main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,
然后再在main函数中输出转置后的数组。
例如:
原数组为:
转置后为:
123147
456258
789369
voidfun(inta[][3])
if(i<
j)
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
inti,j,a[3][3];
Input9wordstofilla[3][3]:
a[3][3]turnsto:
a[i][j]);
14.利用函数方法编程序:
函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:
111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。
intfun(inta[])
for(i=100;
=1000;
if(i%10==i%100/10&
i%10==i/100)
{a[j]=i;
inta[50],num=0,i;
num=fun(a);
Theresult:
num;
%-5d"
15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。
单词是指由空格隔开的字符串。
例如:
若输入iamastudent,则删除IAmAStudent
{charstr[30];
inti,j,k=0,x,len;
clrscr();
gets(str);
len=strlen(str);
str[i]!
if(k)
{if(str[i]==’’)k=0;
elseif(str[i]!
=’’)
{k=1;
str[i]=str[i]>
=’a’&
str[i]<
=’z’str[i]-32:
str[i];
puts(str);
#include<
voidxp(charc[])
inti,k;
if(c[0]>
c[0]<
c[0]=c[0]-32;
i++)
{if(c[i]=='
'
)k=0;
elseif(c[i]!
='
c[i]=c[i]>
c[i]<
c[i]-32:
c[i];
charc[80];
xp(c);
16.编写带有函数的程序(函数名为:
intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
intfun(int*s,intt,int*k)
inti,max;
t;
if(max<
{max=s[i];
*k=i;
return*k;
ints[10]={1,7,2,3,5,9,6,8,4,0};
fun(s,10,&
k=%d\n"
17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。
若x值为30,则有4个数符合要求,是1,3,5,15。
voidfun(intx,intpp[],int*n)
=x;
if(x%i==0&
i%2!
=0)
{pp[j]=i;
j++;
*n=j;
intx,aa[100],n,i;
Pleaseenteranumber:
fun(x,aa,&
n);
n;
%-3d"
aa[i]);