C语言编程基础知识测试题
Part1: 选择题
- 以下哪个声明是不允许的?( )
A.
uint8 u8Counter;B.int8 i8Index;C.typedef uint8 MOD_tu8ExampleType;D.unsigned int u32PulseCounter;
答案:D
- 根据每个模块的描述,哪个是正确的?( )
A.
C1.H包含模块的公共接口 B.CE.H包含公共配置所需的所有信息 C.CT.H包含其他模块可以使用的所有 API 类型 D.CA.H包含容器和函数调用表的原型和实现,可以由用户配置 E:CI.H配置模块本身并使其适应外部模块
答案:A
- 以下哪个对模块前缀的定义是合理的?( )
A.
typedef struct EEPX_test{uint8 EEPX_ui8Data;uint32 ui32Data;} B.enum test{EEPX_ui8Data=0;EEPX_ui32Data;} C.union test {uint8 EEPX_ui8Data;uint32 EEPX_ui32Data;} ` D. 以上都是
答案:D
- 在文件本地区域中定义标识符为
u8Byte。 ( ) B.u8ByteC.SWOD_ByteA.SWOD_u8ByteD.SWOD__u8Byte
答案:A
- 根据API文件“Export Interface”的格式,以下哪个定义是正确的,默认命名为哪个?( )
A.
SWMOD1C1.HB.SWMOD1C.HC.SWMODC1.HD.SWMODC.H
答案:C
- 以下哪个注释不遵循C编程规则。 ( )
A.
/* Number of pulses equal to 10meter*/B./*Velocity CAN input Error /*0x1FFF*/ */C./* * PT1 damping fall factor */D. 以上都不是
答案:B
- SWMOD模块的哪个文件不位于
inc中?( ) A.#include SWMODXCA.HB.#include SWMODXCE.HC.#include SWMODXCn.CD.#include SWMODXC1.H
答案:C
- 以下哪个声明了一个具有不同数据类型的函数局部变量是不正确的?( )
A.
uint32 SMOD__ui32ResultB.bit8 SMOD__bi8ResultC.typedef uint8 SMOD_tu8ExampleD.enum SMOD__enResult
答案:B
- 以下哪个名称定义正确?( )
A.
GetvalueB.GetValue
C.Get_Value
D.GetValue11
答案:B
- 以下哪个关于访问结构和数组元素的说法是正确的?( )
A. 不允许超出边界的数组访问
B. 必须始终通过
array[index]来寻址数组元素。 C. 不要为未知大小的数组使用typedefD. “struct”或“union”中的成员数不能超过127个?
答案:A
Part2:是或否题
switch (bState){case 1 : func1(); break;case 2 : func2(); break;default : func4(); break;case 3 : func3(); break;}这个switch语句是正确的吗?
答案:错误
Part3:真或假题
- 以下代码定义了一个名为
CAN_tstBasicCan的结构体,包括后缀变量名为uint8 Data和uint32 Data。/*codetypedef struct {uint8 bi8LowFuelWrnData_Flg;BOOL boWarningon_flg;BOOL TNC_boDiagMode_Stat;}CAN_tstBasicCan;Is it TRUE or False?`
答案:假的
- 分配数据类型的标识符通常由’
typedef’定义,因此,typedef enum SMOD__enResult的定义是否正确?
答案:正确
- 结构体可以方便配置,定义清晰的职责并减少编译和链接时间。是真的还是假的?
答案:真的
Part4:阅读C代码
- 编程运行时会输出什么?
文件a.h:
...
#define MACRO
...
文件b.h
...
#ifdef MACRO
#undef MACRO
#endif
...
文件c.h
#include 'a.h'
#include 'b.h'
#ifdef MACRO
...
#else
#error 'error: MACRO is not defined'
#endif
答案:无输出,因为MACRO已被undef。
- 以上C编程中哪句话是错误的?
char EXMPL_sSomeBuffer= EXMPL_sInitBuffer();
struct SomeT EXMPL_xCountry= { /*Name*/ 'germany',
/*Code*/ 'D'
};...char* sFirstSub; char* sSecondSub;...sFirstSub= EXMPL_sSomeBuffer; sSecondSub= EXMPL_sSomeBuffer+ EXMPL_i8BufferLength; while(sFirstSub <= sSecondSub) /* ok */ { ...
sFirstSub++; sSecondSub--;
}
...
sSecondSub= EXMPL_xCountry.cCode;
...
if(sFirstSub <=sSecondSub)
...
答案:第一句话中的函数调用没有定义。
原文地址: https://www.cveoy.top/t/topic/oMYE 著作权归作者所有。请勿转载和采集!