文章目录
- 前言
- 基础
- 1、求 100 之内自然数中最大的能被 17 整除的数。
- 2、输入年份,判断是否闰年。
- 3、计算并输出 200—400 之间不能被 3 整除的整数的和。
- 4、求 1-1/2+1/3-1/4+……+1/99-1/100 的值。
- 5、已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值。
- 6、输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数。
- 7、break continue 使用 break 和 continue 来分别显示一个 4 之后函数就不再打印 i。(i 的变化范围是 0~10)
- 8、写一段程序,输入 x,输出 y 值。 ①x<1,y=x;② 1≤x<10,y= 2x-1 ;③ x≥1,y=3x-11;
- 巩固
- 1、编程计算 1! +2! +3! + …… +10!的值。
- 2、编程计算 1*2*3+3*4*5+……+99*100*101 的值。
- 3、打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。 例如:153=1*1*1+5*5*5+3*3*3=1+125+27
- 4、输出 100 到 200 以内的所有素数(只能被本身或则 1 整除的数)。
- 5、用 1 元人民币兑换 5 分(20), 2 分(50), 1 分(100)的硬币共 50 枚, 每种 硬币至少 1 枚,问共有多少种兑换方案, 输出每一种方案三种硬币的数量。
- 6)※已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r) (1+r)(1+r),共 n 个(1+r).
- 7、※输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数, 掉该数 本身, 剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。 例如:第一个完全数是 6,它有约数 1、 2、 3、 6,除去它本身 6 外,其余 3 个数相 加, 1+2+3=6。第二个完全数是 28,它有约数 1、 2、 4、 7、 14、 28,除去它本身 28 外, 其余 5 个数相加, 1+2+4+7+14=28。
- 8、有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13,... 求出这个数列的前 20 项之和。
- 10、输入一个字符,如果是大写字母则,将其以小写形式输出,如果是小写字母,则将其以大 写形式输出。如果不是英文字母,则原样输出
- 提升
前言
本篇仅作为个人参考笔记,为有需要的小伙伴提供思路和代码,为编程小白提供简单编程题。另:本文仅总结编程题个人思路,需要精简或者更优之后肯能会有(大概率不会,选择题判断题可上bd刷一下。
基础
1、求 100 之内自然数中最大的能被 17 整除的数。
#include <stdio.h>
int main()
{
int i=100;
for(i=100;i>0;i--)
{
if(i%17 ==0)
break;
}
printf("0-100内整除17的最大自然数是:%d\n",i);
}
2、输入年份,判断是否闰年。
#include <stdio.h>
int main()
{
int year=0;
printf("请输入一个年份:\n");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0))
{
printf("这个年份是闰年!\n");
}else{
printf("这个年份不是闰年\n");
}
}
3、计算并输出 200—400 之间不能被 3 整除的整数的和。
#include <stdio.h>
int main()
{
int i=0,sum=0;
for(i=200;i<400;i++)
{
if(i%3==0)
continue;
sum=sum+i;
}
printf("200-400中不能整除3的数的和为:%d\n",sum);
}
4、求 1-1/2+1/3-1/4+……+1/99-1/100 的值。
#include <stdio.h>
int main()
{
int i=0;
float n=0;
float sum=0;
for(i=1;i<=100;i++)
{
if(i%2==0)
{
n=-1.0/i;
}else{
n=1.0/i;
}
sum=n+sum;
}
printf("1-1/2+1/3...+1/n=%.2f",sum);
}
5、已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值。
#include <stdio.h>
int main()
{
int num1=0,num2=0;
int a,b,c;
for(a=0;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
num1=a*100+b*10+c;
num2=c*100+b*10+a;
if(num1+num2==1333)
{
printf("abc+cba=1333时,a=%d,b=%d,c=%d\n",a,b,c);
}
}
}
}
}
6、输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数。
#include <stdio.h>
int main()
{
int i;
int a=0;
for(i=200;i<400;i++)
{
a=i%100%10;
if(i%3==0)
{
if(a==7)
printf("200-400之间的数能整除3且个位数是7的数是:%d\n",i);
}
}
}
7、break continue 使用 break 和 continue 来分别显示一个 4 之后函数就不再打印 i。(i 的变化范围是 0~10)
#include <stdio.h>
int main()
{
int i=0;
for(i=0;i<10;i++)
{
printf("%d\n",i);
if(i==4)break;
}
}
#include <stdio.h>
int main()
{
int i=0;
for(i=0;i<10;i++)
{
if(i>4)
continue;
printf("%d\n",i);
}
}
8、写一段程序,输入 x,输出 y 值。 ①x<1,y=x;② 1≤x<10,y= 2x-1 ;③ x≥1,y=3x-11;
#include<stdio.h>
int main()
{
int x,y;
int y1,y2,y3;
printf("请输入一个数:");
scanf("%d",&x);
y1=x;
y2=2*x-1;
y3=3*x-11;
if(x<0)
{
printf("y=:%d\n",y1);
}else if(x>=1&&x<=10)
{
printf("y=:%d\n",y2);
}else if(x>10)
{
printf("y=%d\n",y3);
}
}
巩固
1、编程计算 1! +2! +3! + …… +10!的值。
#include<stdio.h>
int main()
{
int i;
int sum=0;
int a=1;
for(i=1;i<=10;i++)
{
a=a*i;
sum=a+sum;
}
printf("1!+2!+……+10!=%d\n",sum);
}
2、编程计算 123+345+……+99100101 的值。
#include<stdio.h>
int main()
{
int i;
int num=0,sum=0;
for(i=0;i<100;i++)
{
if(i%2!=0)
{
num=i*(i+1)*(i+2);
sum=num+sum;
}
}
printf("该式子结果为:%d\n",sum);
}
3、打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。 例如:153=111+555+333=1+125+27
#include <stdio.h>
int main()
{
int a,b,c;
int num;
int i=101;
for(i>100;i<1000;i++)
{
a=i/100;
b=i%100/10;
c=i%100%10;
num=a*100+b*10+c;
if(num==a*a*a+b*b*b+c*c*c)
{
printf("水仙花数:%d=%d*%d*%d+%d*%d*%d+%d*%d*%d\n",num,a,a,a,b,b,b,c,c,c);
}
}
}
4、输出 100 到 200 以内的所有素数(只能被本身或则 1 整除的数)。
#include<stdio.h>
int main()
{
int i,j;
for(i=100;i<200;i++)
{
for(j=2;j<i;j++)
{
if(i%j ==0)//不是素数
{
break;
}
}
if(j>=i)
{
printf("%d\n",i);
}
}
}
5、用 1 元人民币兑换 5 分(20), 2 分(50), 1 分(100)的硬币共 50 枚, 每种 硬币至少 1 枚,问共有多少种兑换方案, 输出每一种方案三种硬币的数量。
#include<stdio.h>
int main()
{
int i,j,k;
int cont=0;
for(j=1;j<20;j++)
{
for(k=1;k<50;k++)
{
for(i=1;i<100;i++)
{
if((2*k+5*j+i==100)&&(k+j+i==50))
{
cont++;
printf("一分%d个,二分%d个,五分%d个\n",i,k,j);
}
}
}
}
printf("一共%d种方案",cont);
}
6)※已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r) (1+r)(1+r),共 n 个(1+r).
#include<stdio.h>
int main()
{
float x,n;
printf("请输入你存多少钱和存多少年并用逗号隔开:");
scanf("%f%f",&x,&n);
for(int i=1;i<=n;i++){
x*=(1+0.0225);
}
printf("x=%.1f\n",x);
}
7、※输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数, 掉该数 本身, 剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。 例如:第一个完全数是 6,它有约数 1、 2、 3、 6,除去它本身 6 外,其余 3 个数相 加, 1+2+3=6。第二个完全数是 28,它有约数 1、 2、 4、 7、 14、 28,除去它本身 28 外, 其余 5 个数相加, 1+2+4+7+14=28。
#include<stdio.h>
int main()
{
int num,i,sum=0;
for(num=1;num<=10000;num++){
sum = 0;
for(i=1;i<num;i++)
{
if(num%i == 0)
sum += i;
}
if(sum == num)
printf("%d\n",num);
}
}
8、有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13,… 求出这个数列的前 20 项之和。
#include<stdio.h>
int main(){
int i=0;
float num;
float a=2,b=1,temp;
for(i=1;i<=20;i++)
{
num+=(a/b);
temp=a;
a=a+b;
b=temp;
}
printf("该式子之和为:%.2f\n",num);
}
## ``9、求 Sn=a+aa+aaa+……+aa..aa(n 个 a)之值,其中 a 是一个数字,n 表示 a 的位数。例如: 2+22+222+2222+22222(此时 n=5),n 由键盘输入。
```c
#include<stdio.h>
nt main()
{
int a,n,sum=0,tmp=0;
scanf("%d%d",&a,&n);
for(int i=1;i<=n;i++)
{
tmp = tmp*10+a;
printf("%d\n",tmp);
sum += tmp;
}
printf("sum=%d\n",sum);
}
10、输入一个字符,如果是大写字母则,将其以小写形式输出,如果是小写字母,则将其以大 写形式输出。如果不是英文字母,则原样输出
int main()
{
char c;
scanf("%c",&c);
if(c>='a'&&c<='z')
printf("结果为:%c\n",c-32);
else if(c>='A'&&c<='Z')
printf("结果为:%c\n",c+32);
else if(c>='0'&&c<='9')
printf("结果为:%c\n",c);
}
提升
1、输入正整数,将正整数分解质因数。质因数要满足两个条件:1)是这个数的因数;2)是质 数(素数) 如: 6=23 12=22*3。
#include <stdio.h>
int main()
{
int num,i;
scanf("%d",&num);
printf("%d=",num);
for(i=2;i<=num;i++)
{
while(num%i==0){
printf("%d",i); // 2*2*3
if(num!=i)
printf("*");
num /= i; //num=6 3 1
}
}
printf("\n");
}
2、小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下 去,到第真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?
int main()
{
int sum = 1;
for(int i=0;i<10;i++)
{
sum = 2*(sum+1);
}
printf("sum = %d\n",sum);
}
3、两个乒乓球队进行比赛,各出 3 人。甲对为 A、B、C 3 人,乙队为 X、Y、Z 3 人。已 抽签决定比赛名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,编 程找出 3 对赛手的名单
int main()
{
char A,B,C;
for(A='X';A<='Z';A++){
for(B='X';B<='Z';B++){
for(C='X';C<='Z';C++)
{
if(A!='X'&&C!='X'&&C!='Z'&&A!=B&&B!=C&&A!=C)
printf("A--%c B--%c C--%c\n",A,B,C);
}
}
}
}