




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数通产品线 C 语言编程基础题库 001 考前说明 本题目中不考虑头文件引用问题 假定已经包含正确的头文件 C 语言的标准函 数都可用 如果不特别说明 假定程序运行环境为 操作系统 Windows 2000 VC6 0 编译环境 X86 80586 CPU 处理 器 32 位小字节序处理器 一 选择 1 给出以下定义 char acX abcdefg char acY a b c d e f g 则正确的叙述为 A 数组 acX 和数组 acY 等价 B 数组 acX 和数组 acY 的长度相同 C 数组 acX 的长度大于数组 acY 的长度 D 数组 acX 的长度小于数组 acY 的长度 答案 C 2 void example char acHello printf d sizeof acHello return void main char acHello hello example acHello 数组名称作参数 传的是地址 一个地址占四个字节 return 的输出是 A 4 B 5 C 6 D 不确定 答案 A 3 有以下程序段 char acArr ABCDE char pcPtr for pcPtr acArr pcPtr acArr 5 pcPtr printf s n pcPtr return 输出结果是 A ABCD B A C E D ABCDE B D BCDE C C CDE D B DE E A E 答案 D 4 在中断中 不能同步获取信号量 但是可以释放信号量 A 正确 B 错误 答案 A 5 以下叙述中不正确的是 A 在不同的函数中可以使用相同名字的变量 B 函数中的形式参数是局部变量 C 在一个函数内定义的变量只在本函数范围内有效 D 在一个函数内的复合语句中定义的变量在本函数范围内有效 复合语句指函数中的成 对括号构成的代码 答案 D 6 设有如下定义 unsigned long pulArray 6 7 8 9 10 unsigned long pulPtr 则下列程序段的输出结果为 pulPtr pulArray pulPtr 2 2 printf d d n pulPtr pulPtr 2 A 8 10 B 6 8 C 7 9 D 6 10 答案 D 7 定义结构体时有下面几种说法 请指出正确的 多选 A 结构体中的每个部分 最好进行四字节对齐 B 结构体的总长度最好是四字节对齐 C 结构中成员的存放不用考虑字节对齐情况 答案 A B 8 void example int i char acNew 20 for i 0 i 10 i acNew i 0 printf d n strlen acNew return 的输出为 A 0 B 10 C 11 D 不确定 答案 D 9 switch c 中的 c 的数据类型可以是 char long float unsigned bool A 正确 B 错误 答案 B 10 网络上传输的字节序默认是大字节的 如果主机是小字节序 在网络通信时则须进行 字节序转换 如果主机是 大字节序 为了程序的一致性及可移植性 最好也在程序中加上字节序转换的操作 空操 作 A 正确 B 错误 答案 A 11 struct stu int num char name 10 int age void fun struct stu p printf s n p name return void main struct stu students 3 9801 Zhang 20 9802 Wang 19 9803 Zhao 18 fun students 2 return 输出结果是 A Zhang B Zhao C Wang D 18 答案 B 12 以下程序运行后 输出结果是 void main char szStr abcde szStr 2 printf lu n szStr return A cde B 字符 c 的 ASCLL 码值 C abcde 这个常串中字符 c 所在的地址 D 出错 答案 C 13 在 X86 下 有下列程序 include void main union int k char i 2 s a s s i 0 0 x39 s i 1 0 x38 printf x n a k 输出结果是 A 3839 B 3938 C 380039 D 不可预知 答案 D 14 全局变量可以定义在被多个 C 文件包含着的头文件中 A 正确 B 错误 答案 B 15 void example int i char acNew 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 for i 0 i 10 i acNew i 0 printf d n strlen acNew return 的输出为 A 0 B 10 C 11 D 不确定 答案 B 16 下列定义正确的有 多选 A char pcPtr abcd B char pc 4 abcd C char pc abcd D char pc abcd E char pc a b c d 0 F char pc a b c d 答案 ACE 17 在函数内部定义的变量 静态变量 寄存器变量等特殊变量除外 的内存是在栈内存中 所以在定义函数内部的变量的时候 一定要保证栈不能够溢出 如果临时变量 占用空间较大 应该使用内存申请的方式 这样该变量指向的内存就是在堆内存中了 A 正确 B 错误 答案 A 18 局部变量可以和全局变量重名 编译的时候不会出现错误 但一旦不小心 就可能导致 使用错误变量 所以在定时局部变量的时候 不要和全局变量重名 A 正确 B 错误 答案 A 19 设有以下宏定义 define N 3 define Y n N 1 n 这种定义在编程规范中是严格禁止的 则执行语句 z 2 N Y 5 1 后 z 的值为 A 出错 B 42 C 48 D 54 答案 C 20 int ptr 则以下叙述中正确的是 A ptr 是指向一维组数的指针变量 B ptr 是指向 int 型数据的指针变量 C ptr 是指向函数的指针 该函数返回一个 int 型数据 D ptr 是指向函数的指针 该函数的返回值是指向 int 型数据的指针 答案 D 21 0 x12345678 在采用 BigEndian 中内存的排列顺序是 在采用 LittleEndian 内存 中的排列顺序是 答案从左到右内存地址依次增加 A 12 34 56 78 B 34 12 78 56 C 78 56 34 12 D 56 78 12 34 答案 A C 二 填空 1 struct tagAAA unsigned char ucId 1 unsigned char ucPara0 2 unsigned char ucState 6 unsigned char ucTail 4 unsigned char ucAvail unsigned char ucTail2 4 unsigned long ulData AAA S 问 AAA S 在字节对齐分别为 1 4 的情况下 占用的空间大小是多少 答案 9 12 2 typedef struct tagTest UCHAR ucFlag ULONG ulLen TEST S TEST S test 10 四字节对齐方式时 sizeof TEST S sizeof test 答案 8 80 3 char acHello hello 0world char acNew 15 0 strcpy acNew acHello strlen acNew sizeof acHello 答案 5 12 4 pragma pack 4 编译选项 表示 4 字节对齐 int main int argc char argv struct tagTest1 short a char d long b long c struct tagTest2 long b short c char d long a struct tagTest3 short c long b char d long a struct tagTest1 stT1 struct tagTest2 stT2 struct tagTest3 stT3 printf d d d sizeof stT1 sizeof stT2 sizeof stT3 return 0 pragma pack 编译选项结束 请问输出结果是 答案 12 12 16 5 enum ENUM A X1 Y1 Z1 5 A1 B1 enum ENUM A enumA Y1 enum ENUM A enumB B1 请问 enumA enumB 答案 1 7 6 以下程序的输出结果是 include int fun int x int y static int m 0 8 static int i 2 3 i m 1 12 m i x y return m void main int j 4 int m 1 int k k fun j m printf d k k fun j m printf d n k return 答案 8 17 7 以下程序的输出结果为 define CIR r r r 请注意这种定义的缺陷 不允许这么定义 void main int a 1 int b 2 int t t CIR a b printf d n t return 答案 5 8 在 VRP 中 实现了 strncpy 类似的函数 定义如下 define CHAR char define ULONG unsigned long define VOID void define MACRO COPYWORLDLENGTH 4 CHAR VOS strncpy CHAR pcDest const CHAR szSrc ULONG ulLength CHAR pcPoint pcDest if NULL szSrc NULL pcDest return NULL while ulLength szSrc ulLength if ulLength pcPoint 0 return pcDest VOID main VOID CHAR szStrBuf 1234567890 CHAR szStrBuf1 1234567890 CHAR szHelloWorld Hello World strncpy szStrBuf szHelloWorld MACRO COPYWORLDLENGTH VOS strncpy szStrBuf1 szHelloWorld MACRO COPYWORLDLENGTH printf s s szStrBuf szStrBuf1 程序的输出结果为 答案 Hell567890 Hell 9 char acHello hello 0world char acNew 15 0 memcpy acNew acHello 12 strlen acNew sizeof acHello 答案 5 12 10 typedef struct Head UCHAR aucSrc 6 ULONG ulType HEAD S 在强制一字节对齐情况下 请指出 sizeof HEAD S 在强制二字节对齐情况下 请指出 sizeof HEAD S 在强制四字节对齐情况下 请指出 sizeof HEAD S 答案 10 10 12 11 union tagAAAA struct char ucFirst short usSecond char ucThird half long lI number struct tagBBBBB char ucFirst short usSecond char ucThird short usForth half struct tagCCCC struct char ucFirst short usSecond char ucThird half long lI 在字节对齐为 1 下 sizeof union tagAAAA sizeof struct tagBBBBB sizeof struct tagCCCC 是 在字节对齐为 4 下 sizeof union tagAAAA sizeof struct tagBBBBB sizeof struct tagCCCC 是 答案 4 6 8 8 8 12 12 struct tagABC char cB short sC char cD long lA pAbc pAbc 0 x100000 那么 pAbc 0 x100 0 x ULONG pAbc 0 x100 0 x ULONG pAbc 0 x100 0 x char pAbc 0 x100 0 x 答案 100C00 100100 100400 100100 13 unsigned long FUNC C unsigned long ulAction unsigned long ulResult 0 switch ulAction case ACTION A ulResult 1 break case ACTION B ulResult 1 default ulResult 1 printf ulResult u ulResult return ulResult 当输入为 ACTION B 时 输出结果为 ulResult 答案 2 因为此分支没有 break 分支 14 下面的代码中 函数 Test 执行完毕后 打印的结果是 unsigned long g ulGlobal 0 void GlobalInit unsigned long ulArg ulArg 0 x01 return void Test GlobalInit g ulGlobal printf lu g ulGlobal return 答案 0 15 以下程序的输出的结果是 int x 3 void incre void main int i for i 1 i ucPim1 1 pstPimData ucData0 2 pstPimData ucData1 3 pstPimData ucData2 4 printf 02X 02X 02X 02X n puc 0 puc 1 puc 2 puc 3 return 0 pragma pack 恢复缺省对齐方式 答案 01 26 00 00 17 char pcColor blue1 char acColor blue1 strlen pcColor strlen acColor sizeof pcColor sizeof acColor 答案 5 5 4 6 18 char str 0 char p str int n 1000 请计算 sizeof str sizeof p sizeof n 答案 3 4 4 19 UCHAR pucCharArray 10 10 typedef union unRec ULONG ulIndex USHORT usLevel 6 UCHAR ucPos REC S REC S stMax pstMax 四字节对齐方式时 sizeof pucCharArray 指针的数组 每个指针的地址都是 4 字 节 sizeof stMax sizeof pstMax 地址 sizeof pstMax 答案 400 12 4 12 20 typedef union unHead UCHAR aucSrc 6 struct tagContent UCHAR ucFlag 3 ULONG ulNext Content HEAD S 32CPU VC 编译环境下 在强制一字节对齐情况下 请指出 sizeof HEAD S 在强制二字节对齐情况下 请指出 sizeof HEAD S 在强制四字节对齐情况下 请指出 sizeof HEAD S 答案 7 8 8 21 UCHAR pszTest hello UCHAR aucTest hello 请问 sizeof pszTest sizeof pszTest sizeof aucTest 答案 4 1 6 22 struct BBB long lNum char pcName short sDate char cHa 2 short sBa 6 p p 0 x100000 p 0 x1 0 x unsigned long p 0 x1 0 x unsigned long p 0 x1 0 x char p 0 x1 0 x 答案 100018 100001 100004 100001 23 在 4 字节对齐的情况 typedef struct tagRec long lA1 char cA2 char cA3 long lA4 long lA5 REC S void main int argc char argv REC S stMax printf r n sizeof stMax d sizeof stMax return 输出结果为 sizeof stMax 答案 16 24 void main unsigned long ulA 0 x11000000 printf r n x unsigned char return 输出结果为 答案 0 三 指出下列程序中导致不能出现预期结果的唯一错误 不考虑编程规范错误 1 下面程序用于输出用户输入的字符串 请指出其中的问题 define OK 0 define ERR 1 define ERROR 1 define BUFFER SIZE 256 int GetMemory char ppszBuf int num if NULL ppszBuf ASSERT 0 return ERROR ppszBuf char malloc num if NULL ppszBuf return ERROR return OK void Test void char pcStr NULL if OK GetMemory 这里假定 BUFFER SIZE 足够大 不会导致越界 printf pcStr free pcStr return 答案 要采用 printf s str 的形式打印 否则如果输入为 s d 等形式可能会导致不可 知现象 2 此函数实现把 32 位 IP 地址 主机序 以字符串的方式打印出来 请找出代码中的错误 char IpAddr2Str unsigned long ulIpAddr char szIpAddr 32 void VOS sprintf szIpAddr d d d d ulIpAddr 24 ulIpAddr 16 return szIpAddr 答案 函数的局部变量是存放在堆栈中的 此函数返回了堆栈中的地址 函数退出后堆栈 中的内容不可用 3 如下程序用于输出 Welcome Home 请指出其中的错误 void Test void char pcArray 12 strcpy pcArray Welcome Home printf s pcArray return 答案 数组越界 4 如下程序用于把 blue 字符串返回 请指出其中的错误 char GetBLUE void char pcColor char pcNewColor pcColor blue pcNewColor char malloc strlen pColor if NULL pcNewColor return NULL strcpy pcNewColor pcColor return pcNewColor 答案 申请内存空间不足 字符串结尾还有 0 5 下面程序期望输出 str hello world 请指出其中的错误 char GetStr char p p hello world return p void main char str NULL if NULL GetStr str printf r n str s str return 答案 无法返回字符串 参数使用错误 6 如下代码实现如果两次调用 FUNC A 函数的时间间隔超过 TIME INTERVAL 毫秒 就 执行一次 DO Something 操作 请指出段代码中的错误 define ULONG unsigned long define TIME INTERVAL 200 void DO Something void return void FUNC A static ULONG ulPreCall 0 ULONG ulNowInMsHigh 0 ULONG ulNowInMsLow 0 VOID VOS Tm Now 获取当前的时间 以 毫秒为单位 用 64bits 表示 ulNowInMsHigh 为高 32 位 ulNowInMsLow 为低 32 位 if 0 ulPreCall ulNowInMsLow ulPreCall TIME INTERVAL ulPreCall ulNowInMsLow else return DO Something return 答案 没有判断时间的高位 ulNowInMsLow 溢出后将不能执行到 DO Something 7 下面的代码中 函数 Test 执行完毕后 希望输出 1 请指出错误 void VarInit unsigned char pucArg pucArg 1 return void Test unsigned long ulGlobal VarInit printf lu ulGlobal return 答案 类型转换错误 8 请指出下面程序错误的地方 define BUFFER SIZE 256 void Test void char str NULL str char malloc BUFFER SIZE if NULL str return strcpy str hello free str if NULL str strcpy str world printf str return 答案 引用了已经释放的内存 9 define OK 0 define ERR 1 define ERROR 1 define BUFFER SIZE 256 char GetMemory unsigned long ulSize char pcBuf NULL pcBuf char malloc ulSize if NULL pcBuf return ERROR return pcBuf void Test void char pszBuf NULL pszBuf GetMemory BUFFER SIZE if NULL pszBuf strcpy pszBuf Hello World r n printf pszBuf free pszBuf return 答案 GetMemory 函数的异常分支返回了 1 是一个非法地址 10 下面程序用于输出用户输入的字符串 请指出其中的问题 define OK 0 define ERR 1 define ERROR 1 define BUFFER SIZE 256 int GetMemory char ppszBuf int num if NULL ppszBuf ASSERT 0 return ERROR ppszBuf char malloc num 调用系统函数申请内存 if NULL ppszBuf return ERROR return OK void Test void char pcStr NULL if OK GetMemory 这里假定 BUFFER SIZE 足够大 不会导致越界 printf pcStr free pcStr return 答案 要采用 printf s szStr 的形式打印 否则如果输入为 s d 等形式可能会导致不 可知现象 11 下面程序把 hello 这个字符串输出 请指出其中的错误 void Test void char pcArray 10 strncpy pcArray hello 5 printf s n pcArray return 答案 strncpy 没有把中止符 NULL 写入数组中 12 如下程序用于把 hello world 字符串打印出来 请指出其中的错误 void example void char acColor 11 strcpy acColor hello world printf s acColor return 答案 空间不足 字符串结尾还有 0 13 如下程序用于把 系统备板工作异常 字符串打印出来 请指出其中的错误 void PrintErrInfo void char acMsg 16 strcpy acMsg 系统备板工作异常 printf s acMsg return 答案 每个汉字占两个字节 空间不足 字符串结尾还有 0 14 请指出下面程序的错误 void Test void char szStr char malloc 100 if NULL szStr return strcpy szStr hello free szStr if NULL szStr strcpy szStr world printf szStr return 答案 使用了无效内存 15 如下函数实现打印字符串 hello world 的功能 请指出错误 define BUFFER SIZE 256 void GetMemory char pszBuf if NULL pszBuf ASSERT 0 return pszBuf char malloc BUFFER SIZE return void Test void char pszBuf NULL GetMemory pszBuf if NULL pszBuf return strcpy pszBuf hello world r n printf s pszBuf free pszBuf return 答案 函数要返回指针就需要传进去指针的地址 16 如下函数实现打印字符串 hello world 的功能 请指出错误 char GetMemory void char pcBuf hello world r n return pcBuf void Test void char pcStr NULL pcStr GetMemory if NULL pcStr printf Can not get string r n return else printf s pcStr return 答案 要打印的字符串存在于栈内存 可能不会正确打印 17 如下程序用于把 blue 字符串打印出来 请指出其中的错误 void PrintBLUE char pcBlue b l u e printf s pcBlue return 答案 字符串以 0 结束 18 下面程序用于输出用户输入的字符串 请指出其中的问题 define OK 0 define ERR 1 define ERROR 1 define BUFFER
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老院跌倒老人应急预案(17篇)
- 云南省德宏傣族景颇族自治州2025-2026学年高三上学期开学定位监测历史试题(含答案)
- 山东省烟台市青华中学2024-2025学年八年级上学期第二次阶段测试语文试题
- 湖北省黄冈市2025年高三年级9月调研考试思想政治试题(含解析)
- 2025-2026学年第一学期9月(总第三次)模块诊断数学试题解析版
- 2025年可转债市场展望分析报告:供需矛盾估值支撑
- 巡检工安全培训课件
- 岩石的变化课件
- 输电电缆运检课件
- 小麻雀课件教学课件
- 膀胱结石的护理课件
- 国庆司机安全培训
- 牛排培训课件
- 《从九一八事变到西安事变》 教学课件
- 中华诗词大赛1-3年级题库(含答案)
- 生产车间出勤管理制度
- 亲子观影活动方案
- 人工智能通识 课件 第七章 智能之躯-具身智能
- 妈妈驿站加盟合同范本
- 专题06 对角互补模型(原卷版)
- 水利工程设计概估算编制规定工程部分
评论
0/150
提交评论