资源描述
<p>上嵌《嵌入式C高级编程》笔试
一. 选择题(每题1分,共20道)
1.C语言程序编译时,程序中的注释部分( )
A)参与编译,并会出现在目的程序中
B)参与编译,但不会出现在目的程序中
C)不参与编译,但会出现在目的程序中
D)不参与编译,也不会出现在目的程序中
2.语句“ int k=0586 ;” ,将( )
A)说明k 为初值586 的整型变量
B)说明k 为初值0586 的整型变量
C)导致编译错误
D)说明整型常量k 的值为0586
3.全局变量的存储类型可以定义为( )
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>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<5; a++) scanf(″%d″, &b);
那么,scanf最多可执行次数是( )
A)4 C)5
B)6 D)1
9.假定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="" 3="" 4="" 10="" 13="" s="" i="" 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;
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,则栈的不也许输出序列是( )
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空)
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<=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="" int="" lpint="(int" chbuffer="" _________________="" ptr="arr;" include="" define="" x="" k="2," m="1," a="" return="" union="" short="" long="" void="" element="" if="" top="">=MAX_STACK_SIZE-1)
return stack_full();
stack[ ____________ ]=item;
}
三. 简答题(每题4分,共5道)
1 写一个“标准”宏SWAP,这个宏输入两个参数,并互换他们的值。
2 char * const p;
char const * p
const 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 个数字排成一排,使得相邻的两个数字之和为一个素数,且首尾两个数字之和也为一个素数。编写程序,打印出所有的排法。</p>
展开阅读全文