




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、笔试题选择题1、以下程序的输出结果是:#include int main ()int n = 4;while (n - )printf( %d , - n);printf( rn );return 0;答案: 2 02、设有以下宏定义:#define N 4#define Y(n) (N+1)*n) 则执行语句: Y(5+1)为:答案: 263、enum ENUM_Ax1,y1,z1 = 5,a1,b1;enum ENUM_A enumA = y1;enum ENUM_A enumB = b1; 请问 enumA 和 enumB 的值是多少? 答案: 1, 74、若有函数 max(a,b),并
2、且函数指针变量 p 已经指向函数,当调用该函数时正 确的调用方法是:答案: (*p)(a,b) 或者 p(a,b)5、对栈 S 进行下列操作: push(1), push(5), pop(), push(2), pop(), pop(), 则此时栈 顶元素是: 答案:没有元素,栈空。6、在一个 32 位的操作系统中,设 void *p = malloc ( 100),请问 sizeof(p)的 结果是:答案: 32 位操作系统的寻址大小是 32 位,即 4 字节。7、若已定义 : int a9, *p = a;并在以后的语句中未改变 p 的值,不能表示 a1地址 的表达式是:A) p+1B)a
3、+1 C) a+D) +p答案:C8、设有如下定义:unsigned long pulArray = 6, 7, 8, 9, 10;unsigned long *pulPtr;则下列程序段的输出结果是什么?pulPtr =pulArray;*(pulPtr+ 2) +=2;printf(%d, %drn, *pulPtr,*(pulPtr +2);A) 8, 10B) 6, 8C) 7, 9D) 6, 10答案:D9、以下程序运行后,输出结果是什么?void main()char *szStr =abcde ;szStr += 2;printf(%1urn , szStr);return ;A
4、) cde B) 字符 c 的 ASCII 码值 C) 字符 c的地址D) 出错 答案:C10、给出以下定义:char X = hello ;char Y = h , e , l , l 则正确的叙述为:A) 数组 X 和数组 Y 等价C) 数组 X 的长度大于数组 Y 的长度o ;B) 数组 X 和数组 Y 的长度相同D) 数组 X 的长度小于数组 Y 的长度答案:C11、在 32 位 X86 下,有下列程序#include void main()unionint k; char i 2; *s, a;s = &a;s-i0 = 0x39 ;s-i1 = 0x38 ;printf( %xrn
5、 , a.k); 输出结果是:A) 3839 B) 3938 C) 380039 D) 不可预知 答案:A12、有如下函数定义:unsigned long MyFunc(unsignedlong ulKey)return (ulKey &0x000000ffUL) 24) |(ulKey &0x0000ff00UL) 8) |(ulKey &0xff000000UL) 24);则 MyFunc(0x12345678) 的返回值是:A) 0x12345678 B) 0x87654321C) 0x78563412 D) 0x12563478答案:C13、(ab)?a:b)代表什么含义:A) 代表
6、a,b 之中较小的那个值B) 代表 a,b 之中较大的那个值C) 代表 a是否比 b 大D) 语法错误答案:B14、某系统总线的一个总线周期包含 3 个时钟周期,每个总线周期可以传送 32 位数据。若总线的时钟频率为 33MHz , 则总线带宽为多少 MB/s ? 33*10(6)*32/8*10(6)*3A) 11B) 22C) 33 D) 44答案:D15、如下定义,则 s 在存中占多大空间? unionstructunsigned char aa: 4;unsigned char ab: 4; a;unsigned char c;unsigned char d; s;A) 1 byte
7、B) 2byte C) 3byte D) 4byte答案:A16、如下定义:union tagAAAAstructchar ucFirst;short usSecond;char ucThird;half_a;long lI;number;在按 1 字节对齐情况下, sizeof(union tagAAAA) 的大小是: 在按 4 字节对齐情况下, sizeof(union tagAAAA) 的大小是: A) 4byteB) 6byteC) 8byteD) 12byte答案: A, C17、0x12345678在采用 BigEndian 中存的排列顺序是,在采用LittleEndian 存中的
8、排列顺序是 。(答案从左到右存地址依次增加)A) 12 34 56 78B) 34 12 78 56C) 78 56 34 12D) 56 7812 34答案: A, D 18、关于静态变量,下面说法“不正确”的有:A) 静态变量在堆栈中分配B) 静态变量的作用域一定是局部的,例如在一个文件或一个函数C) 静态变量可分为静态局变量和静态全局部变量D) 静态变量存在于数据段中 答案:B19、下面正确的有A) 在中断中,不能同步获取信号量,但是可以释放信号量B) 在中断中,可以使用系统调用 sleep函数来等待一会儿C) 每一个进程有自己的独立地址空间,每一个线程程序也有自己的独立地址空 间D)
9、CPU 占用率为 60%, 意思是 CPU有 60%的时间在运行指令 40%的时间没有 运行指令 答案:B20、设有如下定义: int (*ptr)() ;则以下叙述中正确的是:A) ptr 是指向一维数组的指针变量B) ptr 是指向 int 型数据的指针变量C) ptr 是指向函数的指针,该函数返回一个 int 型数据D) ptr是一个函数名,该函数的返回值是指向 int 型数据的指针 答案:C21、在 Windows95 环境下,定义数组: int *a24; 则数组 a所占用的存单元为: A)8字节B) 32 字节 C) 64字节 D)不确定答案:B22、有国际标准化组织( ISO)和
10、国际电信联盟( ITU-T )共同提出的开放系统 互联( OSI)参考模型中共有层,参考模型的最高层则为 层。A) 4B) 7C)应用D)会话答案: B, C23、关于以太网中的 ARP 协议,描述错误的是:A) 根据 IP 地址查询其对应的 MAC 地址B) 根据 MAC 地址查询其对应的 IP地址,便于 IP 通信C) 通过 ARP 协议产生的 IP 和 MAC 地址的映射,超时会淘汰D) ARP 请求中的 MAC 地址为广播地址答案:B24、关于 TCP、 UDP 及其上层的应用,描述错误的是:A) TCP协议面向连接的, UDP 协议是面向无连接的B) UDP 不保证数据的可靠传送,而
11、文件的传递时要求必须无错传送的,因而所 有基于文件传递的应用都不能基于 UDP,如: TFTPTCPC) telnet是基于 TCP 的终端应用,连续输入的多个字符可能会被封装到一个 包中D) 在同一个节点上,基于 TCP 和 UDP 的应用端口号可以重叠答案:B改错题1、请指出下面程序的错误 unsigned char i = 10; char b = 100 ; char *p void f( void ) while (-i =0)*(p+) = b;参考答案:(1) p 没有分配空间(2) i 是无符号型,自减操作会引发死循环2、下面函数要实现打印 hello world 的功能,请问
12、程序中有何错误? void * GetMemory()char str = return str;hello worldvoid Test()char *str = NULL;str = ( char *) GetMemory();printf(str);参考答案:(1) GetMemory 函数返回的地址容已经被释放。(2)str 是指针, printf(str) 打印的是地址,正确的是 printf(*str)3、请问如下代码有什么错误?#define MAX_SIZE 1000#define NULL 0#define TRUE 1#define FALSE 0struct XXXuns
13、igned short a;unsigned short b;int demo( struct XXX *p,unsigned long size)struct XXX *temp;temp=( struct XXX*)malloc( sizeof ( struct XXX)*MAX_SIZE); if (NULL = temp)return FALSE;memcpy(temp, p, sizeof ( struct XXX)*size);/* 其他操作 */free (temp); return TRUE; 参考答案:(1) size可能大于 MAX_SIZE ,缺少安全检查(2)p 指针未
14、作安全检查4、如下程序用于把“ blue”字符串返回,请指出其中的错误。char *GetBlue()char * pcColor;char * pcNewColor;pcColor = blue ;pcNewColor = ( char *)malloc(strlen(pColor); strcpy(pcNewColor, pcColor);return pcNewColor; 参考答案:(1) pcColor 没有结束符,导致 strcpy 错误(2) pcNewColor 分配的长度应该再加 1,用来放结束符 0 5、请问如下程序段有什么错误? main()unsigned long i
15、 = 0, *p, *p1;p = (unsigned long *)malloc( 10000 );p1 = p;for (i = 0; i 9999 ; i+)*p1 = 0x100 ;p1+;/* 其他操作 */free(p); 参考答案:(我找不到明显错误,要么是 main 函数没有指定返回值类型?)编程题1、对称数判断问题请编写一段程序, 判断一个正整数是否为对称数 (对称数即左右对称的数字, 如 3、22、121、1331、34543等),不允许利用 C 语言将数字转换为字符转的库 函数。参考答案:bool judgeNumberSymmetry(unsigned long ulN
16、umber)unsigned long ulTemp = ulNumber;/*src copy*/unsigned long ulResult = 0;int iMod = 0;while (ulTemp)iMod = ulTemp %10;ulResult = ulResult *10 + iMod;ulTemp /= 10;if (ulNumber = ulResult)return true;elsereturn false; 2、排队队列问题n 个人,排成 1 队,( p1,p2,p3.pn)从第一个人开始从 1 报数,报数到 3 的人 离开队列,队列里的下一个人继续从 1 开始报数,以此反复,当数到队列尾时, 从队列头部继续报数,这样周而复始,知道队列剩一人。给一个简单的例:报数结果如下:1,2,4,5,7,第一轮, 3、6 离开队列, 7 报数 1,然后从队列头部继续报 数,那么第一个人报数 2,如此 1,4,5,这样第二轮,位置 2 和位置 7 离开队 列,并且从队列头部继续报数,第一个人报数 1,因为队列尾部的 7 恰好报数到3.1,2,这样第三轮, 5 被淘汰;然后开始位置 1 的人报数 1,最后位置 1 正好报数 3,于是离开队列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业来村发言稿
- 婚礼主持人发言稿
- 乐器大赛发言稿范文
- 学前班家长代表发言稿
- 辐射安全与防护知识培训模拟题库附答案2025
- 准婆婆订婚发言稿
- 护理带班竞聘课件
- 2025年空管系统项目规划申请报告
- 补偿贸易借款合同
- 护理实习生课件总结
- 2025《煤矿安全规程》新旧对照专题培训
- 甲乳外科护士进修汇报
- 2025年幼儿园初级保育员测试题(含答案)
- 安全注射培训课件
- 中国现代国防教学课件
- 最新《心衰指南》课件
- DB4401-T 43-2020 反恐怖防范管理+防冲撞设施-(高清现行)
- 建筑节能工程竣工验收报告3篇(施工单位节能验收报告)
- 卸料平台(落地搭设)验收记录表
- 新媒体研究方法教学ppt课件(完整版)
- DB32-T 2944-2016金属切削刀具用刀柄动平衡测试方法-(高清现行)
评论
0/150
提交评论