首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言——小学一年级题目解析(三)

第9题

这个题目考察字符数组和字符串的概念,稍微有点难度了。

另外有一个'\0'需要重点记忆,它是字符串结束的标志位。但是在这个字符串数组里,它是啥??我也不懂

赶快科普一下:

c语言'\0' 意思: 字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。 例如: 字符串 "C program" 在内存中所占的字节为: C p r o g r a m \0 字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。 'a'在内存中占一个字节,可表示为: a "a"在内存中占二个字节,可表示为: a \0 https://zhidao.baidu.com/question/96069688.html

讲解比较绕。直接贴测试代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
 char c[5]={'a','b','\0','c','\0'};
 int i;
 for(i=0;i<5;i++){
 printf("%d\t%c\n",c[i],c[i]);
 }
 printf("\n%s\n",c);
 char d[]="ab\0c\0";
 printf("%s\n",d);
 return 0;
}

==========编译成功后开始运行==========

"C:\Users\wangchao\Desktop\ky\c_exam_test\2019_943_14.exe"

Process started (PID=10752) >>>

97 a

98 b

0

99 c

0

ab

ab

<<< Process finished (PID=10752). (Exit code 0)

================ READY ================

在我使用的编译器中,'\0'以%c形式输出形式是一个句号??而以%d形式输出是一个0。但是这却跟以%s形式输出没半毛钱关系。

个中曲折,暂不深究,在字符串中,读取到'\0'即代表字符串末尾,over。

也就是效果等同于我追加的两行代码效果:

char d[]="ab\0c\0";

printf("%s\n",d);

碰到第一个\0就认定为字符串读取完毕,只输出ab。

第10题

这题目,问C库的数学函数,math.h,学C语言一个多月,除了stdio用的最多就是它了……

贴一个传统C++的头文件吧,说是跟C差不多。

第11题

这2个题目,一起说了,都是概念型的,16选B,17选C。

第12题

实参的定义?原式等价于问Func(12,34),Func是函数名,12,34是实参,12和34是怎么计算来的,跟Func无关,是12和34内部的事情。因为题目问的就是Func函数有几个参数……

有点绕……

第13题

continue,用途就是跳过循环中后续的语句,在这里也就是每次循环都跳过了n=n+i,也就是说,循环了两次,但是n没变。答案D。

如果去掉continue,那n就参与运算了,第一轮i=1,第二轮i=2, 1+1+2就是4了。

-END-

下一篇
举报
领券