下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、C写出C程序。switch的参数不能为实型。答:可以,在不同的C文件中以static形式来同名全局变量。for(;1;)有什么问题?它是什么意思?答:和while(1)相同。{inta,b,c,d;return0;}全局变量(外部变量)static就构成了静态的全局变量。全局变量本身就是静态方式,静态全局变量当然也是静态方式。这两者在方式上并无不同。这从以上分析可以看出,把局部变量改变为静态变量后是改变了它的方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为()typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;doubledog;}too;DATEmax; 答:DATEunion,变量公用空间.int[5],20个字节.所以它的大小是20datastruct,每个变量分开占用空间.int4DATE20double82032intinc(int{}int{}voidshow(FUNC2fun,intarg1,{inttemp=p(arg1);}int{inta;}4、 5、char*6int78、char*9char*s=src[len];10while(len--!=0)11、d++=s--;13、return0;14、intchar*src="o,world";intlen=strlen(src);char*d=while(len--!=0*d0;//尾部要加\0);//}2个栈为A,B,一开始均为空.入队出队函数名:atol:把字符串转换成长整型数用法longatol(constchar*nptr);#include<stdlib.h>#include<stdio.h>intmain(void){longchar*str= l=printf("string=%sinteger=%ld\n",str,l);} ADSL局域网接入voip都用了那些协议?enum{x=0x801005,0x8010f4unsignedchar*p1;unsignedlong*p2;p1=(unsignedchar*)0x801000;p2=(unsignedlong*)0x810000;请问p1+5=;p2+5=三.选择题unsignedshorthash(unsignedshort{}四.找错题inta[60][250][1000],i,j,k;#defineMax_CBvoidLmiQueryCSmd(StructMSgCB*{unsignedchar{ }inta=5;intb;typedefunsignedchar{BYTE{}}五.问答题Heap是堆,stackStack空间有限,Heap是很大的自由10.在IA32中一共有多少种办法从用户态跳到内核态?13.ApartmentCOM后再运行速度比单独执行SQL快很多#defineswap(x,y)\x=x+y;\y=x-y;\x=x-y;时间复杂度必须为o(N)函数原型:intdo_dup(inta[],intinti=cout<<boolalpha<<((i&(i-1))?false:true)<<4.unsignedintintvert(unsignedintx,intp,intn)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x=0b00010001,p=4,n=3转换后x=0b01100001unsignedintintvert(unsignedintx,intp,intn){unsignedint_t=0;unsignedint_a=1;for(inti=0;i<n;++i){_t|=_a=_a<<}_t=_t<<p;x^=_t;returnx;}char*constp;charconst*pconstchar*pchar*constp常量指针,pcharconst*p;//指向常量的指针,指向的常量值不可以改constchar*p;//charconst*pcharstr1[]=charstr2[]=constcharstr3[]="abc";constcharstr4[]=constchar*str5="abc";constchar*str6=char*str7="abc";char*str8=cout<<(str1==str2)<<endl;cout<<(str3==str4)<<endl;cout<<(str5==str6)<<endl;cout<<(str7==str8)<<结果是:001而str5,str6,str7,str8是指针,它们指向相同的常量区域。voidUpperCasecharstr[])//str{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A'}charstr[]=coutstr字符长度为sizeof(str)/sizeof(str[0endl;UpperCase(str);cout<<str<<sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。指针是多少位只要看地址总线的位数就行了。8038632的数据总线。所以指针的位数就是4个字节了。{intint*ptr=(int}5int*ptr=(int&aint不同类型的指针+1之后增加的大小不同prt-1只会减去sizeof(int*)组)首地址,a+1a[1],&a+1a[5].int{charchar*str=&a;}cosntchar*5、关键字volatile有什么含意?并举出三个不同的例子?int*s[10])(int))inta=248;b=4;intconstc=21;constint*d=&a;int*conste=&b;intconst*fconst=&a;*c*dconst,e&aconstconst*fconst=&a;有两种解法,一种用算术算法,一种用^(异或a=a+b=a-a=a-b;aa^b;//b=a^b;a=a^b;a^=b^=cc++struct的主要区cstruct不可以含有成员函数c++struct可以。认为private#include<stdlib.h>{}intmain({char*str=NULL;}charszstr[10]; 长度不一样,会造成的virtualvoid tcp/udp属于TCPUDPIPUDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。tcp:提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好udp:不提供稳定的服务,包头小,开销小.(void*)ptr(*(void**))ptr2:int{intx=3;return1;}(unsignedint*)0x100000=*((void(*)())0x100000)((void(*)())0x100000*((void#defineNTBL#defineNTBL面试题:线程与进程的区别和联系?线程是否具有相同的堆栈dll是否有独立的堆栈DLLEXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈?DLLDLLEXE中,或者另外一个DLL中删除,很有可能导致程序unsignedshortA=10;printf("~A=%u\n",~A);charc=128;第二题,c=0x10,输出的是int,最为1,是负数,所以它的值就是0x00的补码就是128,voidGetMemory(char**p,int{*p=(char}int{char*str=NULL;{}printf("\nstris%s",str);}输出strisworld。freestr指向的内存空间,它本身的值还是存在的.所以free之后,有一个好的习惯就是将str=NULL.str指向空间的内存已被回收,如果输出语句之前还存在分配空间的操作的话,这段续都续都#include"stdio.h"void{charaa[10];}char(*str)[20];/*str是一个数组指针,即指向数组的指针.*/longa=0x801010;0x801010用二进制表示为:“100000000001000000010000”,十进制的值为 加上5就是 {chart:4;charunsignedlongm;{chart:4;4chark:4;4unsignedshorti:8;8unsignedlongm24};//8intadd_n(intn{staticinti=100;i+=n;return}//帮忙分析一下#include<string.h>#include<malloc.h>#include<stdio.h>#include<stdlib.h>typedefstructAA{intvoid{char cout<<aa.b1cout<<aa.b2}-16首先sizeof(AA)的大小为4,b1和b2分别占5bit和2bit.经过strcpy和memcpy后,aa的4个字节所存放的值是:0,1,2,3的ASC码,即, 分别为:10000,01 intfunc(x){intcountx=0;while(x){countxx=x&(x-}}?inta,b,c请写函数实现C=a+b不可以改变数据类型,如将c改为longint,关键是如何处理溢出booladd(inta,intb,int{return(a>0&&b>0&&(*c<a||*c<b)||(a<0&&b<0&&(*c>a||}structintb:2;intc:3;int{bitchar*c=(char*)&s;cout<<s.a<<endl<<s.b<<endl<<s.c<<endl;inta=-1;return0;}41--0x9910011001a001b11cb=-c为有符合数时c100,c4,b有些信息在时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省空间,并节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个,允许struct{位域列表struct{intintstruct{inta:8;intb:2;intdatabsa8b2c6位。structbs{unsigneda:4unsignedc:4}4位,c4struct{intint2*2位不能使用*/intb:3intstruct{unsignedunsigned#include<stdio.h>intmain(void){intintreturn}int**p;//二级指针#include<stdio.h>intmain(void){int**p,*q;intarr[100];q=arr;p=&q;}#defineMAX255int{for(i=0;i<=MAX;i++)}其二.i循环到255时,循环内执行:(name1{charshortx;}name2{charshort}在第二个结构中,为保证num按节对齐,char后必须留出3字节的空间;同时为保A.c和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?struct{inti:intj:inta:3;struct{inti:intj:4;inta:3;printf("sizeof(s1)=%d\n",sizeof(s1));printf("sizeof(s2)=%d\n",sizeof(s2));result:16,24{inti:intj:inta:3;i08位一个字节,然后,j就在相对一个字节4a,(逆序例如n=5则输出14;#include<stdio.h>int{intMAX=int*a=(int*)malloc(MAX*sizeof(int));int*b;if(fp1==NULL)}if(fp2==NULL)}inti=0;intj={if(i>={MAX=2*b=(int*)realloc(a,MAX*sizeof(int));if(b==NULL){}a=}}for(;--j>=0;)}第二题int{unsignedlongintprintf("pleaseinputthenumber\n");if(i%2==0)j=i/2;j=i/2+printf("Theresultis\n");for(k=0;k<j;k++)printf("%d=%d+%d\n",i,k,i-k);return0;}#include<stdio.h>voidmain(){unsignedlonginta,i=1;{}printf("%d,%d",i,a-i);}兄弟,这样的题目若是做不出来实在是有些不应该,给你一个递规反向输出字符串的例子,可voidinverse(char{if(*p=='\0'inverse(p+1);printf("%c",*p}intmain(intargc,char{}#includestdio.h>voidtest(FILE*fread,FILE{charbuf[1024]=test(fread,fwrite);fputs(buf,fwrite);}intmain(intargc,char{FILE*fr=FILE*fw=fr=fopen("data",fw=fopen("dataout","wb");test(fr,fw);return0;}struct{longnum;char*name;shortintdata;charha;shortba[5]; 解答:假设在32位CPU上,sizeof(long)=4bytessizeof(char*)=4sizeof(shortint)=sizeof(short)=2bytessizeof(char)=1bytessizeof(structBBB)=44211/*补齐*/2*52/*补齐*24bytesDev-C++验证 = + = + = +k大小的数,输出数所在的位置。例如{2,4,3,4,7}中,第函数接口为:intfind_orderk(constint*narry,constintn,constintk)代码如下,在VC++6.0运行通过。给分吧^-^{inttemp=intpt=while(low<{while(low<high&&L[high]>=--L[low]=while(low<high&&L[low]<=L[low]=}L[low]=}{if(low<{intpl=PartitionQSort(L,low,pl-1);QSort(L,pl+1,high);}}{intsum=1,t;cout<<"Inputnumber:"<<endl;cin>>t;while(t!=-{narry[sum]=t;addr[sum-1]=t;cin>>}sum-=QSortfor(inti=1;i<=sum;i++)cout<<narry[i]<<'\t';cout<<endl;cout<<"Pleaseinputplaceyouwant:"<<endl;cin>>k;intaa=for(;;){if(aa==k)if(narry[kk]!=narry[kk+{}}cout<<"TheNO."<<k<<"numberis:"<<narry[sum-kk]<<endl;cout<<"Andit'splaceis:";for(i=0;i<{if(addr[i]==narry[sum-kk])cout<<i<<'\t';}}{charchar* );//}{for(I=0;I<10;I++){}}{char{}}voidg(int**);intmain(){intfor{}return0;}void{(*p无效}1234567893.intsum(int{autointc=0;staticintb=3;}void{intI;{}}intfunc(int{intb;{case1:case2:case3:}}inta[0]=0;a[1]=1;升序线形表h;*q){linklist*R,*pa,*qa,*ra;}}}returnR;}adj[i][j]=1ijcolor[N]color[i]=1,i1boolfun(inta[],intn{if(n==1)if(n==2)returna[n-1]>=a[n-returnfun(a,n-1)&&(a[n-1]>=a[n-2]}回复人:free131(白日?做梦信誉:1002006-4-1710:17:34得分?方法1:{intdate_1;structval*next;void{char{p.date=c;}}}node*p=NULL;node*q=node*head=(node*)malloc(sizeof(node));head->data='';head->next=NULL;node*first=first->data='a';first->next=NULL;head->next=first;p=first;intlongth='z'-'b';inti=0;while(i<=longth{node*temp=(node*)malloc(sizeof(node));temp->data='b'+i;temp->next=NULL;q=temp;head->next=temp;temp->next=p;p=q;}的一个字符串为不超过255byte,内存使用只有1G,设计这个系统速度最好,请描述思想,写出算发(c语言{char*src="o,world";char*dest=NULL;intlen=strlen(str);char*d=dest;}#include"string.h"#include"stdio.h"{char*src=" char*dest=NULL;intlen=strlen(src);char}voidswap(inta,int{intc;}voidswap(inta,int{}6.char{charp[]=“owworld”;returnp;}void{char*str=NULL;}打印的应该是str的地址一个函数参数outputstr所指内存。例如:"abcd12345ed125ss {char*in=inputstr,*out=outputstr,*temp,*final;intcount=0,maxlen=0;while(*in!='\0'{if(*in>47&&*in<58{for(temp=in;*in>47&&*in<58;in++)}if(maxlen<count{maxlen=count;count=0;final=}}for(inti=0;i<maxlen;{*out=*final;}*out='\0';}1:*s){intfor(n=0;*s!='\0';s++)return}voidreverse(char{intfor(i=0,j=getlen(s)-1;i<j;i++,j-){c=s[j]=c;}}voiditoa(intn,char{inti,sign;if((sign=n)<0)n=-n;i=s[i++]=n%10+'0';/*getnext}while((n/=10)>0);/*deletetheif(sign<0)s[i++]='-s[i]='\0';}#include<iostream>voiditochar(intnum);voiditochar(int{intj;charstra[10];charstrb[10];while(num{}stra[i]=for(j=0;j<i;{}strb[j]='\0';}int{intnum;return0;}{inta:2;intb:2;inttestt.a=t.b=t.c=谢谢1intpop(int*);intpush(intint{int{}}{inttemp=m;{{}elseif(push(--{}}}intpush(int{return0;}intpop(int{return0;}#include<stdio.h>#include<dos.h>intmain(){charstr[]="ABCD1234efgh";intlength=strlen(str);char*p1=char*p2=str+length-1;while(p1<p2){charc=*p1=*p2=--}printf("strnowis%s\n",str);}#include<stdio.h>doublegetValue(){doubleresult=0;inti=2;while(i<{i+=2;}}int{printf("resultis%f\n",getValue());}回复人:free131(白日?做梦信誉:1002006-4-1710:18:33得分?a[1000]0--1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进}方法1:数组#definenull1000int{intintintcount=0;{}return0;}方法2:链表#definenull0struct{intdata;int{node*p=head;for(int{node*tmp=newnode;}{}return0;}#includeMAXLINEa元素数组R[]指针场suffix下标index返回最后的下标序号values返回最后的下标对应的值start从第几个开始Kintfind_n(inta[],intR[],intK,int&index,int&values,int{intintfront_node,current_node;if(s==0){current_node=0;}}if(K==1)}}}}intmain(void)}return0;}void{inti;for(i=0;i<10;{str1[i]=}strcpy(string,str1}strcpy(string,str1)调用使得从str1内存起到string内存起所的字节数具有不确定性可以给7分,在此基础上库函数strcpy工作方式的给10分;strcpychar*s1,char*s2)s2s1所指向的内存,直到碰到'\0',str1结尾没有'\0',所以具有不确定性,不知道他后面还会付什么东void{inti;for(i=0;i<9;{}strcpy(string,str1);}intStrCmp(constchar*str1,constcharintStrCmp(constchar*str1,constchar{assert(str1&&while(*str1&&*str2&&*str1=={str1++,}if(*str1&&*str2)elseif(*str1&&*str2==0)return1;elseif(*str1==0&&*str2)return-1;}intStrCmp(constchar*str1,constchar{while(*str1&&*str1*str2++);return*str1-*str2;}{constchar*p;constcharconstchar*u=//assert((MainStr!=NULL)&&SubStr!=NULL));//用断言对输入进行判断while(*MainStr)//内部进行递增{p=q=while(*q&&*p&&*p++==*q++);if(!*q){}}}intarr[]=int*ptr=printf(“%d%d”,*ptr,输出:8{}Back=Pointer;{}voiddelete(Node*{if(Head=}/*n16*/charSumOfQuaters(unsignedshortn){charc=0;inti=4;{c+=n&15;n=n>>4;}while(--return}有1,2一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用int{inta[]=intlen=sizeof(a)/sizeof(int);inttemp;for(inti=0;i<len;{temp=a[a[i]-a[a[i]-1]=a[i];a[i]=temp;if(a[i]==i+1)}for(intj=0;j<len;j++)}typedefstruct{intstructlinknodenode*reverse(node{{}return}{node*p;{}}voidinsert(char*s,char*t,int{char*pif(q==NULL)return;{}{}*p=}char*a= char*b=" if(a==b)这个简单的面试题目,我选输出no(对比的应该是指针地址吧),VCYESC是NO化的话,会有可能a和b同时指向同一个o的。则地址相同。如果编译器没有优化,那memcpysourcevoid*memcpy(void*dst,constvoid*src,unsignedintlen{registercharif(len==returnif(is_overlap(dst,src,len,complain3("memcpy",dst,src,len);if(dst>src)d=(char*)dst+len-s=(char*)src+len-while(len>=4)*d--=*s--*d--=*s--*d--=*s--*d--=*s--len-=}while(len--)*d--=*s--}}elseif(dst<src)d=(chars=(charwhile(len>=4)*d++=*d++=*d++=*d++=len-=}while(len--)*d++=}}return}/*memcpy───拷贝不的内存块voidmemcpy(void*pvTo,void*pvFrom,size_t{void*pbTo=(byte*)pvTo;void*pbFrom=(byte*)pvFrom;ASSERT(pvTo!=NULL&&pvFrom!=NULL);//检查输入指针的有效性*pbTo++==*pbFrom++;}{if(pHeadNULL||pHead->nextNULL)//无节点或只有一个节点并且无自环return(false);returnLink*pTemp1=pHead;//step1Link*pTemp=pHead->next;//step2{pTemp1=pTemp1->next;}return(true);}voidinsert(char*s,char*t,int{}}1C函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是char*search(char*cpSource,char{intiTemp,iCount=0;{{cpTemp=cpSource;while(*cpSource==ch)if(iTemp>iCount)iCount=iTemp,cpDest=cpTemp;}}}2C函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位intsearch(char*cpSource,intn,char{intfor(i=0;i<n&&*(cpSource+i)!=ch;++i);returni;}#include<stdio.h>voidfoo(intm,intn){int{intb=3;foo(b+=3,++b);printf("b=%d\n",b);return0;}C标准中对这种方式说明为未定义,所以各个编译器厂商都有自己得理解,所以最比如A="aocdfe"B="pmcdfa"则输出"cdf"//Author:azhen{inti,charreturnshortstring;--)//{ &shortstring[j],i);substring[i]='\0';}}}{char*str1=malloc(256);char*str2=malloc(256);char*comman=NULL;manstring(str2,str1);printf("thelongestcommanstringis:%s\n",}str21str1str2intstrcmp(constchar*src,constchar*{intret=0while(!(ret=*(unsignedchar*)src-*(unsignedchar*)dst)&&{}if(ret<0)ret=-1;elseif(ret>0)ret=1;return(ret}#defineNUMintfind5(intnum){intret=0;}}main(){result=0;int{}printf("thetotalzeronumberis%d\n",result);return0;}struct{intstructnode{if(pHeader==NULL)BOOLbRet=Node*pNode=pHead;{if(pNode->data=={if(pNode->front=={pHeader=pNode->next;}{if(pNode->next!={}}deletepNode;pNode=bRet=}{pNode=pNode-}}}voidDE(Node*pHeadA,Node{if(pHeadA==NULL||pHeadB=={}while(pNode!={{if(pNode->front=={pHeadA=pNode->next;}{if(pNode->next!=NULL){}}deletepNode;pNode=}{pNode=pNode-}}} mon(char*s1,char*s2,char**r1,char{intlen1=strlen(s1);intlen2=strlen(s2);intmaxlen=0;for(inti=0;i<len1;{for(intj=0;j<len2;{if(s1[i]=={intas=i,bs=j,count=while(as+1<len1&&bs+1<len2&&s1[++as]==s2[++bs])if(count>{maxlen=*r1=s1+*r2=s2+}}}}char*test3(longnum)buffer[0]='0';buffer[1]=buffer[10]=char*temp=buffer+2;for(inti=0;i<8;i++)temp[i]=temp[i]=temp[i]>=0?temp[i]:temp[i]+16;temp[i]=temp[i]<10?temp[i]+48:temp[i]+55;}}N,N*N矩阵比如N=3,打印:12897612361098ints[N][N];voidmain(){intk=0,i=0,j=0;inta=1;for(;k<(N+1)/2;k++{while(j<N-k)s[i][j++]=a++;i++;j--while(i<N-k)s[i++][j]=a++;i--;j--while(j>k-1)s[i][j--]=a++;i--;while(i>k)s[i--][j]=a++;i++;}for(i=0;i<N;i++{for(j=0;j<N;j++)cout<<s[i][j]<<'\t';cout<<endl;}}defineMAX_Nint*(x,voidSetMatrix(intx,inty,intstart,int{inti,ifn0递归结束条件ifn1)1}forix;ixn-1;i矩阵上部matrix[y][i]=start++;forjy;jyn-1;j右部matrix[j][x+n-1]=start++;forix+n-1;ix;i底部matrix[y+n-1][i]=start++;forjy+n-1;jy;j左部matrix[j][x]=start++;}{inti,j;intn;SetMatrix(0,0,1,for(i0;in;i++){for(j=0;j<n;j++)}}intFunct(intn{}解答:intFunctintnn{inta=0;intb=1;intc;if(n==0)c=1;{}return}100001100低位在001---100---100---001---100---100---结果是2、原题跟位域的空间分配有关,到底是从低字节分配还是从高字节分配,从DevC++VC7.1上看,都是从低字节开始分配,并且连续分配,中间不空,不像谭的书那样会留3、原题跟编译器有关,编译器在未用堆栈空间的默认值分配上有所不同,DevC++未用空 big-endian4{intintfound=1;return-1;{}return}Josephu1,2,nnk(1<=k<=n)的人#include<stdio.h>intJosephu(intn,int{intflag,i,j=int*arr=(int*)malloc(n*for(i=0;i<n;++i)arr[i]=1;for(i=1;i<n;{flag=while(flag<{if(j==n)j=0;if}arr[j-1]=",}returnj;}int{intn,}#include<stdio.h>typedefstructNode{intstructNodeintJosephu(intn,int{inti,JosephuNode*head,head=tail=(JosephuNode*)malloc(sizeof(JosephuNode));for(i=1;i<n;++i){tail->index=tail->next=(JosephuNodetail=tail-}tail->index=i;tail->next=head;for(i=1;tail!=head;{for(j=1;j<m;{tail=head=head-}printf("第%4d个出局的人是:%4d号\nihead->index);head=tail-}i=head->index;returni;}int{intn,}char*strcpy(char*strDest,constchar*char*strcpy(char*strDest,constchar*{throw"Invalidargument(s)";//[2]returnstrDestCopy;}(B)检查指针的有效性时使用((!strDest)||(!strSrc))或(!(strDest&&strSrc))C语false三个关键字以提供更安全的条件表达式。直接使用字面常量(如本例中的0)会减少程序的可性。0虽然简单,但程序中可能出排除。而使用NULL代替0,如果出现拼写错误,编译器就会检查出来。(Areturnnewstring("Invalidargument(s)");,说明答题者根本不知道返回值的用途,并且他对(B)return0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能(循环体结束后,strDest字符串的末尾没有正确地加上'\0'。用预处理指令#define一个常数,用以表明1年中有多少秒?#defineSECONDS_PER_YEAR(60*60*24*365)UL#defineMIN(A,B)((A)<=(B)?(AB))while(1){ int int一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)int**a;10个整型数的数组(Anarrayof10integers)intint*a[10];10个整型数数组的指针(Apointertoanarrayof10integers)int一个指向函数的指针,该函数有一个整型参数并返回一个整型数(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)int*a(int);数(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnanintegerint(*a[10])(int);constinta;a是一个常整型数intconsta;a是一个常整型数constint*a;a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)int*consta;a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,intconst*aconst;a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:intsquare(volatileint{return*ptr*}const因为程序不应该试图去修改它。intsquare(volatileint{inta=b=*ptr;returna*b;}longsquare(volatileint{inta=*ptr;returna*a;}位操作(Bit第一个设置abit3,第二个清除abit3。在以上两个操作中,要保持其它位不变。#defineBIT3(0x1<<3)staticintvoid{a|=}void{a&=}intptr=(int*ptr=C支持中断。具代表事实是,产生了一个新的关键字 interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。interruptdoublecompute_area(double{doublearea=PI*radius*radius;printf("Area=%f",area);}ISRISR的寄存器入栈,有些处理器/ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。12.void{unsignedinta=6;intb=-20;(a+b>6)puts(">6"):puts("<=}unsignedintzero=unsignedintcompzero=/*1'scomplementofzerounsignedintcompzero=#definedPSstructs*typedefstructs*dPStPSstructs*p1,二个例子正确地定义了p3和p4两个指针。inta=5,b=7,c;c=a+++b;c=a+++因此,a6,b7,c12Whatwillprintout?{char*p1=“name”;char*p2;memset(p2,0,20);while(*p2++=printf(“%sn”,p2);//在之前的循环后,指针已经不再指向字符串的首地址,所以不会打印}Whatwillbeprintedastheresultoftheoperationbelow:{intx=y+++x++; y=++y+++x; }Whatwillbeprintedastheresultoftheoperationbelow:{int<< }Whatwillbeprintedastheresultoftheoperationvoidmain(){intx=5,y=10;swap(x,y); printf(“%d}intswap2(intaint {}答案:10,10,Whatwillbeprintedastheresultoftheoperationbelow:{char*ptr=”Cisco}Answer:CiscoSystemsiscosystemsWhatwillbeprintedastheresultoftheoperationbelow:{chars1[]=“Cisco”;chars2[]=“systems”;}Whatwillbeprintedastheresultoftheoperationbelow:{char}Thefollowingvariableisavailableinfile1.c,whocanaccessit?:staticintaverage;Answer:allthefunctionsinthefile1.ccanaccesstheWHatwillbetheresultofthefollowingcode?#defineTRUE0//somecode{//some}Answer:ThiswillnotgointotheloopasTRUEisdefinedasWhatwillbeprintedastheresultoftheoperationbelow:intx;int{}{}void{intx++;//x=11x++;//x=12printf("Firstoutput:%dn",x); }Answer:12,13,Whatwillbeprintedastheresultoftheoperation{intx=10,y=15;x=x++;y=}Answer:11,Whatwillbeprintedastheresultoftheoperation{inta=0;printf(“CiscoSystemsn”);}Answer:Twolineswith“CiscoSystems”willbe以下三条输出语句分别输出什么?[C易]charstr1[]="abc";charstr2[]=constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutboolalphastr1==str2endl;//输出什么?coutboolalphastr3==str4endl;//输出什么?coutboolalphastr5==str6endl;//输出什么?(A&operatorconstA&赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一voidUpperCasecharstr[])//str{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i //for(size_ti=0;++iif('a'<=str[i]&&str[i]<='z'str[i]-=('a'-'A'}charstr[]=cout<<"str:"<<sizeof(str)/sizeof(str[0])<< //cout<<"str:"<<<<endl;UpperCase(str);cout<<str<<endl;voidchar2Hex(charc16{charch=c/0x10+'0';if(ch>'9')ch+=('A'-'9'-charcl=c%0x10+'0';if(cl>'9')cl+=('A'-'9'-1);cout<<ch<<cl<<'';}charstrIlove中国for(size_ti=0;i<strlen(str);++i)char2Hex(str[i]);cout<<structTest{Test(int)voidfun()voidmain(void{}cout<<(true?1:"1")<<endl;unsignedintconstsize1=2;charstr1[size1];unsignedinttemp=0;cin>>temp;unsignedintconstsize2=temp;charstr2[size2];structCLS{intCLS(inti):m_i(i){}{}CLScout<<obj.m_i<<class{Empty();//Empty(constEmpty&~Empty();//Empty&operatorconstEmpty&Empty*operator&();//constEmpty*operator&const;//3.以下两条输出语句分别输出什么?[C++难]floata=1.0f;cout<<(int)a<<endl;cout<<(int&)a<<endl;coutboolalphaint)aint&)aendl;//floatb=cout<<(int)b<<endl;cout<<(int&)b<<endl;coutboolalphaint)bint&)bendl;//2.以下反向遍历array数组的方法有什么错误?[STL易]vectorarray;)//{cout<<array[i]<<}以下代码有什么问题?[STL易]typedefvectorIntArray;IntArrayarray;//{if(2==*itor)array.erase(itor}void*mymemcpy(void*dest,constvoid*src,size_tcount{char*pdest=static_cast<char*>(destconstchar*psrc=static_cast<constchar*>(srcifpdest>psrc&&pdest<psrc+cout){for(size_ti=count-1;i!=-1;--i)pdest[i]=psrc[i];}{for(size_ti=0;i<count;++i)pdest[i]=psrc[i];}return}intmain(void{charstr[]=" mymemcpy(str+1,str+0,9);cout<<str<<endl;system("Pause");return0;}charstr1[]="abc";charstr2[]=constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutboolalphastr1==str2endl;//输出什么?coutboolalphastr3==str4endl;//输出什么?coutboolalphastr5==str6endl;//输出什么?(A&operatorconstA&赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级第一学期教学计划范文合集三篇
- 九年级化学教学计划范文锦集7篇
- 销售部年度工作计划
- 师德师风的教师演讲稿模板5篇
- 人寿保险公司实习报告合集六篇
- 关于年会策划方案范文合集6篇
- 大学生顶岗实习周记锦集六篇
- 政府绩效评估 课件 蔡立辉 第6-10章 政府绩效评估的结果应用与改进 -政府绩效评估在当代中国的推进
- 2010年高考一轮复习教案:必修1 第四章 非金属及其化合物 全程教学案
- 2025年农林牧渔专用仪器仪表项目发展计划
- 网络安全技能竞赛(CTF)考试题及答案
- 广东省深圳市2023-2024学年六年级上学期英语期中试卷(含答案)
- 人教版五年级上册四则混合运算300道及答案
- 汽车挂靠租赁协议书(范本)
- 泌尿外科诊疗指南
- 沪教牛津版英语2024七年级上册全册知识清单(记忆版)
- 2024中煤矿山建设集团(国独资)招聘200人高频500题难、易错点模拟试题附带答案详解
- 高中地理选择性必修2(综合检测卷)(附答案)-2022-2023学年高二上学期地理选择性必修2
- 未成年消费退款协议书范本
- 政协分组讨论个人发言稿
- 2024年新苏教版六年级上册科学全册知识点 (背诵用)
评论
0/150
提交评论