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

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.lryc.cn/news/255610.html

相关文章:

  • 大屏适配方案一scale()
  • WordPress免费插件大全清单【2023最新】
  • 支付宝小程序接口传参会默认排序
  • Numpy数组的运算(第7讲)
  • node后端接口无法插入数据为emoji的表情的问题
  • Conda常用命令总结
  • Oracle数据库如何实现自增-序列Sequence介绍(适合小白)
  • ke14--10章-2JDBC例子
  • 04数据平台Flume
  • Redis--13--缓存一致性问题
  • 12.7作业
  • ssl什么是公钥和私钥?
  • github首次将文件合到远端分支,发现名字不是master,而是main
  • RTX 40 系彻底摆烂,NVIDIA 让三年老卡焕发第二春
  • ELK技术栈介绍及简单使用实例
  • 基于Java健身房课程管理系统
  • DAPP开发【02】Remix使用
  • 大华DSS S2-045 OGNL表达式注入漏洞复现
  • 大数据之HBase(二)
  • 前后端数据传输格式(下)
  • mysql pxc高可用离线部署(三)
  • XXL-JOB 日志表和日志文件自动清理
  • 常用sql记录
  • 设备温度和振动综合监测:温振一体式传感器的优点和应用
  • 彻底解决ModuleNotFoundError: No module named ‘exceptions‘【Bug完美解决】
  • yarn和npm的区别
  • 设计图中时序图
  • 反射实现tomcat
  • Ubuntu 安装 CUDA 和 cuDNN 详细步骤
  • ArkTS快速入门