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

数据结构经典测试题5

1.

int main()
{
char arr[2][4];
strcpy (arr[0],"you");
strcpy (arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
return 0;
}

上述代码输出结果是什么呢?

A: you&me B: you C: me D: err

答案为A

因为arr是一个2行4列的二维数组,每一行可以存放最多三个字符的字符串。执行strcpy(art[0],"you”);后则将字符串"you”放 置在数组arr的第一行上,即a[0][0]=’y’,a[0][1]=’o’,a[0][2]=’u',a[0][3]=’\0’(字符串结尾符),执行strcpy(arr[1],”me”);后则将 字符串”me”放置在数组arr的第二行上,即a[1][0]=’m',a[1][1]=’e’,a[1][2]=’\0’(字符串结尾符),由于二维数组在内存中是以 行序存放的,执行arr[0][3]=’&’;语句后,第一行与第二行将被视为一个字符串"you&me”,而数组名则是该字符串的首地 址。

2.

struct st
{
int *p;
int i;
char a;
};
int sz = sizeof(struct st);

上述C程序,在64位处理器上运行后 sz 的值是什么( )

A: 12 B: 16 C: 24 D: 13

答案为B

要注意的是64位的情况下指针是占8个字节的,剩余详细了解结构体内存对齐的规则.

3.

enum weekday
{
sun,
mon = 3,
tue,
wed
};
enum weekday workday;
workday = wed;
printf("%d\n",workday)

上述代码输出结果是什么呢?

A: 3 B: 4 C: 5 D: 编译错误

答案为C

因为mon给了初始值3,之后的成员会在此基础上递增。

4.

union D
{
int d1;
float d2;
}d;

设有以下定义,则下面叙述中正确的是【多选】( )

A: 变量d与各成员的地址相同

B: d.d1和d.d2具有相同的地址

C: 若给d.d2赋10后,d.d1中的值是10

D: 若给d.d1赋10后,d.d2中的值是10

答案为AB

虽然d1,d2地址相同,但存储的是二进制,浮点型的10和整型的10,二进制是不同的,所以读取出来的结果也是不同的,故 CD错误。

5.

假设C语言程序里使用 malloc 申请了内存,但是没有 free 掉,那么当该进程被kill之后,操作系统会( )

A: 内存泄露 B: segmentation fault C: core dump D: 以上都不对

答案为D

不管用户程序怎么用malloc,在进程结束的时候,用户程序开辟的内存空间都将会被回收。

6.

配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位 2与位3交换,以此类推)。

示例: 输入:num = 2(或者0b10) 输出 1 (或者 0b01) 输入:num = 3 输出:3

int exchangeBits(int num){
int odd = 0b10101010101010101010101010101010;//保存偶数位
int even = 0b01010101010101010101010101010101;//保留奇数位
odd &= num;
even &= num;
//偶数位右移一位变成奇数位,奇数位左移一位变成偶数位,然后相加即可
return (even<<1) + (odd>>1);
}

注意:这道题是二进制的奇数位和偶数位的交换,只需要把偶数位左移一位,把奇数位右移一位即可

谢谢
http://www.lryc.cn/news/411430.html

相关文章:

  • React Native初次使用遇到的问题
  • 2024西安铁一中集训DAY28 ---- 模拟赛(简单dp + 堆,模拟 + 点分治 + 神秘dp)
  • 【论文阅读笔记 + 思考 + 总结】MoMask: Generative Masked Modeling of 3D Human Motions
  • Mojo控制语句详解
  • web安全基础学习
  • 天气预报的爬虫内容打印并存储用户操作
  • OrangePi AI Pro 固件升级 —— 让主频从 1.0 GHz 到 1.6 GHz 的巨大升级
  • 学习大数据DAY27 Linux最终阶段测试
  • ctr管理containerd基本命令
  • rust 初探 -- 路径(path)
  • XXE -靶机
  • vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记
  • 请大家监督:我要开启Python之路,首要任务最简单的搭建环境
  • http协议深度解析——网络时代的安全与效率(1)
  • 类和对象【下】
  • 面向未来的S2B2C电商供应链系统发展趋势与创新探索
  • 【C++】哈希容器
  • milvus - VectorDBBench benchmaker 性能测试工具使用经验
  • Linux上如何分析进程内存分配,优化进程内存占用大小
  • C语言笔记(第n版):知识清单
  • 【香橙派系列教程】(四)基于ARM-Linux架构的语音控制刷抖音项目
  • Java----反射
  • 相似度计算方法
  • Vue 点击markdown页内链接,路由设置不跳转
  • IOday4
  • 智能座舱背后主流车机平台(SA8155/SA8295)的高通Hexagon DSP是什么?
  • linux进程控制——进程等待——wait、waitpid
  • Shell脚本的进程管理
  • JLink烧录失败
  • Monorepo简介