本文最后更新于 789 天前,其中的信息可能已经过时,如有错误请发送邮件到 echobydq@gmail.com
这篇文章是一些关于 C 语言的简单入门题,相关刷题网站为:https://www.dotcpp.com/
给出一个不多于 5 位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为 321, 应输出 123
一个不大于 5 位的数字
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
| 输入: |
| 12345 |
| |
| 输出: |
| 5 |
| 1 2 3 4 5 |
| 54321 |
| #include<stdio.h> |
| |
| int main() |
| { |
| |
| int a[4],t,n,count=0,i=0; |
| scanf("%d",&t); |
| n=t; |
| while(t) |
| { |
| a[count]=t%10; |
| t/=10; |
| count++; |
| } |
| printf("%d\n",count); |
| for(i=count-1;i>0;i--) |
| { |
| printf("%d ",a[i]); |
| } |
| printf("%d\n",a[0]); |
| |
| while(n) |
| { |
| printf("%d",n%10); |
| n=n/10; |
| } |
| return 0; |
| } |
| |
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
一行字符,长度不超过 200
统计值
| 输入: |
| aklsjflj123 sadf918u324 asdf91u32oasdf/.';123 |
| |
| 输出: |
| 23 16 2 4 |
| #include<stdio.h> |
| int main() |
| { |
| int a=0,b=0,c=0,d=0; |
| char x; |
| while((x=getchar())!='\n') |
| { |
| if(x>='a'&&x<='z'||x>='A'&&x<='Z') |
| a++; |
| else if(x>='1'&&x<='9') |
| b++; |
| else if(x==' ') |
| c++; |
| else d++; |
| } |
| printf("%d %d %d %d",a,b,c,d); |
| return 0; |
| } |
| |
用简单素数筛选法求 N 以内的素数。
N
2~N 的素数
| 输入: |
| 100 |
| |
| 输出: |
| 2 |
| 3 |
| 5 |
| 7 |
| 11 |
| 13 |
| 17 |
| 19 |
| 23 |
| 29 |
| 31 |
| 37 |
| 41 |
| 43 |
| 47 |
| 53 |
| 59 |
| 61 |
| 67 |
| 71 |
| 73 |
| 79 |
| 83 |
| 89 |
| 97 |
| #include <stdio.h> |
| int main() |
| { |
| int i,j,n; |
| scanf("%d",&n); |
| for(i=2; i<n; i++) |
| { |
| for(j=2; j<i; j++) |
| { |
| if(i%j == 0) |
| { |
| break; |
| } |
| } |
| |
| if(j==i) |
| { |
| printf("%d\n",i); |
| } |
| |
| } |
| return 0; |
| } |
求一个 3×3 矩阵对角线元素之和。
矩阵
主对角线 副对角线 元素和
| 输入: |
| 1 2 3 |
| 1 1 1 |
| 3 2 1 |
| |
| 输出: |
| 3 7 |
| |
| |
| |
| #include <stdio.h> |
| int main() |
| { |
| int i=0,j=0; |
| int a[3][3]; |
| int sum1=0,sum2=0; |
| for(i=0; i<3; i++) |
| { |
| for(j=0; j<3; j++) |
| { |
| scanf("%d",&a[i][j]); |
| } |
| } |
| for(i=0; i<3; i++) |
| { |
| sum1 += a[i][i]; |
| } |
| |
| sum2 = a[0][2]+a[1][1]+a[2][0]; |
| |
| printf("%d %d",sum1,sum2); |
| } |
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
两个整数
最大公约数,最小公倍数
| |
| |
| |
| #include <stdio.h> |
| int main() |
| { |
| int a,b,c,d,t,m; |
| scanf("%d %d",&a,&b); |
| if(a<b) |
| { |
| t=a; |
| a=b; |
| b=t; |
| } |
| c = a%b; |
| d = a*b; |
| while(c != 0) |
| { |
| a = b; |
| b = c; |
| c = a%b; |
| } |
| m = d/b; |
| printf("%d %d",b,m); |
| } |
用迭代法求 平方根
公式:求 a 的平方根的迭代公式为: X [n+1]=(X [n]+a/X [n])/2 要求前后两次求出的差的绝对值少于 0.00001。 输出保留 3 位小数
X
X 的平方根
| #include <stdio.h> |
| #include <math.h> |
| int main() |
| { |
| int a; |
| double x1,x2=1.0; |
| scanf("%d",&a); |
| do{ |
| x1 = x2; |
| x2 = (x1+a/x1)/2; |
| }while(fabs(x1-x2)>=0.0001); |
| printf("%0.3lf",x2); |
| return 0; |
| } |
用冒泡法对 10 个整数从小到大排序。
输入 10 个无序的数字
排序好的 10 个整数
| 输入:4 85 3 234 45 345 345 122 30 12 |
| |
| 输出: |
| 3 |
| 4 |
| 12 |
| 30 |
| 45 |
| 85 |
| 122 |
| 234 |
| 345 |
| 345 |
| |
| #include <stdio.h> |
| int main() |
| { |
| int t,i=0,j=0; |
| int arr[10]; |
| for(i=0; i<10; i++) |
| { |
| scanf("%d",&arr[i]); |
| } |
| for(i=0; i<10; i++) |
| { |
| for(j=0; j<9-i; j++) |
| { |
| |
| if(arr[j]>arr[j+1]) |
| { |
| t = arr[j]; |
| arr[j] = arr[j+1]; |
| arr[j+1] = t; |
| } |
| } |
| } |
| for(j=0; j<10; j++) |
| { |
| printf("%d\n",arr[j]); |
| } |
| return 0; |
| } |
用选择法对 n 个整数从小到大排序。
选择输入数字字数 n,输入 n 个无序的数字
排序好的 n 个整数
| 输入: |
| 10 |
| 4 85 3 234 45 345 345 122 30 12 |
| |
| 输出: |
| 3 |
| 4 |
| 12 |
| 30 |
| 45 |
| 85 |
| 122 |
| 234 |
| 345 |
| 345 |
| #include <stdio.h> |
| int main(void) |
| { |
| int a[1001]; |
| int n,i,j,t; |
| scanf("%d",&n); |
| |
| for(i=0;i<n;++i) |
| scanf("%d",a+i); |
| |
| for(i=0;i<n-1;++i) |
| { |
| for(j=i+1;j<n;++j) |
| { |
| if(a[i]>a[j]) |
| { |
| t=a[i]; |
| a[i]=a[j]; |
| a[j]=t; |
| } |
| } |
| } |
| for(j=0;j<n;++j) |
| printf("%d\n",a[j]); |
| |
| return 0; |
| } |