凡科做网站的方法,网站开发一般用什么数据库,对商家而言网站建设的好处,汅app下载我的个人主页#xff1a;☆光之梦☆的博客_CSDN博客-C语言基础语法#xff08;超详细#xff09;领域博主 欢迎各位 #x1f44d;点赞 ⭐收藏 #x1f4dd;评论 我的专栏#xff1a;C语言基础语法#xff08;超详细#xff09;_☆光之梦☆的博客-CSDN博客#xff08;这… 我的个人主页☆光之梦☆的博客_CSDN博客-C语言基础语法超详细领域博主 欢迎各位 点赞 ⭐收藏 评论 我的专栏C语言基础语法超详细_☆光之梦☆的博客-CSDN博客这个专栏里的平均文章质量分是95噢基本全都是高质量文章本博主将会长期更新c语言的语法知识初学c语言的朋友们可以收藏订阅一下收藏绝对不亏噢 目录
一、交换两个变量的值
二、C语言细节考察题坑题❗
坑货1❗❗❗
坑货2❗❗❗
三、逆序的三位数难题
四、两个数比较大小常考
【方案1】
【方案2】 五、计算阶乘
【方案1】
【方案2】
六、计算平均数
七、猜数游戏经典
八、数的逆序输出本文最难
需要掌握的知识点
方案1700——7, 007——7
方案2700——007
九、学习路上遇到的常见错误坑❗ 一、交换两个变量的值
核心代码 t a; a b; b t; #include stdio.hint main()
{int a 5;int b 6;//新建第三方变量 int t;printf(原来a %d,b %d\n,a,b);//交换两个变量的值 t a;a b;b t;printf(现在a %d,b %d\n,a,b);return 0;
} 二、C语言细节考察题坑题❗
注前方有坑不要见坑就跳噢 坑货1❗❗❗ 写出以下代码执行后t1和t2的值以空格隔开 int a14; int t1 a; int t2 a; 怎么样算完了吗你应该没有跳进这个坑吧希望你没跳进去如果掉坑了肯定就是你算的太快了 来吧接下来
让我们揭晓答案
答案14 16 答案解析
正如我们所知a一开始的值是14
执行完第一个表达式int t1 a; 这时 t1的值是14
相信这一步大家应该都知道这么简单你当我是三岁小孩啊
但接下来才是重头戏毕竟主角往往是最后出场的嘛
这里注意哦 这时a的值是15不是14噢 接着我们执行第二个表达式int t2 a
这时 t2 的值是 16 a的值也是16
坑在哪呢如果我们在执行完第一条语句 int t1 a; 时
把a 和t1 一样当成 14
这样我们就很容易把 t2 算成 15
就容易出错啦不过这个坑比较小如果你细心一点你慢一点不要算太快就不太会掉坑 所以正确的答案是14 16 坑货2❗❗❗ 写出以下表达式的结果结果之间间隔一个空格 6 5 / 4 - 2 2 2 * (2 * 2 - 2) % 2 / 3 10 9 * ((8 7) % 6) 5 * 4 % 3 * 2 3 1 2 (3 4) * ((5 * 6 % 7 / 8) - 9) * 10 小提示先括号再从左到右乘除最后加减
不要看这道题觉得很简单就大意噢
轻敌的话它可是会让你后悔的❗ 答案5 2 44 -627
答案解析
这道题做错了一看就是你轻敌了大意了吧
做太快了吧不好好检查一遍就交卷吧 6 5 / 4 - 2 从左到右 7 - 2 2 2 * (2 * 2 - 2) % 2 / 3 先括号 22*2%2/3 再从左到右 20/3 2 10 9 * ((8 7) % 6) 5 * 4 % 3 * 2 3 10 27 4 3 1 2 (3 4) * ((5 * 6 % 7 / 8) - 9) * 10 3 7 * (2/8-9)* 10 3 7 * (0-9)* 10 3-630 三、逆序的三位数难题 逆序的三位数 程序每次读入一个正三位数然后输出逆序的数字。注意当输入的数字含有结尾的0时输出不应带有前导的0。比如输入700输出应该是7 提示用%10可以得到个位数用/100可以得到百位数...。将这样得到的三个数字合起来百位100十位10个位就得到了结果。 代码示例
#include stdio.hint main()
{int a;int ge,shi,bai;printf(请输入一个三位数);scanf(%d,a);ge a %10;shi a % 100 / 10;bai a / 100;//printf(ge%d,shi%d,bai%d\n,ge,shi,bai);printf(%d\n,ge*100shi*10bai);return 0;
} 注 关系运算符的结果只有0和1 所有的关系运算符的优先级比算术运算的低但是比赋值运算的高 四、两个数比较大小常考
【方案1】
#include stdio.hint main(){// 方案1 int a,b;printf(请输入两个整数);scanf(%d %d,a,b);int max b;if(a b){max a;}printf(大的那个是%d\n,max);return 0;
}
【方案2】
#include stdio.hint main(){// 方案2int a,b;printf(请输入两个整数);scanf(%d %d,a,b);int max 0;if (a b){max a;} else {max b;}printf(大的那个是%d\n,max);return 0;
} tips 测试数据测试所编写的代码或者方法有没有问题 测试程序常使用边界数据如 有效范围两端的数据 特殊的倍数等个位数 10 0 负数 五、计算阶乘 n!1×2×3×4×..×n 写一个程序让用户输入然后计算输出 n! 变量 显然读用户的输入需要一个 int 的 n,然后计算的结果需要用一个变量保存可以是 int 的 factor,在计算中需要有一个变量不断地从 I 递增到 n,那可以是 int 的 【方案1】
#include stdio.hint main()
{int n;scanf(%d,n);int fact 1;int i 1;while(i n){fact * i;i;}printf(%d!%d\n,n,fact);return 0;
}
【方案2】
#include stdio.hint main()
{int n;scanf(%d,n);int fact 1;int i 1;for(i 1; i n; i){fact * i;}printf(%d!%d\n,n,fact);return 0;
} 算法小套路 做求和的程序时记录结果的变量应该初始化为 0而做求积的变量时记录结果的变量应该初始化为 六、计算平均数 需求让用户输入一系列的正整数最后输入-1表示输入结束然后程序计算出这些数字的平均数输出输入的数字的个数和平均数 实现思路 只需要每读到一个数就把它加到一个累加的变量里到全部数据读完再拿它去除读到的数的个数就可以了 一个变量记录累加的结果一个变量记录读到的数的个数 算法 初始化变量 sum 和 count 为 0 读入 number 如果 number 不是 -l则将 number 加入 sum,并将 count.加 l回到2 如果 number 是 -l则计算和打印出 sum/count (注意换成浮点来计算) 代码实现
#include stdio.hint main()
{int number;int sum 0;//求和 int count 0;//统计输入的个数printf(请输入要计算平均数的数);scanf(%d,number);while(number ! -1){sum number;count;scanf(%d,number);}printf(%f\n,1.0*sum/count);//将结果转化成浮点数 return 0;
} 七、猜数游戏经典 猜数游戏 需求让计算机来想一个数然后让用户来猜用户每输入一个数就告诉它是大了还是小了直到用户猜中为止最后还要告诉用户它猜了多少次。 因为需要不断重复让用户猜所以需要用到循环 核心重点是循环的条件 人们往往会考虑循环终止的条件 步骤 计算机随机想一个数记在变量 number 里 一个负责计次数的变量 count 初始化为 0 让用户输入一个数字 a; counti 递增加一 判断 a 和 number 的大小关系如果 a 大就输出“大”如果 a 小就输出“小” 如果 a 和 number:是不相等的无论大还是小)程序转回到第 3 步 否则程序输出“猜中”和次数然后结束。 需要掌握的知识点 随机数 每次召唤 rand( ) 就得到一个随机的整数 随机产生一个100以内的数rand( )%10 注玩这个小游戏只要你认真玩那么最多你猜7次就能猜中
代码实现
#include stdio.hint main()
{srand(time(0));int number rand()%100;//生成一个100以内的随机数int count 0;//统计猜数的次数 int a 0;//用户输入的数printf(我已经想好了一个1到100之间的数。);do{printf(请猜猜这个1到100之间的数);scanf(%d,a);count;if (a number){printf(你猜的数大了。);} else if (a number){printf(你猜的数小了。);}} while(a ! number);printf(太好了你用了%d次就猜到了答案。\n,count);return 0;
} 为什么100以内的数猜7次就够了 2的7次方为128使用二分法完全可以取到100内的任意整数 用二分法例如第一次100中猜50第二次若大了1~50中猜25第三次若小了26~50中猜38第四次若小了39~50中猜45第五次若大了39~45中猜42第六次若大了39~41中猜40第七次若大了就是39若小了就是41。 八、数的逆序输出本文最难 输入一个正整数输出逆序的数 如 【情况1】 输入700 输出7 输入007 输出7 【情况2】 输入700 输出007 注想做出这题需要先掌握下列知识否则就是鸡蛋碰石头哦 需要掌握的知识点
整数的分解 整数的分解 一个整数是由 1 至多位数字组成的如何分解出整数的各个位上的数字然后加以计算 对一个整数做%10 的操作就得到它的个位数 对一个整数做/10 的操作就去掉了它的个位数 依此类推。 当 x n 时 1234 % 10 保留末尾一位数 4 1234 % 100 保留末尾二位数 34 1234 / 10 去掉末尾一位数 123 1234 / 100 去掉末尾二位数 12 当 x n 1 % 10 1 小取余大 余小本身 5 % 10 5 小取余大 余小本身 6 % 10 6 小取余大 余小本身 1 / 10 0 被除数比除数小 答案为0 5 / 10 0 被除数比除数小 答案为0 6 / 10 0 被除数比除数小 答案为0 方案1700——7, 007——7
代码示例
#include stdio.hint main()
{//用户要输入的数 int x;x 12345;//007 7 700 7 //定义一个变量用来保存依次取出的数int digit;//定义一个变量用来保存逆序输出的结果int ret 0;while(x 0){//依次取出最后一位数 digit x % 10;//原来的结果往左移动一位加上新的digit ret ret * 10 digit;printf(x%d,digit%d,ret%d\n,x,digit,ret);//x去除一位 x / 10; }printf(%d,ret);return 0;
} 方案2700——007
代码示例
#include stdio.hint main()
{//用户要输入的数 int x;//scanf(%d,x);x 700;//007//定义一个变量用来保存依次取出的数int digit;//定义一个变量用来保存逆序输出的结果int ret 0;while(x 0){//依次取出最后一位数 digit x % 10;printf(%d,digit);//原来的结果往左移动一位加上新的digit ret ret * 10 digit;//x去除一位 x / 10; }return 0;
} 九、学习路上遇到的常见错误坑❗ 1if 语句 忘了大括号 解决方法永远在 if 和 else 后面加上大括号即使当时后面只有一条语 2在 if 后面加分号 3错误使用和 4输入中文符号 5scanf()里面忘记加 6老丢 7scanf()里面忘记加 printf()里面加了 各位学习C语言的初学者如果有问题随时都可以来问我我会随时为您解答欢迎大家与我一起学习互相进步。 创作不易 ⭐ 一键三连 是对博主最大的鼓励与支持哦。