1.递归求阶乘

分析:n!=1*2*...*n

那么我们有两种方法

递归

思路:根据阶乘的规律n!=n*(n-1)!

定义函数f(x),使函数返回x*f(x-1)的值,直到n=1。经过函数调用本身求出结果。

代码:

#include

int cnt(int n);//调用声明函数

int main()

{

int n;

scanf("%d",&n);

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

return 0;

}

int cnt(int n)//定义声明函数

{

if(n>0)

n*=cnt(n-1);

else n=1;

return n;

}

循环

思路:由于n!=n*(n-1)*...*1,则从a=1开始,+1之后与a相乘。

代码:

#include

int main()

{

int n;

scanf("%d",&n);

int a=1;//a要初始化为1

for(int i=1;i<=n;i++) //注意i应从1取到n,因此判断条件为<=

a=a*i;

printf("%d",a);

return 0;

}

2.分制转换

题目:给出一个百分制成绩,要求输出成绩等级‘A’(90分及90分以上),‘B’(80到89分),’C’(70到79分),’D’(60到69分),’E’(60分以下)。

输入格式

百分制成绩,整数,例如,100,89

输出格式

等级制成绩,例如A,B,C等等

eg85 B

分析:这道题很简单,在我复习重写的时候发现比以前写的简洁了不少,因为用到了映射的思想,使分数由5类简化为三类:100分,60到99分,60分以下。

代码:

#include

int main()

{

int s;

scanf("%d",&s);

s/=10;//成绩映射为0-10

if(s==10)//10(满分)的情况

printf("A");

else if(s>=6)//将6到9转换为字母等级

printf("%c",('E'-s+5));

else printf("E");//小于6(不及格)的情况

return 0;

}

3.判断是否为素数(<1000)

分析:素数为只能被1和自己整除的数,因此我们可以通过循环,从2开始遍历比数小的所有数。

优化:

2的倍数非素数,因此先判断是否为2的倍数。

判断某个数是否为因数时,可以一起决定多个数是否为因数。

比如判断11是否为素数,要从2到9判断,而2非因数,同时可以确定6到10也非因数,因为2乘这些数大于11,因此不可能有比2大的数与6到10相乘得11.

代码:

#include

int main()

{

int n;

int r=1; //用r记录是否为素数。1为素数0非素数

scanf("%d",&n);

//大于2的偶数非素数

if((n/2>1)&&(n%2==0))

r=0;

//判断是否为素数

for(int i=3;r==1&&i*i<=n;i+=2) //更新直接+2,因到只用判断奇数

{

if(n%i==0)

{

r=0;

break; //跳出for循环

}

}

//通过r的值(是否为素数)进行输出

if(r==0)

printf("NO");

else

printf("YES");

return 0;

}

4.今天是第几天

题目:输入三个整数为年月日 ,输出是那一年的第几天

eg:输入:1990 9 20 输出:263

#include

int main()

{

int y,m,d;

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

int r=d; //结果初始化为天数d

for(int i=1;i

{

switch(i)

{

case 2:

r+=28;

break;

case 4:

case 6:

case 9:

case 11:

r+=30;

break;

default://31天的月份较多放在default中

r+=31;

}

}

//判断平年闰年,若为闰年2月有29天,再加1

if((y%400==0)||((y%4==0)&&(y%100!=0)))

r++;

printf("%d",r);

return 0;

}

5.按要求输出

题目:写一程序,输入为三行,第一行为整数a、第二行为字符c、第三行为整数b。(0

输出共四行。第一行依次输出a,b,c,三个值之间用一个空格分隔;第二依次输出a+b,a-b,a* b,a/b,a%b的值,每个值之间用一个空格分隔;第三行输出a和b的比率(浮点数,精确到小数点后两位);第四行输出a和b的百分比率(浮点数,精确到小数点后两位)。具体格式见输出样例。

输入样例

12

b

234

输出样例

12 234 b

246 -222 2808 0 12

The ratio of 12 versus 234 is 0.05.

The ratio of 12 / 234 is 5.13%.

代码:

#include

int main()

{

//输出控制字符:加\;输出%:%%

long long a,b; //整型出现乘法:用lld

char c;

scanf("%lld",&a);

scanf("\n%c",&c);

//scanf:1.按格式要求。2.输入非c时自动忽略前导空白符号,不用加\n。

//3.输入为c时会读入空白符号->如何解决上一行的换行符残留:加\n或用getchar

scanf("%lld",&b);

printf("%lld %lld %c\n",a,b,c);

printf("%lld %lld %lld %lld %lld\n",a+b,a-b,a*b,a/b,a%b);

printf("The ratio of %lld versus %lld is %.2lf.\n",a,b,(double)a/b);

printf("The ratio of %lld / %lld is %.2lf%%.",a,b,100*(double)a/b);

return 0;

}

6.按要求输出

题目:一程序,输入依次为一个整数a、一个浮点数f、一个整数b。(-10000

c语言返回一个数的任意倍数,几道基础C语言题相关推荐

  1. c语言填空三个数找中间大小,计算机文化基础复习题及答案(精华)

    第一章计算机基础 一.单选题 1.在微机中,bit的中文定义是(A ) A.二进制位B.双字C.字节D.字 2.在微机中,作为一个整体存储,传送和处理的数据信息单位是(C ) A.二进制位B.机器字C ...

  2. c语言输出每个数占10列宽,杭州师范大学C语言试题第1套介绍.doc

    一.判断题 第1题:函数调用可以出现在表达式中 对 第2题:若有定义一维数组int a[4]的首地址为0078H,则a[1]元素的首地址是0079H(设int型数据占两个字节).错 第3题:在标准C语 ...

  3. c语言求一个数的位数不用循环_LeetCode基础算法题第181篇:将数字减少为零的步骤数...

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因为这三种语 ...

  4. c语言判断一个数是否为质数的n次方,C语言中 输入一个数 判断这个数是否为3的N次方 求代码...

    C语言中 输入一个数 判断这个数是否为3的N次方 求代码 答案:4  信息版本:手机版 解决时间 2019-10-03 18:55 已解决 2019-10-03 01:54 C语言中 输入一个数 判断 ...

  5. c语言对n个数选择排序_选择排序法 -- C语言

    算法原理 直接选择排序的基本思想:n个记录的直接选择排序可经过 n-1 趟直接选择排序得到有序结果. 初始状态:无序区为 A[1...n],有序区为空. 第 1 趟排序:在无序区 A[1...n] 中 ...

  6. c语言编程显示单月日历,任意年月日历输出-题解(C语言代码)

    本题目主要解决如下几个问题: **1.该月的1号是星期几: 2.该月份有几天: 3.2月份天数的特殊处理: 4.输出格式问题.** 我们来一次解决如上问题: ###### 问题1:该月的1号是星期几 ...

  7. 用C语言求三个数的最大值与排序

    用C语言求三个数的最大值与排序 1.用C语言求三个数的最大值 语法:if语句 代码如下: #include<stdio.h> int main() {int a, b, c;printf( ...

  8. c语言求三个数最值非函数,C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针作函数参数实现。...

    www.shufadashi.com防采集. C语言编程:从键盘任意输入三个数,编写求其最大值.最小值的函数,用指针作函数参数实现.. #includevoid maxfunction(int*);v ...

  9. 用正则表达式匹配3的任意倍数

    正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以.我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎 ...

最新文章

  1. 轻量级目标检测大合集
  2. Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)
  3. String 转 const char*
  4. 颜值当道,画风为王——桌游美术风格漫谈
  5. php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)
  6. cup过高是什么意思_做青和焙火有什么关系?
  7. leetcode771. 宝石与石头 py永远的神!
  8. 彻底理解jdbc为什么用反射创建驱动程序对象
  9. HTML5手机开发——滚动和惯性缓动
  10. 鸿蒙系统适配机型_余承东:华为手机鸿蒙系统体验比安卓更好,主流应用已完成适配...
  11. 原型对象prototype与继承
  12. 基于先验LiDAR点云地图的单目VIO定位
  13. 转 markdown编写规则、语法
  14. kindle电子书使用calibre进行解除DRM导出本地
  15. 4、RH850 F1 定时器OSTM功能和配置
  16. 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教您电脑hdmi接口有什么用
  17. 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
  18. oracle把中文转换成ascii,js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换XX函数代码...
  19. [单片机框架][bsp层][N32G4FR][bsp_flash] flash配置和使用
  20. 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)

热门文章

  1. Python这几个内置函数简直是屌爆了!!!
  2. xftp连接海康摄像头报错:sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效
  3. numpy矩阵计算GPU加速库:cupy
  4. 【car】购买新能源电动汽车的几个注意事项
  5. 【植物大战僵尸2】算法 笔记
  6. 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
  7. Future和CompletableFuture的区别和对比,以及Future主要的四个缺点——不能回调会阻塞、批量任务处理彼此依赖会阻塞、不能多个任务级联执行、得不到最先完成的任务
  8. Boring data structure problem 模拟-双端队列
  9. 学计算机应该了解什么软件,大学计算机软件业生应该学什么.doc
  10. 在EXT中向弹窗传值或者对象