几道基础C语言题

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语言编程一个乘法scanf,几道简单的c语言编程题相关推荐

  1. 在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积;再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积。

    在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积:再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积. 1.mult. ...

  2. c语言int类型乘法溢出_【原创】C语言指针自我总结

    指针是C语言的灵魂,涉及编程应用无处不在.同时它也是C语言程序难读.难理解的地方,在此结合自己的应用体会,本章特别将C语言的指针知识进行要点总结. 一.指针是什么 指针就是内存地址. 哪怕是定义再复杂 ...

  3. 编程隐藏child指定列_简单的Excel VBA编程问题解答——完美Excel第183周小结

    学习Excel技术,关注微信公众号: excelperfect 下面是2020年11月12日发布的一些简单的ExcelVBA问题的答案,是不是和你想的一样. 1.表达式11mod 3的计算结果是什么? ...

  4. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

    学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...

  5. 几道简单的c语言编程题(1)

    1.递归求阶乘 分析:n!=1*2*...*n 那么我们有两种方法 递归 思路:根据阶乘的规律n!=n*(n-1)! 定义函数 f(x),使函数返回x*f(x-1)的值,直到 n=1.经过函数调用本身 ...

  6. c语言编程一个 图书管理,我也要用c语言编程一个图书管理系统,

    #includeusing namespace std; const int N = 25;//定义20本图书 struct Book { char name[25]; char author[15] ...

  7. c语言编写一个程序,将一个十进制数转换为二进制数,c语言编写一个程序,将十进制整数n 转换成二进制数...

    #include int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if( ...

  8. C语言编写一个备份文件,2014年3月二级C语言上机题库备份.doc

    全国计算机等级考试二级C语言上机题库 第一套 程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号.姓名和三门课的成绩.函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大 ...

  9. c语言输入一个小写字母 将其变为大写,c语言输入一个数减32然后输出和输入小写字母变为大写字母有什么区别?...

    匿名用户 1级 2019-03-19 回答 在 C 语言中区分字母的大小写,利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为 32),可以将小写字母转换为大写字母.编写程序实现,从键盘上 ...

最新文章

  1. Windows Phone开发:常用控件(上)
  2. 大连大学计算机科学与技术考研真题,2016年大连大学计算机科学与技术数据库系统原理复试笔试最后押题五套卷...
  3. 创建应用服务器连接客户端
  4. CSS打造很棒的黑色背景下的导航菜单
  5. JAVAWEB技术之七过滤器
  6. python wand安装_安装PythonMagick和pythonmagickwand 步骤
  7. ios 相册 同时选择多张图片
  8. java进程的守护进程脚本
  9. Spring的Bean有哪些作用域?
  10. IT运维服务整体方案
  11. pycharm汉化包使用后无法打开设置选项问题
  12. android安卓字体下载,安卓手机字体29款打包下载
  13. linux下使用ls命令时遇到的一个怪异现象
  14. Java获取区间随机数公式
  15. 必应Bing图片中心的图片版权问题
  16. 交换机、路由器、网关
  17. VO、DTO、BO、QO、DO 如何使用,在那一层使用,一张图告诉你;别再纠结命名规则啦,我来告诉你
  18. Maven插件列表_Maven插件查询_Maven插件查看
  19. matplotlib自定义设置plt.colorbar函数配置颜色条的刻度数实战:自定义设置颜色条刻度、并为刻度值进行命名和标签化
  20. 对Request.parameter中参数进行添加或修改

热门文章

  1. NFSv4 挂载--简单介绍
  2. 买电脑需要考虑的电脑配置
  3. Elastic stack 技术栈学习(三)—— 在Windows10系统下部署ELK
  4. S7-1200 DB数据块
  5. c语言卸载软件官方下载,CCleaner _CCleaner 下载[2021官方最新版]CCleaner 安全下载_ 极速下载...
  6. 数码相机里的相片可以利用计算机,把数码相机里的照片上传到电脑上的方法
  7. 万春总与无线院深圳管理干部沟通交流纪要
  8. opencv 核 腐蚀_OpenCV学习笔记(五)形态学操作:腐蚀、膨胀
  9. 学习方法——TRIZ创新理论中的40个发明原则(三)
  10. Tomcat主线程监听SHUTDOWN,如何远程关闭Tomcat?守护线程守护了谁?