1: (1) A
(2) B
(3) D
2: (1) 10||10||10
(2) pogam
3: (1) *p!=0&&*q!=0 *p>=*q; q++
(2) i<11 &a[i] {i--;if(i==0)break;} i!=0
4、/ *题目:输入一个字符串,再删除指定的字符*/
/ *如果字符串中没有指定字符,则输出原字符串。*/
#include<stdio.h>
void fun(char *str,char c)
{ char *p;
for(p=str;*p!='\0';p++)
if(*p!=c)
*str++=*p;
*str='\0';
}
void main()
{ char str[80],c;
printf("\nPlease input a string: ");
gets(str);
printf("\n\nPlease input delete char: ");
scanf("%c",&c );
fun(str,c);
puts(str);
getch();
}
5、/ *从键盘输入单词,每个单词之间用空格隔开,“.”号结束输入,*/
/ *将每个单词的第一个字母转化成大写字母。*/
#include<stdio.h>
#include<string.h>
char zhuanhua(char c) / *定义将小写字母转化为大写字母的函数*/
{ char C;
if(c>='a'&&c<='z') / *是小写字母就转化,不是则原样返回*/
C=c-32;
else C=c;
return C;
} / *此函数防止有标点符号或者第一个字母本身是大写字母*/
void main()
{ char a[100],*p=a;
int i=1,j;
a[0]=' ';p++; / *为方便下面的if语句,初始化a[0]为空格*/
printf("\nPlease input a string: ");
for(;;)
{ scanf("%c",p);
if(*p=='.')
break;
p++;i++;
}
a[i]='\0';
for(j=1;j<i;j++)
{ if(a[j-1]==' '&&a[j]!=' ')/ * 第一个字母前面可能有很多空格*/
a[j]=zhuanhua(a[j]); / *调用转化函数,使其变为大写字母*/
}
p=a;
while(*p)
{printf("%c",*p);p++;}
getch();
}
6、/ *输入8个数,排序后输出。*/
#include<stdio.h>
#include<string.h>
void main()
{ int data[8],i,*p1,*p2,temp;
p1=data;
printf("\nInput 8 number: ");
for(i=0;i<8;i++)
{ scanf("%d",p1); p1++; }
for(p1=data;p1<data+8-1;p1++)
for(p2=p1+1;p2<data+8;p2++)
if(*p1<*p2)
{ temp=*p1;*p1=*p2;*p2=temp;}
for(i=0,p1=data;i<8;i++,p1++)
printf("%d ",*p1);
getch();
}
7、/ *题目:输入一个字符串,将此字符串的m个字符开始的第n个字符复制到另一个字符串。*/
#include<stdio.h>
void main()
{ int m,n,i;
char a[100],b[100],*p,*q;
printf("Please input a string: ");
gets(a);
p=a;q=b;
printf("\n\nPlease input m and n(like 1,1): ");
scanf("%d,%d",&m,&n);
if( (strlen(a)>=m) && ((strlen(a)-m+1)>=n) )/ *复制的位置要符合要求*/
{ p+=m-1; / *指针指向第一个要复制的字符*/
for(i=0;i<n;i++)
{ *q=*p; p++; q++; }
*q='\0';
printf("String a is: %s\n",a);
printf("string b is: %s\n",b);
}
else printf("\nError!!!!"); / *复制的位置不符合要求,打印错误*/
getch();
}
8、/ *输入8个数,将最大的数与第一个数对换。*/
/ *将最小的数与最后一个数对换*/
#include<stdio.h>
void main()
{
int a[100],temp1=0,temp2=0,max=0,min=0,k;
printf("\nPlease input 8 ge shu: ");
for(k=0;k<8;k++)
{ scanf("%d",&a[k]);
if(a[k]<a[min])min=k; / *用标记min最小值的下标*/
if(a[k]>a[max])max=k; / *用标记max最大值的下标*/
}
if(min==0)
{ if(max==7)
{ temp1=a[0]; a[0]=a[7];a[7]=temp1; }
else
{ temp2=a[7];a[7]=a[min];
a[0]=a[max];a[max]=temp2;
}
}
else if(max==0)
{ if(min!=7)
{ temp2=a[7]; a[7]=a[min];a[min]=temp2;}
}
else
{ if(min==7)
{ temp1=a[0];a[0]=a[max];a[max]=temp1;}
else if(max==7)
{ temp2=a[7];a[7]=a[min];
a[min]=a[0];a[0]=temp2;
}
else
{ temp1=a[0];temp2=a[7];
a[0]=a[max];a[7]=a[min];
a[min]=temp2;a[max]=temp1;
}
}
for(k=0;k<8;k++)
printf("%d ",a[k]);
getch();
}
9、
/ *输入n个数,并排序后输出。*/
#include<stdio.h>
#include<string.h>
int *paixu(int data[],int n)
{ int i,*p1,*p2,temp;
p1=data;
for(p1=data;p1<data+n-1;p1++)
for(p2=p1+1;p2<data+n;p2++)
if(*p1<*p2)
{ temp=*p1;*p1=*p2;*p2=temp;}
p1=data;
return p1;
}
void main()
{ int n,a[100],i,*p=a;
printf("Please input n: ");
scanf("%d",&n);
printf("\n\nPlease enter %d ge shu: ",n);
for(i=0;i<n;i++)
{ scanf("%d",p); p++; }
p=paixu(a,n);
for(i=0;i<n;i++,p++)
printf("%d ",*p);
getch();
}
10、
#include"stdio.h"
#define max 1042
main()
{
float j,a[max];int t,i=0;
char b[max],*p=b; clrscr();
printf("Enter a string:");
gets(b);
while(*p!='\0')
{
a[i]=0;
while(((*p)<='9'&&(*p)>='0')&&((*p)!='\0'))
{
t=(int)(*p-48);
a[i]=a[i]*10+t;
p++;
if((*p)>'9'||(*p)<'0')
i++;
}
p++;
}
for(j=0;j<i;j++)
printf("\t%.0f",a[j]);
printf("\nALL %d",i);
}