嵌入式开发c语言经典笔试题-含答案

合集下载

嵌入式Linux C语言应用开发试题及答案

嵌入式Linux C语言应用开发试题及答案

嵌入式Linux C语言应用开发试题及答案一:选择题1.下面不是对Linux操作系统特点描述的是( B )。

[A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务2.查看创建目录命令mkdir的帮助文档,可以使用命令( D)。

[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir3.在C语言中,要求运算数必须是整型的运算符是( D )。

[A] / [B] ++ [C] != [D] %4.C语言程序的三种基本程序是( A )。

[A] 顺序结构,选择结构,循环结构[B] 递归结构,循环结构,转移结构[C] 嵌套结构,递归结构,顺序结构[D] 循环结构,转移结构,顺序结构5.数据结构包含的内容不包括(a)A.线性结构B.存储结构C.逻辑结构D.数据运算6.向一个单链表linklist中的节点t后面插入一个节点p,下列操作正确的是(a)A.p->next = t->next;t->next = p;B.t->next = p->next;t->next = p;C.t->next = p;p->next = t->next;D.t->next = p;t->next = p->next;7.下列哪种打开文件的方式不能修改文件已有的内容( B )[A] r+ [B] r [C] w+ [D] a+8.以下哪种不是进程的状态( B )[A] 运行态[B] 锁定态[C] 睡眠态[D] 停止态9.常用来进行多任务同步的机制是( B )[A]管道[B] 信号量[C]信号[D]共享内存10.下列对于有名管道描述错误的是( D )[A] 可以用于互不相关的进程间[B] 通过路径名来打开有名管道[C] 在文件系统中可见[D] 管道内容保存在磁盘上11.不能被用户进程屏蔽的信号是( B )[A] SIGINT [B] SIGSTOP [C] SIGQUIT [D] SIGILL12.fread()返回值的含义是( B )[A] 读取的字节数[B] 读取的对象数[C] 缓冲区的首地址[D] 013.以下不属于socket的类型的是 ( )。

嵌入式软件开发面试C语言笔试题+答案

嵌入式软件开发面试C语言笔试题+答案
/************************
Chapter2 系统类
***********************/
1. Linux 和 Uc/os 是如何实现任务调度的?
2. Bootloader 移植过程要注意的事项,要做哪些工作 3. Emacs 用过没有?
/************************
h) int (*a[10]) (int); // An array of 10 pointers to functions that take an in teger argument and return an integer
5. 什么是存储机制里的大、小端模式?试举例说明 大端模式(big-edian):MSB 存放在最低端的地址上。举例,双字节数0x1234以 big-endian 的方式存在起始地
7. 定义一个返回值是指向函数的指针且有一个指向函数的指针作参数的函数。
通用形式如下:
typedef int (*P)( );
// 定义一个函数指针 P 类型
P function( int (*p)( ) );
// 定义一个函数返回值 P 类型,且定义一个指向函数的指针 p 作参数
8. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365) UL // UL 怎么个用法?你暂不要加
SLNode *p,*q; int j; p=head; j=-1; while( (p->next!=NULL) && (j<(i-1)) ) {
int a = 5, b = 7, c;

嵌入式C高级编程笔试A(有答案)3.11

嵌入式C高级编程笔试A(有答案)3.11

《嵌入式C高级编程笔试》试卷A一、选择题(35*2’)注意程序运行在32位系统下1. 语句printf(″s\\t″)的输出结果为( B )A s\\tB s\tC s\D s2.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是(B)A、(exp==0)B、(exp!=0)C、(exp==1)D、(exp!=1)3. float a = 3.2;(int)a;printf("a = %d, \n", a);打印什么,运行后a的类型是(D)A. 3.000000, intB. 3, intC. 3.0 floatD. 既不是3,也不是3.000000, float4.有以下代码:void func(){int a;a++;printf("a = %d\n", a);}那么变量a储存在( A )A. 栈B. 堆C. 正文段D. 未初始化数据段5. 在C语言中, char型数据在内存中的存储形式是( D )A、补码B、反码C、原码D、ASCII码6.假如指针p已经指向某个整型变量x,则(*p)++相当于()BA、p++B、x++C、*(p++)D、&x++7.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if8.设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B )。

A.P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i9.有函数void func(){//staic int c=0;c++;printf("%d\n", c);}那么连续调用两次,打印的结果是?( B )A. 1, 1B. 1, 2C. 123495,123496(因为c没初始化,内部的值随机,第二次会比第一次加1)D. 123495, 123495(因为c没初始化,内部的值随机,并且,值不会增加)10.如果有以下代码:char string[] = "love me please";char *p = string;char *q = p + 4;*q++ = '\0';printf("\"%s\"", p);printf("\"%s\"", q);分别打印:( B )A. "love me please" ""B. "love" "me please"C. "love me please" "me please"D. 因为常量字符串不能修改,会发生段错误11.free(p);哪个是错误的( D )A. p的值必须是malloc的返回值B. 一个指针不能被连续free两次C. free了p以后p是野指针,应该置为NULLD. free了以后p的值会自动置为NULL,所以*p = 9会段错误12.下列描述中不正确的是( C )。

嵌入式系统开发测试题(含答案)

嵌入式系统开发测试题(含答案)

嵌入式系统开发测试题(含答案)一、单选题(共100题,每题1分,共100分)1、Make预置了一些内部宏,其中$@表示A、以上都不是B、没有扩展名的当前目标文件C、当前目标文件最近更新的文件名正确答案:A2、关于U-Boot,下列说法错误的是()A、支持的处理器有ARM、MNPSB、是遵循GPL条款的开放源码项目C、支持的操作系统有LINUX、QNX正确答案:A3、Makefile是()A、调试器B、编辑器C、项目管理器正确答案:C4、C语言文件预处理生成哪个后缀的文件A、iB、SC、o正确答案:A5、直接编译进内核,又称()。

A、下载文件B、静态连接C、动态连接正确答案:B6、实时在线仿真是一种用于替代目标上()的设备A、CPUB、GPUC、NOU正确答案:A7、GDB软件是()。

A、调试器B、编译器C、文本编辑器正确答案:A8、嵌入式系统设计的重要特点是()多样化A、技术B、应用C、操作正确答案:A9、ARM的工作模式有?A、非特权模式和特权模式B、特权模式C、非特权模式正确答案:A10、嵌入式操作系统的特点不包括()。

A、有一定的实时性B、强交互性C、可裁剪正确答案:B11、TCP/IP参考模型不包括()A、表示层B、应用层C、传输层正确答案:A12、Linux内核的功能不包含下面哪种()A、处理机管理B、内存管理C、进程管理正确答案:A13、下列CPSR寄存器标志位的作用说法错误的是A、V:借位B、C:进位C、Z:零正确答案:A14、()显示屏是利用有机电致发光二极管制成的显示屏。

A、OLEDB、ABCDC、EFGH正确答案:A15、动态链接是指程序运行时需要调用共享库文件,其后缀为()A、aB、cC、so正确答案:C16、MCU偏重于()A、信号处理B、控制正确答案:B17、()是指:在宿主机上进行软件编辑、编译、链接等,并生成能够在目标机上运行的可执行程序的过程。

A、交叉编辑B、交叉开发C、交叉编译正确答案:C18、Flash程序烧写时,需准备好的软件不包括()。

单片机嵌入式应聘测试题(含答案)

单片机嵌入式应聘测试题(含答案)

嵌入式工程师预备考试题学校___ ____________ 教师___ ________________ ____________ ___ ______________本次测试包括C编程(70分)、MCU基础(20分)、逻辑题(10分)C编程部分:一、选择题(本大题有10个小题,每个小题3分,共30分)1.以下定义变量方法错误之一是( C )A) int ab_2 B) int _2a3 C) int 2_ab D) int ab2_2.判断char变量ch是否为大写字母的正确表达式为(B )A)'A'<=ch<='Z' B) (ch>='A') && (ch<='Z')C) (ch>='A')& (ch<='Z') D) ('A'<=ch) AND ('Z'>=ch)3.有一个描述:char w;int x;double y;表达式w*xy值的数据类型是( D )A) 浮点B) 字符C) 整数D) 双精度4.下列说法正确的是(D )在C 语言中A)实参及其对应的形参各占一个独立的存储单元B)实参及其对应的形参占用一个存储单元C)只有当实参与其对应的形参同名时,才一起占用存储单元D)形式参数是虚拟的,不占用存储单元5.运行以下程序的结果是(C )#include <stdio.h>int a[3][3]={{1},{2},{3}};诠释b[3][3]={1,2,3,4,5};主函数(){printf("%d\n",a[1][0] + b[1][0]);返回0;}A) 2 B) 4 C) 6 D)值不一定6.运行以下程序的结果是(D )#include “stdio.h”主函数(){int x=1, y=0, a=0, b=0;开关(x){情况1:开关(y){案例0:a++;案例1:b++;}案例2:a++;b++;}printf("a=%d, b=%d\n", a, b) ;}A)a= 1,b=0 B) a=1,b=1 C)a=2,b=1 D) a=2,b=27.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3] , b;b=p[5];b 中的值为( D)A)5 B)6 C)8 D)98.运行以下程序的结果是(C )#include <stdio.h>结构研究{整数;字符名称[1 0];年龄;};无效乐趣(结构stu *p){printf("%s\n",(*p).name);}诠释主要(){结构学生[3]={{100,"赵",20},{101,"钱",19},{102,"太阳",18} };有趣(学生+2);}A) 赵B) 钱C) 孙D) 1019.完成C源文件的编辑后,到可执行文件的生成,C语言处理系统必须执行的步骤是(D )A) 编辑、编译、组装、链接B) 组装、编译、运行C) 预编译、编译、汇编、D) 编辑、编译、链接、运行10.函数调用语句:fseek(fp,-20L,SEEK_END);意思是(一)一)将文件位置指针从文件头移动到20 个字节乙)将文件位置指针从当前位置向后移动20 个字节三)将文件位置指针从文件末尾移回20 个字节D ) 将文件位置指针从当前位置移动20 个字节二、空题(共4小题,每小题3分,共12分)1.初始化值为155 的无符号短整型变量a 以____ unsigned short int a=155 _______的形式定义。

嵌入式C语言笔试题及答案

嵌入式C语言笔试题及答案

嵌入式C语言笔试题及答案预处理器(Preprocessor)1. 用预处理指令define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)define _PER_YEAR (60 某 60 某 24 某 365)UL我在这想看到几件事情:1). define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。

4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。

记住,第一印象很重要。

2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

define MIN(A,B) ((A) 6") : puts("6”。

原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。

因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。

这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。

如果你答错了这个问题,你也就到了得不到这份工作的边缘。

13. 评价下面的代码片断:unsigned int zero = 0;unsigned int compzero = 0某FFFF;/某1's complement of zero 某/对于一个int型不是16位的处理器为说,上面的代码是不正确的。

应编写如下: unsigned int compzero =~0; 这一问题真正能揭露出应试者是否懂得处理器字长的重要性。

在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而PC机程序往往把硬件作为一个无法避免的烦恼。

到了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。

C语言嵌入式笔试题目及参考答案-烽火通信

C语言嵌入式笔试题目及参考答案-烽火通信

什么是预编译何时需要预编译:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

char * const p;char const * pconst char *p上述三个有什么区别?char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *pchar str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5 = "abc";const char *str6 = "abc";char *str7 = "abc";char *str8 = "abc";cout << ( str1 == str2 ) << endl;cout << ( str3 == str4 ) << endl;cout << ( str5 == str6 ) << endl;cout << ( str7 == str8 ) << endl;结果是:0 0 1 1解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

3. 以下代码中的两个sizeof用法有问题吗?void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母{for( size_t i=0; iif( 'a'<=str[i] && str[i]<='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;UpperCase( str );cout << str << endl;答:函数内的sizeof有问题。

嵌入式c语言笔试题

嵌入式c语言笔试题

嵌入式c语言笔试题●为什么嵌入式行业注重C语言的考察?●首先我们需要知道为什么嵌入式开发用c语言开发,在这么多种编程语言中为什么单单c语言在嵌入式行业中这么受用呢?●在编译器的帮助下,c语言开发出来的代码能在多种不同体系结构的软/硬平台上运行,具有出色的可移植性。

●能够直接访问硬件。

其实能够直接访问硬件的语言有汇编和C语言,但是汇编语言属于低级语言,难以完成一些复杂的功能,此外汇编语言和CPU的架构紧密相关,X86架构和ARM架构的汇编代码是不同的,这就违背了嵌入式开发中可以执行的原则。

然而汇编比C语言访问硬件的效率更高,所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。

●那面向对象的编程语言受到无法直接操作硬件的限制,使得c语言在嵌入式开发中有不可取代的地位。

●常见嵌入式C语言笔试题的几个专题●数据类型●用变量a定义如下类型的变量●一个整形数int a;●一个指向整形数的指针int *a;●一个指向指针的指针,被指向的指针指向一个整形数int **a;●一个有十个整形数的数组int a[10];●一个又是个指针的数组,数组元素指向一个整形数int *a[10];●一个指向有十个整形数数组的指针int (*a)[10];●一个指向函数的指针,该函数有一个整形参数并返回一个整形数int (*a)(int );●一个有十个指针的数组,该数组指向一个函数,该函数有一个整型参数并返回一个整形数int (*a[10])(int );●解析●这道题有两种考法,一是给出要求,自己写出定义语句,二是给出定义语句,自己写出变量a的含义。

●解决办法掌握几个原则就好●这里首先提供给大家一个图片●然后看这个变量的本质是什么,越靠近本质的定义其优先级越高●举个栗子●一个有10个指针的数组,数组元素指向一个整形数int *a[10];●一个指向有10个整形数数组的指针int (*a)[10];●我们辨析一下上面两个变量●通过上面运算符优先级的图片可以知道 [] 的优先级是高于 * 的,所以int*a[10];中,a的本质是数组,然后数组的中存放的数据成员是指针,数据成员指向的是整型数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

void e(int ); main(){ int a; a=3; e(a);}void e(int n){ if(n>0) { e(--n); printf("%d" , n); e(--n); }}这段程序的输出是:
A.0 1 2 0
B.0 1 2 1
C.1 2 0 1
D.0 2 1 1
typedef int (*test) ( float * , float*)test tmp; tmp 的类型是【】
A.函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments) Pointer to function of having two arguments that is pointer to float
B.整型
C.函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型Pointer to function having two argument that is pointer to float and return int
D.以上都不是
第3 题
main(){ char p; char buf[10] ={ 1,2,3,4,5,6,9,8}; p = (buf+1)[5]; printf("%d" , p);}这段程序的输出是:【】
A.5
B.6
C.9
D.以上都不对
第4 题
Void f(char**);main(){ char * argv[] = { "ab" ,"cd" , "ef" ,"gh", "ij" ,"kl" }; f( argv );}void f( char **p ){ char* t; t= (p+= sizeof(int))[-1]; printf( "%s" , t);}这段程序的输出是:【】
A.ab
B.cd
C.ef
D.gh
第5 题
#include<stdarg.h>int ripple ( int , ...);main(){ int num; num = ripple ( 3, 5,7); printf( " %d" , num);}int ripple (int n, ...){ int i , j; int k; va_list p; k= 0; j = 1; va_start( p , n); for (; j<n; ++j) { i = va_arg( p , int); for (; i; i &=i-1 ) ++k; } return k;}这段程序的输出是:【】
A.7
B.6
C.5
D.3
第6 题
int counter (int i){ static int count =0; count = count +i; return (count );}main(){ int i , j; for (i=0; i <=5; i++) j = counter(i);}本程序执行到最后,j的值是:【】
A.10
B.15
C.6
D.7
请写出下列代码的输出内容
#include<stdio.h>
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d); return 0;
}
< !--[if !supportLineBreakNewLine]-->
< !--[endif]-->
A.10 12 120
B.10 13 100
C.10 12 110
D.20 12 100 第8 题
写出下列代码的输出内容
#include<stdio.h>
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}
A.100
B.110
C.120
D.90
第9 题
某32位系统下, C++程序,请计算sizeof的值(5分).
char str[] = “”
char *p = str ;
int n = 10;
请计算
sizeof (str ) =?()
A.17
B.16
C.15
D.18
第10 题
某32位系统下, C++程序,请计算sizeof的值(5分).
char str[] = “”
char *p = str ;
int n = 10;
请计算
sizeof ( p ) =()?
A.5
B.4
C.6
D.3
第1题
A.0 1 2 0
第2题
C.函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型
Pointer to function having two argument that is pointer to float and return int
第3题
C.9
第4题
B.cd
第5题
C.5
第6题
B.15
第7题
A.10 12 120 第8题
B.110
第9题
A.17
第10题
B.4。

相关文档
最新文档