栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

C语言笔试

C语言笔试

一、填空题(16分)1、写出float x 与“零值”比较的if语句。     (中兴)2、不能做switch()的参数类型是:     (中兴)3、程序的局部变量存在于        中,全局变量存在于      中,动态申请数据存在于      中。4、char a[10],strlen(a)结果为 5、填写如下变量的存储类型表格局部变量全局变量填空说明存储类别autoregisterstaticstaticextern 存储方式动态0r静态存储区动态区、寄存器or静态区生存期程序、函数or 复合语句作用域程序、文件、函数 or 复合语句内何时赋初值函数调用时、编译时、程序加载时未赋初值时是何值未知、0、NULL…6、一个32位的机器,该机器的指针是      位7、下列定义的含义(1)int  *p[3];(2)int   (*p)[3];(3)int  *p(int);(4)int  (*p)(int);(5)int  *(*p)(int);(6)int (*p[3])(int);(7)int  *(*p[3])(int);(8)void  *p; 8、设有以下说明和定义: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 data)+sizeof(max));的执行结果是:_______ 二、问答题(30分)1、局部变量能否和全局变量重名?全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?(华为) 2、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?(中兴) 3、形成野指针的主要成因是什么(最少列出3种)(华为 )4、语句for( ;1 ;)有什么问题?它是什么意思?(华为 )5、do……while和while……do有什么区别?(华为 )6、顺序存储和链式存储的区别和优缺点 ?7、何谓链表的头指针、头结点和首元结点?(华为) 8、队列和栈有什么区别?数组和链表的区别? 9、进程和线程的差别。(微软亚洲技术中心的面试题) 10、Heap与stack的差别。(微软亚洲技术中心的面试题) 三、读程序题(12分)1、请写出下列代码的输出内容(华为) #include<stdio.h>main(){    int a,b,c,d;    a=10;    b=a++;    c=++a;    d=10*a++;    printf("b, c, d: %d, %d, %d", b, c, d);    return 0;} 2、写出下列代码的输出内容 #include<stdio.h>int inc(int a){    return(++a);}int multi(int*a,int*b,int*c){    return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);void show(FUNC2 fun,int arg1, int*arg2){    int (*p)(int)=&inc;    int temp =p(arg1);    fun(&temp,&arg1, arg2);    printf("%dn",*arg2);}main(){    int a;    show(multi,10,&a);    return 0;}3、下面这个程序执行后会有什么错误或者效果 :#define MAX 255void main(){    unsigned char A[MAX], i;    for (i=0;i<=MAX;i++)        A[i]=i;}4、分析下面的代码:说明原因 #include<stdio.h>main(){    char *a = "hello";    char *b = "hello";    if(a==b)        printf("YES");    else        printf("NO");}四、找错题(12分)1、以下代码是把一个字符串倒序,如“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;} 2、请问下面程序有什么错误?    int a[60][250][1000],i,j,k;    for(k=0;k<=1000;k++)        for(j=0;j<250;j++) for(i=0;i<60;i++)     a[i][j][k]=0; 3、以下是求一个数的平方的程序,请找出错误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++); 4、请问下面程序有什么错误 ?#include <stdio.h>void getmemory(char *p){    p=(char *) malloc(100);    strcpy(p,"hello world");}int main( ){    char *str;    getmemory(str);    printf("%s/n",str);    free(str);    return 0;}五.编程题:(1、2题必做,3、4、5题选二,6、7题选一)(30分)(可以只写核心语句)1、交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3。(联创 )(5分)2、数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字。函数原型:(时间复杂度必须为o(N))(思科)(5分)int do_dup(int a[],int N) 3、已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);①不调用库函数,实现strcpy函数。②解释为什么要返回char *。//雅虎笔试题(字符串操作)  (5分)4、写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1。int strcmp ( const char * src,const char * dst)//雅虎笔试题(字符串操作)  (5分)5、两个字符串s、t;把t字符串插入到s字符串中i的位置。void insert(char *s, char *t, int i)(慧通) (5分)6、编写一高效算法,将一顺序存储的线性表(设元素均为整型量)中所有零元素向表尾集中,其他元素则顺序向表头方向集中。 (华为) (10分)7、试用C语言编写一个高效算法,将一循环单链表就地逆置。(中国微软) (10分)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265458.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号