牛客错题1
作者:互联网
1、
下列哪种方式可以完成float a与0的比较: fabs(a) < 0.00001f
解析:
float类型和0比较大小:if(x<0.00001 && x>-0.00001)
fabs(a):a的绝对值
< 小于号
2、递归算法:
以下代码
int x (int n) { //这里X是一个函数!!!!
if (n <= 3)
return 1;
else
return x (n - 2) + x (n - 4) + 1;
//这一个式子仍将调用x函数
}
int main (void) {
printf ("%d\n", x (x (8)));
//这里的x(x(8))可以看成两层,一层是内层x(8),第二层则是另外一个x
return 0;
}
的输出和x函数被调用的次数分别是?()
解析:
第一次调用x(8),8>3,执行x (n - 2) + x (n - 4) + 1;
这是第1次调用,将8代入得到x(6)+x(4)+1;
继续调用x函数,由于6和4都大于3,所以上一步得到的式子调用了2次x函数,得到结果x(4)+x(2)+1+x(2)+x(0)+1+1;
上述式子中,又需要调用4次x函数,并得到式子x(2)+x(0)+1+1+1+1+1+1+1;
这里又调用了2次x函数,最后return 9;
则第一层调用的x次数为:1+2+4+2=9次到了第二层,为x(9),继续上述执行思路,可得到结果:第二次也是调用了9次x函数
3、从字符串里寻找一串字符的函数时下面哪一个?
strstr(str1,str2) 函数是字符串处理函数之一,位于头文件 “string.h”中strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
4、转义字符
以下字符中不是转义字符的是()。
‘\c’
5、可以用()和()指令扩展条件编译结构来测试多种条件
#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if(扩展条件)
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else(扩展条件)
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined 与#if, #elif配合使用,判断某个宏是否被定义
标签:elif,调用,函数,牛客,str1,else,错题,ifdef 来源: https://blog.csdn.net/LN0703y/article/details/120632539