c语言编写单词位置反转,C语言笔试题答案.docx

C语言笔试题答案

C语言笔试题答案简答题程序的局部变量存在于(栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_______data是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20。data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。32位系统下,请问如下语句的值unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;请问p1+5=0x801005p2+5=0x810014int i=10, j=10, k=3; k*=i+j; k最后的值是?答:60,此题考察优先级,实际写成:k*=(i+j);,赋值运算符优先级最低#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?答案:i 为30。下面程序的输出是_____,为什么?char *ptr;if ((ptr = (char *)malloc(0)) == NULL){puts("Got a null pointer");}else{puts("Got a valid pointer");}答:Got a valid pointe以下程序运行后的输出结果是______ 。main(){char m;m='B'+32; printf("%c\n",m);}答:b已有定义如下:struct node{int data;struct node *next;} *p;以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空p = (struct node *)malloc(________);答:sizeof(struct node)在绝对地址0xXXXXXXXX上写入字符’a’的语句是___________。答:unsigned char *p = (unsigned char *)0xF000FF00;*p = ‘a’;用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL1)#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。3)懂得在宏中小心地把参数用括号括起来,因为#define仅仅做替换,如果我们写 #define MUL(a,b) a/b 的话,那么我写MUL(a+1,b-1)替换之后的表达式就为a+1/b-1,这个结果显然是违背我们定义的目的的。嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。while(1){}或者for(;;){}用变量a给出下面的定义一个整型数(An integer)一个指向整型数的指针( A pointer to an integer)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)一个有10个整型数的数组( An array of 10 integers)一个有10个指针的数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值