欢迎来到天天文库
浏览记录
ID:42526721
大小:45.00 KB
页数:5页
时间:2019-09-16
《微电子专业测试题A卷-答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL2.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。#defineMIN(A,B)((A)<=(B)(A):(B))3嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?第一个方案while(l){)第二个方案for(;;)1)第三个方案是用gotoLoop:•••gotoLoop;4.用变量a给出下面的定义a)一个整型数
2、(Aninteger)b)一个指向整型数的指针(Apointerloaninteger)c)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)d)一个有10个整型数的数组(Anarrayof10integers)e)一个有10个指针的数组,该指针是指向一个整型数的(Anarrayof10pointerstointegers)f)一个指向有10个整型数数组的指针(Apointertoanarrayof10integers)g)-个指向函数
3、的指针,该函数有一个整型参数并返回一个整型数(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnaninteger)答案是:a)inta;//Anintegerb)int*a;//Apointert
4、oanintegerc)int**a;//Apointertoapointerloanintegerd)inta[l()];//Anarrayof1()integersc)int*a[10];//Anarrayof10pointerstointegersf)int(*a)[10J;//Apointertoanarrayof10integersg)int(*a)(int);//Apointertoafunctionathattakesanintegerargumentandreturnsaninte
5、gerh)int(*a[10])(int);//Anarrayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger4.C语言中,关键字static的作用是什么?关键字const是什么含意?在C语言中,关键字static冇三个明显的作用:1).在函数体,一个被声明为静态的变戢在这一苗数被调用过程中维持其值不变。2).在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用丙数访问,但不能被模块外其它函数访间。它是
6、一个木地的全局变量。3).在模块内,一个被声明为静态的两数只可被这一模块内的其它两数调用。那就是,这个函数被限制在声明它的模块的木地范围内使用。大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。5.下面的函数有什么错误:intsquare(volatileint*ptr){return*ptr**ptr;}这段代码的目的是用來返指针*pt「指向值的平方,但是,由于*pti■指向一个v
7、olatile型参数,编译器将产生类似下面的代码:intsquare(volatileint*ptr){inta,b;a=*ptr;b=*ptr;returna*b;)答案:由于*ph■的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的半方值!正确的代码如下:longsquare(volatileint水ptr){inta;a=*ptr;returna*a;)7嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第
8、二个清除a的bit3。在以上两个操作中,要保持其它位不变。答案:#defineBIT3(0xl«3)staticinta;voidsct_bit3(void)a
9、=BIT3;)voidclear_bit3(void){a&=〜BIT3:)8.下面的代码输出是什么,为什么?voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6”);1答案:无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型
此文档下载收益归作者所有