嵌入式C语言高级编程试卷B

发布 2021-04-23 05:33:28 阅读 1592

上嵌《嵌入式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的一个最大优点是与任何特定的硬件或系统无关。这使得一个用户写的程序不作任何修改就能运行在几乎...