版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试题选择题1、以下程序的输出结果是:20\r\n对的值20\r转义符:回车,\n转义符:换行#include<stdio.h>intmain(){intn=4;while(n--){printf("%d",--n);}printf("\r\n");return0;}2、设有以下宏定义:#defineN4#defineY(n)((N+1)*n)则执行语句:Y(5+1)为:26假如#defineY(n)((N+1)*(n))则Y(5+1)为303、enumENUM_A{x1,y1,z1=5,a1,b1};enumENUM_AenumA=y1;enumENUM_AenumB=b1;请问enumA和enumB的值是多少?17x1=0,y1=1,a1=6,b1=74、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时对的的调用方法是:(*p)(,)5、对栈S进行下列操作:push(1),push(5),pop(),push(2),pop(),pop(),则此时栈顶元素是:NULL6、在一个32位的操作系统中,设void*p=malloc(100),请问sizeof(p)的结果是:47、若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表达a[1]地址的表达式是:Ca的值不能改变A)p+1B)a+1C)a++D)++p8、设有如下定义:unsignedlongplArray[]={6,7,8,9,10};unsignedlong*pulPtr;则下列程序段的输出结果是什么?DpulPtr=plArray;*(pulPtr+2)+=2;printf("%d,%d\r\n",*pulPtr,*(pulPtr+2));A)8,10B)6,8C)7,9D)6,109、以下程序运营后,输出结果是什么?Cvoidmain(){char*szStr="abcde";szStr+=2;printf("%1u\r\n",szStr);return;}A)cdeB)字符c的ASCII码值C)字符c的地址D)犯错10、给出以下定义:charX[]="hello";\0charY[]={'h','e','l','l','o'};则对的的叙述为:CA)数组X和数组Y等价B)数组X和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度11、在32位X86下,有下列程序#include<stdio.h>voidmain(){union{intk;chari[2];}*s,a;s=&a;s->i[0]=0x39;s->i[1]=0x38;printf("%x\r\n",a.k);}输出结果是:B编译后的结果为CCCC3839,答案AA)3839B)3938C)380039D)不可预知12、有如下函数定义:unsignedlongMyFunc(unsignedlongulKey){return(((ulKey&0x000000ffUL)<<24)|((ulKey&0x0000ff00UL)<<8)|((ulKey&0x00ff0000UL)>>8)|((ulKey&0xff000000UL)>>24));}则MyFunc(0x12345678)的返回值是:CA)0x12345678B)0x87654321C)0x78563412D)0x1256347813、((a>b)?a:b)代表什么含义:bA)代表a,b之中较小的那个值B)代表a,b之中较大的那个值C)代表a是否比b大D)语法错误14、某系统总线的一个总线周期包含3个时钟周期,每个总线周期可以传送32位数据。若总线的时钟频率为33MHz,则总线带宽为多少MB/s?BA)11B)22C)33D)44总线数据传输率=时钟频率/每个总线包含的时钟周期数*每个总线周期传送的字节数,33MHZ/3*(32/8)=44MB/S,答案为D15、如下定义,则s在内存中占多大空间?Aunion{struct{unsignedcharaa:4;unsignedcharab:4;}a;unsignedcharc;unsignedchard;}s;A)1byteB)2byteC)3byteD)4byte16、如下定义:uniontagAAAA{struct{charucFirst;shortusSecond;charucThird;}half_a;longlI;}number;在按1字节对齐情况下,sizeof(uniontagAAAA)的大小是:A在按4字节对齐情况下,sizeof(uniontagAAAA)的大小是:D??sizeof(a)为8byte,所以CA)4byteB)6byteC)8byteD)12byte17、0x12345678在采用BigEndian中内存的排列顺序是A,在采用LittleEndian内存中的排列顺序是C。(答案从左到右内存地址依次增长)A)12345678B)34127856C)78563412D)56781234大端系统和小端系统18、关于静态变量,下面说法“不对的”的有:AA)静态变量在堆栈中分派B)静态变量的作用域一定是局部的,例如在一个文献内或一个函数内C)静态变量可分为静态局变量和静态全局部变量D)静态变量存在于数据段中静态全局变量是位于数据段并且在程序开始运营的时候被加。程序的动态的局部变量则分派在堆栈里面。19、下面对的的有AA)在中断中,不能同步获取信号量,但是可以释放信号量B)在中断中,可以使用系统调用sleep函数来等待一会儿C)每一个进程有自己的独立地址空间,每一个线程程序也有自己的独立地址空间(共享进程空间)D)CPU占用率为60%,意思是CPU有60%的时间在运营指令40%的时间没有运营指令20、设有如下定义:int(*ptr)();则以下叙述中对的的是:CA)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针21、在Windows95环境下,定义数组:int**a[2][4];则数组a所占用的内存单元为:DA)8字节B)32字节C)64字节D)不拟定数组a中元素为8个指针,一个指针为4个字节,8*4=32字节,答案为B22、有国际标准化组织(ISO)和国际电信联盟(ITU-T)共同提出的开放系统互联(OSI)参考模型中共有B层,参考模型的最高层则为C层。A)4B)7C)应用D)会话23、关于以太网中的ARP协议,描述错误的是:AA)根据IP地址查询其相应的MAC地址B)根据MAC地址查询其相应的IP地址,便于IP通信C)通过ARP协议产生的IP和MAC地址的映射,超时会淘汰D)ARP请求中的MAC地址为广播地址24、关于TCP、UDP及其上层的应用,描述错误的是:BA)TCP协议面向连接的,UDP协议是面向无连接的B)UDP不保证数据的可靠传送,而文献的传递时规定必须无错传送的,因而所有基于文献传递的应用都不能基于UDP,如:TFTPC)telnet是基于TCP的终端应用,连续输入的多个字符也许会被封装到一个TCP包中D)在同一个节点上,基于TCP和UDP的应用端标语可以重叠改错题1、请指出下面程序的错误unsignedchari=10;charb=100;char*p;voidf(void){while(--i>=0){*(p++)=b;}}while中,比较结果永远为真,死循环定义p为野指针2、下面函数要实现打印helloworld的功能,请问程序中有何错误?void*GetMemory(){charstr[]="helloworld";returnstr;}voidTest(){char*str=NULL;str=(char*)GetMemory();printf(str);}GetMemory中返回局部的地址3、请问如下代码有什么错误?#defineMAX_SIZE1000#defineNULL0#defineTRUE1#defineFALSE0structXXX{unsignedshorta;unsignedshortb;};intdemo(structXXX*p,unsignedlongsize){structXXX*temp;temp=(structXXX*)malloc(sizeof(structXXX)*MAX_SIZE);if(NULL==temp){returnFALSE;}memcpy(temp,p,sizeof(structXXX)*size);/*其他操作*/free(temp);returnTRUE;}Demo4、如下程序用于把“blue”字符串返回,请指出其中的错误。char*GetBlue(){char*pcColor;char*pcNewColor;pcColor="blue";pcNewColor=(char*)malloc(strlen(pcColor));strcpy(pcNewColor,pcColor);returnpcNewColor;}晕,编译能通过,没找到错的地方!!!???5、请问如下程序段有什么错误?main(){unsignedlongi=0,*p,*p1;p=(unsignedlong*)malloc(10000);p1=p;for(i=0;i<9999;i++){*p1=0x100;p1++;}/*其他操作*/free(p);}p1越界访问编程题1、 对称数判断问题请编写一段程序,判断一个正整数是否为对称数(对称数即左右对称的数字,如3、22、121、1331、34543等),不允许运用C语言将数字转换为字符转的库函数。intmain(){ unsignedintnum; intnum1,num2; inti,count; boolx=false; printf("Pleaseinputanumber:\n"); scanf("%u",&num); num1=num; num2=num; count=bit(num); //num小于10 if(num<10) printf("Thenumber%uissymmetrical!\n",num); //num位数为偶数 if(count%2==0) { for(i=1;i<=count/2;i++) { if(num1/power(count-i)!=num2%power(1)) { num1=num%power(count-i); num2=num/power(i); x=false;break; } else { num1=num%power(count-i); num2=num/power(i); x=true; } } } //num位数为奇数 else { for(i=1;i<=count/2;i++) { if(num1/power(count-i)!=num2%power(1)) { num1=num%power(count-i); num2=num/power(i); x=false;break; } else { num1=num%power(count-i); num2=num/power(i); x=true; } } } if(x) { printf("Thenumber%uissymmetrical!\n",num); } else { printf("Thenumber%uisnotsymmetrical!\n",num); } return0;}最简朴的方法,判断元素数据倒置后是否和原数相等:voidsymmetrical(inta){ intsum=0; inttemp1=a; while(temp1) { inttemp=temp1%10; sum=sum*10+temp; temp1=temp1/10; } cout<<sum<<endl; if(a==sum) { cout<<"Thenumber%uissymmetrical!"<<a<<endl; } else { cout<<"Thenumber%uisnotsymmetrical!"<<a<<endl; }}2、 排队队列问题n个人,排成1队,(p1,p2,p3...pn)从第一个人开始从1报数,报数到3的人离开队列,队列里的下一个人继续从1开始报数,以此反复,当数到队列尾时,从队列头部继续报数,这样周而复始,知道队列剩一人。给一个简朴的例:报数结果如下:1,2,4,5,7,第一轮,3、6离开队列,7报数1,然后从队列头部继续报数,那么第一个人报数2,如此1,4,5,这样第二轮,位置2和位置7离开队列,并且从队列头部继续报数,第一个人报数1,由于队列尾部的7恰好报数到3.1,4,这样第三轮,5被淘汰;然后开始位置1的人报数1,最后位置1正好报数3,于是离开队列,最后剩下的人是4。这样给定7个人,原始位置4的人是剩下的人。请实现一个简朴程序,实现上述问题,程序输入n,输出那个最后剩下的人的原始位置。#include<stdio.h>#include<stdlib.h>#include<conio.h>#defineNULL0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintElemtype;/*定义数据元素类型*/typedefstructCnode{ Elemtypedata;structCnode*next;}CNode;CNode*joseph;/*定义一个全局变量*/StatusCreate_clist(CNode*clist,intn){ CNode*p,*q;inti;clist=NULL;for(i=n;i>=1;i--){ p=(CNode*)malloc(sizeof(CNode));if(p==NULL) returnOVERFLOW;/*存储分派失败*/p->data=i;p->next=clist;clist=p;if(i==n) q=p;/*用q指向链表最后一个结点*/} q->next=clist;/*把链表的最后一个结点的链域指向链表的第一个结点,构成循环链表*/ joseph=clist;/*把创建好的循环链表头指针赋给全局变量*/ returnOK;}/*end*/StatusJoseph(CNode*clist,intm,intn,intk){ inti; CNode*p,*q; if(m>n)returnERROR;/*起始位置错*/ if(!Create_clist(clist,n)) returnERROR;/*循环链表创建失败*/ p=joseph;/*p指向创建好的循环链表*/ for(i=1;i<m;i++) p=p->next;/*p指向位置的结点*/ while(p) { for(i=1;i<k-1;i++) p=p->next;/*找出第k个结点*/ q=p->next; printf("%d",q->data);/*输出应出列的结点*/ if(p->next==p) p=NULL;/*删除最后一个结点*/ else{p->next=q->next; p=p->next; free(q); } }/*while*/ clist=NULL;}/*end*/intmain(){ intm,n,k,i; CNode*clist; clist=NULL;/*初始化clist*/ printf("\n请输入围坐在圆桌周边的人数n:"); cin>>n; printf("\n请输入第一次开始报数人的位置m:"); cin>>m; printf("\n你希望报数到第几个数的人出列?"); cin>>k;; Create_clist(clist,n);/*创建一个有n个结点的循环链表clist*/ printf("\n出列的顺序如下?:\n"); Joseph(clist,m,n,k); cin.get(); return0;}/*main*/4.求2个字符串的最大公共子串LongestCommonSubsequence最长公共子序列。基于动态规划算法求解,对于所有情况都有O(n^2)的算法,对于稀疏情况尚有更优的算法。typedef
enum
{
up
=
1,
leftd,
leftup
}
Direct;
string
lcs(string&
t1,string&
t2)
{
string
res;
int
s1
=
t1.size();
int
s2
=
t2.size();
int
m
=
s1+1;
int
n
=
s2
+
1;
//
init
temp
M*N
array
for
length
int
**commons
=
new
int*[m];
int
**direction
=
new
int*[m];
for
(int
i
=
0;
i
<
m;
i++)
{
commons[i]
=
new
int[n];
direction[i]
=
new
int[n];
}
//int
commons[10][10];
//int
direction[10][10];
for
(int
i
=
0;
i
<
m;
i++)
{
commons[i][0]
=
0;
direction[i][0]
=
0;
}
for
(int
i
=
0;
i
<
n;
i++)
{
commons[0][i]
=
0;
direction[0][i]
=
0;
}
/*
for
(int
i
=0;
i<m;
i++)
{
for
(int
j
=
0;
j<n;
j++)
{
commons[i][j]=0;
direction[i][j]
=
0;
}
}*/
//
find
LCS
for
(int
i=1;
i<m;
i++)
{
for
(int
j=1;
j<n;
j++)
{
if
(t1[i-1]
==
t2[j-1])
{
commons[i][j]
=
commons[i-1][j-1]
+
1;
direction[i][j]
=
leftup;
}
else
if
(commons[i-1][j]
>=
commons[i][j-1])
{
commons[i][j]
=
commons[i-1][j];
direction[i][j]
=
up;
}
else
{
commons[i][j]
=
commons[i][j-1];
direction[i][j]
=
leftd;
}
}
}
//
output
temp
array
for
(int
i
=
0;
i<m;
i++)
{
for
(int
j
=
0;
j<n;
j++)
{
cout
<<
commons[i][j]
<<
",";
}
cout
<<
endl;
}
int
max
=
commons[s1][s2];
int
i,j;
/*
//
return
all
LCS,
maybe
duplicated
for
(int
l
=
s1-1;
l
>
0;
l--)
{
res
="";
if
(commons[l][s2]
>=
max)
{
i
=
l,
j
=
s2;
while
(commons[i][j])
{
switch
(direction[i][j])
{
case
leftup:
res
=
t1[i-1]
+
res;
i--;
j--;
break;
case
leftd:
j--;
break;
case
up:
i--;
break;
default:
break;
}
}
cout
<<
endl
<<res
<<endl;
}
}
for
(int
c
=
s2;
c
>
0;
c--)
{
res
=
"";
if
(commons[s1][c]
>=
max)
{
i
=
s1,
j
=
c;
while
(commons[i][j])
{
switch
(direction[i][j])
{
case
leftup:
res
=
t1[i-1]
+
res;
i--;
j--;
break;
case
leftd:
j--;
break;
case
up:
i--;
break;
default:
break;
}
}
cout
<<
endl
<<res
<<endl;
}
}
*/
//
return
1
of
LCS
i=
s1,
j=s2;
while
(commons[i][j])
{
switch
(direction[i][j])
{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工考勤休假管理制度
- 养殖场恒温保育舍施工方案
- 行政办公楼消防应急演练实施方案
- 智慧供热系统项目施工方案
- 循环水养殖示范项目可行性研究报告
- 屋顶分布式光伏项目可行性研究报告
- 研学旅行服务项目可行性研究报告
- 细胞培养载体制备工艺方案
- 智慧农业建设技术标准
- 职业健康管理办法
- 管理沟通(第7版)课件 第06章-教材版 会议沟通
- 2026年网信办网络舆情管理岗笔试真题(含答案)
- 2024 人身保险伤残评定及代码
- 中铝集团竞聘笔试题库及答案
- 小学三年级综合实践活动课“合理安排课间十分钟”教学设计
- 2026年高考高校招收华侨港澳台生化学试卷试题(含答案详解)
- 学堂在线 批判性思维-方法和实践 章节测试答案
- 文明丧葬规则解读
- 人教版小学五年级道德与法治下册第一单元测试题
- 胫骨骨折术后护理
- 高中家长会 家校合作决胜高考课件-高三上学期家长会
评论
0/150
提交评论