已采纳回答 / 忘性最大的人
你上面的代码在输出上是看不出continue起了什么作用的,但是当你在continue语句之后还存在其他代码的时候,后面的代码将不会输出,而是直接开始下一个循环,可以试着在判断语句之后添加一些输出代码来验证一下continue的作用。
2015-09-19
已采纳回答 / onemoo
最开头的那个值为77的x 和 main函数中初值为10的x 和 if中的那个x 是三个不同的变量,只是同名而已。在if中改变的是if中的那个x值,不会影响到main中的那个x,也不会影响到前面的那个x,所以没有什么“重新赋值”一说。只有fn1函数中没有再次定义x,所以它用的是最上面的那个x,打印出的就是77了。
2015-09-18
已采纳回答 / onemoo
在赋值(初始化)时,如果两侧类型不一致的话,等号右侧的变量会临时转换为左侧的类型,这不会影响右侧变量本身的类型和值,转换后的值再给左侧赋值。char属于整型,那右侧的值就会从浮点型转为整型,转换过程是丢弃小数部分,所以char会获得d的整数部分的值。其实第5,6,7,8行都发生了这种自动类型转换。printf会把后面的参数按照前面的格式化指示符来解释并输出,在使用时要求一定要类型相符。但注意:类型不符的话,函数仍会去读取那个变量的值,且只会按照指示的类型来解释(而不管实际的类型,实际上函数根本就无从知晓)...
2015-09-17
已采纳回答 / qq_仰望摩天轮_0
int a=100; printf("x=%d\n",a++); //输出值为100 , a的值为101 printf("x=%d\n",++a); //输出值为102 , a的值为102 printf("x=%d\n",--a); //输出值为101 , a的值为101 printf("x=...
2015-09-17
已采纳回答 / onemoo
case后的是个冒号,而非分号。第10、11行表示在score为10和9时都打印“等级A”。switch是这样的:一旦匹配到一个case,就从那个case开始向下执行,且忽略掉后面的case标号,连后面case中的语句一起执行下去。 所以匹配到10后,就开始从case 10冒号后的语句开始执行,这里有没有语句都没有关系,接着会执行下个case后的语句,也就是case 9中的,这里的break语句会跳出整个switch(这样避免执行到后面case中的语句)。
2015-09-17
已采纳回答 / onemoo
赋值后的“字母”是什么!? 你想说的是变量吗?你可以在if中如此比较啊,而且你的这个比较为true,会执行if中的语句。不过printf你拼写错了。
2015-09-17
已采纳回答 / onemoo
区间判断在逻辑上其实是两个条件判断用逻辑与相连:即 score大于等于5000 和 score小于10000 同时成立。 所以要用逻辑与运算符(&&)将两个条件判断相连。其实 5000<=score<10000 也是一个合法的复合语句,但无法达到区间判断的效果,因为C是这样解释它的:(5000<=score)<10000。5000<=score的结果是true或false,然后这个bool值再与10000做大小判断。因为ture会转换为1,false会转换为0...
2015-09-17
已采纳回答 / onemoo
printf的第一个参数是字符串,叫做“格式化字符串”,函数的作用就是将这个字符串输出,并且当字符串中有格式化指示符(%d %f等)时,按照指示将后面的参数放到相应的位置上输出。所以你只打算输出一句话时,可以直接写在printf的第一个参数处。 但要注意:这个字符串中不能含有格式化指示,不然函数还是会到后面找参数(而你并没有传其他参数),这会引起问题。像图中那样写,格式化字符串的开头就是一个格式化指示符%s,表明后面的参数是一个字符串,printf同样会将这个字符串输出。
2015-09-16