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、/ *題目:輸入一個(gè)字符串,再刪除指定的字符*/
/ *如果字符串中沒有指定字符,則輸出原字符串。*/
#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、/ *從鍵盤輸入單詞,每個(gè)單詞之間用空格隔開,“.”號結(jié)束輸入,*/
/ *將每個(gè)單詞的第一個(gè)字母轉(zhuǎn)化成大寫字母。*/
#include<stdio.h>
#include<string.h>
char zhuanhua(char c) / *定義將小寫字母轉(zhuǎn)化為大寫字母的函數(shù)*/
{ char C;
if(c>='a'&&c<='z') / *是小寫字母就轉(zhuǎn)化,不是則原樣返回*/
C=c-32;
else C=c;
return C;
} / *此函數(shù)防止有標(biāo)點(diǎn)符號或者第一個(gè)字母本身是大寫字母*/
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]!=' ')/ * 第一個(gè)字母前面可能有很多空格*/
a[j]=zhuanhua(a[j]); / *調(diào)用轉(zhuǎn)化函數(shù),使其變?yōu)榇髮懽帜?/span>*/
}
p=a;
while(*p)
{printf("%c",*p);p++;}
getch();
}
6、/ *輸入8個(gè)數(shù),排序后輸出。*/
#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、/ *題目:輸入一個(gè)字符串,將此字符串的m個(gè)字符開始的第n個(gè)字符復(fù)制到另一個(gè)字符串。*/
#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) )/ *復(fù)制的位置要符合要求*/
{ p+=m-1; / *指針指向第一個(gè)要復(fù)制的字符*/
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!!!!"); / *復(fù)制的位置不符合要求,打印錯(cuò)誤*/
getch();
}
8、/ *輸入8個(gè)數(shù),將最大的數(shù)與第一個(gè)數(shù)對換。*/
/ *將最小的數(shù)與最后一個(gè)數(shù)對換*/
#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; / *用標(biāo)記min最小值的下標(biāo)*/
if(a[k]>a[max])max=k; / *用標(biāo)記max最大值的下標(biāo)*/
}
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個(gè)數(shù),并排序后輸出。*/
#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);
}