C语言中的程序问题
阅读程序回答问题
一.程序
#include
void cp(char *p,char *b)
{ int i,k=0;
while(*p)
{ i=0;
while(i<3&&*p)
{b[k]=*p;
k++;p++;i++;
}
if(*p)
{b[k++]=' ';
}
}
b[k]='\0';
}
main()
{char a[20],b[20];
gets(a);
cp(a,b);
puts(b);
printf("\n");
}
问题1:函数cp的功能是什么?
问题2:若在调用cp函数之前给字符串a输入abc123xy后,写出程序的运行结果
(答1:将字符串P中的所有字符复制到字符串B中,要求每复制三个字符后插入一个空格
答2:abc 123 xy)
二.程序
#include"stdio.h"
#include"conio.h"
#define M 10
int fun(int *a, int *n,int pos[ ])
{
int i, k, max=-32768;
for(i=0;iif(a[i]>max)max=a[i];
for(k=0,i=0;i if(a[i]= =max)pos[k++]=i;
*n=k;
return max;
}
main( )
{
int a [M],pos[M],i=0,j,n;
clrscr( );
printf("Enter 10 number:");
for(i=0;ij=fun(a,&n,pos);
printf("The max: %d\n",j);
for(i=0;iprintf("\n");
}
问题1 fun函数的功能是什么?统计10个数中最大值的个数,最大数值放这POS数组,N是最大数的下标
问题2 若输入2 8 5 7 8 4 5 3 2 8
则该程序输出什么?
(答1:在含有10个元素的s数组中查找最大数,及最大数所 在位置(即,下标值),最大值可能不止一个。最大值作为函数值返回,最大值的个数通过指针变量n传回,所在位置由数组pos传回。
答2: The max:8
The positions:1 4 9)
三..程序
#include
void inverse(str)
char str[];
{ char t;
int n,i,j;
n=strlen(str);
for(i=0,j=n-1;i {t=str[i];str[i]=str[j];str[j]=t;
}
}
main()
{ char str[81];
gets(str);
inverse(str);
printf("%s \n",str);
}
问题1:可否将程序的第二行和第三行改成
void inverse(char str[ ])?
问题2:如果从键盘输入的字符串为ABCDEFGH,则输出结果是什么?
(答1:可以
答2:HGFEDCBA)
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |