二级题库
double fun(double *x)
{ int i, j; double av, y[N];
av=0;
for(i=0; i
av+=x[i]/N;
for(i=j=0; i
/**********found**********/
j++;
}
i=0;
while(i
/**********found**********/
i++;
}
for(i=0; i
}
/*************found**************/
void fun(char *s, int num[5])
{ int k, i=5;
for(k=0;k /*************found**************/
num[k]=0;
for(;*s;s++)
{ i=-1;
/*************found**************/
switch(*s)
{ case 'a': case'A':{i=0;break;}
case 'e': case 'E':{i=1;break;}
case 'i': case 'I':{i=2;break;}
case 'o': case 'O':{i=3;break;}
case 'u': case 'U':{i=4;break;}
}
if(i>=0)
num[i]++;
}
}
将n个数按输入顺序的逆序排列,用函数实现。(指针)
#include
void re(float *p,int n)
{
float temp;
int i;
for(i=0;i<=n/2;i++)
{
temp=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=temp;
}
for(i=0;i
printf("\n");
}
int main()
{
int i,n;
float a[30];
float *p=a;
scanf("%d",&n);
for(i=0;i
re(p,n);
return 0;
}
2.使用函数计算素数个数并求和
#include
#include
int prime(int m);
int main(int argc,char const *argv[])
{
int m,n,i;
int sum=0,count=0;
while(1)
{
scanf("%d%d",&m,&n);
if(m>=1&&m<=500&&n>=1&&n<=500&&m<=n)
break;
}
for(i=m;i<=n;i++)
{
if(prime(i))
{
count++;
sum+=i;
}
}
printf("%d和%d之间有%d个素数,和为%d\n",m,n,count,sum);
return 0;
}
int prime(int m)
{
int i;
int ret=1;
if(m==1)
ret=0;
for(i=2;i<=sqrt(m);i++)
{
if(m%i==0)
{
ret=0;
break;
}
}
return ret;
}
写一函数,求一个字符串的长度。(指针)#include
#include
void fix(char *p)
{
int len=0;
while (p[len]!='\0')
{
len++;
}
printf("len=%d",len);
}
int main()
{
char a[20];
gets(a);
fix(a);
return 0;
}
有一个字符串包含N个字符,写一个函数,将此字符串从第M个字符开始的全部字符复制到成一个字符串中。(指针)#include
int main()
{
void c_m(char*p1,char*p2,int m);
char str1[100],*p1=str1,str2[100],*p2=str2;
int m;
gets(p1);
printf("%s\n",p1);
scanf("%d",&m);
c_m(p1,p2,m);
printf("\n%s",p2);
return 0;
}
void c_m(char *p1, char *p2, int m)
{
int i;
char *temp=p1+m-1;
for(;*temp!='\0';)
{
*p2++ = *temp++;
}
}
输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。(指针)#include
int main()
{
char a[30];
char *p;
int i=0,j=0,m=0,n=0,k=0;
p=a;
gets(a);
while(*p!='\0')
{
if(*p>='A'&&*p<='Z')
{
i++;
}
else if(*p>='a'&&*p<='z')
{
j++;
}
else if(*p>='0'&&*p<='9')
{
m++;
}
else if(*p==' ')
{
n++;
}
else
{
k++;
}
p++;
}
printf("大写字母:%d\n小写字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",i,j,m,n,k);
return 0;
}
写一个函数,将一个3*3的整形矩阵转置。(指针)#include
void trans(int (*s)[3], int x, int y);
int main()
{
int a[3][3], *p, i, j;
for(p=*a;p<*a+9;scanf("%d", p++));
trans(a,3,3);
for(i=0;i<3;i++)
for(j=0;j<3;printf("%d",*(*(a+i)+j++)));
return 0;
}
void trans(int(*s)[3],int x,int y)
{
int i,j,t;
for(i=0;i
将n个数按输入顺序的逆序排列,用函数实现。(指针)#include
void re(float *p,int n)
{
float temp;
int i;
for(i=0;i<=n/2;i++)
{
temp=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=temp;
}
for(i=0;i
printf("\n");
}
int main()
{
int i,n;
float a[30];
float *p=a;
scanf("%d",&n);
for(i=0;i
re(p,n);
return 0;
}
节假日期间某单位安排值班,单位有A、B、C、D、E、F、G七位值班人员,在一星期内(星期一至星期天)每人要轮流值班一天。现 在已知: A值班人员比C值班人员晚一天值班;#include
#include
int a[8];
char *day[]={"","M","TU","W","TH",
"F","SA","SU"};
int main()
{
int i,j,t;
a[4]=6;
for(i=1;i<=3;i++)
{
a[i]=2;
if(!a[i+3])
a[i+3]=7;
else
{
a[i]=0;
continue;
}
for(t=1;t<=3;t++)
{
if(!a[t])
a[t]=5;
else
continue;
if(!a[t+2])
a[t+2]=4;
else
{
a[t]=0;
continue;
}
for(j=5;j<7;j++)
{
if(!a[j])
a[j]=3;
else
continue;
if(!a[j+1])
a[j+1]=1;
else
{
a[j]=0;
continue;
}
for(i=1;i<=7;i++)
printf("%c is %s\n",'A'+a[i]-1,day[i]);
exit(0);
}
}
}
}
使用函数计算素数个数并求和#include
#include
int prime(int m);
int main(int argc,char const *argv[])
{
int m,n,i;
int sum=0,count=0;
while(1)
{
scanf("%d%d",&m,&n);
if(m>=1&&m<=500&&n>=1&&n<=500&&m<=n)
break;
}
for(i=m;i<=n;i++)
{
if(prime(i))
{
count++;
sum+=i;
}
}
printf("%d和%d之间有%d个素数,和为%d\n",m,n,count,sum);
return 0;
}
int prime(int m)
{
int i;
int ret=1;
if(m==1)
ret=0;
for(i=2;i<=sqrt(m);i++)
{
if(m%i==0)
{
ret=0;
break;
}
}
return ret;
}