暑假第三天之每天一些题系列

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;
}

在写求斐波那契数列代码时,我们写非递归的,因为递归的时间复杂度过高,效率不行

以上是关于暑假第三天之每天一些题系列的主要内容,如果未能解决你的问题,请参考以下文章

暑假第一天之每天一些题系列

暑假第十七天之每天一些题系列

暑假第六天之每天一些题系列

暑假第八天之每天一些题系列

暑假第七天之每天一些题系列

暑假第十八天之每天一些题系列