万家灯火网站建设,做基因功能注释的网站,上海正规网站定制,个人个性网页界面设计限时60分钟
1.下列关于栈叙述正确的是 A
A) 栈顶元素最先能被删除
B#xff09;栈顶元素最后才能被删除
C#xff09;栈底元素永远不能被删除
D#xff09;以上三种都不对
在栈中#xff0c;最后被压入的元素总是在栈顶上方#xff0c;而栈顶元素总是最先被弹出的元…限时60分钟
1.下列关于栈叙述正确的是 A
A) 栈顶元素最先能被删除
B栈顶元素最后才能被删除
C栈底元素永远不能被删除
D以上三种都不对
在栈中最后被压入的元素总是在栈顶上方而栈顶元素总是最先被弹出的元素。
因此在进行删除操作时栈顶元素会最先被删除。所以选项 A 是正确的。2.下列叙述中正确的是 B
A) 有一个以上根结点的数据结构不一定是非线性结构 B) 只有一个根结点的数据结构不一定是线性结构 C循环链表是非线性结构 D双向链表是非线性结构
选项 B 是正确的。只有一个根结点的数据结构不一定是线性结构。
选项 A 是错误的。拥有一个以上根结点的数据结构一定是非线性结构因为它们无法形成单一的层次结构。
选项 C 和 D 都是错误的。循环链表和双向链表都是线性结构因为它们沿着一个线性序列连接元素。
循环链表中最后一个元素链接到了第一个元素从而形成了一个环。
而双向链表中每个节点都包含两个指针分别指向前驱节点和后继节点这样可以支持双向遍历。3.某二又树共有7个结点其中叶子结点只有1个则该二叉树的深度为假设根结点在第1层
A3 B) 4 C6 D7 4.若有定义语句int a3,b2,c1以下选项中错误的赋值表达式是
Aa(b4)3 B)abc1; C) a(b4)c D)a1(bc4)
选项 A 是错误的因为 b4 的结果是 4所以 a(b4)3 等价于 a3 和 b4但是在 C 语言中赋值操作返回被赋的值因此 (b4) 的结果是 4。然后再将 4 赋值给 b使得 b 的值变成了 4。这时候再把 b4 和 a3 再进行一次赋值运算就等价于 (43)由于左值必须是可修改的因此会产生一个编译错误。选项 B、C 和 D 都是正确的其解释如下选项 B首先计算 c1 的结果为 2然后将其赋值给 b使得 b 的值变成了 2。接着将 b 赋值给 a使得 a 的值也变成了 2。
选项 C首先计算 (b4) 的结果为 4然后将其加上 c1 的结果为 5最后将 5 赋值给 a使得 a 的值变成了 5。
选项 D首先执行表达式 bc4将 c 和 b 的值都变成了 4。接着计算 1(bc4) 的结果为 5最后将 5 赋值给 a使得 a 的值变成了 5。
因此选项 A 是错误的。5.若有定义语句char s[3][10],*k)[3], *p则以下赋值语句正确的是
Aps; B) pk C)ps[0] D)ks
6.一棵二叉树的中序遍历结果为DBEAFC前序遍历结果为ABDECF则后序遍历结果为 D
ADBEFCA B) DEBCAF C) DEBFAC D) DEBFCA
7.下列三条指针定义语句哪些表示含义相同的 B
(1const char p; (2)char * const p; (3)char constp; A1,2 B) 1,3 C) 2,3 D) 1,2,3都相同
8.有以下程序void Func(char str[100]{print(%d”,sizeof(str))}运行结果是 C
A)1 B)2 C)4 D)8 E100 F)根据传入字符串size大小
9.有以下程序printf(“%d”,sizeof(struct data)sizeof(max))运行结果是 D
typedef union {long i; int k[5];char c:
}DATA;
typedef struct data
{int cat;DATA cow;doubie dog;
} animal;
DATA max; A29 B12 C)16 D) 52 E58 F)32
10.有以下程序程序运行后的输出结果是 B
#define S(x) 4*(x)*x1
main
{ int k 5, j 2;printf(%d\r, S(kj));
}A197 B143 C33 D28 E66 F208
11.传入参数0x23调用下面的函数fn()会得到返回值是 E
#define x(y)((y2) | y)
unsigned int fn(unsigned int u)
{return x(u);
}A) will not compile B)0xdc C)0xcd D)0xbe E) 0xaf F) 0xg0
12. 多选在多线(进)程编程中线(进)程间通信方式有 ABCDEF
A)信号 B)信号量 C)消息队列 D)共享内存 E) 管道 F)套接字
13.多选 通信双方为了建立串行UART通信须要解决哪些问题 ABCDEF
A波特率 B数据位数 C奇偶校验 D数据流控制 E起始位 F停止位
14.填空
程序的局部变量存储于 栈 中全局变量存储于全局静态区动态申请数据存储于堆 中
15. 填空
TCP通信中端口的作用是 标识使用TCP协议的应用进程
16.填空
请定义该函数指针类型带一个整型参数和void* 的返回类型
void * (*pfun) (int arg);17. 填空
整型变量a设置a的bit 3;清除a的bit 3:(保持其它位不变)。 设置a bit 3
a | (0x01 3);清除a的bit3 保持其他位不变
a ~(0x01 3);18. 填空
关键字 volatile有什么含意 在计算机编程中关键字volatile通常用于声明一个变量是易变的即具有不稳定性。它告诉编译器该变量的值可能会在程序的其他位置改变因此不应该对该变量进行优化或缓存。这样可以确保访问该变量时始终从内存中读取最新的值而不是使用已经缓存的旧值。 在多线程编程中使用volatile变量可以确保不同线程之间的数据同步因为它们都从内存中读取最新的变量值。否则在没有同步机制的情况下并发线程可能会读取到过期的变量值从而导致不可预测的结果。 一个既可以是const还可以是volatile么为什么
可以。比如只读的状态寄存器19. 填空
ISO的七层模型是什么? tcp/udp 是属于哪一层? tcp/udp 有何优缺点?
从高往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/UDP属于传输层20. 填空 给出下列程序执行结果
(1) chat str[] “Hello”; char *p str;
1、sizeof(str) 6
2、sizeof(p) 42void *p maloc( 100) int n 10
1、sizeof(p) 4
2、sizeof(n) 421.请找出下列代码片段中不正确的地方并提供一种你认为合理的解决方案。
(1)
void test1()
{ char string[10];char* str10123456789;strcpy( string, str1 );
}(2)
void test3(char* str1)
{char string[10];if( strlen( str1 ) 10 ) strcpy( string, str1);
}
22下面的程序执行后会有什么输出?
(1)
int sum(int a)
{auto int c 0;static int b 3;c 1;b 2;return(abc);
}void main()
{int i; int a 2;for(i 0: i 5: i){printf(%d, sum(a));}
}这个程序输出是8,10,12,14,16 (2)
int func(x)
{int countx 0;while(x){ countx;x x(x-1);}return countx:
}void main()
{int ret func(263);
}ret变量为 4
23.编程定义一个函数该函数功能为:设置一绝对地址为0x67a9 的整型变量的值为0xaa66并将该值显示在屏幕上。(编译器是一个纯粹的ANSI编译器)
void func(void)
{int *p (int *)0x67a9;*p 0xaa66;printf(%d, *p);
}24.中断是嵌入式系统中重要的组成部分这导致了很多编译开发商提供一种扩展一让标准C支持中断。具代表事实是产生了一个新的关键字 interrupt。下面的代码就使用了_interrupt 关键字去定义了一个中断服务子程序(ISR)请评论一下这段代码的。
__interrupt double compute area (double radius)
{double area PI* radius * radius;sleep(1);printf( Area %f, area);return area;
}中断不能有返回值和参数 最好不好在中断函数做浮点运算和打印操作因为耗时长中断处理追求快进快出 不要再中断函数中调用sleep这种引起系统阻塞函数因为在中断中系统是不调度这可能引起系统崩溃
25.编程设计一个函数来获知 stack 是向高地址还是低地址方向增长。(使用 C不建议用伪码)
#include stdio.hvoid find_stack_direction(int *p)
{int val;printf(%p %p\r\n, p, val);if (p val) /* 栈底变量地址比栈顶变量地址大说明向下增长 */{printf(stack diretion: grow down\r\n);}else{printf(stack diretion grow high\r\n);}
}26.编程有一个单向链表请编写代码反转该链表。(数据类型可以任意定义使用 C不建议用伪码
struct Node {void *data; // 数据指针数据类型任意struct Node *next; // 指向下一个节点的指针
};struct Node* reverseList(struct Node* head) {struct Node* prev NULL;struct Node* curr head;while (curr ! NULL) {struct Node* next curr-next;curr-next prev;prev curr;curr next;}return prev;
}27. Please translate English into Chinese
Tracker 007 is a multi-functional tracker. Combining with GPRS and high performance GPS, the devicecan be used to track and report device’s position and status to mobile phone through SMS or Main DattServer (MDS) through HTTP The operation modes include continuous tracking and position lock (park). So:buttons can be used to send emergency call. All configurations can be set through SMS or USB interface. The wireless communication includes UDP, TCP/IP,HTTP and SMS. With MTK EPO, it can get shorter TTFF atdistressed environment.
跟踪器007是一款多功能跟踪器。该设备结合GPRS和高性能GPS可通过短信或HTTP向手机报告设备的位置和状态。
操作模式包括连续跟踪和位置锁定泊车。
所以按钮可以用来发送紧急呼叫。所有配置都可以通过短信或USB接口进行设置。
无线通信包括UDP、TCP/IP、HTTP和SMS。使用MTK EPO可以在恶劣的环境下获得更短的TTFF。28.请用英文写信(5分)
客户 Peter 很焦急的写来邮件请求您的帮助。可是由于出差你耽误了两天才看到邮件。并且他提出的关于蜂窝网络方面的问题并不是你非常熟悉的你得介绍相关的技术人员和他沟通。请你马上回一个由件给Peter另外邮件内容中蜂窝网问题的答复要包含如下主要信息 当个人和商业用户需要像手机网络一样简单易用的互联网连接时移动计算提供简易的方案以便在任何手机能够工作的地方通过蜂窝网络让上网本、膝上电脑或者其他电子设备连接网络。蜂窝网络是提供任何时间和任何地方低价的数据连接的理想选择