嵌入式工程师预备考试题
学校___ ____________ 教师 ___ _____________单片机printf函数
___ ____________ ___ ______________
本次测试包括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=2
7.有以下程序段
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)9
8.运行以下程序的结果是( 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) 101
9.完成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 _______ 的形式定义。
2.已知为(j=1,s=0;j<=9;j+=2) s=s+j;执行循环后,s 的值为___ 25_ _______。
3.该程序实现了三个数字 x、y 和 z 中最大的输出。
主要的()
{
诠释 x=4,y=6,z=7;
诠释__你______ ;
如果(___ x>y__ __ )
u=x;
别的
u=y;
如果 ( __ u<z ____ )
u=z ;
printf("u=%d",u);
}
4.输入一个字符,如果是大写字母,则转为小写字母;如果是小写字母,则转成大写字母;其他字符保持不变;
主要的()
{
字符 ch;
scanf( “ %c ” ,&ch);
if( ( ch>='A') && (ch<='Z') )
ch = ch+32;
否则 if( (ch>='a') && (ch<='z') )
ch=ch-32;
printf( “ %c ” ,ch);
}
三、简答题(共4个小题,每个小题5分,共20分)
1.简述const、volatile、static这三个关键字的作用
答:const用于定义一个常量,使其在程序编译和运行过程中不会随意改变;
static用于定义一个静态变量,该变量保留最后分配的值。
2.什么是指针?指针变量和指针指向的变量有什么区别和联系?
答:指针是变量的存储地址;指针变量中存储的数据就是变量的地址,指针指向的变量中存储的数据就是变量的值,通过指针变量可以间接寻址到指向的变量的值。
3.#include <filename.h>和#include "filename.h" ?
答: #include <filename.h>直接在标准头文件中检索文件目录;
#include "filename.h"首先在当前源文件目录中查,如果没有到,则按照系统指定的标准头文件查文件目录。
4.简述union和struct的区别?
答: union的存储大小是根据最大的变量计算的,struct的存储大小是所有变量的总和。
四、程序分析题(2个子题,共10分)
1.请简述以下两种for循环的优缺点(5分)
// 第一的 对于 (i=0; i<N; i++) { 如果(条件) 做一点事(); 别的 做其他事情(); } | // 第二 如果(条件) { 对于 (i=0; i<N; i++) 做一点事(); } 别的 { 对于 (i=0; i<N; i++) 做其他事情(); } |
优势: 简洁的程序语句 缺点:每次执行循环都必须判断循环体的执行条件,占用大量计算机资源 | 优势: 占用资源少,执行效率高 缺点:程序语句较多,对前者不够简洁 |
2.写出运行以下程序的结果(5分)
答:运行结果为:
8,10,12,14,16
#include<stdio.h> 整数总和(int a) { 汽车 诠释 c=0; 静止的 诠释 b=3; c+=1; b+=2; 返回 (a+b+c); } 主函数() { 诠释我; 诠释一个= 2; for(i=0;i <5;i++) { printf("%d,", sum(a) ); } } |
五、MCU基础部分:(共20分)
1.8051微控制器( D ) 它还具有外部中断和串行通信等辅助功能。 (2分钟)
A ) P0 B ) P1 C ) P2 D ) P3
2.8051的RST引脚为_IN引脚___( IN引脚或OUT引脚)。当_high___电平出现在其末尾时, 8051进入复位状态。 8051保持这个值直到RST管脚接收到__low__电平,8051离开复位状态,进入程序运行状态,开始从ROM_00__H单元取指令、翻译和执行指令。 (2分钟)
3.存储器分为两类: __ RAM__和__ROM____ ,其中__ROM__是非易失性的,常用于存储数据,掉电不丢失,常用于存储程序和代码。 (2分钟)
4.是以下无符号二进制数的十进制和十六进制数? (2分钟)
(1) 10110 B (2) 11111010
答案:十进制:22 350
十六进制:16H FAH
5.简述单片机的一般结构。以您熟悉的单片机为例,简要介绍可与单片机配合使用的最小系统中包含的外围电路。 (4 分)
答:单片机部分由CPU、RAM、ROM、定时器/计数器、I/O缓冲器等部分组成;以51单片机为例,最小系统由复位电路、时钟电路等外围电路组成。
6.一个单片机控制系统有8个发光二极管:(8分)
写一个程序让它们从上到下开启(不需要写完整的代码,只写核心算法,io口可以换成p0口) 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论