笔试题1
来源:互联网 发布:云计算判断题 编辑:程序博客网 时间:2024/06/15 22:18
- 一、请填写BOOL, float, 指针变量 与 “零值”比较的if语句。
请写出BOOL flag 与 "零值"比较的if语句:if(flag)if(!flag)整型变量与零值比较if(value == 0)if(value != 0)浮点变量与零值比较float x = 0.000001;float 4位 精度为7位有效数字, 如果小于0.000001,则不在有效精度范围内,被认为都是0,if(DATA >= -X && DATA <= X);指针变量与0比较if(p == NULL);if(p != NULL);不要写成if(p == 0);//容易让人误解P是整型变量if(p != 0);
2.二、以下为Windows NT下的32位C++程序,请计算sizeof的值
char str[] = "hello";char *p = str;int n = 10; sizeof(str) = 6; //不要忘记“/0” sizeof(p) = 4; //32位指针是4个字节 sizeof(n) = 4;
void Func(char str[100]){ sizeof(str) = 4; //STR是指针}void *p = malloc(100) sizeof(p) = 4;
1 头文件中的ifndef/define/endif作什么用?
1,比如你有两个C文件,都加了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。
2 //#include <filename.h>和#include "filename.h"有什么区别//<>查系统文件比较快 ,"" 查路径快
3 const有什么用途(请至少说明两种)
//const修饰的数据类型是指常类型1.可以定义const常量const int i = 100;2.可以保护被修饰的东西,防止意外的修改。3.便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改;4.可以节省空间,避免不必要的内存分配。 例如:#define PI 3.14159 //常量宏const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ......double i=Pi; //此时为Pi分配内存,以后不再分配!double I=PI; //编译期间进行宏替换,分配内存double j=Pi; //没有内存分配double J=PI; //再进行宏替换,又一次分配内存!const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。5. 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
请简述以下两个for循环体的优缺点
第一个for(i =0; i < n; i++){ if(conditon) DoSomething(); else DoSomething();}第二个if(condition){ for(i = 0; i < n; i++) DoSomething();}else { for(i = 0; i < n; i++) DoSomething();}第一个缺点:性能较低,每次循环都有一次条件判断;优点:可读性高,可扩展性高。第二个优点:性能较高,循环内没有条件判断。缺点:不好扩展,如果加入新的条件,改动的代码过多,体积臃肿。
四、有关内存的思考题
第一道void GetMemory(char *p){ p = (char *)malloc(100);}void Test(void){ char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);}请问运行Test函数会有什么样的结果?程序崩溃。 str一直指向NULL。char *GetMemory(void){ char p[] = "hello world"; return p;}void Test(void){ char *str = NULL; str = GetMemory(); printf(str);}请问运行Test函数会有什么样的结果?可能是乱码。 GetMemory 返回是指向 “栈内存” 的指针。
五、编写strcpy函数
已知strcpy函数的原型是:char *strcpy(char *strDest, const char *strSrc)
其中strDest是目的字符串,strSrc是源字符串
#include <stdio.h>char *strcpy(char *strDest, const char *strSrc){ if(strDest == NULL || strSrc == NULL) return NULL; if(strDest == strSrc) return strDest; char *ret = strDest; while((*strDest++ = *strSrc++)!= '\0'); return ret;}
阅读全文
0 0
- 思科笔试题1
- 笔试题1
- 思科笔试题1
- 笔试题1
- 数据结构笔试题1
- 笔试题整理(1)
- java笔试题1
- JAVA笔试题1
- 笔试题收集-1
- C++笔试题(1)
- c++笔试题1
- java笔试题1
- 腾讯笔试题1
- 笔试题(1)
- 笔试题(1)
- 笔试题整理1
- 笔试题1
- c++笔试题(1)
- Linux -- 解压命令介绍
- Rendering Problems Missing styles. Is the correct theme chosen for this layout?
- Asp.Net Core 2.0 多角色权限认证
- HardFault_Handler问题查找方法
- JAVA Scanner用法详解
- 笔试题1
- mysql 5.5 和5.7 安装的区别
- 多媒体教室运维现状分析及解决措施
- <Arm开发板>使开发板连上外网及tftp下载命令
- Linux 树莓派 kali ifconfig: command not found 问题解决
- 10.10 高校模拟赛 贪心模拟+BFS+DP
- SpringBoot常见问题(二)--不重启替换静态资源
- python thread pool websocket client 高并发websocket客户端测试代码
- Java 多线程编程