目录

C语言 | 温度转换(1)

C语言 | 计算存款本息和(2)

C语言 | 大写字母A转换为小写a(3)

C语言 | 用%f控制符输出6位小数(4)

C语言 | 用putchar输出Love(5)

C语言 | 由小到大输出两个数(6)

C语言 | 三目运算实现判断大写(7)

C语言 | 输入一个数输出对应的值(8)

C语言 | 成绩等级判别(9)

C语言 | 判断某年是否只闰年(10)


C语言 | 温度转换(1)

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一”                                                                                                                                                  ——包租婆

这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。

那么如何学习呢?当然是每天都练习一道C语言题目!!

例1:有人用温度计测量出用华氏温度98°F,现在要求用C语言实现把它转换为以摄氏法表示的温度。

解题思路:这个问题的算法很简单,关键在于找到二者之间的转化公式,摄氏度等于九分之五乘以华氏度减去32的积,也就是:

centigrade=(5.0/9)*(f_Degree-32);

源代码演示:

#include<stdio.h>//头文件int main() //主函数{float f_Degree,centigrade; //定义浮点型变量f_Degree=98.0;//初始化华氏度变量centigrade=(5.0/9)*(f_Degree-32);//注意此处应该是5.0printf("华氏度98的摄氏度为:%f\n",centigrade);//输出结果return 0;//函数返回值为0}

编译结果:

华氏度98的摄氏度为:36.666668

--------------------------------
Process exited after 1.796 seconds with return value 0
请按任意键继续. . .

读者应该会很容易的看懂这道例题,但是有一点需要读者格外的注意,就是这行代码

centigrade=(5.0/9)*(f_Degree-32);

如果写成

centigrade=(5/9)*(f_Degree-32);

那么就会出现逻辑性错误,如下输出:

华氏度98的摄氏度为:0.000000

--------------------------------
Process exited after 1.967 seconds with return value 0
请按任意键继续. . .

为什呢么?

在C语言中不声明格式,这种整数相除的被除数比除数大的,会直接等于0,没有小数点后面的数字。

C语言 | 计算存款本息和(2)

例2:用C语言计算存款利息。假设有本金1000元,想存一年,有三种方法可选择:

  • 活期,年利率为0.0036;

  • 一年期定期,年利率为0.0225;

  • 存两次半年定期,年利率为0.0198。

请分别计算出一年后按3种方法所得到的本息和

解题思路:这个问题的算法很简单,关键在于找到公式,若存款额为principal_0,也就是本金

活期存款一年后的本息和为:

principal_0*(1+interest_Rate1);

一年定期存款后,本息和为:

principal_0*(1+interest_Rate2);

两次半年定期存款,一年后本息和:

principal_0*(1+interest_Rate3/2)*(1+interest_Rate3/2);

源代码演示:

#include<stdio.h>//头文件
int main() //主函数
{float interest_Rate1,interest_Rate2,interest_Rate3;//定义浮点型利率变量interest_Rate1=0.0036; //初始化第一种方式年利率interest_Rate2=0.0225; //初始化第二种方式年利率interest_Rate3=0.0198; //初始化第三种方式年利率float principal_0,principal_1,principal_2,principal_3;//定义变量principal_0=1000;//初始化本金principal_1=principal_0*(1+interest_Rate1);//第一种本息和principal_2=principal_0*(1+interest_Rate2);//第二种本息和principal_3=principal_0*(1+interest_Rate3/2)*(1+interest_Rate3/2);//第三种本息和printf("第一种本息和:%f\n",principal_1);//输出第一种本息和printf("第二种本息和:%f\n",principal_2);//输出第二本息和printf("第三种本息和:%f\n",principal_3);//输出第三种本息和return 0; //函数返回值为0
}

编译结果:

第一种本息和:1003.599976
第二种本息和:1022.500000
第三种本息和:1019.898010

--------------------------------
Process exited after 0.07304 seconds with return value 0
请按任意键继续. . .

读者应该会很容易的看懂这道例题,但是有一点需要读者格外的注意,就是应该定义为浮点型类型的变量,因为存款的钱都是有小数点的,不要定义成整型的。

毕竟14亿人的一分钱加起来可是1400万人民币。

C语言 | 大写字母A转换为小写a(3)

例3:C语言实现将大写字母A,输出为小写字母a

解题思路:字符数据以ASCII码存储在内存的,形式与整数的存储形式相同,所以字符型数据和其他算术型数据之间可以互相赋值和运算。

比如A在ASCII码表的值为65,如下代码

#include<stdio.h> //头文件
int main() //主函数
{char character_Big;//定义字符变量character_Big='A';//初始化printf("%d",character_Big);//注意这里的格式控制符是%d
}

运行后,输出

65
--------------------------------
Process exited after 0.08885 seconds with return value 0
请按任意键继续. . .

        读者需要特别注意的是,printf语句我用的格式控制符是%d,输出的是整型

学习过上面的小案例,再来看例题就容易理解了

源代码演示:

#include<stdio.h> //头文件
int main() //主函数
{char character_Small,character_Big;//定义字符变量character_Big='A'; //字符变量初始化,即把赋值字母A赋值给character_Bigcharacter_Small=character_Big+32;//ASCII码表值+32printf("大写字母%c",character_Big);//输出大写字母Aprintf("的小写字母是:%c\n",character_Small);//输出小写字母areturn 0;//函数返回值为空
}

编译结果:

大写字母A的小写字母是:a

--------------------------------
Process exited after 1.442 seconds with return value 0
请按任意键继续. . .

上述C语言代码的这行

character_Small=character_Big+32;

意思是把字符变量character_Big的值与整数32相加得到97,再把97赋给字符变量character_Small,97在ASCII码表中对应的就是小写字母a。

C语言 | 用%f控制符输出6位小数(4)

例4:C语言实现用%f输出实数,且只能得到6位小数

解题思路:不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。

源代码演示:

#include<stdio.h>//头文件
int main() //主函数
{double double_temp,temp;//定义双精度浮点型变量double_temp=1.0;//初始化double_temptemp=double_temp/3;//将double_temp除以3得到得结果赋值给tempprintf("%f\n",temp);//输出tempreturn 0;//函数返回值为0
}

编译结果:

0.333333

--------------------------------
Process exited after 0.074 seconds with return value 0
请按任意键继续. . .

在上述代码中,虽然double_temp是双精度型,double_temp/3的结果也是双精度,但是用%f格式声明只能输出6位小数。

这里也可以用%m.nf指定数据宽度和小数位数。

在C语言中,/ 是除,如果是整数相除,只取整数部分,没有四舍五入之类的;%是取模,即取除法的余数。

如果取模发现被除数比除数小,比如:

#include<stdio.h>//头文件
int main() //主函数
{printf("%d",2%5);
}

%的结果是商为0余2 ,输出如下:

2
--------------------------------
Process exited after 1.792 seconds with return value 0
请按任意键继续. . .

大白话就是在求模时,如果被除数比除数小,输出的值则是被除数本身。

C语言 | 用putchar输出Love(5)

例5:C语言实现先后输出Love四个个字符。

解题思路:定义4个字符变量,分别赋以初值L、o、v、e’,然后用putchar函数输出4个字符变量的值。

源代码演示:

#include<stdio.h>
int main()
{char character1,character2,character3,character4;//定义字符变量character1='L';//初始化变量,将字符L赋值给character1character2='o';//初始化变量,将字符o赋值给character2character3='v';//初始化变量,将字符v赋值给character3character4='e';//初始化变量,将字符e赋值给character3putchar(character1);//输出字符Lputchar(character2);//输出字符oputchar(character3);//输出字符vputchar(character4);//输出字符eputchar('\n');//换行return 0;//函数返回值为0
}

编译结果:

Love

--------------------------------
Process exited after 0.06673 seconds with return value 0
请按任意键继续. . .

在上述代码中哦可以看出:用putchar函数既可以输出能在显示器屏幕上显示的字符,也可以输出屏幕控制字符,如putchar('\n')的作用是输出一个换行符,使输出的当前位置移到下一行的开头。

C语言 | 由小到大输出两个数(6)

例6:C语言实现输入两个实数,按照数值由小到大的顺序输出这两个数。

解题思路:这道题目的逻辑很简单,只要做一次比较,然后进行交换即可。

源代码演示:

#include<stdio.h>//头文件
int main() //主函数
{float num1,num2;//定义浮点型变量printf("请输入输入2个实数:");scanf("%f,%f",&num1,&num2);//键盘输入输入两个数,注意两个%f之间的逗号float temp; //定义中间变量if(num1>num2) //判断条件,如果num1大于num2,就交换数值{temp=num1;num1=num2;num2=temp;}printf("%.2f,%.2f\n",num1,num2);//输出.2的意思是,保留到小数点后两位return 0;
}

编译结果:

请输入输入2个实数:2.3,2.1
2.10,2.30

--------------------------------
Process exited after 9.335 seconds with return value 0
请按任意键继续. . .

在上述代码中哦可以看出,为了将num1和num2对换,借助了中间变量temp。

读者如果不理解的话可以这样想,将A和B两个杯子里面的水互换,用两个杯子倒来倒去是不可能实现的,必须借助第三个杯子。这就是程序中实现两变量换值的算法。

有一点读者需要额外注意下,就是这行代码:

scanf("%f,%f",&num1,&num2);

两个%f之间我写的是英文逗号,因此在键盘输入时也要输入英文逗号,如果键盘输入中文逗号,结果如下:

请输入输入2个实数:2.3,2.1
-0.00,2.30

--------------------------------
Process exited after 5.91 seconds with return value 0
请按任意键继续. . .

C语言 | 三目运算实现判断大写(7)

例7:输入一个字符,判别它是否为大写字母,如果是,将它转换成小写,如果不是,不转换。然后输出最后得到的字符,要求使用三目运算符。

解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换

源代码演示:

#include<stdio.h>//头文件
int main()//主函数
{char character_Big,character_Small;//定义字符变量printf("请输入字母:");scanf("%c",&character_Big);//键盘输入字符character_Small=(character_Big>='A'&&character_Big<='Z')?(character_Big+32):character_Big;printf("%c\n",character_Small);//输出return 0;//函数返回值为0
}

编译结果:

请输入字母:B
b

--------------------------------
Process exited after 5.149 seconds with return value 0
请按任意键继续. . .

什么是三目运算符?

b?x:y;

先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值,条件表达式相当于一个不带关键字if的if语句,用它处理简单的选择结构可使程序简洁。

此外,读者需要知道在C语言中有且只有一个三目运算符。

C语言 | 输入一个数输出对应的值(8)

例8:C语言实现当num<0时,输出result=-1;当num>0时,result=1;当num=0时,result=0。编写一个C程序,输入一个num值,要求输出相应的result值。

解题思路:用if语句检查num的值,根据num的值决定赋予result的值。由于result的可能性不是两个而是3个,因此不可能只用一个简单的if语句就可以实现,,需要用到if语句的嵌套。

源代码演示:

#include<stdio.h>//头文件
int main()//主函数
{int num,result; //定义整型变量printf("请输入num:");//提示语句scanf("%d",&num);//键盘输入if(num<0) //判断条件小于0时{result=-1;}else if(num==0)//判断条件等于0时{result=0;}else //判断条件大于0时{result=1;}printf("%d\n",result);//输出结果return 0;//函数返回值为0
}

编译结果:

请输入num:4
1

--------------------------------
Process exited after 4.581 seconds with return value 0
请按任意键继续. . .

为了使程序更清晰,易读,写程序时对选择结构和循环结构应采用锯齿形的缩进形式。

C语言 | 成绩等级判别(9)

例9:C语言实现按照考试成绩的等级输出百分制分数段,A等为85-100分,B等为70-84分,C等为60-69分,D等为60分以下。

解题思路:这是一个多分支选择问题,根据百分制分数将学生成绩分为4个等级,如果用if语句来处理至少需要3层嵌套的if,进行3次检查判断。用switch语句,进行一次检查即可得到结果。

源代码演示:

#include<stdio.h>//头文件
int main()//主函数
{char grade; //定义成绩级别字符变量printf("输入成绩级别:");//提示语句scanf("%c",&grade); //键盘输入printf("成绩段:");//提示语句switch(grade) //switch多分支{case'A':printf("85-100\n");break;//输出A的成绩分布case'B':printf("70-84\n");break;//输出B的成绩分布case'C':printf("60-69\n");break;//输出C的成绩分布case'D':printf("不及格小于60\n");break;//输出D的成绩分布default:printf("输入成绩等级有误\n");//输出成绩级别有误}return 0;//函数返回值为0
}

编译结果:

输入成绩级别:D
成绩段:不及格小于60

--------------------------------
Process exited after 1.931 seconds with return value 0
请按任意键继续. . .

读者需要注意的一点是:switch后面括号内的“表达式”,其值的类型应为整数类型(包括字符型),switch语句的作用是根据表达式的值,使流程跳转到不同的语句。

C语言 | 判断某年是否只闰年(10)

例10:C语言实现判断某一年是否是闰年。

解题思路:首先要想出如果这一年是闰年的条件,闰年是公历中的名词,分为普通闰年和世纪闰年,普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年;世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年。

源代码演示:

#include<stdio.h>//头文件
int main()//主函数
{int year;//定义整型变量printf("随意输入一年:");//提示语句scanf("%d",&year);//键盘输入年份if((year%4==0 && year%100!=0)||year%400==0)//判断闰年的条件{printf("%d是闰年\n",year);}else{printf("%d不是闰年\n",year);}return 0; //函数返回值为0
}

编译结果:

随意输入一年:2000
2000是闰年

--------------------------------
Process exited after 3.921 seconds with return value 0
请按任意键继续. . .

我们常说“学而不思则罔”,我们只有在学习C语言的同时加以总结与思考,才能对编程有更系统和深入地了解,学到的知识才真正能为自己所用。

然后今天就讲到这里啦,大家记得点赞收藏,分享转发,关注小哥哥哦! 最后,如果你想学或者正在学C/C++编程,可以加入小编的编程学习C/C++企鹅圈https://jq.qq.com/?_wv=1027&k=vLNylJeG

C语言10道入门题集相关推荐

  1. 转向灯c语言程序框图,科目一10道灯光题汇总,做完科三灯光操作也省事啦!

    2017-09-28 15:43:55 下面元贝驾考小编为各位学员总结了科目一最具代表性的10道灯光题,全部做对的,科目三灯光操作都不用担心了. 还在苦苦学习科目一的小伙伴们,除了交警手势和交通标志, ...

  2. java 最烧脑的继承题_最烧脑的10道智力题!答对5道就是天才!

    原标题:最烧脑的10道智力题!答对5道就是天才! 尖叔 10道智力测试 听说做对5道,智商就有140! 答案在最后面,不要偷看哦 赶快来挑战吧! 01 移动3个圆圈, 把左边的三角形变成右边的三角形, ...

  3. java 最烧脑的继承题_多动脑不会老!最烧脑的10道智力题!答对5道算智商高!一起开动脑筋吧~...

    原标题:多动脑不会老!最烧脑的10道智力题!答对5道算智商高!一起开动脑筋吧~ 智商在生活中有各种各样的运用,对人的发展起着很大的作用.平时多动脑,才能保持大脑的灵活运作. 本期10道智商测试题目,不 ...

  4. C语言必须会写的10道经典题(小白必看!)

    对于初学C语言的小白们来说,提高进步最快的方式无疑是刷题,反复刷反复思考优化,这里给大家列出几道C语言入门经典好题,对于小白们锻炼思维很不错,下面就一起来看看吧~ 文章目录 前言 1.写代码将三个整数 ...

  5. C语言练习题的错题集

    @C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...

  6. mysql面试吗hi提_面试必备的10道MySQL题

    MySQL 事务,是我们去面试中高级开发经常会被问到的问题,很多人虽然经常使用 MySQL,SQL 语句也写得很溜,但是面试的时候,被问到这些问题,总是不知从何说起.下面我们先来了解一下什么是 MyS ...

  7. C语言:上机编程题集

    目录 一.字符串相关问题 二.数学相关问题 三.结构体相关问题 四.链表相关问题 五.文件的输入输出相关问题 六.数据结构 七.番外篇 八.附加资料 一.字符串相关问题 输入一行字符,分别统计出其中英 ...

  8. 全国计算机二级编程题100道,计算机二级C语言100道编程题

    国家计算机二级100道编程题 #include #include int fun(int score[], int m, int below[]) { int i,k=0; float av=0.0; ...

  9. java 最烧脑的继承题_最烧脑的10道智力题,答对5道就是天才!快来和孩子试试!...

    来源| 小学数学 10道智力测试 听说做对5道,智商就有140! 答案在最后面,不要偷看哦 赶快来挑战吧 01 移动3个圆圈, 把左边的三角形变成右边的三角形, 该怎么做呢? 02 逻辑推理题,仔细看 ...

最新文章

  1. 零基础小白学Java难度大不大
  2. 为小区物业开发一个停车位租赁系统
  3. eclipse 集成 github
  4. C语言寻找错误是哪个快捷键,求大佬改正寻找一下错误,
  5. 前端学习(2927):今日总结
  6. Linux系统目录结构及主要内容
  7. 关于int类型除以1000后保留两位小数的问题,并且在excel里打印出来
  8. Linux学习(3)Linux文件的基本属性、文件内容查看
  9. webview 加载时闪烁黑一下_Web端页面加载卡顿缓慢问题解决方法分享
  10. 小型网络游戏实例(vc++)——网络五子棋
  11. 修改win10更新后自动修改的浅绿色背景
  12. MYSQL 大于号,小于号
  13. linux中PATH环境变量的作用和使用方法
  14. 辨析NOR FLASH地址左右移的问题
  15. 人工智能正在重塑生产方式、优化产业结构、提升生产效率、赋能千行百业
  16. Java中高级核心知识全面解析(3),美团Java面试算法题
  17. P528 List接口常用实现类的对比及源码分析
  18. 打造自己的 APP「冰与火百科」(一):分析定位
  19. PWM与电压转换芯片:APCPAC芯片
  20. 东莞厚街工业机器人展会_东莞厚街国际机械展暨工业自动化工业机器人展览会...

热门文章

  1. 测试你适合的发型软件叫什么,有没有测试发型的app 测试自己适合什么发型
  2. 安装个https证书要多少钱
  3. 智多星骗子行为让人发指
  4. FreeRTOS学习(一)
  5. 今日头条推荐算法详解(PDF下载)
  6. 分体式蓝牙耳机有哪些推荐?好用的分体式蓝牙耳机推荐
  7. php 正则车架号,正则判断工具类 - 我的开源中国 - OSCHINA - 中文开源技术交流社区...
  8. 最详细的Keycloak教程:Keycloak实现手机号、验证码登陆——(一)Keycloak的下载与使用
  9. 漏洞复现-Wordpress 4.6 PwnScriptum RCE命令执行
  10. 荣耀v40和华为Nova8pro哪个好 华为Nova8pro和荣耀v40的区别