2016最新嵌入式笔试题及答案
嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。那么嵌入式考试笔试的试题你做了吗?下面跟yjbys小编一起来看看吧!
1. 以下三条输出语句分别输出什么?
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?
答:分别输出false,false,true。str1和str2都是字符数组,每个都有其自己的存储区,它们的值则是各存储区首地址,不等;str3和str4同上,只是按const语义,它们所指向的数据区不能修改。str5和str6并非数组而是字符指针,并不分配存储区,其后的“abc”以常量形式存于静态数据区,而它们自己仅是指向该区首地址的指针,相等。
3. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A?
答:
a. class B : public A { ……} // B公有继承自A,可以是间接继承的
b. class B { operator A( ); } // B实现了隐式转化为A的转化
c. class A { A( const B& ); } // A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数
d. A& operator= ( const A& ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个
4. 以下代码有什么问题?
struct Test
{
Test( int ) {}
Test() {}
void fun() {}
};
void main( void )
{
Test a(1);
();
Test b();
();
}
答:变量b定义出错。按默认构造函数定义对象,不需要加括号。
5. 以下代码有什么问题?
cout << (true?1:"1") << endl;
答:三元表达式“?:”问号后面的两个操作数必须为同一类型。
6. 以下代码能够编译通过吗,为什么?
unsigned int const size1 = 2;
char str1[ size1 ];
unsigned int temp = 0;
cin >> temp;
unsigned int const size2 = temp;
char str2[ size2 ];
答:str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量。
During my test in linux environment. The above code could be compiled successfully. But if we initialize the defined arrary like this “char str2[ size2 ] = {0};”, there would be a compile error informing that “variable-sized object `str2' may not be initialized”.
7. 以下反向遍历array数组的方法有什么错误?
vector array;
_back( 1 );
_back( 2 );
_back( 3 );
for( vector::size_type i=()-1; i>=0; --i ) // 反向遍历array数组
{
cout << array[i] << endl;
}
答:首先数组定义有误,应加上类型参数:vector array。其次vector::size_type被定义为unsigned int,即无符号数,这样做为循环变量的i为0时再减1就会变成最大的整数,导致循环失去控制。
8. 以下代码中的输出语句输出0吗,为什么?
struct CLS
{
int m_i;
CLS( int i ) : m_i(i) {}
CLS()
{
CLS(0);
}
};
CLS obj;
cout << obj.m_i << endl;
答:不能。在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。
9. C++中的空类,默认产生哪些类成员函数?
答:
class Empty
{
public:
Empty(); // 缺省构造函数
Empty( const Empty& ); // 拷贝构造函数
~Empty(); // 析构函数
Empty& operator=( const Empty& ); // 赋值运算符
Empty* operator&(); // 取址运算符
const Empty* operator&() const; // 取址运算符 const
};
10. 以下两条输出语句分别输出什么?
float a = 1.0f;
cout << (int)a << endl;
cout << (int&)a << endl;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么?
float b = 0.0f;
cout << (int)b << endl;
cout << (int&)b << endl;
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?
答:分别输出false和true。注意转换的应用。(int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1,(int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换)。因为1以整数形式存放和以浮点形式存放其内存数据是不一样的,因此两者不等。对b的两种转换意义同上,但是0的整数形式和浮点形式其内存数据是一样的,因此在这种特殊情形下,两者相等(仅仅在数值意义上)。
相關文章
-
2016最新嵌入式面试题及答案
我回来了电话那头低沉的男音发出大提琴般的声音。仅仅一句。……爵。你终于回来了你在哪?这头的m终于露出了真正的笑容和那透出暖意的目光。。。飞机场。。见电话挂了。这头的m笑意不断。---------------- -
2017年嵌入式c语言笔试题及答案
1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n",d);retu 0;}a) 写出程序输出b) 在一个可移植的系统中这种表达式是否存在风险?why?#include "stdio.h"int a=0;int b;s -
2016年嵌入式面试题及答案
嵌入式面试有什么最新问题呢?下面跟yjbys小编一起来了解吧!ic变量和static 函数各有什么特点?static变量分两种,局部变量和全局变量,他们都放在全局数据区(我觉得表达不准确。全局静态变量本文件可见,局部静态变量在在定 -
2017嵌入式软件工程师笔试题及答案
一、选择题1:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是A.(a+b)*c/2B.(1/2)*(a+b)*cC.(a+b)*c*1/2D.c/2*(a+b)参考答案:B,因为a,b,c三个变量都是浮点数,所以在B答案中其结果是0,因为在 -
2016年公司嵌入式面试题及答案
只有在办公经费充足的情况下,办公才会顺利。下文是增加办公经费请示,欢迎阅读!增加办公经费请示一市政府:20XX年9月19日,经市编委批准成立禹州市民政综合执法队,单位性质为自收自支事业编制,核定人员编制10名,隶属我局。单位 -
2016年嵌入式培训考试题及答案
随着消费家电的智能化,嵌入式更显重要。嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。那么yjbys小编为大家推荐以下的嵌入式编程试题,希望能帮助到大家!1、编写一个汇编程序,在ARM程序代码中调用Thumb子程 -
2016计算机三级嵌入式考试简答题及答案
本文为各位同学们准备的是关于计算机三级的嵌入式考试题,希望能帮助到大家!1. 简述典型嵌入式系统的组成。答:典型的嵌入式系统由2部分组成;嵌入式硬件:包括处理器、存储器、总线、外部设备、IO端口、以及各种控制器; -
2016年嵌入式c语言面试题及答案
嵌入式C语言是作为嵌入式Linux开发的基础语言,也是学习嵌入式的必备语言。常用到的包括数据类型、运算符与表达式、控制语句、数组、指针、函数等内容。本文为大家分享的是嵌入式C语言面试题题库及答案解析,希望对大家 -
2016年嵌入式系统复习试题及答案
侍从【侍从的近义词】随从【侍从的反义词】 -
2016年嵌入式软件工程师笔试题(含答案)
yjbys小编为大家总结了一些嵌入式软件工程师笔试题及答案,希望对您有所帮助。 选择题1:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是A.(a+b)*c/2B.(1/2)*(a+b)*cC.(a+b)*c*1/2D.c/2*(