❶ c语言问题,求解释
for语句中第1个表达式是初始化用的,第2个是循环条件,第3个是循环体执行完成后调用的
比如:for(a;b;c)d;的调用顺序是:
a;b是否满足,满足开始循环:d;
c;b是否满足,满足继续循环:d;
c;b是否满足,不满足结束循环
因此题目中执行顺序就是:e1; 无条件循环即while ( 1 ),s; e3; while(1) s; e3; ...,其中s和e3是重复执行的
因此对应的选项是B
❷ c语言问题,求详细解释!
答案选B,scanf对于字符串的输入,会被空格或者回车截断。
所以第一个scanf对a读入的其实是how
而gets不会被空格截断,所以gets对b数组读入的是" are you ?I am fine"
所以最后输出这两个字符串的结果就是B了。
❸ c语言程序问题 判断对错,并解释
1,正确。c语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。
2,错误。宏定义是用宏名来代替一个字符串,也就是做简单的变换。所以这个跟里面的字符有没有定义无关。且事先也不做正确性检查的,只有等完全编译后才进行错误检查的。更何况未定义只是语法错误,跟宏定义无关。
❹ C语言问题解释
讲解如下:
x=sub(p,9,3);
函数调用传参过程:t=p; x=9; y=3;
由于p是指向funa函数的,那么t也指向funa函数了,那么 执行return (*t)(x,y);语句时,实际上是调用了funa函数,那么返回值是12,x=12。
x+=sun(funb,8,3);
函数调用传参过程:
t=funb; x=8,y=3;
传参后,指针t就指向funb函数了,那么 执行return (*t)(x,y);语句时,实际上是调用了funb函数,那么返回值是5。所以x+=5,即x=x+5,x=17。
此题主要考察函数指针的相关知识点。