暑假第三天之每天一些题系列
Posted 小赵小赵福星高照~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暑假第三天之每天一些题系列相关的知识,希望对你有一定的参考价值。
暑假第三天之每天一些题系列
一. 选择题
- 以下关于函数设计不正确的说法是
A. 函数设计应该追求高内聚低耦合
B. 要尽可能多的使用全局变量
C. 函数参数不易过多
D. 设计函数时,尽量做到谁申请的资源就由谁来释放
答案解析:
函数设计应尽可能少的使用全局变量,因为全局变量的声明周期太长会长时间占用空间,容易出错
- 下面的程序,输出结果正确的是
int main()
{
int a = 5;
if( a = 0 )
{
printf("%d", a - 10);
}
else
{
printf("%d", a++);
}
return 0;
}
A. -5 B. 6 C. 1 d. 0
答案解析:
注意if语句里面是赋值号,而不是==号,将0赋给a,a=0这个表达式的值为0,为假,故进入else,注意此时a变为了0,a是后置++,先使用后加加,故打印的是0
- 关于野指针,下面说法错误的是
A. 野指针指可能指向非法的内存地址
B. 野指针有时也可能指向合法的内存地址
C. 野指针都是由指针未初始化导致的
D. 对野指针的访问,可能会导致程序异常
答案解析:
野指针的成因不只是指针未初始化导致的,还有比如指针越界访问、指针指向的空间释放
想要更多了解指针,请前往博主两篇讲解指针的博客:指针初阶、指针进阶
- include <x.h> 和 include “y.h” ,以下说法正确的是
A. “” 表示先到源文件所在目录下搜索头文件
B. <> 表示先到源文件所在目录下搜索头文件
C. 两者用法没有区别
答案解析:
"" 表示先到源文件所在目录下搜索头文件,如果头文件没有找到,编译器就像查找库函数头文件一样,在库函数的头文件目录下查找
<> 表示直接到库函数头文件所在目录下搜索
- 定义变量 double **a[3][4] ,假设为32位平台,则此变量占有内存空间是字节
A. 12 B. 24 C. 48 D. 96
a是一个二维数组,数组的元素类型为double型的二级指针,但它也是指针,大小为4字节(32位平台),8字节(64位平台),一共有12个元素,12*4=48字节
二、填空题
- 假定所有变量均已正确说明,执行下述程序段后 z 的值是
x = z = 2,y = 3;
if (x > y)
z = 1;
else if (x == y)
z = 0;
else
z = -1;
答案解析:
此时x=2,y=3,x不大于y并且x不等于y,故来到了最后的else,将-1赋给z,此时z为-1
- 有如下代码:
char acHello[] = "hello\\0world";
char acNew[15] = {0};
strcpy(acNew,acHello);
则 strlen(acNew) =, sizeof(acHello) =
答案解析:
strlen是求字符串长度的函数,\\0是结束标志,将acHello拷贝进acNew,即acNew数组中是"hello\\0world",\\0是结束标志,故求得strlen(acNew)=5;sizeof(acHello)求acHello的空间大小,注意\\0算是一个字符,我们字符串中相当于有11个字符,对吗?不对,别忘了最后面还有一个\\0,因为一个字符是1字节大小,故一共是12字节的空间大小
三、算法题
题目描述:
编写函数,求第n个斐波那契数列的值(非递归)
斐波那契数列是什么呢?前两个数相加等于下一个数:
0,1,1,2,3,5,8,13,21,34…]
思路:
我们定义a、b、c三个变量,将a初始化为0,b初始化为1,c等于a+b,然后让a=b,b=c,这样进行迭代
代码如下:
int Fibonacci(int n)
{
int a=0;
int b=1;
int c;
if(n==1)
{
return 0;
}
if(n==2)
{
return 1;
}
while(n>2)
{
c=a+b;
a=b;
b=c;
n--;
}
return c;
}
在写求斐波那契数列代码时,我们写非递归的,因为递归的时间复杂度过高,效率不行
以上是关于暑假第三天之每天一些题系列的主要内容,如果未能解决你的问题,请参考以下文章