牛客网刷题——20210307(刷题第一次)

题目1:若整型变量x的初值为6,则计算表达式“x+=x-=x*x”之后,x的值是()

  -----> -60

题目2:#include<file.h> 与 #include "file.h"的区别?

  -----> 前者首先从Standard Library的路径寻找和引用file.h,而后者首先从当前工作路径搜寻并引用file.h

题目3:设有下面的程序段:char s[]="china";char *p=s,p和s可以随意替换使用

  -----> FALSE

  解析:举例,memset清空数组的时候可以用memset( , , sizeof(s));但是不能用 sizeof(p);

题目4:若有以下程序

#include<stdio.h>
main(){
    int c;
    c=10^5;
    printf("%d
",c);
}

   则程序的输出结果是?

  -----> 15

  解析:^在c语言里面代表异或

题目5:下面3段程序代码的效果一样吗?

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

  -----> (1)=(2)

  解析 :const在*左边为定值,右边为定向,简称左定值,右定向。

题目6:以下可作为函数fopen中第一个参数的正确格式是()

  -----> "c:\user\text.txt"

题目7:有如下一段程序:

int f1(float);

int f2(char);

void f3(float);

int (*pf)(float);

以下语句合法的是( )?

  ----->   int (*p)(float)=&amp;f1;

  解析:&amp;f1;==&f1.

题目8:C代码中可能会出现如下类型的结构体定义:

  typedef struct holder {
  struct holder *next;
  struct holder *prev;
  char buffer[ 0 ];
  }holder;

  -----> 方便管理内存缓冲区、减少内存碎片化

  解析:char buffer[ 0 ]称为柔性数组,常用来构成缓冲区。比起指针,用空数组有这样的优势:

  1.不需要初始化,数组名直接就是所在的偏移 。

  2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。

题目9:下列关于bool,int,float,指针类型的变量a 与“零”的比较语句正确的有?

  -----> 

    bool : if(!a)
    int : if(a == 0)
    指针: if(a == nullptr)

题目10:How many times will this loop execute?(单选)

unsigned char limit = 150;
for (unsigned char i = 0; i < 2 * limit; ++i)
{
//in loop do something
}

  -----> Infinite loop

  解析:unsigned char在32位机的存储范围是0~255,所以无限循环。

原文地址:https://www.cnblogs.com/sdb1942/p/14494132.html