/*得到字符串长度*/ while (*p != \\'\\\\0\\') {
/*判断字符是否为数字*/ if (*p<\\'0\\' || *p>\\'9\\') return 2; nLen++; p++; }
/*长度不为奇数,不为回文数字*/ if (nLen%2 == 0) return 4;
/*长度为1,即为回文数字*/ if (nLen == 1) return 0;
/*依次比较对应字符是否相同*/ p = s; i = nLen/2 - 1; while (i) {
if (*(p+i) != *(p+nLen-i-1)) return 3; i--; } return 0; }
5、求2~2000的所有素数.有足够的内存,要求尽量快 答案:
int findvalue[2000]={2}; static int find=1; bool adjust(int value) {
assert(value>=2); if(value==2) return true; for(int i=0;i<=find;i++) {
if(value%findvalue==0) return false; }
findvalue[find++]; return true; }
用数组法实现大数相加:
11
char a[n],char b[n],char c[n+1]=a+b;
基本意思就是这样的。把a[n],b[n],的和加到c[n]中。 注意,char定义的数组是有符号
6、请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144, 676。用c语言编写(不能用数字转换成字符串)。 #include
//函数havesamenum确认num是否满足条件 int havesamenum(int num) { int i=0,j; char a[10] = {0}; while(num>0) {
j=num; a[j]+=1; num=num/10; }
while(a[i]<=1&&i<10) i++; if (i<10) return 1; else return 0; }
void main(void) { int i,j,m;
m=(int)sqrt(99999); for(i=1;i if (1==havesamenum(j)) printf(\} } 四 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(存储域) 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用(作用域) 2.引用与指针有什么区别? 12 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性: 在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树?左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。 7.什么函数不能声明为虚函数?constructor ,static ,inline函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n^2)。 9.写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 10.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。 11.Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議) 12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做 14.不能做switch()的参数类型是:switch的参数不能为实型。 五 1、公司的机器可以进行局域网访问但是不能上网,什么原因? 2、公司的机器可以进行局域网访问 ,也可以上QQ但是不能访问网站,什么原因? 3、公司有1台DHCP服务器给20台机器动态分配IP地址,现在公司又买来20台计算机,但是机房的门锁着, 而且又不知道服务器密码的情况下,如何让新的计算机和原先的计算机一起上网? 1. 第一个问题:有多种现象造成的,先查看其他可以上网机器的设置,有没有代理服务器?DNS的指定等等.这个问题要根据局域网的架构来分析.第二个问题:有可能是DNS的设置问题.第三个问题:你直接把电脑连上局域网看能不能自动拿到IP,不行就先设置固定IP. 2. 1,不知道网络环境,只是进行局域网访问,一个简单的集线器把所有电脑连接而根本不进行外网连接,就可以实现,当然也可能对这些机器限制无法访问外网。 2,不能访问网站,是所有的网站还是个别的,路由器里应该可以设置除了QQ的以外所有的都不允许访问吧 3,只要DHCP服务器地址池里设置的地址不少于40个,新机器连上后应该能自动获取地址的 六 1、1到100之间的所有素数之和; int i = 1; int j = 0; bool change= 1; int sum = 0; for (i=1; i<100; i++) { for (j=2; j 13 if(i%j==0) { change = 0; break; } } if(change==1) sum +=i; change = 1; } printf(\ 2、队列的实现;(用数组或者链表,定义好输入和输出即可) 3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)n个人围成一圈,从第一个人开始依次从1到m循环报数,当报到m的时候此人出圈,直到圈 中只剩一人为止.求最后一个人的原始编号。 int yuesefu(int n,int m) { int i,r=0; for (i=2;i<=n;i++) r=(r+m)%i; return r+1; } 4、字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符 串的个数 ) int countABC(* s) { int i = 0; int j = 0; int num = 0; scanf(\int len = strlen(s); for (i=0; i j = strcmp(s+i,\ if(j==0) num++; } } 5、用数组存储超大数的问题。 这是数组得一个应用,思想是我们定义一个数组,让每一个元素得值都是从后到前以十 进制得方式存贮得,如过到了9下一位就要让前一个元素进位为1,9变为0同时。 下面这个例子是要求一个40位的 n!的值 int data[40];//存储40位书的整数数组 int digit;//数据位数变量 int i,j,r,k; int n;//用户输入值 14 for(i=1; i<40+1; i++) data[i]=0; data[0]=data[1]=1; digit=1; printf(\scanf(\for(i=1; i for(j=1; j for(j=1; j if(data[j]>10) { for(r=1; r if(data[digit]>10)//大于10时候位数加1 digit++; data[r+1]+=data[r]/10;//进位增加 data[r]=data[r];//去掉进位后得值 } } } printf(\for(k =digit; k>0; k--) printf(\printf(\} 6、询问我操作系统的进程和线程的区别 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元 实现系统对应用的并发性。进程和线程的区别,简而言之:一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大 地提高了程序的运行效率。 1、ping命令使用的是哪种报文? PING命令使用ICMP的哪种code类型:Echo reply(回显请求报文) 2、OSI分哪几个层,IP是在哪个层? osi:物理层、链路层、网络层、传输层、会话层、管理层、应用层。 tcp/ip:主机网络层、互联层、传输层、应用层。ip是在互联层 3、哈希表的问题 主要用于快速查找检索方面 4、为什么要采取二叉树这种数据结构? 折半查找,可以减少查找比较次数 5、五元组 二元组的定义: 15 百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典教育范文C++笔试题(3)在线全文阅读。
最新更新: