第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
讲解比较绕。直接贴测试代码:
#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-