VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 513|回复: 0

[分享] C语言网编程练习普及题

[复制链接]
66_avatar_middle
最佳答案
0 
在线会员 发表于 2021-5-6 20:33:53 | 显示全部楼层 |阅读模式
本帖最后由 三重岁月 于 2021-5-6 20:38 编辑

#### 题目 1009: [编程入门]数字的处理与判断

时间限制: 1Sec 内存限制: 128MB 提交: 41136 解决: 20275

题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

输入

一个不大于5位的数字

输出

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

样例输入

```
12345
```

样例输出

```
5
1 2 3 4 5
54321
```

C语言程序1:


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

复制代码


#### 题目 1011: [编程入门]最大公约数与最小公倍数

时间限制: 1Sec 内存限制: 128MB 提交: 31876 解决: 17643

题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入

两个整数

输出

最大公约数,最小公倍数

样例输入

```
5 7
```

样例输出

```
1 35
```

C语言程序1:


  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a,b;
  5.     scanf("%d %d",&a,&b);
  6.     int x=a,y=b,z;
  7.     //y!=0 <==> y 布尔值在C中,除了0为no,其余均为yes
  8.     while(y!=0){
  9.         z=x%y;
  10.         x=y;
  11.         y=z;
  12.     }
  13.     printf("%d %d",x,a*b/x);
  14.     return 0;
  15. }

复制代码

#### 题目 1014: [编程入门]阶乘求和

时间限制: 1Sec 内存限制: 128MB 提交: 61656 解决: 14371

题目描述

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

输入

n

输出

Sn的值

样例输入

```
5
```

样例输出

```
153
```

C


  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     long long int sum = 0, t = 1;
  6.     scanf("%d", &n);
  7.     for (int i = 1; i <= n; i++)
  8.     {
  9.         t *= i;
  10.         sum += t;
  11.     }
  12.     printf("%lld", sum);
  13. }
复制代码


#### 题目 1017: [编程入门]完数的判断

时间限制: 1Sec 内存限制: 128MB 提交: 24223 解决: 11548

题目描述

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子

输入

N

输出

? its factors are ? ? ?

样例输入

```
1000
```

样例输出

```
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248
```

C

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a,b;
  5.     long long n,i;
  6.     scanf("%lld",&n);
  7.     for(a=6;a<=n;a++){
  8.         //if (a % 10 != 6 && a % 10 != 8)      continue;
  9.         int s[999]={0};
  10.     int *p=s;
  11.     for(i=1;i<=a/2;i++){
  12.         if(a%i==0) {
  13.         *++p=i;
  14.         s[0]+=i;
  15.       }
  16.     }
  17.     if(s[0]==a){
  18.         printf("%d its factors are",a);
  19.         for(p=&s[1];*p!=0;p++){
  20.             printf(" %d",*p);
  21.         }
  22.         printf("\n");
  23.       }
  24.     }
  25.     return 0;
  26.    
  27. }
复制代码


#### 题目 1023: [编程入门]选择排序

时间限制: 1Sec 内存限制: 128MB 提交: 23771 解决: 11215

题目描述

用选择法对10个整数从小到大排序。

输入

输入10个无序的数字

输出

排序好的10个整数

样例输入

```
4 85  3 234 45 345 345 122 30 12
```

样例输出

```
3
4
12
30
45
85
122
234
345
345
```


C



  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a[11],b;
  5.     int i,j,n=10,max;
  6.     for(i=0;i<n;i++)  scanf("%d",a+i);

  7.    for(i=0;i<n-1;i++) {
  8.        max=0;
  9.       for(j=0;j<n-i;j++){
  10.         if(a+i>a+max) max=i;
  11.      }
  12.      b=a[n-i-1];
  13.      a[n-i-1]=a[max];
  14.      a[max]=b;

  15.    }
  16.     for (i = 0; i <n; i++)
  17.         printf("%d\n", a[i]);
  18.     return 0;

  19. }
复制代码


#### 题目 1044: [编程入门]三个字符串的排序

时间限制: 1Sec 内存限制: 128MB 提交: 12364 解决: 6302

题目描述

输入三个字符串,按由小到大的顺序输出

输入

3行字符串

输出

按照从小到大输出成3行

样例输入

```
cde
afg
abc
```

样例输出

```
abc
afg
cde
```

C


  1. #include<stdio.h>
  2. #include<string.h>

  3. int main()
  4. {
  5.     char a[3][128], tmp[128];
  6.     int i, j;
  7.     for(i=0; i<3; i++)
  8.     {
  9.         scanf("%s", a[i]);
  10.     }
  11.     for(i=0; i<3; i++)
  12.     {
  13.         for(j=i+1; j<3; j++)
  14.         {
  15.             if(strcmp(a[i], a[j]) > 0)
  16.             {
  17.                 memset(tmp, 0, sizeof(tmp));
  18.                 strcpy(tmp, a[i]);
  19.                 strcpy(a[i], a[j]);
  20.                 strcpy(a[j], tmp);
  21.             }
  22.         }
  23.     }
  24.     for(i=0; i<3; i++)
  25.     {
  26.         printf("%s\n", a[i]);
  27.     }
  28.     return 0;
  29. }
复制代码


#### 题目 1047: [编程入门]报数问题

时间限制: 1Sec 内存限制: 128MB 提交: 9010 解决: 4763

题目描述

有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

输入

初始人数n

输出

最后一人的初始编号

样例输入

```
3
```

样例输出

```
2
```


  1. #include<stdio.h>
  2. #define n 100
  3. int main()
  4. {
  5.     int a[n]={0},b=0,i,num,k=0;
  6.     scanf("%d",&num);
  7.     a[0]=num;
  8.     for(i=1;i<num;i++) a[i]=i;
  9.     for(i=1;b<num-1;i++){
  10.         if(a[i%num]==0) continue;
  11.         k++;
  12.         if(k==3){
  13.             a[i%num]=0;
  14.             b++;
  15.             k=0;
  16.         }
  17.     }
  18.     for(i=0;i<num;i++) if(a[i]) printf("%d",a[i]);
  19.     return 0;
  20. }
复制代码









上一篇:浙大PTA第六章函数练习答案
下一篇:C学习之路的点滴记录---基础指针数组--大牛飘过
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-9-27 06:44

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表