C语言世界林子有点大,什么代码都有,我这只程序猿有点想迁徙 ==,
题型概述:遍历一个字符数组,符合for循环条件的进行内层if语句一旦字符串中有’‘a’ - ‘z’ n就自增一。
问:最后运行结果n的结果?
该为选择题,对于我来说有争议的两个答案 A.0 B.2
我选择了A,答案为B。
#include <stdio.h> int main() { char s[] ={"012xy"}; int n = 0; for(int i = 0;s[i]!=0,i++){ if(s[i]>='a'&&s[i]<'z')n++; } printf("%d",n); return 0; } 1234567891011
1,该问题的关键点在于for循环中的 "s[i] != 0;" 2,"s[i] != 0;"的初步理解为 当字符数组s中的元素不为0时执行for循环,否则循环结束 3,而这其中的0为讨论的关键点 4, 一,为字符'0' 二,为字符串结束标志' ' 三,为布尔值的假值 0 1234567
由于for(表达式1;表达式2;表达式3)中的"表达式2"为布尔判断的一种,即"表达式2"为真执行循环,为假结束循环,并且“==”与“!=”相对而言,因此可以借助修改过的if语句的基础上语句来探讨
简化代码
char s[] = {"012xy"}; if(s[i] == 0){ //i指占位符,无意义,讨论时填值 prinf("程序执行!"); } 12345 1,假设此0为字符’0’
探讨s[0]的值’0’ == 0是否成立
char s[] = {"012xy"}; if(s[0] == 0){ prinf("程序执行!"); } 12345
结果:该假设不成立
探讨s[5]的值’ ’ == 0是否成立
char s[] = {"012xy"}; if(s[5] == 0){ prinf("程序执行!"); } 1234
结果:该假设成立
探讨s[5]的值无字符串为布尔假值 == 0是否成立
这个比较绕弯,所以我们先理顺思路:
1,if( 表达式 ){} 语句是通过表达式的布尔值来决定分支,这里是通过关系运算符表达式来决定布尔值,此运算符为双目运算符, 即操作符需要两个值来运算。 2,即 == 运算符两边是通过值是否相等而判断真假,而非通过布尔值的是否相等而判断真假, 比如 表达式1为真 == 表达式2为真 ---> 运算结果为真,像通过布尔值来判断布尔值,不过&&、|| 可以如此。 1234
结果:通过上述讨论,该结论为假
四,总结关于s[i] != 0的讨论,结果为:此处的 0 等同于结束标志’ ’
相关知识
2023年汉江师范学院普通专升本《C语言程序设计》考试大纲
广东海洋大学C程序设计试卷(第1套)
歌剧魅影的影评 (548)
《JAVA语言程序设计》期末考试试题及答案
【免费】中山大学大学生程序设计竞赛2>=
《歌剧魅影2:真爱不死》
《山村老屋4深林魅影》第二章戏殇线索解密流程解谜步骤推荐
2022年全国高校计算机能力桃战赛C语言程序设计大赛
《绽放商机,花开小程序设计》
SCAU高级语言程序设计
网址: 12 C程序设计魅影 https://m.huajiangbk.com/newsview996661.html
上一篇: 北川黄金树村丨念好“山水经” 催 |
下一篇: 黄金树开花后怎么养 黄金树开花后 |