编程题:
40.请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+l到最后的字符移到字符串的前部。
例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#define N 80
void fun(char *w, int m)
{ char t;
t=*w;*w=*(w+m-1);*(w+m-1)+t;
if(m>1)
fun(w+1,m-2);
else return;
}
main()
{
char a[N]= “ABCDEFGHIJK”;
int m;
printf(“The original string:\n”);
puts(a);
printf(“\n\nEnter m: “);
scanf(“%d”,&m);
fun(a,m);
printf(“\nThe string after moving:\n”);
puts(a);
printf(“\n\n”);
}
41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放在一个字符串中。
例如,若二维数组中的数据为:
则字符串中的内容应是WSHWSHWSHWSH。
注意;部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#define M 3
#define N 4
void fun(char (*s)[N], char *b)
{ int i,j,k=0;
for(i=0;i
for(j=0;j
b[k++]=s[j][i];
b[k]=’\0′;
}
main()
{
char a[100],w[M][N]={{‘w’,'w’, ‘w’,'w’},{‘S’,'S’,'S’,'S’},{‘H’,'H’,'H’,'H’}};
int i,j;
printf(“The matrix:\n”);
for(i=0; i
{
for(j=0;j
printf(“%3c”,w[i][j]);
printf(“\n”);
}
fun(w,a);
printf(“The A string:\n”);
puts(a);
printf(“\n\n”);
}
改错题:
4.下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。
例如,给字符串S输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
/********found********/
void fun(char *s,int a,int b)
{
while(*s)
{
/********found********/
if (*s>=’A'&&*s<=’Z')
a++;
/********found********/
if(*s>=’a'&&*s<=’z')
b++;
s++;
}
}
main()
{
char s[100];
int upper=0, lower=0;
clrscr();
printf(“\nPlease a string : “);
gets(s);
fun(s,&upper,&lower);
printf(“\n upper=%d lower=%d\n”, upper,lower);
}
7.下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请修改程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行和删行,也不得更改程序的结构!
试题程序:
#include
#define N 20
void fun(int a[],int n)
{
int i,j,t,p;
for(j=0;j
{
/********found********/
p=j
for(i=j;i
{
if(a[i]
{
/********found********/
p=i;
t=a[p];
a[p]=a[i];
a[i]=t;
}
}
}
}
main()
{
int a[N]={9,6,8,3,-1},i,m=5;
printf(“dfrgddfgd:”);
for(i=0;i
printf(“%d”,a[i]);
printf(“\n”);
fun(a,m);
printf(“gfdghfg : “);
for(i=0;i
printf(“%d”,a[i]);
printf(“\n”);
}