当前位置: 首页 > article >正文

C语言精选——选择题Day40

第一题

1. int a[10] = {2,3,5}, 请问a[3]及a[3]之后的数值是()

A:不确定的数据

B:5

C:0

D:0xf f f f f f f f

答案及解析 C

数组的不完全初始化,会自动把没初始化的部分初始化为0;

第二题

2. 引用标准库时,下面的说法正确的是()

A:语句#include “stdlib.h”是正确的,而且程序编译速度比#include< stdlib.h >要快

B:语句#include< stdlib.h >是正确的,而且程序编译速度比#include “stdlib.h”要快

C:语句#include< stdlib.h >和#include “stdlib.h”都是正确的,程序编译速度没有区别

D:语句#include “stdlib.h”是错误的

答案及解析 B

#include "" 是先在当前的工作目录上去找" "里面的头文件,若没找到,再去标准库去找;

#include <>则是先去标准库去找,找不到再去当前工作目录;

所以stdlib.h 是一个C标准库里面的头文件,所以<stdlib.h>一定更快;

第三题

3. 在32位机器上,有如下代码:输出结果为()

#include <stdio.h>
void func0()
{
    char array[] = "abcdefg";
    printf("%d ", sizeof(array));
    const char *p = "abcdefg";
    printf("%d ", sizeof(p));
}
void func1(char p[10])
{
    printf("%d ", sizeof(p));
}
int main()
{
    char p[10] = "hello";
    func0();
    func1(p);
    printf("%d ", sizeof(char[2]));
    return 0;
}

A:8 4 4 2

B:4 4 4 4

C:8 8 4 2

D:8 4 4 1

答案及解析 A

func0里面

第一个输出 :sizeof数组名表示的是整个数组的大小,但是别忘了一个隐藏的\0,所以为8;

第二个输出:sizeof(p),p是一个指针类型,32位下是4字节,所以为4;

func1这里

第三个输出:传入的是一个数组名,所以数组在传参的时候会退化成指针类型,p其实是一个指针类型,char *类型,sizeof(p),依旧是4字节;

第四个输出:sizeof(char [2])这里的char [2]其实是一个数据类型,表示的是一个char数组,有两个元素,所以为2字节;

答案就是8442;

大家有想继续练习sizeof的,可以看这几个博客:

全网最详细的sizeof运算和strlen函数讲解(通过多种数据类型举例)_sizeof怎么计算字节长度-CSDN博客

sizeof运算和strlen函数的笔试题(三)-CSDN博客

sizeof运算与strlen函数笔试题(二)-CSDN博客

sizeof运算与strlen函数的面试笔试题(排版很舒服)-CSDN博客

第四题

4. 以下程序的运行结果是()

#include <stdio.h>
#define MIN(x,y)    (x)<(y) ? (x):(y)
int main() 
{
    int i = 10, j = 15, k;
    k = 10*MIN(i, j);
    printf ("%d\n", k);
}

A:10

B:15

C:100

D:150

答案及解析  B

本题考查#define的替换和运算符优先级

k = 10 * MIN(i, j) = 10 * (x) < (y) ? (x) : (y) = 10 * 10 < 15 ? 10 : 15

*的优先级高于条件操作符

所以 k = 100 < 15 ? 10 : 15 = 15;

第五题

5. 32位系统下下面程序的输出结果为多少?

#include <stdio.h>
void Func(char str_arg[100])
{
    printf("%d\n", sizeof(str_arg));
}
int main()
{
    char str[] = "Hello";
    printf("%d\n", sizeof(str));
    printf("%d\n", strlen(str));
    char*p = str;
    printf("%d\n", sizeof(p));
    Func(str);
}

A:5 5 4 4

B:6 5 4 4

C:6 5 6 4

D:5 5 5 100

答案及解析 B

 前两个就不解释了,分别为6,5;因为有隐藏的\0,sizeof算,strlen不算

具体博客:全网最详细的sizeof运算和strlen函数讲解(通过多种数据类型举例)_sizeof怎么计算字节长度-CSDN博客

第三个,p是指针类型,sizeof(p)是算的指针类型,32位下指针类型4字节

第四个,这里要知道数组在传参的时候,会转换成指针,所以str_arg是一个指针类型,依旧位4;


http://www.kler.cn/a/162850.html

相关文章:

  • Spark 核心概念与宽窄依赖的详细解析
  • JavaEE进阶----SpringMVC(三)---响应的获取
  • 【设计模式】关联关系与依赖关系
  • RAFT: Recurrent All-Pairs Field Transforms for Optical Flow用于光流估计的循环全对场变换
  • 什么是 Real-Time Factor (RTF)
  • PCL 点云分割 基于CPC算法的分割
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
  • 创建自定义Docker镜像:一步步指南
  • 一.初始typescript
  • 人大金仓(kingbase)数据库常用sql命令
  • 深度学习之注意力机制
  • Fiddler抓包模拟器(雷电模拟器)
  • 【力扣】160.相交链表
  • 船舶机电设备智能故障诊断系统
  • python3.5安装教程及环境配置,python3.7.2安装与配置
  • 3DCAT+上汽奥迪:打造新零售汽车配置器实时云渲染解决方案
  • Linux 权限管理
  • markdown记录
  • 字符串指令集
  • 渗透测试工具AWVS的全面解析
  • 计算机方向的一些重要缩写和简介
  • 042:el-table表格表头自定义高度(亲测好用)
  • 硬件开发笔记(十五):RK3568底板电路VGA显示接口原理图分析
  • Docker网络原理
  • vue2 百度地图实现 车在线路上移动 BMap、BMapGL
  • 【页面】表格展示