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

C语言--每日选择题--Day26

第一题

1.在C语言中,表示一次性地给数组a的10元素赋值()

int a[10];scanf("%d",a);

A:正确

B:错误

答案及解析 B

我们知道单独的数组名就是首元素地址,但是也有两种情况数组名表示的是整个数组的大小

1. sizeof(数组名),数组名表示整个数组的地址,计算的是整个数组的所占字节大小

2. &数组名,取的就是整个数组的地址,但是打印出来也是数组首元素地址

所以本题arr就是表示的首元素地址,赋值也只能给首元素赋值;

但是如果是下面这样的代码呢?

#include <stdio.h>
int main()
{int arr[10] = {0};scanf("%d",&arr);for(int i = 0; i < 10; i++)
​    {
​         printf("%d ", arr[i]);
​    }
​    printf("\n");return 0;
}

这是C表示的方法,我们这里scanf后面是&arr,是取这个整个数组的地址,那这样我们就可以给整个数组赋值了吗?答案是不可能的,正如我们上面说的,&arr表示 出来也是首元素地址,所以这样的情况依旧是给首元素赋值;

综上所述,要想给数组元素赋值,就老老实实初始化吧!,或者弄个循环。

第二题

2. 下面两个结构体,在默认对齐数为 #pragma pack(4)和#pragma pack(8)的情况下,结构体的大小分别是

struct One
{double d;char c;int i;
}
struct Two
{char c;double d;int i;
}

A:16 24,16 24

B:16 20,16 20

C:16 16,16 24

D:16 16,24 24

答案及解析 

这个题重要的一点是要知道在设置默认对齐数的时候

对齐数 = 默认对齐数和每个变量的自身字节大小的较小值;

关于内存对齐的博客:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客

所以本题当默认对齐数为4的时候,double的对齐数就是4了,注意的是要占的字节是自身大小,很多人把对齐数和占的空间大小混淆。记住占的空间大小就是本身字节大小,而对齐数只是对于偏移的地址来说的;

第三题

3. ()是构成C语言的基本单位

A:函数

B:过程

C:子程序

D:子例程

答案及解析 A

函数是构成C语言的基本单位,因为我们的C语言程序都是函数组成的,最核心的main函数,之后都是别的函数;

第四题

4. 有以下程序程序运行后的输出结果是()

#include <stdio.h>
int main() 
{  int m=12,n=34;printf("%d%d", m++, ++n);printf("%d%d\n", n++, ++m);return 0;
}

A:12353514

B:12353513

C:12343514

D:12343513

答案及解析 

前置++返回的是++之后的值,后置++返回的是++之前的值,然后m的值加一;

这个在C++primer中曾介绍,后置++的底层,是实现的一个函数,函数中是用一个临时变量拷贝了这个值,然后++原来的,返回拷贝;而前置++就是直接对这个值+=1,再返回这个值

第五题

5. 以下程序的输出结果是()

#include <stdio.h>
int main()
{   char x=040;printf("%o\n", x << 1);
}

A:100

B:80

C:64

D:32

答案及解析 A

本题考查的是你认不认识八进制数字,以0开头的为八进制数字,以%o的形式打印的也是八进制,所以本题主要考查对八进制进行移位操作和是否会发生类型的截断;因为char类型只有一个字节,八个比特位;

所以先把040 -->十进制 --> 二进制数字;

八进制十进制二进制
0    4   0321     0   0  0  0  0
64  8   132  16  8  4  2  1

所以在这里是没有发生截断的,因为100000只需要6个比特位;而char为8个比特位;

所以正常发生左移一位,右边补0,1000000

换成十进制为64;

转换为八进制就为100

http://www.lryc.cn/news/246472.html

相关文章:

  • [ACTF2020 新生赛]BackupFile
  • WPF面试题:WPF绘图技术介绍
  • 三、Lua变量
  • C#每天复习一个重要小知识day4:枚举的概念/申明/使用
  • C++:对象模型和this指针
  • 碳酸氢锂/硫酸锂溶液纯化除钙镁解决方案
  • 消失的数字,旋转数组(leetcode 一题多解)
  • 肠道菌群16s检测粪便采样工具包 粪便采样套装
  • 实现领域驱动设计-07-领域服务
  • 井盖位移传感器厂家批发,守护井盖安全
  • python命令行交互 引导用户选择宠物
  • Leetcode—167.两数之和 II - 输入有序数组【中等】
  • MybatisPlus改造逻辑删除有多方便
  • 希尔伯特变换-matlab仿真
  • python字典的基本操作详解
  • [ CSS ] 内容超出容器后 以...省略
  • Java远程连接本地开源分布式搜索引擎ElasticSearch
  • 递归回溯剪枝-子集
  • VC++、MFC中操作excel时,Rang和Rangs的区别是什么?
  • 使用Rust开发小游戏
  • 笔记二十一、使用路由search进行传递参数
  • python多线程和多进程
  • VMware虚拟机网络配置详解
  • VUE语法--img图片不显示/img的src动态赋值图片显示
  • springboot+vue智能企业设备管理系统05k50
  • C++中的new、operator new与placement new
  • ElasticSearch之cat anomaly detectors API
  • Luminar Neo1.16.0(ai智能图像处理)
  • ElasticSearch之cat aliases API
  • bash编程 数组和for循环的应用