复试编程训练六

逃离我推掉我的手 2023-07-17 07:25 92阅读 0赞

51.将字符数组s2中的全部字符复制到s1中,复制时’\0’也要复制过去,后面的不复制。

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. int i;
  6. char str1[20],str2[20];
  7. gets(str2);
  8. for(i=0; i<strlen(str2); i++)
  9. str1[i]=str2[i];
  10. puts(str1);
  11. printf("\n");
  12. return 0;
  13. }

运行结果:

20200321134209105.PNG

52.输入10个数,要求输出其中值最大的元素和该数是第几个数。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int max,maxi,i,a[10];
  5. for(i=0; i<10; i++)
  6. scanf("%d",&a[i]);
  7. max=a[0];
  8. maxi=0;
  9. for(i=0; i<10; i++)
  10. if(a[i]>max)
  11. {
  12. max=a[i];
  13. maxi=i;
  14. }
  15. printf("其中值最大的元素为%d,为第%d个元素",max,maxi+1);
  16. printf("\n");
  17. return 0;
  18. }

运行结果:

2020032113475811.PNG

53.用递归求

\\sum i^\{^\{2^\{^\{\}\}\}\}(i=1~100)

  1. #include <stdio.h>
  2. int f(int n)
  3. {
  4. if(n==1)
  5. return 1;
  6. else
  7. return f(n-1)+n*n;
  8. }
  9. int main()
  10. {
  11. int n;
  12. scanf("%d",&n);
  13. printf("%d",f(n));
  14. printf("\n");
  15. return 0;
  16. }

运行结果:

20200321135516433.PNG

54.一个一维数组,内放10个学生成绩,求出平均分,最高分,最低分。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a[10],max,min;
  5. float sum=0;
  6. for(int i=0; i<10; i++)
  7. scanf("%d",&a[i]);
  8. max=min=a[0];
  9. for(int i=0; i<10; i++)
  10. {
  11. if(a[i]>max)
  12. max=a[i];
  13. if(a[i]<min)
  14. min=a[i];
  15. sum+=a[i];
  16. }
  17. printf("Average=%.2f\nMax=%d\nMin=%d",sum/10.0,max,min);
  18. printf("\n");
  19. return 0;
  20. }

运行结果:

20200321140330909.PNG

55.写个函数,使二维数组(3*3)转置,即行列互换

  1. #include <stdio.h>
  2. #define N 3
  3. int main()
  4. {
  5. int i,j,a[N][N],temp;
  6. for(i=0; i<N; i++) //输入原矩阵
  7. for(j=0; j<N; j++)
  8. scanf("%d",&a[i][j]);
  9. printf("原矩阵为:\n");
  10. for(i=0; i<N; i++) //输出原矩阵
  11. {
  12. for(j=0; j<N; j++)
  13. printf("%d ",a[i][j]);
  14. printf("\n");
  15. }
  16. for(i=0; i<N; i++) //转置矩阵
  17. for(j=0; j<i; j++)
  18. {
  19. temp=a[i][j];
  20. a[i][j]=a[j][i];
  21. a[j][i]=temp;
  22. }
  23. printf("转置后得矩阵:\n");
  24. for(i=0; i<N; i++) //输出转置后的矩阵
  25. {
  26. for(j=0; j<N; j++)
  27. printf("%d ",a[i][j]);
  28. printf("\n");
  29. }
  30. printf("\n");
  31. return 0;
  32. }

运行结果:

2020032114141888.PNG

56.使输入的字符串反序

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. int n;
  6. char s,str[20];
  7. gets(str);
  8. n=strlen(str);
  9. for(int i=0; i<n/2; i++)
  10. {
  11. s=str[i];
  12. str[i]=str[n-i-1];
  13. str[n-i-1]=s;
  14. }
  15. puts(str);
  16. printf("\n");
  17. return 0;
  18. }

运行结果:

20200321141932695.PNG

57.将字符串中的元音字母复制到另一个字符串中,然后输出

  1. #include <stdio.h>
  2. void fuzhi(char a[],char b[])
  3. {
  4. int i,j;
  5. for(i=0,j=0; a[i]!='\0'; i++)
  6. if(a[i]=='a'||a[i]=='o'||a[i]=='e'||a[i]=='i'||a[i]=='u'||a[i]=='A'||a[i]=='O'||a[i]=='E'||a[i]=='I'||a[i]=='U')
  7. b[j++]=a[i];
  8. b[j]='\0';
  9. }
  10. int main()
  11. {
  12. char a[20],b[20];
  13. gets(a);
  14. fuzhi(a,b);
  15. puts(b);
  16. printf("\n");
  17. return 0;
  18. }

运行结果:

20200321144951884.PNG

58.输入一个四位数字,输出这四个数字的字符,但每两个数字间用空格隔开

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i,number;
  5. scanf("%d",&number);
  6. int a[4];
  7. char s[4];
  8. a[0]=number/1000;
  9. a[1]=number/100%10;
  10. a[2]=number%100/10;
  11. a[3]=number%10;
  12. for(i=0; i<4; i++)
  13. {
  14. s[i]=a[i]+48;
  15. printf("%c ",s[i]);
  16. }
  17. printf("\n");
  18. return 0;
  19. }

运行结果:

20200321145514542.PNG

59.输入一个八进制数,输出相应的十进制数

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. int main()
  5. {
  6. char num[10];
  7. int i,n,sum;
  8. gets(num);
  9. sum=0;
  10. n=strlen(num);
  11. for(i=n-1; i>=0; i--)
  12. if(num[i]>='0'&&num[i]<='7')
  13. sum+=(num[i]-'0')*pow(8,n-i-1);
  14. printf("八进制:%s\n十进制:%d",num,sum);
  15. printf("\n");
  16. return 0;
  17. }

运行结果:

20200321151738971.PNG

60.输入一个十六进制数,输出相应的十进制数

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. int ff(char shu[])
  5. {
  6. int i,n,sum;
  7. n=strlen(shu);
  8. sum=0;
  9. for(i=n-1; i>=0; i--)
  10. {
  11. if(shu[i]>='0'&&shu[i]<='9')
  12. sum+=(shu[i]-'0')*pow(16,n-i-1);
  13. else if(shu[i]>='a'&&shu[i]<='f')
  14. sum+=(shu[i]-'a'+10)*pow(16,n-i-1);
  15. else if(shu[i]>='A'&&shu[i]<='F')
  16. sum+=(shu[i]-'A'+10)*pow(16,n-i-1);
  17. }
  18. return sum;
  19. }
  20. int main()
  21. {
  22. char num[10];
  23. gets(num);
  24. int sum=ff(num);
  25. printf("十六进制:%s\n十进制:%d",num,sum);
  26. printf("\n");
  27. return 0;
  28. }

运行结果:

20200321150858503.PNG

发表评论

表情:
评论列表 (有 0 条评论,92人围观)

还没有评论,来说两句吧...

相关阅读

    相关 复试编程训练

    41.给一个百分制成绩,要求输出等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为