2月28日做题总结(C/C++真题)

        今天是2月28日,做题第三天。道阻且长,行则将至;行而不辍,则未来可期!

第一题

static char a[2]={'1','2','3'};说法是否正确?

A---正确

B---错误

正确答案:B

解析:数组定义时,中括号内代表数组大小。这题数组越界,所以错误。

第二题

若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()

A---0

B---2

C---1.5

D---1

正确答案:D

解析:(x+y)%2取模运算(取余数):(x+y)%2=5%2=1 。(int)a/(int)b除法运算(取商):(int)a/(int)b=(int)2.5/3.5=0(int型除法运算取"整数部分",忽略余数)(x+y) % 2 + (int) a / (int) b =  1 。

第三题

若有定义语句: int year=1009 , *p=&year ;以下不能使变量 year 中的值增至 1010 的语句是()

A---*p+=1;

B---(*p)++

C---++(*p)

D---*p++

正确答案:D

解析:++ 作为后缀时的优先级比* 高,结合律从左到右。因此D *p++ 是先p++, 而后*(p++)的。

++作为后缀时优先级和()一样高,结合律从左到右。结合律仅考虑同优先级时。因此(*p)++ 能够先得到1009 然后++。++ 作为前缀时的优先级和* 一样高, 结合律从右到左, 所以C可以写成++*p == ++(*p)的。

第四题

请问下面的程序一共输出多少个“-”()

int main(void)
{int i;for (i = 0; i < 2; i++) { fork(); printf("-"); } return 0; 
} 

A---2

B---4

C---6

D---8

正确答案:D

解析:如图所示

        最终的打印出数据是在进程退出的时候也就是return或者exit进行缓冲区刷新的时候打印出来的数据,6次调用printf函数共输出8次。

第五题

对于int j,a[10],*p;,下列语句中合法的是() 

A---p=a;

B---p=a[5];

C---p=a[2]+2;

D---p=&(j+2);

正确答案:A

解析:A选项中,表示将数组a的首地址赋值给指针变量p。BC选项将一个int型变量直接赋值给一个int型的指针是不行的。D选项中j+2是一个右值,右值是不能进行取地址操作的。

第六题

以下代码在64位的机子上输出是()

#include <stdio.h>
int getSize(int data[])
{return sizeof(data);
}int main()
{int data1[] = {1,2,3,4,5};int size1 = sizeof(data1);int* data2 = data1;int size2 = sizeof(data2);int size3 = getSize(data1);printf("%d, %d, %d", size1, size2, size3);return 0;
}

A---20,8,8

B---4,4,4

C---20,4,20

D---20,20,20

正确答案:A

解析:64位系统:int型占4个字节,指针占8个字节。data1[]数组大小是5,则4 * 5 = 20个字节;
data2指针,即8个字节;数组名data1作为函数getSize()的参数会退化成指针,即8个字节。

第七题

请问下面的程序一共输出多少个“-”()

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main(void) 
{int i;for (i = 0; i < 2; i++) {fork();printf("-\n");}return (0);
}

A---2

B---4

C---6

D---8

正确答案:C

解析:

        如图所示,共输出6个“-”。

第八题

以下对枚举类型名的定义中正确的是()

A---enum a={one,two,three};

B---enum a{a1,a2,a3};

C---enum a={'1','2','3'};

D---enum a{"one","two","three"};

正确答案:B

解析:枚举类型的定义如下,枚举在C/中,是一个被命名的整型常数的集合。
enum 枚举名

{

        标识符[=整型常数],

        标识符[=整型常数],

        ...

        标识符[=整型常数]

} 枚举变量;

故本题选B。

第九题

32位机器中,以下结构的sizeof(P)为()

struct A 
{int a;char b;int c;char d;
};
struct P
{struct A w[2];short b;struct A* p;
}

A---26

B---38

C---40

D---30

正确答案:C

解析:这道题考察结构体对齐和填充:结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如果不是,编译器会自动在成员间填充。
struct A

{
        int a;                            //4 bytes
        char b;                        //1 bytes
        //char pad[3]               //3 bytes
        int c;                           //4 bytes
        char d;                       //1 bytes
        //char pad[3]              //3 bytes
}// total = 16 bytes

/* P中有结构体A的成员,但是计算时按照A中数据类型确定的*/

struct P

{
        struct A w[2];    // 2 * 16 bytes
        short b;            //2 bytes
        //char pad[2]    //2 bytes
        struct A* p;      //4 bytes
}  // total = 40 bytes

故本题选C。

        我们努力的意义,就是为了遇见优秀的人和更优秀的自己!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499635.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode——栈和队列(Java)

栈和队列 简介[简单] 232. 用栈实现队列[简单] 225. 用队列实现栈[简单] 20. 有效的括号[简单] 1047. 删除字符串中的所有相邻重复项[中等] 150. 逆波兰表达式求值[困难] 239. 滑动窗口最大值[中等] 347. 前 K 个高频元素 简介 记录一下自己刷题的历程以及代码。写题过程中参考…

通过多进程并发方式(fork)实现服务器

以下内容为视频学习记录。 1、父进程accept后返回的文件描述符为cfd以及用于创建连接的lfd; 调用fork()创建子进程后&#xff0c;子进程继承cfd,lfd&#xff0c;通过该cfd与连接过来的客户端通信,lfd对子进程来说没用&#xff0c;可以直接close(lfd); 对于父进程来说&#x…

【MySQL | 第一篇】undo log、redo log、bin log三者之间的区分?

undo log、redo log、bin log三者之间的区分&#xff1f; 从 产生的时间点、日志内容、用途 三方面展开论述即可 1.undo log——撤销日志 时间点&#xff1a;事务开始之前产生&#xff0c;根据当前版本的数据生成一个undo log&#xff0c;也保存在事务开始之前 作用&#xf…

LeetCode:2867. 统计树中的合法路径数目(筛质数+ DFS Java)

目录 2867. 统计树中的合法路径数目 题目描述&#xff1a; 实现代码与思路&#xff1a; 筛质数 DFS 原理思路&#xff1a; 2867. 统计树中的合法路径数目 题目描述&#xff1a; 给你一棵 n 个节点的无向树&#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 …

Gophish+EwoMail 自建钓鱼服务器

GophishEwoMail 自建钓鱼服务器 文章目录 GophishEwoMail 自建钓鱼服务器1.前提准备2.搭建EwoMail邮件服务器1&#xff09;Centos7 防火墙操作2&#xff09;设置主机名3&#xff09;host配置4&#xff09;安装EwoMail5&#xff09;获取DKIM6&#xff09;端口服务介绍7&#xff…

1.2 debug的六种指令的使用,四个通用寄存器

汇编语言 首先进入环境 mount c d:masm //把c挂载在d盘中的masm当中 c: //进入c&#xff0c;进入到编译环境 dir //查看文件&#xff0c;可有可无Debug是DOS、Windows都提供的实模式&#xff08;8086 方式&#xff09;程序的调试工具。使用它可以查看CPU各种寄存器中的内容…

如何提取测试点

如何提取测试点 首先会想到从需求文档中提取测试点&#xff0c;每一次迭代之后&#xff0c;都会有需求&#xff0c;需求经理评审之后&#xff0c;我们要基于需求去写测试计划&#xff0c;包括梳理出来的测试点&#xff0c;梳理完测试点之后&#xff0c;编写对应的测试用例&…

Linux添加用户分组练习

一、复制/etc/skel目录为/home/tuser1&#xff08;/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限&#xff09;。 cp -a /etc/skel /home/tuser1 chown -R tuser1:tuser1 /home/tuser1 chmod -R 700 /home/tuser1 二、编辑/etc/group文件&#xff0c;添加组h…

租赁小程序|租赁系统|租赁软件开发带来高效运营

随着社会的不断发展和科技的不断进步&#xff0c;越来越多的企业开始关注设备租赁业务。设备租赁作为一种短期使用设备的方式&#xff0c;为企业提供了灵活和成本节约的优势。针对设备租赁业务的管理和提升企业竞争力的需求&#xff0c;很多企业选择定制开发设备租赁系统。本文…

抖音作品评论id提取工具|视频内容提取软件

抖音视频提取便捷高效&#xff0c;抖音作品评论id提取工具助您快速获取数据 针对抖音作品评论id提取的需求&#xff0c;我们推出了一款功能强大的工具&#xff0c;旨在帮助用户快速提取抖音作品的评论id。无论您是进行数据分析、社交媒体研究还是其他用途&#xff0c;我们的工…

Linux------进程地址空间

目录 一、进程地址空间 二、地址空间本质 三、什么是区域划分 四、为什么要有地址空间 1.让进程以统一的视角看到内存 2.进程访问内存的安全检查 3.将进程管理与内存管理进行解耦 一、进程地址空间 在我们学习C/C的时候&#xff0c;一定经常听到数据存放在堆区、栈区、…

Linux中如何在创建子线程的时候设置为分离属性

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<unistd.h> #include <pthread.h> void *mythread(void *arg) {printf("id[%ld]\n",pthread_self()); } int main() { //定义pthread_…