您好,欢迎访问三七文档
C语言基础试题1.指出其中的错误:1voidGetresult(unsignedintuiM,unsignedintuiN)2{3unsignedshortusIndex;45If(0==uiN)6{7return;8}9for(usIndex=uiN;uiIndex=uiM;usIndex=usIndex+uiN)10{11printf(“%u”,usIndex);12}13return;14}2.指出其中的错误:1inta[10];2intmain()3{4int*p;5inti;6p=a;7for(i=0;i=10;i++)8{9scanf(“%d”,p++);10}11printf(“\n”);12p=a;13for(i=0;i=10;i++,p++)14{15printf(“\n”);16}17return0;18}3.如下程序用于输出”WelcomeHome”请指出其中错误1voidTest(void)2{3charpcarray[12];4strcpy(pcArray,”WelcomeHome”);5printf(“%s!”,pcArray);6return;7}4.求一个整数的平方除以1000的余数,指出程序中的错误1unsignedshotGetMode(unsignedshortusM)2{3unsignedshortusMode;4unsignedshortusTemp;5usTemp=usM%1000;6usTemp=usTemp*usTemp;7usMode=usTemp%1000;8returnusMode;9}5.下面递归函数将调整n个整数的数据Array,使其前面各顺序向后移m个位置(nm),最后m个数变成最前面的m个数。例如,1,2,3,4,5,6,7,8顺序移动3个位置变成(6,7,8,1,2,3,4,5)请指出其实现的3个错误。假设不考虑堆栈的溢出问题,也不考虑递归引起的效率问题。1voidmove(ulong*array,ulongn,ulongm)2{3ulong*p;4ulongarray_end;5ASERT(array);6ASERT(nm);7for(p=array+n;parray;p--)8{9*p=*(p-1);10}11*array=ayyay_end;12m--;13if(m0)14{15move(array,n,m);16}17return;18}6.指出下面这段代码中的错误:1unsignedlongFUNC_B(unsignedlongulCount)2{3unsignedlongulSum=0;4while(0=ulCount)5{6ulSum+=ulCount;7ulCount--;8}9returnulSum;10}7.下面函数功能是将字符串中的非”\0”字符前后位置对调,例如”abc”调换为”cba”,空串依然是空串,指出程序中的错误。1.voidReverse(char*szStr)2.{3.ULONGulLen,ulCnt,i;4.CHARch;5.if(NULL==szStr)6.{7.return;8.}9.ulLen=strlen(szStr);10.if(1=ulLen)11.{12.return;13.}14.ulCnt=ulLen/2;15.for(i=ulCnt-1;i=0;i--)16.{17.ch=szSre[i];18.szStr[i]=szStr[ulLen-1-i];19.szStr[ulLen-l-i]=ch;20.}21.}8.程序的输出为:1voidtest()2{3signedcharch;4intsum;5ch=127;6sum=200;7ch++;8sum+=ch;9printf(“%d”,sum);10}9.对于一个数组intdata[5][4],data[4][2]的地址可以表示为()A.dat+4*4+2;B.data[4]+2;C.data[4]+8;D.data+2*4+4;10.UCHAR*pszTest=\\\0;UCHARacutest[]=\\\0;请问sizeof(pszTest)=,sizeof(*pszTest)=,sizeof(aucTest);11.charstr[]=”ABCDE”;char*p=str;请计算size(str)=,sizeof(p)=.12.单选择Char*pszResource[]={“softdisk”,”harddisk”,”Cray”,”on-linedrawingrouthines”,”mouse”,”keyboard”,”powercables”};pszResource[2]指向的是()A”harddisk”存储的起始地址B“Cray”存储的起始地址C“softdisk”中字符o的起始地址D“softdisk”中字符f起始地址13.有如下的HASH函数1Unsignedcharhash(unsignedchar*mac)2{3unsignedchaructmp;4uctmp=*mac+*(mac+1)+*(mac+2)5return(uctemp);6}已知unsignedcharcMAC[6]={0xa4,0xb5,0xc6,0xd7,0xe8,0xf9};unsignedchar*p1;unsignedchar*p2;p1=cMAC;p2=p1+1;hash(p1)和hash(p2)的值分别是(用16进制表示)和.14.UCHAR*pzTest=”hello”;UCHAR*pChar=NULL;Sizeof(*pzTest),sizeof(pChar).15.单选StructtagStudent{unsignedlongnum;unsignedlongage;};voidfun(){printf(“%lu”,ulLen);return;}voidmain(){structtagStudentstudents[4]={{1,2},{3,4},{5,6},{7,8}};fun((unsignedlong)(students+2)-(unsignedlong)(students));return;}输出结果是()A.2B.4C.8D1616.[单选]设有以下定义:inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是()A.*(ptr[1]+2*4)B.*(p+1*3+2)C.*(*(a+1*3*4)+2*4)17.UCHAR*ppszTest[3]={“hello”,”okay”,”goodbye”};UCHAR**ppChar=ppszTest;Sizeof(*ppszTest)=sizeof(*ppChar)=18.char*pcColor=”worldcup”;CharacColor[]=”worldcup”;strlen(pcColor)=;strlen(acColor)=;sizeof(pcColor)=;sizeof(acColor)=;19.EnumENUM_A{X1;Y1;Z1=5;A1;B1;};EnumENUM_AenumA=Y1;EnumENUM_AenumB=B1;请问enumA=;enumB=;20.#definePCHARchar*PCHARpch1,pch2;Sizeof(pch1)=;Sizeof(pch2)=;21.挑单错将数组的内容反序拷贝到一块内存中,并返回该内存。Char*inverse(chara[]){intlen;inti;char*p;if(NULL=a){returnNULL;}Len=sizeof(a);p=(char*)malloc(len);if(NULL==p){reutnrNULL;}for(i=0;ilen;i++);{p[i]=a[len-i-1];}returnp;}22.执行以下程序段后,m的值为(),n的值为(),q的值为().inta[2][3]={{1,2,3},{4,5,6}};intm,n,q,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));n=(**a)*(**(a+1))*(*(a[0]+2));q=*(*a+2)+*(*(a+1)+1)+*(*(a+1)+2);A.15B.14C.13D.1223.设有如下定义:()intarr[]={6,7,8,9,10};int*ptr;则下列程序段的输出结果为()ptr=arr;*(ptr+2)+=2;printf(“%d,%d\n”,*ptr,*(ptr+2));A.8,10B.6,8C.7,9D.6,1024.请问:ulsize等于多少?()charc[]={‘c’,’h’,’i’,’n’,’a’};ulSize=strlen(c);A.5B.6C..不确定25.改错题下列程序目的是要实现逆序打印,请指出其错误。main(){char*src=”hello,world”char*dest=NULL;intlen=strlen(str);dest=(char*)malloc(len);char*d=dest;char*s=sre[len];while(len--!=0){d++=s--;}printf(“%s”,dest);return0;}26.structtagABC{charcB;charsC;charcD;char1A;}*pAbc;pAbc=0x100000;那么pAbc+0x100=0x;(ULONG)pAbc+0x100=0x;(ULONG*)pAbc+0x100=0x;(char*)pAbc+0x100=0x;27.UCHAR*puCharArray[10][10];typedefunionunRec{ULONGulIndex;USHORTusLevel[6];UCHARucPos;}REC_S;REC_SstMax,*pstMax;四字节对齐方式时:sizeof(pucCharArray)=,sizeof(stMax)=,sizeof(pstMax)=Sizeof(*pstMax)=.28.编程题(用C语言作答)现在要对一无序数组array[]进行折半查找,请写出算法intBinSearch(intarray[],intiValue,intiCount),array代表被查数组,iCount代表数组元素总数,iValue代表被查元素值,前提假设是array中的值都是唯一不重复的,要求:如果在数组中找到此元素则返回1,没有找到则返回-1嵌入式开发——C语言面试题1.用预处理指令#define声明一个常数,用以表示一年中有多少秒(忽略闰年问题)2.写意个”标准”宏MIN,这个宏输入两个参数并返回较小的一个。3.预处理器标识#error的目的是什么?4.嵌入式系统中经常要用到无限循环,你怎么样用C语言编写死循环呢?5.用变量a给出下面的定义a)一个整型数(Aninteger)b)一个指向整型数的指针(Apointertoaninteger)c)一个指向指针的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)d)一个有10个整型数的数组(Anarrayof10integers)e)一个有10个10个指针的数组,该指针是指向一个整型数的(Anarrayof10pointerstointegers)f)一个指向有10个整型数数组的指针(Apointertoanarrayof10integers)g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(
本文标题:C语言基础试题
链接地址:https://www.777doc.com/doc-2907918 .html