C语言经典题目
1.将一个数组中的值按逆序重新存放。
#include
#include
int main()
{ int i,j,l,t;
char a[10];
gets(a);
l=strlen(a);
for(i=0;i
#include
void main()
{ int change(int n);
char a[5];
gets(a);
int i,j=strlen(a),s=0,t;
for(i=0,t=j;i='0'&&a[i]<='9')
s+=(a[i]-'0')*change(j-1);
if(a[i]>='A'&&a[i]<='Z')
s+=(a[i]-55)*change(j-1);
}
printf("%5d",s);
}
int change(int n)
{ int i,j=1;
for(i=1;i<=n;i++)
j*=16;
return j;
}
3.给出年、月、日,计算该日是该年的第几天。
#include
#include
void main()
{ int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d,s=0,i;
printf("Input the year,month,date:\n");
scanf("%d,%d,%d",&y,&m,&d);
if((y%4==0&&y%100!=0)||y%400==0) a[2]++;
for(i=1;i
#include
void main()
{ void ant(char a[],char b[]);
char a[10],b[10];
scanf("%s",a);
ant(a,b);
printf("%s",b);
}
void ant(char a[],char b[]) { int i,n;
n=strlen(a);
for(i=0,n--;n>=0;i++,n--)
b[i]=a[n];
b[i]='\0';
}
5.输出10行杨辉三角形。
#include
int main()
{ int a[10][10];
int i,j;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{if(j==0||j==i) a[i][j]=1;
else a[i][j]=a[i-1][j]+a[i-1][j-1];}
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");}
}
6.用牛顿迭代法求方程的根。
#include
#include
void main()
{ float a,b,c,d;
float f,f1,x,x1;
float slt(float a,float b,float c,float d);
printf("Input the numbers:\n");
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
x=slt(a,b,c,d);
printf("The solution is %5.4f.\n",x); }
float slt(float a,float b,float c,float d)
{ float f,f1,x,x1;
x=1.5;
do{ x1=x;
f=((a*x1+b)*x1+c)*x1+d;
f1=(3*a*x1+2*b)*x1+c;
x=x-f/f1;}
while(fabs(x-x1)>1e-5);
return x;
}
7.给出一个不多于5位的正整数,
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
:求出它是几位数,分别输出每一位数字,按逆序输出各位数字。
#include
int main()
{ int m,n,t,a,b,c,d,e;
printf("Input the number:\n");
scanf("%d",&m);
if(m<10) printf("single digit\n");
else
if(m<100) printf("tens digit\n");
else
if(m<1000) printf("hunds digit\n");
else
if(m<10000) printf("thouds digit\n");
else
printf("tens thouds digit\n");
n=m/100000,d=m/10000,c=m/1000,b=m/100,a=m/10,e=m%10;
if(a==0)
printf("%d",m);
else
if(b==0) {t=10*e+a;printf("%d",t);}
else
if(c==0) { else
if(d==0) {t=1000*e+100*(a-10*b)+10*(b-10*c)+c;printf("%d",t);}
else
if(n==0) {t=10000*e+1000*(a-10*b)+100*(b-10*c)+10*(c-10*d)+d;printf("%d",t);}
}
8.输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
void main()
{ int m,n,a,b;
int cd(int m,int n);
printf("Input the numbers:\n");
scanf("%d,%d",&m,&n);
a=cd(m,n),b=m*n/a;
printf("%d,%d\n",a,b); }
int cd(int m,int n) { int t;
while(m%n!=0)
{t=m,m=n,n=t%n;
}
return n;
}
9.输出n阶魔方阵。(n为奇数)
#include
void main()
{ int a[50][50];
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++)
{ i--,j++;
if((i<1)&&(j>n)) {i+=2,j--;}
else {if(i<1) i=n;
if(j>n) j=1;}
if(a[i][j]==0) a[i][j]=k;
else {i+=2,j--,a[i][j]=k;}
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
printf("\n");}
}
10.用选择法对十个整数排序。
#include
int main()
{ int i,j,t,a[10];
printf("Input the numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;}
printf("The sorted numbers:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]); }
11.输入星型图案。
#include
void main()
{ int i,j;
for(i=1;i<5;i++)
{
for(j=0;j<=3-i;j++) printf(" ");
for(j=0;j<2*i-1;j++) printf("*");
printf("\n");
}
for(i=3;i>0;i--)
{ for(j=0;j<=3-i;j++) printf(" ");
for(j=0;j<2*i-1;j++) printf("*");
printf("\n");
}
}
12.十进制数转换成任意进制数(2、8、16) #include
void main()
{int changeB(int n);
int changeO(int n);
int changeH(int n);
int i,m,n;
scanf("%d,%d",&m,&n);
if(n==2) changeB(m);
else if(n==8) changeO(m);
else if(n==16) changeH(m);
}
int changeB(int n) { int i=0,j,k,a[10];
while(n)
{ a[i]=n%2;
n=n/2;
i++; }
for(j=i-1;j>=0;j--)
printf("%d",a[j]); }
int changeO(int n) { int i=0,j,k,a[10];
while(n)
{ a[i]=n%8;
n=n/8;
i++; }
printf("O");
for(j=i-1;j>=0;j--)
printf("%d",a[j]); }
int changeH(int n) { int i=0,j,k,a[10]; char Hen[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(n>0)
{a[i]=n%16;
n=n/16;
i++; }
printf("Ox");
for(j=i-1;j>=0;j--)
printf("%c",Hen[a[j]]); }
13.任意进制数转换成十进制数。
二进制
#include #include void main()
{int power(int n);
char a[10];
gets(a);
int i,j,l,s=0;
j=strlen(a);
for(i=0,l=j;i
#include
void main()
{int pow char a[10];
gets(a);
int i,j,l,s=0;
j=strlen(a);
for(i=0,l=j;i
#include
int main()
{ int change(int n);
char a[5];
gets(a);
int i,j=strlen(a),s=0,t;
for(i=0,t=j;i='0'&&a[i]<='9')
s+=(a[i]-'0')*change(j-1);
if(a[i]>='A'&&a[i]<='Z')
s+=(a[i]-55)*change(j-1);
}
printf("%5d",s);
}
int change(int n)
{ int i,j=1;
for(i=1;i<=n;i++)
j*=16;
return j;
}
14.编写一个程序,将两个字符串连接起来,不使用strcat函数。
#include
void main()
{char str1[20],str2[20]; gets(str1),gets(str2);
int i=0,j=0;
while (str1[i])
i++;
while (str2[j])
str1[i++]=str2[j++];
str1[i]='\0';
printf("%s\n",str1); }
15.输出1000以内的所有完数。
#include
void main()
{ int i,j,k,s;
for(i=2;i<1000;i++)
{s=0;
for(j=1;j<=i/2;j++)
{if(i%j==0)
s+=j;}
if(s==i)
{printf("\n%5d\n",i);
for(j=1;j<=i/2;j++)
if(i%j==0) printf("%5d",j);
}
}
}
16.编程实现输入一个数组,使最大的数与第一个元素交换,最小的数与最后一个元素交换,
并输出数组(用指针的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
)
不使用指针:
#include
void main()
{ int a[10],i,j,m,n,k,l,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
k=l=0,m=a[0],n=a[9];
for(i=1;i<10;i++)
{if(a[i]>m) m=a[i],k=i;
else if(a[i] void main()
{void max_min(int *a);
void output(int *a);
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max_min(a);
output(a);
}
void max_min(int *a) { int *m,*n,*p,*t,k,l;
p=a,t=a+10,m=&a[0],n=&a[9];
for(p=a+1;p*m) m=p ;
else if(*p<*n) n=p;}
k=*m,l=*n;
*p=a[0],a[0]=k,k=*p;
*p=a[9],a[9]=l,l=*p;
return ;
}
void output(int *a) { int *p;
for(p=a;p void main()
{void move(int *a,int n,int m);
int a[100],m,n,i; scanf("%d,%d",&n,&m); for(i=0;i0;i--)
{*p=*(p-1);p--;}
*a=arr;
}
}
18.求0—7所能组成的奇数个数。
#include void main()
{int i,j,k,s,sum=0,a[9];
a[1]=4,a[2]=28;
for(i=3;i<=8;i++)
{k=1,s=4;
for(j=1;j<=i-2;j++)
k*=8;
s*=k*7;
a[i]=s;
}
for(i=1;i<=8;i++)
sum+=a[i];
printf("%d",sum); }
19.验证#include #include
void main()
{ int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2) { for(c=2;c<=sqrt(b);c++) if(b%c==0) break; if(c>sqrt(b))
d=a-b;
else break;
for(c=2;c<=sqrt(d);c++) if(d%c==0) break; if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}