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






