上嵌《嵌入式c高级编程》笔试。
一. 选择题(每题1分,共20道)
语言程序编译时,程序中的注释部分( )
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)0c)2
b)1d)3
5.下列表达式的值为0 的是( )
a)3﹪5c)3/5
b)3/5.0d)3<5
6.设int a = 3。则表达式a<1&&-a>1的运算结果和a的值分别是。
a)0和2c)1和2
b)0和3d)1和3
7.设有以下程序段:int a=1, b=10, c=1, x。 x=a&&b||-c。printf(″%d, %d″,x,c)。
执行后输出的结果是。
a)0,0c)1,0
b)0,1d)1,1
8.设有以下程序段:for(a=0, b=0。 b!=100&&a<5。 a++)scanf(″%d″, b)。
那么,scanf最多可执行次数是( )
a)4c)5
b)6d)1
9.假定a和b为整型变量,则执行下述语句组后,b的值为( )
a=1。b=10。
dob -=a。
a++。while (b--<0)。
a)9c)-1
b)-2d)8
10.执行语句“ for(s=0,i=1。i<=10。i=i+3) s+=i。 ”后,变量s 、i 的当前值分别是( )
a)22,13c)22,10
b)12,10d)12,13
11.表达式“sizeof( int [1][2] )sizeof( int )”的值为( )
a)1c)3
b)2d)4
12.假如指针p 已经指向某个整型变量x ,则(*p)++相当于( )
a)x++b)p++
c)*(p++)
d)&x++
13.已知变量定义:
char s[3]="ab"。
char *p。
在执行了语句p=s之后,*(p+2)的值是( )
a)'b'b)'\0'
c)不确定。
d)字符'b'的地址。
14.函数调用语句calc(exp1, (exp3,exp4,exp5))。含有的实参个数是( )
a)1c)3
b)2d)4
15.以“只读”方式打开文本文件\home\下列语句中哪一个是正确的( )
a)fp=fopen( ″home\ ,ab ″
b)fp=fopen( ″home\ ″a ″
c)fp=fopen( ″home\ ,wb ″
d)fp=fopen( ″home\ ,r ″
16.下面说法正确的是( )
a)在顺序存储结构中,有时也存储数据结构中元素之间的关系。
b)顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
c)数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。
d)数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。
17.下列四种排序方法中,不稳定的方法是( )
a)直接插入排序c)冒泡排序。
b)归并排序d)直接选择排序。
18. 在双向链表指针p的结点前插入一个指针q的结点操作是( )
a)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)edcbac)decba
b)dceabd)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", 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", x, y)。
return 0。
3 设int i, x[3][3]=。则下面语句的输出结果是。
for(i=0。 i<3。 i++)
printf(″%d″, x[i][2-i])。
4 如下**:
char chbuffer[ ]
char *lpstring = chbuffer。
int *lpint = int *)chbuffer。
sizeof( chbuffer
sizeof( lpstring
lpint[1
5 下面**的输出结果是。
int arr[ ]
int *ptr=arr。
(ptr++)123;
printf("%d,%d", ptr, *ptr))。
6 下面**的输出结果是。
#include ""
#define sqr(x) x*x
int main(int argc, char* ar**)
int k = 2, m = 1, a = 10。
a /=sqr(k+m)/sqr(k+m)。
printf("%d", a)。
return 0。
7 若定义了。
unionchar a[10]。
short b[4][5]。
long c[5]。
u。则执行printf(″%d″, sizeof(u))。语句后,输出结果是。
8 下面**功能是将一条数据入栈。
void add(int top, element item)
if (top>=max_stack_size-1)
return stack_full()。
stackitem。
三. 简答题(每题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" 。
五、排列数字。将 这20 个数字排成一排,使得相邻的两个数字之和为一个素数,且首尾两个数字之和也为一个素数。编写程序,打印出所有的排法。
嵌入式C 高级编程
嵌入式c 面向对象高级编程 笔试试卷。请将填空题的答案填入 中。一 选择题。1.下列关于类和对象的叙述中,错误的是 2分 a.一个类只能有一个对象 b.对象是类的具体实例 c.类是对某一类对象的抽象 d.类和对象的关系是一种数据类型与变量的关系 2.当将一个类a或函数f 说明为另一个类b的友元后,类...
嵌入式系统高级C语言编程笔记
嵌入式c语言的基本数据类型。char长度为1byte,即8位。int长度为4byte,即32位。unsigned int 简称unsigned 负数在计算机中存储时一般用补码表示。define uchar unsigned char define u8 unsigned char define ui...
嵌入式系统C语言
嵌入式系统的c语言。译自 c for embedded systems 讲稿。刘永重译。一 c语言基础。1 什么是c?c 程序语言最初是由dennis ritchie在1971年为unix系统开发并实现的。c的一个最大优点是与任何特定的硬件或系统无关。这使得一个用户写的程序不作任何修改就能运行在几乎...