scanf(\p=a;
printf(\
for(n=0;n<50;n++,p++)
{if(*p!='\\0') {printf(\ else break; }
printf(\}
3、将n个数按输入时顺序的逆序排列,用函数实现。 #include
x=*p1;*p1=*p2;*p2=x; } }
main() {int n,a[5]; printf(\
for(n=0;n<5;n++)
scanf(\ reverse(a); printf(\
for(n=0;n<5;n++)
printf(\ \}
4、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出
“March”,要求用指针数组处理。
#include
*p,*month[13]={\ptember\printf(\scanf(\
if((n>=1)&&(n<=12))
printf(\else printf(\}
5、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数
对换。写3个函数:①输入10个数;②进行处理;③输出10个数。
#include
input(int *p) {int n;
for(n=0;n<10;n++,p++) scanf(\}
max_min(int *p)
{int *q,*max,*min,x,n; q=p;
max=min=p;p++; for(n=1;n<10;n++)
{if(*max<*p) max=p; if(*min>*p) min=p; p++; } p--;
x=*p;*p=*max;*max=x; x=*q;*q=*min;*min=x; }
out(int x[]) {int n;
for(n=0;n<10;n++)
printf(\ \}
main() {int a[10]; input(a); printf(\ out(a);
printf(\ max_min(a); printf(\ out(a);
printf(\}
实验八:
1、输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 #include
{char string[81];
int i,num=0,word=0; char c;
gets(string);
for(i=0;(c=string[i])!='\\0';i++) if(c==' ') word=0; else if(word==0) {word=1; num++; }
printf(\}
2、编写程序,将两个字符串连接起来,不要用strcat函数。 #include
{char s1[80],s2[40]; int i=0,j=0;
printf(\scanf(\
printf(\scanf(\while(s1[i]!='\\0') i++;
while(s2[j]!='\\0')
s1[i++]=s2[j++]; s1[i]='\\0';
printf(\}
3、编写一个程序,接收一个按名和姓的顺序输入的名字,然后按姓和名的方式显示这个名字。例如,如果用户输入Guo Zhong,则输出应该是Zhong Guo。 #define LSIZE 81 #define TRUE 1 #define FALSE 0 int main() { int i = 0; char name[LSIZE], first[LSIZE], last[LSIZE], c; printf(\ gets(name); // get the string splitName(name, first, last); printf(\ printf(\ return 0; }
void splitName(char name[], char first[], char last[]) { int spaceFnd = FALSE; int i = 0, j = 0, start; char c;
}
while((c = name[i++]) != '\\0' && spaceFnd == FALSE) { if(c == ' ') { spaceFnd = TRUE; start = i; } else first[j] = c; j++; }
first[j] = '\\0';
j = 0;
while((c = name[start++]) != '\\0') { last[j] = c; j++; }
last[j] = '\\0';