//1.输入整数n,输出由2×n+1行2×n+1列组成的以下(n=2)的图案。
/*#include <stdio.h>
void main()
{ int n,j,k,space;
printf ("enter n!\n");  scanf("%d",&n);
space=40;for (j=0;j<=n;j++,space-=2)
{printf ("%*c",space,' ');
for (k=1;k<=2*j+1;k++)
printf (" *");printf ("\n");}space+=4;
for(j=n-1;j>=0;j--,space+=2)
{printf ("%*c",space,' ');
for(k=1;k<=2*j+1;k++)
printf (" *");printf ("\n");}}*/
//2.输入整数n(<10),输出以下形式(n=3)的数字排列图案。
/*#include <stdio.h>
void main()
{ int n,j,k,space;
printf ("enter n!\n");  scanf("%d",&n);
space=40;for (j=1;j<=n;j++,space-=2)
{printf ("%*c",space,' ');for (k=1;k<=j;k++)
printf ("%2d",k);for (k=j-1;k>=1;k--)
printf ("%2d",k);printf ("\n");}
space+=4;for(j=n-1;j>=1;j--,space+=2)
{printf ("%*c",space,' ');for(k=1;k<=j;k++)
printf ("%2d",k);for (k=j-1;k>=1;k--)
printf ("%2d",k);printf ("\n");}}*/
//3.输入正整数n,输出n行n列星号字符组成的三角形图案。以下是n等于4的图案。
/*#include <stdio.h>     
void  main( )
{int i, j,n;
printf ("请输入一个整数:");
scanf ("%d",&n);
for(i=1;i<=n;i++)                 
{  for (j=1;j<=n-i;j++)
printf ("  ");
for (j=1;j<=i;j++ )
printf (" *");                       
printf("\n");  }  }*/
//4.输入正整数n,输出由n行2×n-1列星号字符组成的三角形图案。以下是n等于3的图案。
/*#include <stdio.h>     
void  main( )
{ int i, j,n;    printf ("输入n的值:");      scanf ("%d",&n);
for(i=1;i<=n;i++)       
{      for (j=1;j<=n-i;j++)
printf(" ");  for (j=1;j<=2*i-1;j++ )
printf("*");    printf("\n"); }      }*/
//5.输入正整数你n,输出n行2×n-1列的空心三角形图案。以下是n等于4的图案。
/*#include <stdio.h>
void main()
{ int i,j,n;  printf ("输入n的值:");  scanf ("%d",&n);  for (i=1;i<=n;i++)
{ for(j=1;j<=2*n-1;j++)  if(i==1||i==j||j==2*n-i)
printf(" *");  else  printf("  "); printf("\n");  }  }*/
//6.输入正整数n,输出n行n列的空心四边形图案。以下是n等于5的图案。
/*#include <stdio.h>
void main()
{ int i,j,n;
printf ("输入n的值:");                       
scanf ("%d",&n);
for (i=1;i<=n;i++)
{  for(j=1;j<=n;j++) if(i==1||i==n||j==1||j==n)
printf(" *");else printf("  ");printf("\n");}}*/
//7.编写一个函数,已知参数n,在屏幕的中间显示一个用星号字符绘制的空心的三角形图案。例如,n=4,函数的显示的图案为:
/*#include <stdio.h>
void main()
{ int i,j,n;  printf ("输入n的值:");    scanf ("%d",&n);  for (i=1;i<=n;i++)
{    for(j=1;j<=n;j++)  if(i==n||j==1||i==j)    printf(" *");
else  printf("  ");  printf("\n");  }  }*/
//8.编写程序,列表输出整数1~10的平方和立方值。
/*#include <stdio.h>
void main()
{ int i=1,p,l;  printf("数字\t平方\t立方\n");
for (i=1;i<=10;i++)
{p=i*i;l=i*i*i;  printf ("%d\t%d\t%d\n",i,p,l); }  }*/
//9.求一个整数的十进制位数。
/*#include <stdio.h>
int digits(int n)
{  int c=0;
do { c++; n/=10;
}while (n);
return c;}
int main()
{int n;
printf("请输入一个整数:");
scanf ("%d",&n);
printf("整数%d共有%d为十进制位数字.\n",n,digits(n));
return 0;}*/
//10.判断一个十进制数是否为回文数。
/*#include <stdio.h>
void  main()
{  int sum=0;    int x;  int temp; 
printf("请输入一个整数:");
scanf("%d",&x);
temp=x; while(temp!=0)
{ sum=sum*10+temp%10;
temp=temp/10; }
if(sum==x)  printf("%d 和 %d 是一组回文数.\n",x,sum);
else    printf("%d 和 %d 不是一组回文数.\n",x,sum);}*/
//11.递归计算x的y次方。
/*#include <stdio.h>
int power(int x,int y)
{ if (y==0)  return 1;
return x*power(x,y-1);}
int main()
{ int x,y;
printf("请输入x(不等于0)和y:");
scanf ("%d%d",&x,&y);
printf("%d^%d=%d\n",x,y,power(x,y)); 
return 0;}*/
//12.输入一个正整数,用递归实现该整数的倒序输出。见书上112页例题5.18
/*#include<stdio.h>
void back(int n)
{  printf ("%d",n%10);
if (n<10)  return;  back(n/10);}
int main()
{  int x;
do{ printf ("请输入要倒序的正整数:");
scanf ("%d",&x);}  while (x<=0);
printf ("倒序数:");
back(x);printf ("\n");return  0;}*/
//13.编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数。
/*#include "stdio.h"
void main()
{int m,n,b[10],a[10],x=0,i;
for(i=0;i<10;i++)
b[i]=0;
printf("请输入一个整数:\n");
scanf("%d",&m);  printf("\n");
while(m)
{  n=m%10;  m/=10;
switch(n)
{  case 0:b[0]++;break;    case 1:b[1]++;break;    case 2:b[2]++;break;    case 3:b[3]++;break;
case 4:b[4]++;break;    case 5:b[5]++;break;    case 6:b[6]++;break;    case 7:b[7]++;break;
case 8:b[8]++;break;    case 9:b[9]++;break;    default:break;  }  }
for(i=0;i<10;i++)
printf("数字%d在整数中出现的次数为:%d\n",i,b[i]);
printf("\n");}*/
//14.编写一个程序,输出所有英文字符及它们的ASCII码值,其中代码值分别用八进制形式、十六进制形式和十进制形式输出。
/*#include <stdio.h>
int main()
{int  i,k=0;
for(i=31; i<127;i++)
{ if(k++%3==0)
printf("\n");  printf("%3c(%3o)(%3d)(%3x)",i,i,i,i);  }  printf("\n");return 0; }*/
//15.水仙花数是一个n(n>=3)位数字的数,它等于每个数字的n次幂之和。例如,153是一个水仙花数,153=13+53+33。试编写一个程序求小于999的所有水仙花数。
/*#include <stdio.h>
void main()
{ int i,j,k,n;
printf("水仙花数:");
for(n=100;n<=999;n++)
{  i=n/100; j=(n-i*100)/10;
k=n%10;if(n==i*i*i+j*j*j+k*k*k)
printf("%6d",n); } printf("\n");}*/
//16.编写一个程序,输入一个整数,逐位地输出整数的十进制数,要求位与位之间有一个空格符分隔。
/*#include <stdio.h>
void main ()
{  int j;  printf ("请输入一
个整数 :");
scanf ("%d",&j);
printf ("从个位起依次为:\n");
while(j)
{ printf ("%d\t",j%10);  j/=10;
}  printf ("\n"); }*/
//17.在数组的某个下标位置插入一个元素。
/*#include<stdio.h>
void main()
{ int i,n=10,x,k;  int a[11];  printf("请输入数组的前十个元素:");
for(i=0;i<10;i++)  scanf("%d",&a[i]);
printf("\n插入前数组a[]=");  for(i=0;i<10;i++)  printf("%3d",a[i]);
printf("\n请输入要插入的数,及要插入的下标位置:");
scanf("%d%d",&x,&k);
for(i=n-1;i>=k;i--)        a[i+1]=a[i];      a[k]=x;      n++;
printf("\n插入后的数组a[]=");  for(i=0;i<11;i++)    printf("%3d",a[i]);  printf("\n");}*/
//18.将数组的某个下标位置的元素从数组中删掉。
/*#include <stdio.h>
void main()
{ int i,k,m=10,a[100]; 
printf("请输入数组前十个元素的值:");  for(i=0;i<m;i++)  scanf("%d",&a[i]);
printf("\n删去之前的数组 a[i]=");  for(i=0;i<m;i++)  printf("%2d",a[i]);
printf("\n请输入要删除数的下标位置:");  scanf("%d",&k);
for(i=k;i<m;i++)  a[i]=a[i+1];    printf("\n删去后的数组a[i]=");
for(i=0;i<m-1;i++)    printf("%2d",a[i]);  printf("\n");}*/
//19. 在数组a[]的前n个元素中寻值等于变量key值的元素的下标。
/*#include <stdio.h>
#define n  10
void main ()
{  int a[n] ,i,j,m,key; 
char ans ;
for (i=0;i<n;i++)
a[i]=i*2;  printf("数组a[]=");  for (i=0;i<n;i++)
printf("%4d",a[i]);  printf ("\n");    while(1)
{    printf("\n请输入要查的数:"); 
scanf ("%d",&key);  i=0;j=n-1;
while (i<=j)
{  m=(i+j)/2;  if(key==a[m])break;
if (key>a[m])  i=m+1;  else  j=m-1; }  if (i<=j) 
printf("到,对应的下标是%d\n\n",m);
else    printf("无此数!\n\n");
printf("是否继续做查操作(Y/N)?");fflush(stdin);
scanf ("%c",&ans); fflush(stdin);
if (ans=='N'||ans=='n') break;  }}*/
//20.编写一个程序,输入3个实数,判断这些值能否作为一个三角形的三条边的长,如果能构成三角形,要求输出三角形的面积。
/*#include <stdio.h>
#include <math.h>
void main()
{ double a,b ,c,area,p;
printf("请输入三角形的三条边a,b,c: ");
scanf("%lf%lf%lf",&a,&b,&c);  if(c<b) {p=c;c=b;b=p;}
scanf输入整型数组
if(c<a) {p=a;a=c;c=p;} if(b<a) {p=b;b=a;a=p;}
if(a+b<=c) {  printf("错误,不能构成三角形\n ");
return; } p=(a+b+c)/2.0;
area=sqrt(p*(p-a)*(p-c)*(p-b));
printf("三角形的面积=%.2f\n ",area);}*/
//21.编写程序,按下面的公式计算自然对数底e的值。
/*#include <stdio.h>
void main()
{ double e,t,i;
e=0.0;t=1.0;i=1.0;
while(t>=1.0e-6)
{ e+=t;t/=i;i+=1.0; }
printf("e=%.6f\n",e);}*/
//22.编写程序,按如下公式计算圆周率π的近似值。
/*#include <stdio.h>
#include <math.h>
void main()
{ long i,j=1,s=1;
double pi=4,t=4;
for (i=1;fabs(t)>1e-6;i++)
{s=-s; t=s*4.0/(j+=2);pi+=t;}
printf("PI=%f\
n",pi);}*/
/
/23.编写输入正实数x,求平方不超过x的最大整数n,并输出。
/*#include <stdio.h>     
void  main( )
{int x,i,n=0;  printf ("请输入一个值:x=");
scanf("%d",&x); for(i=1;i<=x/2;i++) if(i*i<=x)  if(i>n)  n=i;
printf("最大的数是:n=%d\n",n);}*/
//24.回文整数是指正读和反读相同的整数,编写一个程序,输入一个整数,判断它是否是回文整数。
/*#include <stdio.h>
void main()
{ int  a,b,c=0;  printf ("请输入一个值 :");
scanf ("%d",&a);  b=a;
while (b!=0)
{  int d=b%10;    c=c*10+d;    b=b/10;  }
if (a==c)
{ printf ("%d 是回文数\n",a);
} else  printf ("%d 不是回文数\n",a);}*/
//25.编写一个程序,输出1~256十进制数等价的二进制、八进制和十六进制数值表。
/*#include <stdio.h>
void convert (int n,int k)
{  char a[100];    char b[]={'A','B','C','D','E','F'};
int i;    for (i=0;n;i++)
{  a[i]=n%k;  n/=k;    }
printf ("对应的%d进制数为: ",k);        for (i--;i>=0;i--)
if (a[i]<10)  printf ("%2d",a[i]); else printf ("%2c",b[a[i]-10]);
printf ("\n"); }
void main()
{  int n;    printf ("请输入一个十进制整数:");
scanf ("%d",&n);    convert (n,2);
convert (n,8);          convert (n,16);}*/
//26.写出判断某年为闰年的宏定义。
/*#include <stdio.h>
#define YEAR(x) ((x%4==0)&&(x%100!=0)||(x%400==0))?1:0 //用?:运算符就行了
int main()
{ int year;  printf ("请输入一个年份:");  scanf ("%d",&year); if (YEAR(year))
printf ("%d是闰年",year);    else      printf ("%d不是闰年",year);
printf ("\n");  return 0;  }*/
//27.写出从3个整数中出最大数的宏。
/*#include<stdio.h>
#define MAX2(A,B)((A)>(B)?(A):(B))
#define  MAX3(A,B,C)MAX2(MAX2((A),(B)),(C))
void main()
{ int x,y,z; printf ("请输入三个数:");
scanf ("%d%d%d",&x,&y,&z);
printf ("最大值为:%d\n",MAX3(x,y,z));}*/
/
/28.编写判断已知正整数是否是质数的函数,并利用该函数输出1000之内的所有质数。
/*#include<stdio.h>
int sushu(int n)
{int j;  for(j=2;j<=n-1;j++)
{ if(n%j==0) return 0;}  return 1;}
void  main(){
int j=0,i;  printf("1000以内的质数有:");
for(i=3;i<1000;i++)
{  if(sushu(i)==1)
{  printf("%d\t",i);  j++;  if(j%10==0)printf("\n");}  }  }*/
//29.字符串复制函数strcpy()。
/
*#include<stdio.h>
#include <string.h>
char s1[100],s2[100];
void strcpy(char *to,char *from)
{ while(*to++=*from++);}
int  main()
{ printf ("请输入字符序s1\n"); scanf("%s",s1); strcpy(s2,s1); printf("从s1复制的s2=%s\n",s2);
return 0;}*/
//30.两字符串比较函数strcmp()。
/*#include<stdio.h>
#include <string.h>
int strcmp(char *s,char *t)
{ while(*s==*t) {  if(*s=='\0')  return 0;  s++;t++; }
return  *s-*t;}
void main()
{  int h; char s[100],t[100]; printf ("请输入字符序s\n");  scanf("%s",s);
printf ("
请输入字符序t\n"); scanf("%s",t); h=strcmp(s,t);
if(h<0)  printf ("字符串s<t\n");  if(h==0)  printf ("字符串s==t\n");  if (h>0)  printf ("字符串s>t\n"); }*/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。