嵌入式C语言程序设计课后习题参考答案
《C语言程序设计》课后习题答案解析[第四版]谭浩强
![《C语言程序设计》课后习题答案解析[第四版]谭浩强](https://img.taocdn.com/s3/m/70a3dc2176c66137ee06197b.png)
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n"); printf(" Very Good!\n\n");printf ("**************************\n"); return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
嵌入式练习题附部分答案

选择题1.W3C制定了同步多媒体集成语言规范,称为____规范。
A. XMLB. SMILC. VRMLD. SGML##2.________完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。
A. 硬件抽象层B. 驱动映射层C. 硬件交互层D. 中间层##A3.在C语言中,设有数组定义:char array[]="China"; 则数据array 所占用的空间为______。
A. 4个字节B. 5个字节C. 6个字节D. 7个字节##C4.对某一寄存器某几位清零,可用一条指令_______来实现。
A. ANDB. ORC. NOTD. AOR##A5.实时操作系统(RTOS)内核与应用程序之间的接口称为________。
A. 输入/输出接口B. 文件系统C. APID. 图形用户接口##C6.在操作系统中,Spooling技术是用一类物理设备模拟另一类物理设备的技术,实现这种技术的功能模块称做____。
A. 可林斯系统B. 斯普林系统C. 图灵机系统D. 虚拟存储系统##7.文件系统的主要功能是______。
A. 实现对文件按名称存取B. 实现虚拟存储器C. 提高外村的读写速度D. 用于保护系统文档##8.在CPU和物理内存之间进行地址转换时,________将地址从虚拟(逻辑)地址空间映射到物理地址空间。
A. TCBB. MMUC. CacheD. DMA##9.以下叙述中,不符合RISC指令系统特点的是______。
A. 指令长度固定,指令种类少B. 寻址方式种类丰富,指令功能尽量增强C. 设置大量通用寄存器,访问存储器指令简单D. 选取使用频率较高的一些简单指令##10.在操作系统中,除赋初值外,对信号量仅能操作的两种原语是____。
A. 存操作、取操作B. 读操作、写操作C. P操作、V操作D. 输入操作、输出操作11.在面向对象系统中,用______关系表示一个较大的“整体”包含一个或多个较小“部分”的类。
C语言程序设计教程 课后习题参考答案

else if( carType == 2 ) //富康
{
if( distance < 3 )
totalMoney = 8.0;
else
totalMoney = 8 + fukang * (distance – 3);
}
else if( carType == 3 ) //富康
{
if( distance < 3 )
(3) 7BAB4BAB1BC
(4) ABABABC
(5) ******
******
******
******
4.
(1) a != b
(2) n / 10
(3) scanf(“%d”, &a);
5.(3)行int fac = 1, sum = 0;
6.
(1)
#include <stdio.h>
main( )
r = 2.5;
h = 3.5;
v = 3.14*r*r*h;
printf(“v=%lf\n”, v);
}
(2)
#include <stdio.h>
main( )
{
char ch;
ch = getchar( );
printf(“%c\n”, ch + 32);
}
(3)
#include <stdio.h>
scanf("%d", &carType);
printf("请输入您乘车的总路程:");
scanf("%lf", &distance);
if( carType == 1)//夏利
c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
嵌入式系统设计师练习题及答案解析

嵌入式系统设计师练习题及答案第一套 (1)嵌入式系统设计师练习题及答案第二套 (5)嵌入式系统设计师练习题及答案第三套 (16)嵌入式系统设计师练习题及答案解析第四套 (27)嵌入式系统设计师练习题及答案解析第五套 (45)嵌入式系统设计师练习题及答案解析第六套 (59)嵌入式系统设计师练习题及答案解析第七套 (66)嵌入式系统设计师练习题及答案解析第八套 (75)嵌入式系统设计师练习题及答案解析第九套 (81)嵌入式系统设计师练习题及答案解析第十套 (90)嵌入式系统设计师练习题及答案解析第十一套 (99)嵌入式系统设计师练习题及答案解析第十二套 (106)嵌入式系统设计师练习题及答案解析第十三套 (115)嵌入式系统设计师练习题及答案解析第十四套 (126)嵌入式系统设计师练习题及答案解析第十五套 (138)嵌入式系统设计师练习题及答案解析第十六套 (153)嵌入式系统设计师练习题及答案解析第十七套 (159)嵌入式系统设计师练习题及答案解析第十八套 (167)嵌入式系统设计师练习题及答案解析第十九套 (176)嵌入式系统设计师练习题及答案解析第二十套 (188)嵌入式系统设计师练习题及答案解析第二十一套 (197)嵌入式系统设计师练习题及答案解析第二十二套 (211)嵌入式系统设计师练习题及答案第一套1、以下关于CPU的叙述中,错误的是A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果C.CPU中的控制器决定计算机运行过程的自动化D.指令译码器是CPU控制器中的部件2、以下关于Cache的叙述中,正确的是A.在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素B.Cache的设计思想是在合理成本下提高命中率C.Cache的设计目标是容量尽可能与主存容量相等D.CPU中的Cache容量应大于cPu之外的Cache容量3、风险预测从两个方面评估风险,即风险发生的可能性以及A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果4、许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括A.便于为数据合理分配存储单元B.便于对参与表达式计算的数据对象进行检查C.便于定义动态数据结构D.使于规定数据对象的取值范围及能够进行的运算5、在计算机系统中,对程序员是透明的。
嵌入式练习题附部分答案

B.协作图
C.类图
D.状态图
35.RS-232(串行通信总线的电气特性要求总线信号采用
A.正逻辑
B.负逻辑
C.高电平
D.低电平
##
36.编译程序对高级语言进行编译时,需要该程序的地址空间中为变
量指定地址,这种地址成为。
A.逻辑地址
B.物理地址
C.接口地址
D.线性地址
##
37.的做法不利于嵌入式应用软件的移植。
存在的整体/部分形式的关联关系。
A.依赖关系
B.聚合关系
C.泛化关系
D.实现关系
##
27.下面不是操作系统中调度程序所采用的调度算法。
A.先来先服务(FCFS)
B.先进先出(FIFO)
C.时间片轮转调度
D.优先级调度
##
28执行C程序代码int a=1,b=0,c=0;int d=(++a)*(c=1);后,a,b,c,d的 值分别为。
C.形参变量所占用的内存单元位于堆中
D.如果形参是数组名,则传递的是每个数组元素的值
56.以下关于硬件抽象层的论述,不合适的是(
A.采用硬件抽象层可以大大提高系统的移植性
B.采用硬件抽象层可以大大提高系统的运行效率
C.采用硬件抽象层可以缩短系统的测试周期
D.采用硬件抽象层有助于提高系统的可靠性
##B
B.提供描述文件抽象的程序接口
C.文件存储在磁盘或其他不易失的存储介质上
41.在过程式程序设计(①)、数据抽象程序设计(②)、面向对象程
序设计(③)、泛型(通用)程序设计(④)中,C++语言支持
A.①
B.②③
C.③④
中北大学嵌入式习题答案第5章

第五章 linux与C语言编程基础一、填空题1、在宿主机上使用编译器软件将嵌入式应用、嵌入式操作系统编译成为可以在目标机上运行代码的过程,称为交叉编译,而采用的编译器称为交叉编译器。
2、C语言中采用 _ asm 标记实现嵌汇编。
3、使用gcc命令若想生成调试信息,应该给gcc加参数 -g ,若想生成警告信息,应该给gcc加参数 -Wall 。
4、有源文件test.c,若想生成目标文件test.o,正确的命令是 gcc -c test.c 。
5、gdb对可执行文件进行调试。
6、工程管理器make读入的配置文件为__makefile__。
7、不带缓存的文件I/O操作,主要用到的5个函数为open、close、read、write和 lseek 。
这里的不带缓存是指每一个函数都只调用系统中的一个函数(不理解这句话的含义)。
这些函数虽然不是ANSI C的组成部分,但是是POSIX 的组成部分。
lseek函数(随机访问文件)移动文件读/写指针使用UNIX系统调用来读取文件容时,系统究竟是从文件的哪一个位置读取数据,完全由文件指针决定。
例如:刚开始读取数据时,文件指针通常是指向文件的起始位置。
二、选择题1、假设当前目录下有文件Makefile,下面是其容:pr1: prog.o subr.ogcc –o pr1 prog.o subr.oprog.o: prog.c prog.hgcc –c –l prog.o prog.csubr.o: subr.cgcc –c –o subr.o subr.cclear:rm –f pr1*.o现在执行命令make clear,实际执行的命令是( A ):A、rm –f pr1*.oB、gcc –c –l prog.o prog.cC、gcc –c –o subr.o subr.cD、都执行2、_ B 命令是在vi编辑器中执行存盘退出。
A ) qB ) wq C) q! D) WQ3、在vi编辑器中执行不存盘退出的命令为( A )A、:q 编译结束,退出viB、:sqC、:q! 不保存编辑过的文档,强制退出D、:wq 保存文档并推出4、vi编辑器中不包括下面哪种模式( A )A、编辑模式B、命令行模式C、插入模式D、底行模式【解】:命令行模式——初始模式插入模式底行模式5、下面哪种语言GCC编译器不支持( C )A、CB、JavaC、ASPD、C++ASP即Active Server Pages,是MicroSoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。
C语言程序设计教程第六章课后习题参考答案

C语⾔程序设计教程第六章课后习题参考答案P158 1求三个实数最⼤值#includefloat max(float,float,float);int main(){float a,b,c,m;printf("请输⼊三个实数:");scanf("%f %f %f",&a,&b,&c);printf("最⼤数为%f\n",max(a,b,c));return 0;}float max(float a,float b,float c){float t;if(a>b&&a>c)t=a;else if(b>a&&b>c)t=b;elset=c;return t;}P158 2求最⼤公约数最⼩公倍数#includeint fun1(int a,int b);int fun2(int a,int b);int main(){int a,b;printf("请输⼊两个整数:");scanf("%d %d",&a,&b);printf("最⼤公约数为:%d\n",fun1(a,b));int t,r;if(a{t=a;a=b;b=t;}while((r=(a%b))!=0) {a=b;b=r;}return b;}int fun2(int a,int b) {int n;n=(a*b)/fun1(a,b); return n;}P158 3求完全数#includevoid wan(int n); void main(){int n;for(n=1;n<1000;n++) wan(n);printf("\n");}void wan(int n){if(n%i==0)s=s+i;}if(n==s)printf("%d\t",n); }P158 4⽆暇素数#include#includeint nixvshu(int n);int isPrime(int n);int main(){int n,t;printf("⽆暇素数:\n");for(n=100;n<=999;n++) {t=nixvshu(n);if(isPrime(n)&&isPrime(t)) printf("%d\t",n);}printf("\n");return 0;}int nixvshu(int n){int x=0;while(n){x=x*10+n%10;n=n/10;}return x;int i;for(i=2;i<=sqrt(n);i++)if(n%i==0) return 0;return n;}P158 7递归函数#includeint Y(int n){if(n==0)return 0;if(n==1)return 1;if(n==2)return 2;elsereturn (Y(n-1)+Y(n-2)+Y(n-3)); } int main(){int n,k=0;for(n=0;n<=19;n++){printf("%d\t",Y(n));k++;if(k%5==0)printf("\n");}return 0;}P124 6分解质因数#include#includevoid fenjie(int );int main(){int n;printf("请输⼊⼀个正整数:"); scanf("%d",&n);if(isPrime(n)){printf("%d=1*%d\n",n,n);}else{fenjie(n);printf("\n");}return 0;}int isPrime(int n){int i;for(i=2;i<=sqrt(n);i++){if(n%i==0) return 0;}return 1;}int zhi(int n){int m;for(m=2;m<=n;m++){if(isPrime(m)&&(n%m==0)) break;void fenjie(int n){int m;printf("%d=%d",n,zhi(n));while(n>zhi(n)){m=zhi(n);n=n/m;printf("*%d",zhi(n));}}P47 1输出闰年#includeint f(int year);int main(){int year,k=0;for(year=1900;year<=2000;year++){if(f(year)){printf("%d\t",year);k++;if(k%5==0)printf("\n");}}return 0;}int f(int year){if((year%4==0&&year%100!=0)||(year%400==0)) return year;P47 2输出回⽂数#includeint fun(int n);int main(){int n,k=0;for(n=10;n<=2000;n++) {if(n == fun(n)){printf("%d\t",n);k++;if(k%5==0)printf("\n");}}return 0;}int fun(int n){int i=0;while(n>0){i=i*10+n%10;n=n/10;}return i;}P47 3进制转换#includevoid trans(int n,int base); int main()printf("请输⼊要转换的⼗进制数:"); scanf("%d",&n);printf("请输⼊转换的进制:"); scanf("%d",&base);trans(n,base);printf("\n");return 0;}(⽅法⼀)void trans(int n,int base){if(n){trans(n/base,base);if(n%base>=10)switch(n%base){case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;}elseprintf("%d",n%base);}}(⽅法⼆)void trans(int n,int base){int r;char c;trans(n/base,base); r=n%base;if(r>=10)c='A'+r-10;elsec='0'+r;printf("%c",c);}}。
嵌入式课后练习题答案

嵌⼊式课后练习题答案第1章1、什么是嵌⼊式系统?嵌⼊式系统的组成?从技术的⾓度定义:以应⽤为中⼼、以计算机技术为基础、软件硬件可裁剪、适应应⽤系统对功能、可靠性、成本、体积、功耗严格要求的专⽤计算机系统。
从系统的⾓度定义:嵌⼊式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在⼀起的计算机系统。
术语嵌⼊式反映了这些系统通常是更⼤系统中的⼀个完整的部分,称为嵌⼊的系统。
嵌⼊的系统中可以共存多个嵌⼊式系统。
2、典型的嵌⼊式处理器有哪些?3、典型的RTOS操作系统有哪些?4、列举⾝边的嵌⼊式应⽤产品?第2章Cortex-M体系结构⼀题:填空题1、ARM Cortex系统的处理器分为:____A_____、____R_____、_____M_____。
2、ARM Cortex-M3为32位微控制器,请问32位指的是CPU字长。
3、ARM Cortex-M3体系结构采⽤哈佛总线结构,拥有独⽴的指令总线和数据总线,可以让取指与数据访问并⾏进⾏。
4、CM3寄存器分为通⽤寄存器,包括R0~R15。
和特殊功能寄存器,包括程序状态寄存器、异常屏蔽寄存器、控制寄存器。
5、寄存器R13是堆栈指针寄存器。
6、寄存器R14是程序连接寄存器。
7、寄存器R15是程序PC。
8、CM3的堆栈指针分为__MSP__、__PSP_。
存储器堆栈堆栈分为:向上⽣长(即向⾼地址⽅向⽣长)的递增堆栈;向下⽣长(即向低地址⽅向⽣长),称为递减堆栈。
堆栈指针指向最后压⼊堆栈的有效数据项,称为满堆栈;堆栈指针指向下⼀个数据项放⼊的空位置,称为空堆栈。
试判断CM3属于递减堆栈堆栈和满堆栈堆栈。
9、在CM3中记录程序状态的寄存器是___xPSR____。
都分别有些什么状态_应⽤状态、中断状态、可执状态。
10、BASEPRI寄存器的作⽤是___屏蔽优先级低于某⼀个数值的异常____。
11、寄存器CONTROL的作⽤是控制处理器模式及堆栈切换。
MOV R0,#0x01MSR CONTROL,R0在8级优先中,请问上述程序的功能是处理器⼯作在⽤户模式主堆栈下。
C语言程序设计课后习题参考答案

《C语言程序设计》课后习题参考答案(总23页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题1. A2. D二、填空题1. BASIC、FORTRAN、AL_GOL60和COBOL2. 83. 关键字4. 编辑、编译、链接和运行三、简答题1.答:(1)C语言具有结构化的控制语句。
C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。
(2)C语言具有丰富的数据结构类型。
C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。
C语言还提供了与地址密切相关的指针类型。
此外,用户还可以根据需要自定义数据类型。
(3)C语言具有丰富的运算符。
C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。
(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。
(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。
它既是成功的系统描述语言,又是通用的程序设计语言。
(6)C语言与汇编语言相比,可移植性好。
(7)功能强大。
C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。
现在许多系统软件都用C语言来描述,可以大大提高了编程效率。
2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。
3.答:(1)操作系统的设计与实现。
C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。
(2)工业控制。
由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。
(word完整版)C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
嵌入式课后答案整理

嵌入式课后答案整理其次章(1)S3C2410A AHB总线中衔接了哪些控制器?APB总线上衔接了哪些部件?答:AHB:存储器控制器;NandFash 控制器;中断控制器;LCD 控制器;USB主控制器;时钟与电源管理。
APB:通用异步收发器;通用I/O端口(GPIO);定时器/脉冲调制;实时时钟(RTC);看门狗定时器;A/D转换器与触摸屏;IIC (Itergrated Circuit,内部集成电路)总线接口;SPI(串行外设接口);MMC/SD/SDIO主控制器;USB设备控制器。
(2)S3C2410A中使用的CPU内核是那个公司的产品?什么型号?答:ARM公司的ARM920T内核。
(3)S3C2410A的存储器控制器可以支持哪些类型的存储器芯片?答:bank0-bank7支持ROM/SRAM,其中bank6-bank7也支持SDRAM。
(4)S3C2410A中LCD控制器使用什么存储器作为显示存储器?答:LCD控制器支持STN LCD显示以及TFT LCD显示,显示缓冲区使用系统存储器(内存),支持专用LCD DMA将显示缓冲区数据传送到LCD控制器缓冲区。
(5)4通道DMA支持存储器到存储器的数据传输吗?支持I/O到I/O的数据传输吗?支持I/O 到存储器的数据传输吗?答:支持;支持;支持。
(6)简述AHB、APB总线的含义。
答:AHB是一种片上总线,用于衔接时钟频率和高性能的系统模块,支持突发传输、支持刘顺县操作,也支持单个数据传输,全部的时序都以单一时钟的前沿为基准操作。
APB也是一种片上总线,为低性能、慢速外设提供了较为容易的接口,不支持流水线操作。
(7)S3C2410A主时钟频率最高达到多少MHz?答:266MHz。
(8)S3C2410A内有几通道A/D转换器?转换器是多少位的?答:8通道;10位。
(9)S3C2410A支持多少个中断源?支持多少个外部中断源?答:55个;24个外部中断源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式C语言程序设计基础课后习题答案第一章一CAC二1用于告诉编译器在程序中包含标准输入\输出库信息2程序=数据结构+算法3算法即操作步骤,它指明了解决某一问题的方法和步骤4自然语言\流程图\N-S图三1、自然语言(略)N-S图传统流程图2、#pragma SMALL#include <at89x51.h>void main(void){ int i;P0 = 0x15;for(i=0;i<1000;i++);}3、略一DAD二1、负责接收\处理和执行指令的发出2、可以避免程序运行时进入混乱和死循环三1、L298N的驱动电路采用双极型H桥型脉宽调制(PWM)工作方式,输入信号为标准TTL逻辑电平信号,内部包含四通道逻辑驱动电路,可组成两个H桥式驱动器,驱动两只电机。
2、略3、#pragma SMALL#include <at89x51.h>void main(void){ int i;P0 = 0x16;for(i=0;i<1000;i++);}一DDCAB BDBAB BC二1int float char2十进制八进制十六进制小数指数3下划线字母数字字母或者下划线4‘’“”5% *=6实型整型字符型7 18 19data11x%k)-(k%(x%k))12 113321446150 1 016 2.5三1、‘a’表示单个字符,在其中必须且只能有一个字符。
"a"表示字符串,字符串是由若干个字符组成的。
字符是组成字符串的元素。
2、是3、int x = 10, y = 12;int temp;temp = x;x = y;y = temp;4、#pragma SMALL#include <at89x51.h>void delay1(int data a1){ unsigned int data i,j;for(i=0;i<a1;i++)for(j=0;j< 122;j++) {}}void fd(unsigned int data b){ unsigned int data i;for(i=0;i<b;i++){ P0 |= 0x15;delay1(5);P0 &= 0x00;delay1(1);}}void lt(unsigned int data b) { unsigned int data i;for(i=0;i<b;i++){ P0 |= 0x16;delay1(5);P0 &= 0x00;delay1(1);}}void tz(unsigned int data b) { unsigned int i;for (i=0;i<b;i++){ P0 &= 0x00;delay1(1000);}}void main(void){ fd(500);lt(300);fd(500);lt(300);fd(500);lt(300);fd(500);lt(300);tz(1000);}第四章习题答案一Bcbbb dbabd bcdba二1、{}2、10,9,113、8,174、115、8,206、for7、48、while do…..while for9、4.010、111、012、do….while13、1,2,1三1、switch(s){case1:case7:case8:x=1;break;case2:case9:case10:x=3;break;case3:case4:case5:case6:x=2;break;default:x=0;}2、#include<stdio.h> main(){int i=1,j=1;long int s,sum=0;for(j=1;j<=20;j++){ s=1;for(i=1;i<=j;i++){ s*=i;}sum+=s;}printf("1+2!+...+20!=%ld\n",sum); }3、#include <stdio.h>void main(){int n;for (n=100;n<=200;n++){if (n%3==0) continue;printf("%d ″,n);}}4、#include "stdio.h"#include "conio.h"main(){ int i,j,k;for(i=0;i<=20;i++){ for(j=0;j<=33;j++){ k=100-i-j;if(i*15+j*9+k==300)printf("\n鸡翁鸡母鸡雏数分别为:%5d%5d%5d",i,j,k); } }getch(); }第5章答案DADDA BBBCC BABAA BBAD1嵌套递归2return void3自动变量和寄存器变量、静态外部变量、静态局部变量和外部变量4void dothat(int n,double x);5extern6定义时赋值和运行时赋值7void8auto9函数、语句10值传递\址传递11\全局和局部动态和静态三1、#include<stdio.h>int fun(int n){int i,sum=0,f=1;for(i=1;i<=n;i++){sum+=(f*i);f=-f;}return sum;}int main(){int n=10;printf("%d\n",fun(n));}2、#include <stdio.h>double sum(double x, int n){double s = 1;int i;double t = 1;double a = 1;for(i=1;i<=n;i++){a*=x;s+=a/t;t*=i+1;}return s;}int main(){int n;double x;while(scanf("%lf%d",&x, &n)==2) {printf("%lf\n",sum(x,n));}}3、#include "stdio.h"main( ){ register i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("sum=%d\n",sum); }4、int fun(int x){ if(x<8) return x;return x%8+10*fun(x/8);}5、#include "stdio.h"int squre(int j);double power(double x,int n);main(){ int j=4;putchar('\n');printf("4的平方值为:%d \n ",squre(j));}int squre(int j){ return j*j; }double power(double x,int n){ double p;if (n>0)for (p=1.0;n>0;n--)p=x*x;elsep=1.0;return(p); }第6章答案1C 2AC 3D 5D 6C 7B 8BD 9D 10C 11D 12B 13C 14D 15C 16A17A 18B 19A 20CD 21A 22B 23D 24B 25C 26B 27B 28D 29D 30 A 31B1、0 数据类型2、8 83、整形表达式4、按行存储或者按列存储5、0 86、不做7、268、strcpy(s2,s1);9 6,10 10 \0 111 tt 1213 16 14 2 415 cde 16 1217 3 18 15三1、#include "stdio.h"#include "string.h"main(){ char s1[100],s2[100];int i,n=0,m;printf("请输入一个字符串:");gets(s1);m=strlen(s1);for(i=0;i<m;i++){if(islower(s1[i])){s2[n]=toupper(s1[i]);n++;}else if(isupper(s1[i])){ s2[n]=tolower(s1[i]);n++;}elsecontinue;}printf("从键盘上输入字符串为:%s\n",s1);printf("字母大小写转换后且滤掉非字母字符的字符串为:%s",s2); getchar();}2、#include "stdio.h"int *fun3(int *x,int *y);main(){ int a=10,b=20,*p;printf("未交换前a=%d,b=%d\n",a,b);fun1(a,b);printf("调用函数fun1后a=%d,b=%d\n",a,b);fun2(&a,&b);printf("调用函数fun2后a=%d,b=%d\n",a,b);p=fun3(&a,&b);printf("调用函数fun3后得到的最大值为:%d",*p); getch(); }fun1(int x,int y){ int t;t=x;x=y;y=t; }fun2(int *x,int *y){ int t;t=*x;*x=*y;*y=t; }int *fun3(int *x,int *y){if(*x>*y) return x;elsereturn y; }3、#include "stdio.h"main(){ int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int i,j,*p[3],(*q)[4];printf("通过数组名来输出数组元素a[1][2]的值\n");printf("直接引用数组元素得a[1][2]的值为:%d\n",a[1][2]);printf("通过第2行的首地址得a[1][2]的值为:%d\n",*(a[1]+2));printf("通过数组名得到a[1][2]的值为:%d\n",*(*(a+1)+2));printf("通过a[0]得到a[1][2]的值为:%d\n",*(a[0]+4*1+2));printf("通过a[0][0]得到a[1][2]的值为:%d\n",*(&a[0][0]+4*1+2));printf("\n通过建立一个指针数组来输出数组元素a[1][2]的值\n");for(i=0;i<3;i++)p[i]=a[i];printf("通过指针变量直接输出a[1][2]的值为:%d\n",p[1][2]);printf("通过指针数组元素来输出a[1][2]的值为:%d\n",*(p[1]+2));printf("通过指针数组的移动来输出a[1][2]的值为:%d\n",*(*(p+1)+2));printf("通过移动指针数组且带下标的方式输出a[1][2]的值为:%d\n",(*(p+1))[2]);printf("\n通过建立一个行指针来输出a[1][2]的值\n");q=a;printf("通过行指针直接输出a[1][2]的值为:%d\n",q[1][2]);printf("通过行指针元素来输出a[1][2]的值为:%d\n",*(q[1]+2));printf("通过行指针的移动来输出a[1][2]的值为:%d\n",*(*(q+1)+2));printf("通过移动行指针且带下标的方式输出a[1][2]的值为:%d\n",(*(q+1))[2]);}4、#include<AT89X51.H>void main(void){Const unsigned char desin[64]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0x BF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8,0xF 0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF,0xFF,0xFE,0xFD,0 xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xF D,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF }; unsigned int a;unsigned char b;do {for (b=0;b<64;b++){for (a=0;a<30000;a++);P1=desin[b];}}while(1);}。