C语言.docx

上传人:b****5 文档编号:11976817 上传时间:2023-04-16 格式:DOCX 页数:34 大小:25.56KB
下载 相关 举报
C语言.docx_第1页
第1页 / 共34页
C语言.docx_第2页
第2页 / 共34页
C语言.docx_第3页
第3页 / 共34页
C语言.docx_第4页
第4页 / 共34页
C语言.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言.docx

《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(34页珍藏版)》请在冰豆网上搜索。

C语言.docx

C语言

1

(1)设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。

#include

voidmain()

{

      intx,y,z,temp;

      printf("Inputx,y,z=");

      scanf("%d,%d,%d",&x,&y,&z);

      if(x>y)

      {

        temp=x;x=y;y=temp;

       }

       if(x>z)

       {

         temp=x;x=z;z=temp;

        }

       if(y>z)

       {

         temp=y;y=z;z=temp;

        }

        printf("%d,%d,%d\n",x,y,z);

}

1

(2)求1+3+5+7``````````````+95+97+99的和。

#include

voidmain()

{

 ints,i;

 s=0;

 for(i=1;i<100;i=i+2)

 {

  s+=i;

 }

 printf("1+3+5+.......+99=%d\n",s);

}

1.(3)写一个函数,从建安输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。

(注:

从主函数输入整数)

#include

#include

voidmain()

{

 inta,m,i=2;

 scanf("%d",&a);

  m=sqrt(a);

 for(i=2;i<=m;i++)

  if(a%i==0)

   break;

  if(i>m)

   printf("此整数是素数");

  else

   printf("此整数不是素数");

}

2

(1)连续输入10个整数.将这10个数逆序输出,然后求出这10个数的和并输出。

#include

main()

{

 shorti,a[10],total=0;

 printf("请连续输入10个整数:

");

 for(i=0;i<10;i++)

  scanf("%d",&a[i]);

 printf("这10个整数逆序输出得:

\n");

 for(i=9;i>=0;i--)

  printf("%5d",a[i]);

 for(i=0;i<10;i++)

  total=total+a[i];

 printf("\n这10个整数的和为:

%d\n",total);

}

2

(2)输入N个国家的英文名,要求按字母先后顺序排列,并按照顺序输出。

#include

#include

intmain()

{

   charstr[100][20],t[20];

   inti,j,n;

 printf("Inputthenumberofcountries:

\n");

    scanf("%d",&n);

    printf("Input%dcountries,please!

\n",n);

    for(i=0;i

    scanf("%s",str[i]);

    for(i=0;i

  for(j=i+1;j

   if(strcmp(str[i],str[j])>0)

   {

    strcpy(t,str[i]);

    strcpy(str[i],str[j]);

    strcpy(str[j],t);

   }

   for(i=0;i

                 printf("%s\n",str[i]);

 }

2(3)某年级共有4个班,每班各有30名学生,有6个科目的考试成绩。

求各班每个学生

的平均成绩并输出。

#include

#defineN14

#defineN230

#defineN36

main()

{

 floatscore[N1][N2][N3],studav[N1][N2];

 inti,j,k;

 floatsum;

 for(i=0;j

  for(j=0;j

   for(k=0;k

   {

    printf("请输入%d班学号为%d的学生的科目%d成绩"

     "score[%d][%d][%d]:

",i+1,j+1,k+1,i,j,k);

     scanf("%f",&score[i][j][k]);

   }

   for(i=0;j

    for(j=0;j

    {

     sum=0;

     for(k=0;k

      sum=sum+score[i][j][k];

     studav[i][j]=sum/N3;

     printf("%d班学号为%d的学生的平均成绩studav[%d][%d]:

"

      "%f\n",i+1,j+1,i,j,studav[i][j]);

    }

}

3

(1)求从键盘上输入10个数据(实数)中的最大值,并求和。

#include

intmain()

{

 inta[10],sum=0;

 for(inti=0;i<10;i++)

 {

  scanf("%d",&a[i]);

  sum+=a[i];

 }

 for(intj=1;j<10;j++)

 {

  if(a[0]

   a[0]=a[j];

 }

  printf("%d%d\n",sum,a[0]);

}

3

(2)给出三角形的三边A,B,C,求三角形的面积。

#include

#include

main()

{

 floata,b,c,p,s;

 scanf("%f%f%f",&a,&b,&c);

 if(a+b-c>0&&b+c-a>0&&a+c-b>0)

 {

  p=(a+b+c)/2;

  s=sqrt(p*(p-a)*(p-b)*(p-c));

  printf("%f\n",s);

 }

 else{

  printf("不能构成三角形!

");

 }

}

3(3)编写程序求一个字符串的第n个字符开始,长度为m的子串。

#include

main()

{

 chars[100];

 intn,m;

 gets(s);

 scanf("%d%d",&n,&m);

 for(inti=n-1,k=0;k

  printf("%c",s[i]);

 printf("\n");

}

4

(1)猜数游戏,加入设定一个整数m=123,然后让其他人从键盘上猜该数字,如果才对,输出"RIGHT",如果猜错,则输出"WRONG",并且指出审定的数字比输入的数字大还是小。

#include

voidmain()

{

 intn,m;

 m=123;

 do

 {

  printf("请输出你猜测的数字:

");

  scanf("%d",&n);

  if(n

   printf("您输入的数字小了!

\n");

  elseif(n>m)

   printf("您输入的数字大了!

\n");

  else

   printf("恭喜你答对了!

\n");

 }

 while(n!

=m);

}

4

(2)编写程序,用于统计从键盘输入的字符串中的原音字母(a,A,e,E,i,I,o,O,u,U)的个数。

#include

voidmain()

{

 intn=0;

 chars[100];

 printf("请输入需要统计的的字段:

\n");

 gets(s);

 for(inti=0;s[i]!

='\0';i++)

  if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'||s[i]=='I'||s[i]=='o'||s[i]=='O'||

   s[i]=='u'||s[i]=='U')

   n++;

  printf("%d\n",n);

}

4(3)编写程序求1-100中所有同构数的个数。

(一个自然数的平方的末几位与改数相同时该数就是同构数)

#include

main()

{

 intx;

 for(x=1;x<=100;x++)

  if(x*x%10==x||x*x%100==x)

   printf("%5d",x);

  printf("\n");

}

5

(1)从键盘接收一整数x,判断X是否为含有因子7的正整数,如果是泽输出"YES",否泽输出"NO"。

#include

voidmian()

{

 intx;

 printf("输入一个整数x=");

   scanf("%d",&x);

 if(x%7==0)

  printf("YES\n");

 else

  printf("NO\n");

}

5

(2)编写一个密码检测的程序,在程序执行时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数输入密码和标准密码是否相等,若相等,则显示“口令正确”,并并专区执行后继程序;若不相等,重新输入,3次不都不相等泽种植程序的执行。

要求自己编写一个字符串比较函数,而不使用系统的STRCMP()函数。

#include

#include

boolcmp(chars[20])

{

 charmi[]={"helloword!

"};

 intlen=strlen(mi);

 if(len==strlen(s))

  for(inti=0;i

   if(mi[i]!

=s[i])

    returnfalse;

   elsereturntrue;

   returnfalse;

}

intmain()

{

 chars[20],n=1;

 do

 {

  gets(s);

  if(cmp(s))

  {

   printf("口令正确");

   break;

  }

  n++;

 }

 while(n<=3);

}

5(3)编写首先求s=1!

+2!

+3!

+......+10!

.

#include

main()

{

 longints=0,p=1;

 intn;

 for(n=1;n<=10;n++)

 {

  p=p*n;

  s=s+p;

 }

 printf("%1d\n",s);

}

6

(1)编写程序,等对一给丁的3*4的矩阵,求出其中的最大元素值极其所在的行列号。

#include

voidmain()

{

 inta[3][4],b[12],i,j,k;

 for(i=0;i<3;i++)

   for(j=0;j<4;j++)

 {

  printf("a[%d][%d]=",i,j);

    scanf("%d",&a[i][j]);

 }

 for(k=0,i=0;i<3;i++)

   for(j=0;j<4;j++,k++)

  {

  b[k]=a[i][j];

 }

 for(i=0;i<11;i++)

 for(j=0;j<11;j++)

 {

  if(b[j]>b[j+1])

  {

   inttemp;

   temp=b[j];

   b[j]=b[j+1];

   b[j+1]=temp;

  }

 }

 for(i=0;i<3;i++)

  for(j=0;j<4;j++)

  {

   if(b[11]==a[i][j])

   {

    printf("最大元素在第%d行,第%d列\n",i+1,j+1);

   }

  }

  printf("这个元素为:

%d\n",b[11])}

6

(2)求2000中含有的5的因子的个数。

#include

intfun(intn)

{

 ints=0,k;

 for(k=2;k<=n;k++)

  if(k%5==0)

   s++;

  returns;

}

main()

{

 printf("%d\n",fun(2000));

}

6(3)求任意一个小于65535的正整数的逆序数,并判断概述是否为回文数。

#include

voidmain()

{

 inta,b,c,d,e,num,num1;

 printf("请输入一个小于65535的正整数:

");

 scanf("%d",&num);

 a=num/10000;

 b=num%10000/1000;

 c=num%1000/100;

 d=num%100/10;

 e=num%10;

 if(num>9999)

 {

  printf("逆序后为:

%d%d%d%d%d\n",e,d,c,b,a);

  num1=e*10000+d*1000+c*100+b*10+a;

  if(num1==num)

   printf("改数为回文数!

\n");

 }

 elseif(num>999)

 {

  printf("逆序后为:

%d%d%d%d\n",c,d,c,b);

     num1=e*1000+d*100+c*10+b;

    if(num1==num)

  printf("改数为回文数!

\n");

 }

    elseif(num>99)

 {

  printf("逆序后为:

%d%d%d\n",e,d);

  num1=e*100+d*10+c;

  if(num1==num)

   printf("改数为回文数!

\n");

 }

 elseif(num>9)

 {

  printf("逆序后为:

%d%d\n",e,d);

  num1=e*10+d;

  if(num1==num)

  printf("改数为回文数!

\n");

 }

 else

 {

  printf("逆序后为:

%d\n",e);

  printf("改数为回文数!

\n");

 }

}

 

7

(1)给一个不多余5位的正整数,要求:

求出其位数,并分别打印出每一位数字,最后安妮需打印出这个正整数。

#include

voidmain()

{

 inta,b,c,d,e,num;

 printf("请输入一个不多余5位的正整数:

");

 scanf("%d",&num);

 a=num/10000;

 b=num%10000/1000;

 c=num%1000/100;

 d=num%100/10;

 e=num%10;

 if(num>9999)

         printf("逆序后为:

d%d%d%d%d\n",e,d,c,b,a);

 elseif(num>999)

          printf("逆序后为:

d%d%d%d\n",e,d,c,b);

   elseif(num>99)

  printf("逆序后为:

d%d%d\n",e,d,c);

 elseif(num>9)

  printf("逆序后为:

%d%d\n",e,d);

   else

  printf("逆序后为:

%d\n",e);

}

7

(2)求一个4行4列矩阵主对角线元素之和。

#include

intmain()

{

 inti,j,a[4][4];

 for(i=0;i<4;i++)

  for(j=0;j<4;j++)

   scanf("%d",&a[i][j]);

  printf("%d\n",a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[0][3]+

   a[1][2]+a[2][1]+a[3][0]);

}

7(3)编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。

#include

#defineN20

intstrcmp(charstr1[],charstr2[])

{

 inti=0;

 while(str1[i]==str2[i]&&str1[i]!

='\o'&&str2[i]!

='\o')

  i++;

 returnstr1[i]-str2[i];

}

voidmain()

{

 charstr1[N],str2[N];

 printf("请输入第一个字符串:

");

 gets(str1);

 printf("请输入第二个字符串:

");

 gets(str2);

 if(strcmp(str1,str2)==0)

  printf("字符串相同!

\n");

 else

  printf("字符串不同!

\n");

}

8

(1)输出100-200之间,能被3整除但不能被7整除的数。

#include

voidmain()

{

     inti;

     for(i=100;i<=200;i++)

        {

           if((i%3==0)&&(i%7!

=0))

           printf("%d\t",i);

          }

}

8

(2)将一个月份数字转换证月份的英文名称.

#include

voidmain()

{

 char

  *str[]={"January","February","March","April","May","June","July","Augest","September","October","November","December"};

 char**p=str;

 inti;

 scanf("%d",&i);

 printf("%s\n",p[i-1]);

}

8(3)编写一个程序,用简单的选择排序实现对5个整数的排序(从大到小),排序思路:

首先从n个整数中选出数值

最大的证书,将他交换到第一个元素位置,在从剩余的N-1个整数中选出数值最大的整数,将他交换到第二个

元素位置上,抽工夫上述操作,知道排序成功。

#include

#defineN5

voidsmp(intr[],intn)

{

 inti,j,k;

inttemp;

for(i=0;i

{

 for(j=i+1;j

  if(r[i]

  {

   temp=r[i];

   r[i]=r[j];

   r[j]=temp;

  }

}

}

main()

{

 inti,a[N];

 printf("请输入%d个整数:

\n",N);

 for(i=0;i

  scanf("%d",&a[i]);

 smp(a,N);

 printf("排列后的输出为:

\n");

 for(i=0;i

  printf("%5d",a[i]);

}

9

(1)编写一个程序,实现从键盘输入一组整数,求该组整数的平均值,并将大于平均值的整数输出

#include

main()

{

 intsum=0,i,j=0,a[10],b[10];

 for(i=0;i<10;i++)

 {

  scanf("%d",&a[i]);

  sum+=a[i];

 }

 for(i=0;i<10;i++)

 {

  if(a[i]>sum/10)

  {

   b[j]=a[i];

   j++;

  }

 }

 for(i=0;i

  printf("%d\n",b[i]);

}

9

(2)编写程序,输形状为直角三角形的九九乘法表。

#include

main()

{

 inta,b;

 for(a=1;a<10;a++)

 {

  for(b=1;b<=a;b++)

  

   printf("%d*%d=%d",a,b,a*b);

   if((a*b)==(b*a))

    printf("\n");

  

  }

  

}

9(3)编写一个程序,判断某字符串中出现的次数,字符串及主串均从键盘输入。

#include

#include

main()

{

 chars[100],ch[10];

 intn=0;

 gets(s);

 gets(ch);

 intlen1=strlen(s),len2=strlen(ch);

 for(inti=0;i

  if(s[i]==ch[0])

  {

   intm=1;

   for(intj=1;j

    if(s[i+j]==ch[j])

     m++;

    if(m==len2)

     n++;

  }

  printf("%d\n",n);

}

10

(1)从键盘输入一个学生的成绩,判断学生成绩登记,如果成绩在90-100,等级为A,成绩在80-89,等级为B,成绩在70-79,等级为C,成绩在60-69,等级为D,成绩小于60,等级为E.

#include

voidmain()

{

 intscore;

 printf("请输入该生的成绩:

");

 scanf("%d",&score);

 if(score>89)

  printf("等级A\n");

 elseif(score>79)

  printf("等级B\n");

 elseif(score>69)

  printf("等级C\n");

 elseif(score>59)

  printf("等级D\n");

 else

  printf("等级E\n");

}

10

(2)输入100-1000之间的全部素数。

#include

voidmain()

{

 intn,i,m;

 for(n=10;n<=1000;n++)

 {

  for(i=2;i

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1