1、上嵌嵌入式C高级编程笔试一 选择题(每题1分,共20道)1.C语言程序编译时,程序中的注释部分( )A)参与编译,并会出现在目的程序中B)参与编译,但不会出现在目的程序中C)不参与编译,但会出现在目的程序中D)不参与编译,也不会出现在目的程序中2.语句“ int k=0586 ;” ,将( )A)说明k 为初值586 的整型变量B)说明k 为初值0586 的整型变量C)导致编译错误D)说明整型常量k 的值为05863.全局变量的存储类型可以定义为( )A)auto 或s
2、taticB)extern 或registerC)auto 或externD)extern 或static4.设int 型变量x 有初始值3,则表达式x+*5/10 的值是( )A)0C)2B)1D)35.下列表达式的值为0 的是( )A)35C)3/5B)3/5.0D)3<56.设int a = 3;则表达式a<1&&-a>1的运算结果和a的值分别是( ) A)0和2 C)1和2 B)0和3D)1和3 7.设有以下
3、程序段:int a=1, b=10, c=1, x; x=a&&b|-c;printf(%d, %dn,x,c);执行后输出的结果是( ) A)0,0 C)1,0 B)0,1 D)1,18.设有以下程序段:for(a=0, b=0; b!=100&&a<5; a+) scanf(%d, &b); 那么,scanf最多可执行次数是( )A)4 C)5 B)6 D)19.
4、假定a和b为整型变量,则执行下述语句组后,b的值为( ) a=1; b=10; do b -= a; a+; while (b-<0); A)9 C)-1 B)-2 D)8 10.执行语句“ for(s=0,i=1;i<=10;i=i+3) 1="" 2=&qu
5、ot;" 3="" 4="" 10="" 13="" s="" i="" int="" p="S之后,*(P2)的值是(" x="" char="" aa.dat="" fp="fopen(" ab="" a="" wb="" r="" 18.=""
6、 p-="">Llink=q; q->Rlink=p; p->Llink->Rlink=q; q->Llink=q; B)p->Llink=q; p->Llink->Rlink=q; q->Rlink=p; q->Llink=p->Llink; C)q->Rlink=p; q->Llink=p->Llink; p->Llink->Rlink=q; p->Llink=q; D)q->Llink=p->Llink; q->Rlin
7、k=q; p->Llink=q; p->Llink=q; 19. 一个栈的入栈序列是abcde,则栈的不也许输出序列是( ) A)edcba C)decba B)dceab D)abcde 20. 以数组Q0.m1存放循环队列中的元素,变量rear和qulen分别指示循环队列中队尾元素的实际位置和当前队列中元素的个数,队列第一个元素的实际位置是( ) A)rearqulen B)rearqulenm C)mqulen D
8、)1(rearmqulen)% m 二 填空题(每空2分,共10空) 1 下面代码的输出结果是 _ int a = 100;int b = 300;a = b + (b = a)*0;printf("a = %d, b = %drn", a, b); 2 下面代码的输出结果是 _int main( ) int i, x, y;i=x=y=0;do +i;if(i%2!=0) x=x+i; i+; y=y+i+; while (i<=7);printf("x=%d, y=%dn", x,
9、 y);return 0; 3 设int i, x33=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是 _ for(i=0; i<3; 4="" 5="" 6="" 7="" 8="" 10="" char="" lpstring="" int="" lpint="(int" chbuffer="" _=&quo
10、t;" ptr="arr;" include="" define="" x="" k="2," m="1," a="" return="" union="" short="" long="" void="" element="" if="" top="">=MAX_STACK_SIZ
11、E-1) return stack_full(); stack _ =item; 三 简答题(每题4分,共5道)1 写一个“标准”宏SWAP,这个宏输入两个参数,并互换他们的值。2 char * const p;char const * pconst char *p上述三个有什么区别?3 static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?4 heap和stack的区别?5 请写出C语言中打开文献、读写文献、文献定位、关闭文献的
12、函数。嵌入式高级编程机试编程题(每题8分,共5道)一、编写两个函数将整型变量x的二进制位的第n位置1或清零,其他位不变。二、编写一个把字符串转换成长整型数的函数,原型为long atol(const char *nptr)。三、编写一个递归函数,判断数组aN是否为一个递增数组。 四、编写一个函数,功能是把一个字符串循环右移n个。比如本来是"abcdefg",假如n=2,移位后应当是"fgabcde" 。 五、排列数字。将1、2 19、20 这20 个数字排成一排,使得相邻的两个数字之和为一个素数,且首尾两个数字之和也为一个素数。编写程序,打印出所有的排法。