当前位置:首页 > C - C++语言笔试面试题目含答案
C语言试题 一:单项选择题
1.
void Example(char acHello[]) {
printf(\ return; }
void main() {
char acHello[] = \ Example(acHello); return; }
的输出是( )
A 4 B 5 C 6 D不确定
2.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。( ) A. 正确 B.错误 3. int *(*ptr)();
则以下叙述中正确的是( ) A) ptr是指向一维组数的指针变量 B) ptr是指向int型数据的指针变量
C) ptr是指向函数的指针,该函数返回一个int型数据
D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针 4.此函数实现把32位IP地址(网络序)以字符串的方式打印出来: char *IpAddr2Str(unsigned long ulIpAddr) {
char szIpAddr[32];
unsigned long ulLocIpAddr = ntohl(ulIpAddr);//把网络序转话为主机序 (void)VOS_sprintf(szIpAddr, \
(ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff, ulLocIpAddr & 0xff);
return szIpAddr; }
下面描述正确的是(): A、数组szIpAddr空间不够;
B、函数返回局部数组szIpAddr变量地址; C、输出的IP地址次序颠倒; 5.
#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, \ printf(pszBuf); free(pszBuf); }
return; }
如下描述正确的是:
A、pszBuf指向的内存不能超过255
B、GetMemory函数的异常分支返回了-1,是一个非法地址 C、GetMemory中异常分支没有释放空间;
D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放
6、#include \
unsigned short *Sum(unsigned char a, unsigned char b) {
unsigned short s = 0;
s = a + b; return &s; }
int main() {
unsigned short *p = NULL; unsigned char a = 1, b = 2;
p = Sum(a, b);
printf(\ printf(\ return 0; }
程序执行结果是()
A.1+2=0 B.1+2=3 C.1+2=NULL D.不可预测 7、设有如下定义: BOOL gStatusA = FALSE; BOOL gStatusB = TRUE; int gVarA = 100; int gVarB = 100;
则执行main函数后gVarA和gVarB的值分别为(
BOOL CheckA() {
if(gStatusA) {
gVarA++; } else {
gVarA--; }
return gStatusA; }
BOOL CheckB() {
if(gStatusB) {
gVarB++; } else {
gVarB--;
) }
return gStatusB; }
int main(int argc, char* argv[]) {
if(CheckA() && CheckB() ) {
printf(“Status OK”); } return 0; }
A, 99和100 B, 99和101 C 99和99 D 101和99
8.下面的代码中,函数Test执行完毕后,希望输出无符号长整型的1。 void VarInit(unsigned char *pucArg) {
*pucArg = 1; return; }
void Test() {
unsigned long ulGlobal; VarInit(&ulGlobal); printf(\ return; }
下面描述正确的是:( )
A.给VarInit( )函数传递的参数类型错误 B.printf()输出格式错误
C.传给VarInit( )中参数pucArg的值为空指针 9、
void AddFunc (unsigned int a, unsigned int b, unsigned int * c) {
*c = a + b; }
void main(void) {
unsigned char e = 200; unsigned char f = 100; unsigned char g = 0;
AddFunc((unsigned int)e,(unsigned int)f,(unsigned int *)&g);
共分享92篇相关文档