通信电子、嵌入式类面试题刷题计划03

news2024/11/27 2:23:03

文章目录

    • 021——"Hello, world!"
    • 022——计算圆的面积
    • 023——打印10x10的星号
    • 024——字符串打印
    • 025——打印26个英文字母
    • 026——strlen函数的用法
    • 027——sizeof函数的使用
    • 028——if else、变量赋值语句
    • 029——if else语句
    • 030——if elseif else语句,判断是否成年
    • 031——冒泡排序
    • 032——选择排序
    • 033——堆和栈的区别
    • 034——if(4 == a)和 if(a == 4)的区别?【笔试】
    • 035——指针变量和普通变量的区别
    • 面试感受

突然接到个面试,又是让明天就去…嵌入式软件开发/测试的实习岗位,笔试打听了下主要考C语言(期末难度)和专业常识,两年多没碰C了,上一次用C主要还是大三课程设计读懂后把C改成51汇编,哎,临时突击一下吧。

021——“Hello, world!”

#include <stdio.h>  //标准库声明
int main()  //主函数
{
printf("Hello word!\n");  //输出Hello word!
return 0;  //返回
}

022——计算圆的面积

#include <stdio.h>

int radius, area;  //变量声明半径和面积 

int main()
{
	printf("Enter radius (i.e. 10):");
	scanf("%d", &radius);
	area = (int) (3.14159 * radius * radius);
	printf( "\n\nArea = %d\n", area);
	return 0;
}

023——打印10x10的星号

#include <stdio.h>

int x, y;

int main( void )
{
	 for ( x = 0; x < 10; x++, printf( "\n" ))
		 for ( y = 0; y<10; y++)
			 printf("* ");

		 return 0;
}
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *

024——字符串打印

#include <stdio.h>

int main( void )
{
	printf("keep looking!");
	printf("you\'ll find it!\n");  //单引号用\'表示
	//return 0;
}

025——打印26个英文字母

#include <stdio.h>

int main(void)
{
	int ctr;
	
	for( ctr = 65; ctr < 91; ctr++ )  //大写A从65开始
    	printf("%c ", ctr );
}
#include <stdio.h>

int main(void)
{
	int ctr;
	
	for( ctr = 97; ctr < 123; ctr++ )  //小写从97开始
    	printf("%c ", ctr );
}

026——strlen函数的用法

#include <stdio.h>
#include <string.h>  //引入头文件
int main()
{
	char arr[10] = "length";
	int num = strlen(arr);
	printf("数组arr的长度为:%d\n", num);
 
	return 0;
}
数组arr的长度为:6

【C语言】strlen()函数

<string.h>是C语言标准库中一个常用的头文件,在使用到字符数组时需要使用,主要包含以下函数:

▪ strcpy
▪ strncpy
▪ strcat
▪ strchr
▪ strcmp
▪ strnicmp
▪ strlen
▪ strcspn
▪ strdup
▪ stricmp
▪ strerror
▪ strcmpi
▪ strncmp
▪ strncpy
▪ strnicmp
▪ strnset
▪ strpbrk
▪ strrchr
▪ strrev
▪ strspn
▪ strstr
▪ strtod
▪ strtok
▪ strtol
▪ strupr
▪ swab

027——sizeof函数的使用

/* sizeof.c - 显示C程序中变量类型的大小 */
/*            单位为字节*/

#include <stdio.h>

int main(void)
{
	printf("\nAn unsigned int     is %d bytes", sizeof(unsigned int));
	printf("\nAn int      is %d bytes", sizeof(int));
	printf("\nA short     is %d bytes", sizeof(short));
	printf("\nA long      is %d bytes", sizeof(long));
	printf("\nA long long is %d bytes", sizeof(long long));
	printf("\nAn unsigned char is %d bytes", sizeof(unsigned char));
	printf("\nAn unsigned int  is %d bytes", sizeof(unsigned int));
	printf("\nAn unsigned short is %d bytes",sizeof(unsigned short));
	printf("\nAn unsigned long is %d bytes", sizeof(unsigned long));
	printf("\nAn unsigned long long is%d bytes", sizeof(unsigned long long));
	printf("\nA float     is %d bytes", sizeof(float));
	printf("\nA double    is %d bytes\n", sizeof(double));
	printf("\nA long double is %d bytes\n", sizeof(long double));
	
	return 0; 
} 

An unsigned int     is 4 bytes
An int      is 4 bytes
A short     is 2 bytes
A long      is 4 bytes
A long long is 8 bytes
An unsigned char is 1 bytes
An unsigned int  is 4 bytes
An unsigned short is 2 bytes
An unsigned long is 4 bytes
An unsigned long long is8 bytes
A float     is 4 bytes
A double    is 8 bytes

A long double is 16 bytes

028——if else、变量赋值语句

#include <stdio.h>

int x, y; /*先定义变量x,y*/
int main(void)
{
	printf("Enter two numbers\n");
	scanf("%d, %d", &x, &y ); /*计算机底层只识别0和1,scanf能将操作者输入的变量对应ASCII码转化为二进制储存在计算机中,即变量地址*/
	
	if((x >= 1) && (x <= 20))
	{   y = x;
	    printf("%d", y); //如果x在1-20之间,将x的值赋予y 
	}  /*if else语句中,语句命令超过两句时要放在{}内*/
	else
	{   y = y;
	    printf("%d", y); // 否则保持y的原值不变 
	}
	
	return  0;
}
Enter two numbers
10 23
10

029——if else语句

#include <stdio.h>

int x = 2;
void main()
{
	if( x == 1 ) 
	  printf(" x equals 1");
	else
	  printf("x does not equal 1");
} 

030——if elseif else语句,判断是否成年

#include <stdio.h>

int birth_year, age;

int main(void)
{
	printf("Enter the year you were born: ");
	scanf("%d", &birth_year);
	
	age = CURRENTYEAR - birth_year;
	
	if (age < 21)
	   printf("You are not a legal adult");
	else if((age >=21) && (age <= 65))
	   printf("You are a legal abult and not an old man") ;
	else
	   printf("You are an old man");
	
	return 0;      
 } 
Enter the year you were born: 2000
You are not a legal adult

031——冒泡排序

在这里插入图片描述

#include <stdio.h>
#define SIZE 10
int main()
{
	int a[SIZE] = {8,6,10,4,5,2,7,1,9,3};
	int i,j,t;
	for(i=0;i<10-1;i++)
	{
		for(j=0;j<10-1;j++)
		{
			if(a[j]>a[j+1])  //从小到大排序,如果前一个大于后一个就交换
			{
				t = a[j+1];
				a[j+1] = a[j];
				a[j] = t;
			}
		}
	}
	printf("冒泡排序结果:");
	for(i=0;i<10;i++)
		printf("%d ",a[i]);
	return 0;
}
冒泡排序结果:1 2 3 4 5 6 7 8 9 10

032——选择排序

在这里插入图片描述

#include <stdio.h>
#define SIZE 10
int main()
{
	int a[SIZE] = {8,6,10,4,5,2,7,1,9,3};
	int i,j=0,t,k;
	for(i=0;i<9;i++)
	{
		k = i;
		for(j=i;j<10;j++)
		{
			if(a[j]<a[k])  //从小到大排序,如果找到此趟最小的就交换
				k=j;
		}
		t = a[k];
		a[k] = a[i];
		a[i] = t;
	}
	printf("冒泡排序结果:");
	for(i=0;i<10;i++)
		printf("%d ",a[i]);
	return 0;
}
选择排序结果:1 2 3 4 5 6 7 8 9 10

033——堆和栈的区别

1、栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内存量有限,比如iOS中栈区的大小是2M。

2、堆区:就是通过new、malloc、realloc分配的内存块,编译器不会负责它们的释放工作,需要用程序手动开辟内存和释放。 分配方式类似于数据结构中的链表。在iOS开发中所说的“内存泄漏”说的就是堆区的内存。

034——if(4 == a)和 if(a == 4)的区别?【笔试】

没区别,一般是使用 if(4 == a),因为常量不能赋值,这样做的好处就是怕把if(a==4)漏写成if(a=4)

035——指针变量和普通变量的区别

普通变量,系统会为变量分配地址,变量值存放在地址中,被使用时直接取值。
指针变量用于取一般变量的地址,但其本身也有自己的地址。

#include <stdio.h>
int main() 
{
    int a = 100, b = 10;//定义整型变量a,b并初始化
    int *p1, *p2;     //定义指向整型数据的指针变量p1,p2;
    p1 = &a;          //把变量a的地址赋给指针变量p1
    p2 = &b;         //把变量a的地址赋给指针变量p2
    printf("a=%d,b=%d\n", a, b);//输出变量a和b的值
    printf("p1=0x%x,p2=0x%x\n", p1, p2);  //指针变量p1,p2中存放的普通变量a,b的地址 
    printf("&p1=0x%x,&p2=0x%x\n", &p1, &p2);  //指针变量p1,p2自己的地址 
    printf("*p1=%d,*p2=%d\n", *p1, *p2);  //从指针变量中取值 
 	
    return 0; 
}
a=100,b=10
p1=0x62fe1c,p2=0x62fe18
&p1=0x62fe10,&p2=0x62fe08
*p1=100,*p2=10

面试感受

下午去面了,13点半面到16点半(笔试+面试+上机+面聊),比想象的要顺利,没有在笔试环节太过刁难,上机是Excel-Bom,两次f2f面聊,offer应该是稳的,数字Soc芯片方向的嵌入式软开应届,希望能有机会在研发岗呆下去,持续学习。
笔试编程是全英文,考了道大端小端的编程题,不会…,还考了道字节转比特的,也忘了,太久没碰C了,该好好拾起来了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 ( 七)求两个数的差值

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 &#xff08;七&#xff09;求两个数的差值 &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN博客 &#x1f9e8;未经作者允许&#xff0c;禁止转载 &#x1f511;系列专栏&#xff1a;牛客Ve…

Redis作为缓存应用场景分析

为什么使用缓存 Redis是一个内存型数据库&#xff0c;也就是说&#xff0c;所有的数据都会存在与内存中&#xff0c;基于Redis的高性能特性&#xff0c;我们将Redis用在缓存场景非常广泛。使用起来方便&#xff0c;响应也是远超关系型数据库。 应用场景 Redis的应用场景非常…

绝了,超越YOLOv7、v8,YOLOv6 v3.0正式发布

超越YOLOv7、v8! YOLOv6 v3.0正式发布!!! YOLOv6 全新版本v3.0正式发布&#xff01;引入新的网络架构和训练方案&#xff0c;其中YOLOv6-S以484 FPS的速度达到45.0% AP&#xff0c;超过YOLOv5-S、YOLOv8-S&#xff0c;其代码刚刚开源 由于前段时间Ultralytics公司透露出V8的发…

马哥架构第2周课程作业

haproxy、nginx、lvs负责均衡相关的话题一. nginx和haproxy的异同点二. 实现haproxy四层地址透传&#xff0c;并且做基于cookie的会话保持2.1 haproxy四层地址透传2.2 基于cookie的会话保持2.2.1 配置选项2.2.2 配置示例2.2.3 验证 Cookie 信息三. 实现自定义错误页面和https的…

【学习笔记】【Pytorch】12.损失函数与反向传播

【学习笔记】【Pytorch】12.损失函数与反向传播一、损失函数的介绍1.L1Loss类的使用代码实现2.MSELoss类的使用3.损失函数在模型中的实现二、反向传播一、损失函数的介绍 参考&#xff1a; 损失函数&#xff08;loss function&#xff09; pytorch loss-functions 文档 作用&…

【JavaEE】基于TCP的客户端服务器程序

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:基于TCP的客户端服务器程序。 &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE初阶代码存放&#xff01; ⛵⛵作者…

【JavaEE初阶】第二节.进程篇

文章目录 前言 一、操作系统 二、进程 2.1 进程的概念 2.2 进程的管理​​​​​​​​​​​​​​ 2.3 PCB 2.3.1 PCB里面的一些属性 2.3.2 进程的调度 2.3.3 进程的虚拟地址空间 2.3.4 进程间通信 总结 前言 本节内容我们继续对JavaEE的有关内容进行学习&#xff0c;…

汽车智能化,集度做加法

CES2023刚刚落下帷幕&#xff0c;这场名为“国际消费电子展”的业界盛会&#xff0c;近几年重心正明显转向智能汽车及其周边产业链。在2022年的CES上&#xff0c;集度与英伟达宣布合作&#xff0c;也透露了智能汽车研发的相关计划。而在本届CES之前、2022年末的广州车展上&…

一个关于image访问图片跨域的问题

一、背景 项目中遇到一个问题&#xff0c;同一个图片在 dom 节点中使用了 img 标签来加载&#xff0c;同时由于项目使用了 ThreeJS 3D 渲染引擎&#xff0c;在加载纹理时使用了 TextureLoader 来加载了同一张图片&#xff0c;而由于图片是在阿里云服务器上的&#xff0c;所以最…

SourceTree 拉取、重置提交、回滚、变基与合并

SourceTree的重置当前分支到此次提交 使用场景&#xff1a;“我想把已提交未推送的修改撤销” 使用模式说明软合并软合并是指将此次提交回滚到指定提交位置&#xff0c;但这个过程中会将修改过的文件暂存到暂存区。混合合并混合合并是指将此次提交回滚到指定的位置&#xff0c…

本来挺喜欢刷《剑指offer》的.......(第十一天)

跟着博主一起刷题 这里使用的是题库&#xff1a; https://leetcode.cn/problem-list/xb9nqhhg/?page1 目录剑指 Offer 66. 构建乘积数组剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 68 - II. 二叉树的最近公共祖先剑指 Offer 66. 构建乘积数组 剑指 Offer 66. 构建…

使用react-bmapgl绘制区域并判断是否重叠

需求如下&#xff1a; 在react项目中使用百度地图实现区域&#xff08;电子围栏&#xff09;的绘制绘制的区域类型为&#xff1a;1、多边形 2、圆形可绘制多个区域区域不能有重叠可重新编辑区域 代码如下: index.tsx import { useCallback, useEffect, useState } from rea…

Python入门实践(二)——变量的使用

文章目录变量1、变量的命名和使用1.1、避免命名错误2、字符串2.1、修改字符串大小写2.2、合并&#xff08;拼接&#xff09;字符串2.3、使用制表符或换行符来添加空白2.4、删除空白3、数字3.1、整数3.2、浮点数3.3、使用str()避免类型错误4、注释变量是对一种数据结构的命名&am…

2023年基建工程(设计规划施工)经验分享,超多干货

为了彻底打通从工程外业勘探调查、数据资料整理&#xff0c;到内业详细设计之间的一系列障碍&#xff0c;结合工程外业调查的特点&#xff0c;基于安卓&#xff08;Android&#xff09;操作系统&#xff0c;精心打磨推出了“外业精灵”移动端应用软件。 该系统把工程外业探勘、…

MPP数据库简介及架构分析

目录什么是MPP&#xff1f;特性并行处理超大规模数据仓库真正适合什么典型的分析工作量数据集中化线性可伸缩性MPP架构技术特性数据库架构分析Shared EverythingShared DiskShare MemoryShared NothingShared Nothing数据库架构优势什么是MPP&#xff1f; MPP (Massively Paral…

分享88个C源码,总有一款适合您

C源码 分享88个C源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 源码下载链接&#xff1a;https://pan.baidu.com/s/1TT87gt66kn5BtLqgRUTlUQ?pwdwje5 提取码…

Java图形化界面---JOptionPane

目录 一、JOptionPane的介绍 二、JOptionalPane的使用 &#xff08;1&#xff09;消息对话框 &#xff08;2&#xff09; 确认对话框 &#xff08;3&#xff09;输入对话框 &#xff08;4&#xff09;选项对话框 一、JOptionPane的介绍 通过JOptionPane可以非常方便地创建…

SpringCloud复习之Sleuth+Zipkin链路追踪实战

文章目录写作背景为什么要有链路监控SpringCloud SleuthZipkin能做什么上手实战启动一个Zipkin Server微服务集成SleuthZipkin写作背景 前面复习了SpringCloud Netflix的几个核心组件&#xff0c;包括Eureka、Ribbon、Feign、Hystrix、Zuul&#xff0c;并进行了Demo级别的实战…

高精度减法【c++】超详细讲解

前言 大家学过高精度加法之后&#xff0c;可能已经知道高精度减法的实现方法了吧 如果你还没有学过高精度加法的话&#xff0c;请点击这里&#xff08;很详细的&#xff09;—>高精度加法【C实现】详解 最大的问题 最大的问题莫过于负数问题了。其他方法和加法一样。 负…

4.二级缓存解析

文章目录1. 二级缓存配置2. 二级缓存结构3. 二级缓存命中条件4. 缓存空间的理解5. 二级缓存执行流程二级缓存也称作是应用级缓存&#xff0c;与一级缓存不同的&#xff0c;是它的作用范围是整个应用&#xff0c;而且可以跨线程使用。所以二级缓存有更高的命中率&#xff0c;适合…