下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华为面试题C语言软件工程师范文那就是变量i没有定义,这在代码编译阶段编译器可以帮你发现,很容易搞定。然而很多问题是自己造成的漏洞,编译器是帮不上什么忙的。这里最大的问题还是str1没有结束符,因为strcpy的第二个参数应该是一个字符串常量。该函数就是利用判断第二个参数的结束符来得到是否拷贝完毕。所以在for循环后面应加上str1p[9]=‘’;
pS:字符数组和字符串的最明显的区别就是字符串会被默认的加上结束符’’。
voidtest3(char*str1)
{
charstring[10];
if(strlen(str1){
strcpy(string,str1);
}
}
这里的问题仍是越界问题。strlen函数得到字符串除结束符外的长度。如果这里是小结:上面的三个找错的函数,主要是考查对字符串和字符数组的概念的掌握以及对strcpy函数和strlen函数的理解。
2、找错
DSNget_SRM_no()
{
staticintSRM_no;
intI;
">for(I=0;I
{
SRM_no%=MAX_SRM;
if(MY_e==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return(NULL_SRM);
else
returnSRM_no;
}
这里for循环的判断语句是后来我加上的,估计在网上流传的时候被人给弄丢了,根据对程序的分析,给补上了。估计错误应该不是这儿。
简单的阅读一下这个函数,可以大略的可以猜想出这个函数的功能是分配一个空闲的SRAM块。办法:从上次分配的RAM块后的RAM块开始检测SRAM每个RAM块,看是否是IDLE状态,如果是IDLE那么返回当前的RAM块的号SRM_no。如果所有的RAM块都不是IDLE状态,那么意味着无法分配一个RAM给函数调用者,返回一个表示没有RAM可分配的'标志(NULL_SRM)。
经过上面的分析,那么这里可以知道,这个函数的错误是for循环里面没有给SRM_no这个变量累加1。
3、写出程序运行结果
intsum(inta)
{
autointc=0;
staticintb=3;
c+=1;
b+=2;
return(a+b+c);
}
voidmain()
{
intI;
inta=2;
for(I=0;I{
printf("%d,",sum(a));
}
}
运行结果是:8,10,12,14,16,
在求和函数sum里面c是auto变量,根据auto变量特性知每次调用sum函数时变量c都会自动赋值为0。b是static变量,根据static变量特性知每次调用sum函数时变量b都会使用上次调用sum函数时b保留的值。
简单的分析一下函数,可以知道,假设传入的参数不变,那么每次调用sum函数返回的结果,都比上次多2。所以答案是:8,10,12,14,16,
4、func(1)=《
intfunc(inta)
{
intb;
switch(a)
{
case1:30;
case2:20;
case3:16;
default:0;
}
returnb;
}
在case语句中可能忘记了对变量b赋值。如果改为下面的代码:
intfunc(inta)
{
intb;
switch(a)
{
case1:b=30;
case2:b=20;
case3:b=16;
default:b=0;
}
returnb;
}
因为case语句中漏掉了break语句,所以无论传给函数的参数是多少,运行结果均为0。
5、a[q-p]=《
inta[3];
a[0]=0;a[1]=1;a[2]=2;
int*p,*q;
p=a;
q=&a[2];
很明显:a[q-p]=a[2]=2;
6、内存空间占用问题
定义int**a[3][4],那么变量占有的内存空间为:16位系统24,32位编译系统中是48。
pS:公式:3*4*sizeof(int**)。
7、程序编写
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2022年12月31日23时59分59秒,那么输出2022年1月1日0时0分0秒。
voidResetTheTime(int*year,int*month,int*date,int*hour,int*minute,int*second)
{
intdayOfMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(*year12||
*date31||*hour23||
*minute59||*second60)
return;
if(*year%400==0||*year%100!=0&&*year%4==0)
dayOfMonth[1]=29;
if(*second>=60)
{
*second=0;
*minute+=1;
if(*minute>=60)
{
*minute=0;
*hour+=1;
if(*hour>=24)
{
*hour=0;
*date+=1;
if(*dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数控铣床操作试卷及解析
- 《计算机网络技术项目化教程》A卷
- 机械技术基础及设计 1
- 酒吧经营服务安全隐患排查治理工作自查报告
- 雨课堂学堂在线学堂云《运营管理(天津)》单元测试考核答案
- 酒店总经理上半年工作总结(2篇)
- 2026年专技继续教育(公需课)题库与答案
- 铁路工程应急物资储备
- 钢支撑拆除施工工艺流程
- 果露酒酿造工岗后竞赛考核试卷含答案
- 《概念验证服务规范》
- DB45-T 2714-2023 消防车道和消防车登高操作场地管理规范
- 2026届新高考语文热点冲刺复习:《审题细斟酌+答题明指向》-文学类文本阅读情境鉴赏类题目破解
- IT部门安全培训课件
- 征信从业人员上岗考试题及答案解析
- 邮储银行2025泰州市秋招无领导小组面试案例题库
- 东北电网调度运行规程与操作策略解析
- 《金相检验》课件-第七单元 钢的化学热处理及表面淬火的金相检验
- 互联网银行课件
- 人教版高中高二《美术》选择性必修一-为眼睛做导游(建构画面)-教学设计
- (高清版)DB34∕T 5244-2025 消防物联网系统技术规范
评论
0/150
提交评论