实验08 指针Word文件下载.docx
《实验08 指针Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验08 指针Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
printf("
Inputn,m:
"
);
scanf("
%d%d"
&
n,&
m);
for(p=a,i=0;
i<
n;
i++)
%d"
p++);
mov(a,n,m);
Aftermove:
"
for(i=0;
%5d"
a[i]);
\n"
return0;
}
voidmov(int*x,intn,intm)
inti,j,k;
m;
i++){
k=x[n-1];
for(j=n-1;
j>
0;
j--)
x[j]=x[j-1];
/*调试时设置断点*/
x[0]=k;
}
②运行结果:
(提示:
通过屏幕截图,贴粘程序运行界面)。
2、完善程序,并调试运行程序
题目
(1)在数组中查找指定元素。
程序功能:
输入一个整数n(1<
n≤10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应的下标,否则输出“Notfound”。
要求定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则返回相应下标,否则返回-1,其中:
n为list数组中的元素个数。
在main函数中调用search函数实现程序功能。
程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
//程序功能:
n≤10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中
//查找x,如果找到则输出相应的下标,否则输出"
Notfound"
。
//要求:
定义并调用一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到
//则返回相应下标,否则返回-1,其中:
//提示:
除在指定位置添加语句之外,请不要改动程序中的其他内容。
voidmain()
inti,x,a[10],res;
intsearch(int*,int,int);
i<
10;
i++)scanf("
&
a[i]);
x);
//请在两条星线之间填入相应的代码,调用search函数,查找整数x在数组a中的位置。
/*************************************************************************/
res=search(a,10,x);
if(res==-1)printf("
Notfound\n"
elseprintf("
Thepositionis%d\n"
res);
//定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则
//返回相应下标,否则返回-1,其中:
intsearch(int*p,intn,intx)
inti,pos;
//请在两条星线之间填入相应的代码,查找x在指针p指向的含n个元素的数组中的位置
//要求:
利用指针方法来处理。
pos=-1;
i++,*p++){
if(*p==x)
pos=i;
}/*************************************************************************/
returnpos;
题目
(2)排序。
n≤10),然后输入n个整数存入数组a中,要求定义一个函数voidsort(intlist[],intn),用选择法对list数组中的元素升序排列,其中:
在main函数中调用sort函数实现排序,最后输出排序后的结果。
程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
n≤10),然后输入n个整数存入数组a中,定义并调用一个
//函数voidsort(intlist[],intn),用选择法对list数组中的元素按升序排
//列,其中:
最后输出排序后的结果。
inti,a[10];
voidsort(int*,int);
//请在两条星线之间填入相应的代码,调用sort函数,对数组a中的元素按照升序排列
sort(a,10);
Theresultis:
i++)printf("
%d"
//输出排序后的结果
//定义一个函数voidsort(int*p,intn),用选择法对指针p指向的数组中的元素按升序
//排列,其中:
n为数组中的元素个数。
voidsort(int*p,intn)
inti,j,iMin,temp;
//请在两条星线之间填入相应的代码,用选择法对指针p指向的数组中的元素升序排列
//其中:
iMin=i;
for(j=i+1;
j<
j++)
if(*(p+iMin)>
*(p+j))
iMin=j;
temp=*(p+i);
*(p+i)=*(p+iMin);
*(p+iMin)=temp;
题目(3)找最长的字符串。
连续输入5个以空格分隔的字符串(字符串的长度不超过80),输出其中长度最长的字符串。
例如:
输入:
liwangzhangjinxiao,输出:
zhang。
程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
连续输入5个字符串(字符串的长度不超过80),输出其中长度最长的字符串。
//提示:
string.h>
voidmain()
inti,MaxLen;
charstr[80],longest[80],*p;
Input5strings:
%s"
str);
//输入第一个字符串
strcpy(longest,str);
MaxLen=strlen(str);
//将第一个字符串设置为初始的最长字符串
p=str;
//将指针p指向字符串str
//请在两条星线之间填入相应的代码,输入其它4个字符串,查找其中最长的字符串。
/***********************************************************************/
4;
scanf("
p);
if(strlen(p)>
MaxLen){
MaxLen=strlen(p);
strcpy(longest,p);
}
/************************************************************************/
Thelongeststringis:
%s\n"
longest);
}
题目(4)找最大的字符串。
连续输入5个以空格分隔的字符串(字符串的长度不超过80),输出其中最大的字符串。
liwangzhajinxiao,输出:
zha。
程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
连续输入5个字符串(字符串的长度不超过80),输出其中最大的字符串。
inti;
charstr[80],max[80],*p;
strcpy(max,str);
//将第一个字符串设置为初始的最大字符串
//请在两条星线之间填入相应的代码,输入其它4个字符串,查找其中最大的字符串。
if(strcmp(p,max)>
0)
strcpy(max,p);
Themaxstringis:
max);
题目(5)删除字符。
编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。
在主程序中输入一个字符c和一个字符串s,调用delchar(s,c)函数删除字符串s中所有的c字符,然后输出删除后的字符串。
输入字符a和字符串liwangzhajinxiao,输出:
liwngzhjinxio。
程序文件保存在“第5题”文件夹中)打开proj5.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
题目(6)字符串复制。
编写一个函数strmcpy(s,t,m),该函数将字符串t中从m个字符开始的全部字符复制到字符串s中去。
在主程序中输入一个字符串t和一个开始位置m,调用strmcpy(s,t,m)函数,然后输出字符串s的结果。
输入字符串liwangzhajinxiao和开始位置2,输出:
wangzhajinxiao。
程序文件保存在“第6题”文件夹中)打开proj6.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
编写一个函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。
//在主程序中输入一个字符串t和一个开始位置m,调用strmcpy(s,t,m)函数,然后输出字符
//串s的结果。
//例如:
chars[80],t[80];
intm;
voidstrmcpy(char*s,char*t,intm);
Inputastrings:
t);
Inputbeginposition:
//请在两条星线之间填入相应的代码,调用strmcpy(s,t,m)函数,将字符串t中从m个字符开始的全部
//字符复制到字符串s中去。
/**************************************************************************/
strmcpy(s,t,m);
s);
voidstrmcpy(char*s,char*t,intm)
//请在两条星线之间填入相应的代码,将字符串t中从m个字符开始的全部字符复制到字符串s中去。
/************************************************************************************/
i++,*t++);
strcpy(s,t);
题目(7)字符串连接。
编写一个函数strmcat(s,t),该函数将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
在主程序中输入两个字符串s和t,调用strmcat(s,t)函数,然后输出字符串s的结果。
输入字符串LiXiao和Wei,输出:
LiXiaoWei。
程序文件保存在“第7题”文件夹中)打开proj7.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
编写一个函数strmcat(s,t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
//在主程序中输入两个字符串s和t,调用strmcat(s,t)函数,然后输出字符串s的结果。
chars[80],t[80],*p;
char*strmcat(char*s,char*t);
Inputthefirststring:
s);
Inputthesecondstring:
//请在两条星线之间填入相应的代码,调用strmat(s,t)函数,将字符串t复制到字符串s中去。
/********************************************************************************/
p=strmcat(s,t);
p);
char*strmcat(char*s,char*t)
inti,k;
//请在两条星线之间填入相应的代码,将字符串t复制到字符串s中去,并返回字符串s的首地址。
/**********************************************************************************/
k=strlen(s);
=strlen(t);
*(s+k+i)=*(t+i);
returns;
}②运行结果:
题目(8)字符串排序。
编写一个sort函数,实现对5个字符串按从大到小进行排序。
在主程序中输入5字符串,调用sort函数进行排序,然后输出排序后的结果。
输入字符串LiXiaoWangZhangYu,输出:
ZhangYuXiaoWangLi。
程序文件保存在“第8题”文件夹中)打开proj8.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
chars[5][80];
voidsort(char(*p)[80],intn);
5;
i++)scanf("
s[i]);
//请在两条星线之间填入相应的代码,调用sort函数,实现对5个字符串按从大到小进行排序。
sort(s,5);
i++)printf("
%s"
voidsort(char(*p)[80],intn)
inti,j,iMax;
chart[80];
//请在两条星线之间填入相应的代码,实现对5个字符串按从大到小进行排序。
(选择法)
n-1;
{
iMax=i;
j++)if(strcmp(p[j],p[iMax])>
0)iMax=j;
strcpy(t,p[i]);
strcpy(p[i],p[iMax]);
strcpy(p[iMax],t);
题目(9)分类统计。
输入一行文字,分类统计其中的大写字母、小写字母、数字、空格以及其他字符的个数。
bFaE3+8=1B
输出:
大写字母个数:
3
小写字母个数:
2
数字个数:
空格个数:
1
其他字符个数:
inti,count[5]={0,0,0,0,0};
charstr[80],*p;
Inputalinechar:
gets(str);
p=str;
//请在两条星线之间填入相应的代码,输入一行文字,分类统计其中的大写字母