下载此文档

c语言笔试题.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
该【c语言笔试题 】是由【泰山小桥流水】上传分享,文档一共【10】页,该文档可以免费在线阅读,需要了解更多关于【c语言笔试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。c语言笔试题(答案)
c语言笔试题(答案)
1/10
c语言笔试题(答案)
笔试题
一、填空题(每个空4分,共28分)
1)structtagABC
{
charname[10];
charsex;
longsno;
floatscore[4];
}*pAbc;(
四字节对齐)
pAbc=NULL;
那么,执行pAbc+=2;以后pAbc的值为(
64)
2)以下代码,最后value的值是(
8
)
int*p1,*p2;
intvalue;
p1=(int*)0×400;
p2=(int*)0×408;
value=p2-p1;
3)以下代码,printf的结果为(
2
)
#include


#include


voidmain(void)
{
characNew[20]=“\\0\0
”;
printf(
“%d\n”,strlen(acNew));
}
4)有以下程序段,运转该程序的输出结果是(
33)
main()
{
inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
5)设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(
6)structtagAAA

2

)
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
{
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
UnsignedcharucId:1;
UnsignedcharucPara0:2;
UnsignedcharucState:6;
UnsignedcharucTail:4;
UnsignedcharucAvail;
UnsignedcharunTail2:4;
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
UnsignedlongulData;
}AAA_S
问:AAA_S在字节对齐分别为1,4状况下,占用的空间大小分别是多少?(9)(12)
二、选择题(每题2分,共34分)
如有说明int(*p)[3];以下表达正确的选项是(D)A:p是指针数组
B:(*p)[3]和*p[3]等价
C:p是指向一维数组中任何一个元素的指针
D:p是指向含有3个整型元素的一维数组的指针
2)以下关于单元测试的描述,哪些是对的?(D)
:黑盒测试针对软件的功能,不考虑功能的实现细节;
:白盒测试针对源代码的测试,从程序功能的详尽实现上找错;
:路径覆盖是黑盒测试的一种方法,编写测试用例使程序的每条语句都能走到;
:条件覆盖是百盒测试的一种方法,编写测试用例使程序的每个判断的各种状况都能到
以下可以用于任务间通讯的有(ABCD)
A:共享内存B:信号量
C:信息队列和管道D:socket调用
4)有关结构,以下哪些描述是对的?(BC)
A:为了测试方便,尽量把一个结构的功能设计得多一些
B:不一样结构间的关系不要过于复杂
C:结构中的各元素应代表同一事务的不一样侧面,而不该把描述没有关系或关系很弱的
不一样事务的元素放到同一结构中
D:结构中元素的布局与摆列序次可以随意设计
5)关于强迫种类转变,下边说法正确的选项是(ABCD)
A:当目的结构的空间大于源结构的空间时,要要点关注内存接见超出源结构范围的情况,可能越界;
当目的结构的空间小于源结构的空间时,要要点关注对目的结构赋值不可以完整覆盖源结构范围的情况,可能遗漏;
:结构体之间的强迫种类变换时,其成员字段的数据种类的差异也是要分外当心的;
:与结构体之间的强迫种类变换对比,基本数据结构的强迫种类变换更简单出现上边描述的状况,使用的时候,必定要慎之又慎;
6)正确的使用assert,软件系统不会对人为原由造成的错误进行办理。它有益于(ABCD)
:缺点提前裸露,加快定位进度;
:明确表示函数接口或算法逻辑的校验关系,增强软件代码的可读性;
:去除不用要的容错办理,简化代码办理流程,降低软件办理复杂度;
:增强编程接口之间的契约,增强软件的可保护性;
7)关于循环体的执行效率,下陈述法正确的选项是(ABCD)
:循环体内工作量最小化
:在多重循环中,应将最忙的循环放在最内层
:尽量减少循环的嵌套层次
:防备在循环体内做无谓的判断语句,将循环语句置于判读语句的代码块之中
8)设数组a[5]={10,20,30,40,50};已知指针p指向a[1];则表达式*++p的值是(A)
c语言笔试题(答案)
c语言笔试题(答案)
5/10
c语言笔试题(答案)
.20
.21
.30
.31
有以下程序段,执行后,mul的值为(B)
inta[]={1,3,5,7,9};
intmul,*data,x;
mul=1;
data=&a[1];
for(x=0;x<3;x++)mul*=*(data+x);
.15
.105
.315

10)有以下程序段,执行后的结果为(D)
intlist[]={6,7,8,9,10};
int*p;p=list;
*(p+2)=10;
printf(”%d,%dn”,*p,*(p+2));
,10
,8
,9
,10
c语言笔试题(答案)
c语言笔试题(答案)
6/10
c语言笔试题(答案)
11)以下语句不可以正确赋值的是(

A)
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
[10];s1=

”China”;
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
[]={

’C’,’h’,’i’,’n’,’a’};
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
[20]=

”China”;
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
*s=”China”;
12)C语言中,定义PI为一个符号常量,正确的选项是(

A)
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
A.#

C.#

13)有以下程序,该程序输出的结果为(B)
#defineN3
#defineMN+2
#defineNUM2*M+1
main()
{
inti;
i=NUM;
printf(”%dn”,i);
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
}

.9


14)有以下程序,程序运转后的输出结果是(D)
#include<>
#include<>
main()
{char*p=“abcde0”;
printf(“%dn”,strlen(p));}




15)为了比较两个字符串s1和s2能否相等,应当使用(C)
(s1=s2)
(s1==s2)
(strcmp(s1,s2)==0)
(strcmp(&s1,&s2)==0)
16)设有以下结构定义:
structstudent
{intnum;
charname[20];
charsex;
intage;
charaddr[30];
}stud;
若用printf(“n%s”,)接见该结构中name值的正确方法是(D)
.stud->name
.&
.stud.&name

想对一个文本文件的尾部追加写入,应当在fopen语句中使用的文件操作方式指示符号
为(D)
.w
.r
.wb
.a
三、指出以下程序的错误(每题4分,共20分)
c语言笔试题(答案)
c语言笔试题(答案)
13/10
c语言笔试题(答案)
1).以下程序用于输出"WelcomeHome"。请指出此中的错误:(4分)
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
voidTest(void)
{
charpcArray[12];
strcpy(pcArray,"WelcomeHome");
printf("%s!",pcArray);
return;
}
答案:数组越界。
2).以下程序用于把"blue"字符串返回,请指出此中的错误:(4分)
char*GetBLUE(void)
{
char*pcColor;
char*pcNewColor;
pcColor="blue";
pcNewColor=(char*)malloc(strlen(pColor));
if(NULL==pcNewColor)
{
returnNULL;
}
strcpy(pcNewColor,pcColor);
returnpcNewColor;
}
答案:申请内存空间不足,字符串结尾还有
'\0'。
3).下边程序希望输出str=helloworld
,请指出此中的错误:
(4分)
char*GetStr(char*p)
{
p="helloworld";
returnp;
}
voidmain()
{
char*str=NULL;
if(NULL!=GetStr(str))
{
printf("\r\nstr=%s",str);
}
return;
}
答案:没法返回字符串,参数使用错误。
4).请指出下边程序错误的地方:
(4分)
#defineBUFFER_SIZE256
voidTest(void)
c语言笔试题(答案)
c语言笔试题(答案)
15/10
c语言笔试题(答案)
{
char*str=NULL;
str=(char*)malloc(BUFFER_SIZE);
if(NULL==str)
{
return;
}
strcpy(str,"hello");
free(str);
if(NULL!=str)
{
strcpy(str,"world");
printf(str);
}
return;
}
答案:引用了已经开释的内存。
5).请指出下边程序的错误:(4分)
voidGetMemory(charppcChar,intiLength)
{
if(NULL==ppcChar)
{
return;
}
*ppcChar=(char*)malloc(iLength);
return;
}
voidTest(void)
{
char*szStr=NULL;
GetMemory(&szStr,100);
if(NULL!=szStr)
{
strcpy(szStr,"hello");
printf(szStr);
}
return;
}
答案:没有开释内存。
c语言笔试题(答案)
c语言笔试题(答案)
16/10
c语言笔试题(答案)
四、简答题(每题4分,共8分)
c语言笔试题(答案)
c语言笔试题(答案)
10/10
c语言笔试题(答案)
1)写宏定义MAX,求出两个数中的较大者。(4分)
答案:#definedMAX(A,B)((A)>=(B)?(A):(B))
画出同下边多叉树等价的二叉树,并作说明。(4分)
A
BCD
EF
答案以下:(采纳树的孩子兄弟法将树变换成二叉树)
A
B
C
ED
F
五、编程题(共10分)
给一个单链表,删除某一节点(要求:先找到能否有这个节点,而后再删除,要能保证程序运转正确)(10分)
参照解法以下:
include<>
#include<>
#include<>
#include<>
typedefstructlinkqueue1
{
intdata;
structlinkqueue1*next;
}linkqueue1,linklist;
c语言笔试题(答案)
c语言笔试题(答案)
18/10
c语言笔试题(答案)
linklist*creat(void)//建立链表
{
linklist*head;
intn=1,len;
linklist*p1,*p2;
cout<<"inputnumberofrecords:"<<endl;
cin>>len;
head=p1=p2=(linklist*)malloc(sizeof(linklist));
cout<<"inputrecords:"<<endl;
cin>>p1->data;
head->next=NULL;
while(n++<=len-1)
{
p1=(linklist*)malloc(sizeof(linklist));
cin>>p1->data;
p2->next=p1;
p2=p1;
p2->next=NULL;
}
return(head);
}
voidoutlink(linklist*head)
{
linklist*p;
p=head;
while(p)
{
cout<<p->data<<"";
p=p->next;
}
}
intbianli(linklist*head,intNumber)//遍历链表,返回1说明有要删除的元素,反之。
{
linklist*p;
p=head;
while(p->next!=NULL)
{
if(p->data==Number)
return1;
}
return0;
}
c语言笔试题(答案)
c语言笔试题(答案)
19/10
c语言笔试题(答案)
linklist*deletenode(linklist*head,intdeleteNumber){
linklist*Pointer,*Back;
Back=head;
Pointer=Back–>next;
while(Pointer->data!=deleteNumber)
{
Pointer++;
Back=Back->next;
}
if(Pointer->data==deleteNumber)
{
printf("删除首节点!\n");
head=Pointer->next;
free(Pointer);
break;
}
else
{
Back->next=Pointer->next;
free(Pointer);
break;
}
returnhead;
}
voidmain()
{
linklist*head;
intdel,isexit;
head=creat();//创办一个链表
outlink(head);//输出一个链表
cout<<endl<<"输入删除数据:";
cin>>del;
isexit=bianli(head,del);//遍历删除的节点能否存在
if(isexit)//假如存在则删除节点
{
head=deletenode(head,del);
outlink(head);
}
else
{
c语言笔试题(答案)
c语言笔试题(答案)
20/10
c语言笔试题(答案)
Cout<<“你删除的节点不存在”<<endl;
}
}
c语言笔试题(答案)
c语言笔试题(答案)
21/10
c语言笔试题(答案)

c语言笔试题 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息