C语言试题3

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.给定一个整型变量a,写两段代码,第一个设置a的3bit为1,第二个设置a的3bit为

0. 以上两种操作,均保持其他bit位不变。

第三位置1: int a |= (1<<3);

第三位置0: int a &= ~(1<<3);

2.嵌入式系统中经常需要程序员去访问特定内存位置的值。在某工程中,要求设置一绝对

地址为0x6759a的整型变量的值为0xaa66,编译器是纯粹的ANSI编译器,写代码完成这一任务。

int *p = (int *)0x6759a;

*p = 0xaa66;

3.下面代码输出什么

Void foo(void)

{

Unsigned int a = 6;

Int b = -20;

If (a+b > 6)

{

Printf(“> 6\n”);

}

Else

{

Printf(“< 6\n”);

}

}

>6

4.下面的输出是什么

Char *ptr = NULL;

Ptr = (char *)malloc(0);

If (ptr == NULL)

{

Printf(“ptr is null”);

}

Else

{

Printf(“ptr is not null”);

}

ptr is not null 开辟空间地址

5.下面的输出是什么

main()

{

char *ptr = ” feixun Systems”;

*ptr++; printf(“%s\n”,ptr);

ptr++;

printf(“%s\n”,ptr);

}

eixun Systems

ixun Systems

6.#define DOUBLE(x) x+x,i = 5*DOUBLE(10);i是多少?正确的声明是什么?输出i值为60 原因: 计算过程为5 * 10 + 10;

正确声明: #define DOUBLE(x) (x+x)

7.设有以下说明和定义:

typedef struct

{

Int i;

char k[5];

char c;

} DATE;

struct data

{

int cat;

DATE cow;

Unsigned short dog;

} ;

DATE max;

则语句printf( "%d", sizeof(struct data)+ sizeof(max));的执行结果是

Sizeof(struct data) 20

Sizeof(max) 12

输出为32

8.请找出下面代码中的所以错误

说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”

#include"string.h"

main()

{

char*src="hello,world";

char* dest=NULL;

int len=strlen(src);

dest=(char*)malloc(len);

char* d=dest;

char* s=src[len];

while(len--!=0)

d++=s--;

printf("%s",dest);

return 0;

}

9.写出输出结果

main()

{

int a[5]={1,2,3,4,5};

int *ptr=(int *)(&a+1);

printf("%d,%d",*(a+1),*(ptr-1));

}

2, 5

10.下面代码有什么问题

int main()

{

char a;

char *str=&a;

strcpy(str,"hello");

printf(str);

return 0;

}

11.#include

#include

void getmemory(char *p)

p=(char *) malloc(100);

strcpy(p,"hello world");

}

int main( )

{

char *str=NULL;

getmemory(str);

printf("%s/n",str);

free(str);

return 0;

}

有什么问题

调用函数执行完后指针的地址即被释放掉不会返回主函数可改为

Char *getmemory(char *p)

{

p=(char *) malloc(100);

strcpy(p,"hello world");

return p;

}

12.#include "stdio.h"

#include "string.h"

void main()

{

char aa[10];

char bb[10] = “Feixun”;

printf("%d, %d, %d, %d",strlen(aa), sizeof(aa), strlen(bb), sizeof(bb));

}

输出是多少?

1, 10, 6, 10

13.char *f();

char *f1();

int main()

{

printf(“%s\n”, f());

printf(“%s\n”, f1());

return 0;

相关文档
最新文档