微电子专业测试题A卷 答案教程文件.doc

微电子专业测试题A卷 答案教程文件.doc

ID:59275808

大小:38.00 KB

页数:7页

时间:2020-09-07

微电子专业测试题A卷 答案教程文件.doc_第1页
微电子专业测试题A卷 答案教程文件.doc_第2页
微电子专业测试题A卷 答案教程文件.doc_第3页
微电子专业测试题A卷 答案教程文件.doc_第4页
微电子专业测试题A卷 答案教程文件.doc_第5页
资源描述:

《微电子专业测试题A卷 答案教程文件.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL2.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。#defineMIN(A,B)((A)<=(B)(A):(B))3嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?第一个方案while(1){}第二个方案for(;;){}第三个方案是用gotoLoop:...gotoLoop;4.用变量a给出下面的定义a)一个整型数(Aninte

2、ger)b)一个指向整型数的指针(Apointertoaninteger)c)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)d)一个有10个整型数的数组(Anarrayof10integers)e)一个有10个指针的数组,该指针是指向一个整型数的(Anarrayof10pointerstointegers)f)一个指向有10个整型数数组的指针(Apointertoanarrayof10integers)g)一个指向函数的指针,该函数有一个整型参数

3、并返回一个整型数(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnaninteger)答案是:a)inta;//Anintegerb)int*a;//Apointertoanintegerc)int**a;//

4、Apointertoapointertoanintegerd)inta[10];//Anarrayof10integerse)int*a[10];//Anarrayof10pointerstointegersf)int(*a)[10];//Apointertoanarrayof10integersg)int(*a)(int);//Apointertoafunctionathattakesanintegerargumentandreturnsanintegerh)int(*a[10])(int);//Anarra

5、yof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger5.C语言中,关键字static的作用是什么?关键字const是什么含意?在C语言中,关键字static有三个明显的作用:1).在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2).在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3).在模块内,一个被声明为静态的函数只可被这一模块内

6、的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。6.下面的函数有什么错误:intsquare(volatileint*ptr){return*ptr**ptr;}这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:intsquare(volatilein

7、t*ptr){inta,b;a=*ptr;b=*ptr;returna*b;}答案:由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:longsquare(volatileint*ptr){inta;a=*ptr;returna*a;}7嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。在以上两个操作中,要保持其它位不变。答案:#defineBIT3(0x1<<3)s

8、taticinta;voidset_bit3(void){a

9、=BIT3;}voidclear_bit3(void){a&=~BIT3;}8.下面的代码输出是什么,为什么?voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");}答案:无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。