C-C++-笔试面试题大全_第1页
C-C++-笔试面试题大全_第2页
C-C++-笔试面试题大全_第3页
C-C++-笔试面试题大全_第4页
C-C++-笔试面试题大全_第5页
已阅读5页,还剩185页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络上收集的200多页C/C++笔试面试题,多数都有答案。

希望对大家有所帮助。

1.以下三条输出语句分别输出什么?[C易]

charstrl[]="abc”

〃i〃

charstr2[]=abc;

constcharstr3[]=abc;

〃i〃

constcharstr4[]=abc;

〃i〃

constchar*str5=abc;

〃i〃

constchar*str6=abc;

cout«boolalpha<<(strl==str2)«endl;//输出什么?

cout«boolalpha«(str3==str4)«endl;//输出什么?

cout«boolalpha«(str5==str6)«endl;//输出什么?

2.非C++内建型别A和B,在哪几种情况下B能隐式转化为A?[C++中等]

答:

a.classB:publicA{....}//B公有继承自A,可以是间接继承的

b.classB{operatorA();}//B实现了隐式转化为A的转化

c.classA{A(constB&);}//A实现了non-explicit的参数为B(可以有其他带默

认值的参数)构造函数

d.A&operator=(constA&);//赋值操作,虽不是正宗的隐式类型转换,但也可以勉

强算一个

3.以下代码中的两个sizeof用法有问题吗?[C易]

voidUpperCase(charstr[])//将str中的小写字母转换成大写字母

{

for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++I)

if(,a<=str[i]&&str[i]<=,z)

str[i]-=('a',A');

)

charstr[]=〃aBcDe〃;

cout<<"str字符长度为:“«sizeof(str)/sizeof(str[0])«endl;

UpperCase(str);

cout«str<<endl;

4.以下代码有什么问题?[C难]

voidchar2Hex(charc)//将字符以16进制表示

(

charch=c/OxlO+'O';if(ch>'9')ch+=('A'-'9'T);

charcl=c%0xl0+'O';if(cl>'9')cl+=('A'-'9'T);

cout«ch«cl«;

)

charstr[]="Ilove中国”;

for(size_ti=0;i<strlen(str);++I)

char2Hex(str[i]);

cout«endl;

5.以下代码有什么问题?[C++易]

structTest

(

Test(int){}

Test(){}

voidfun(){}

};

voidmain(void)

(

Testa(l);

a.fun();

Testb();

b.fun();

)

6.以下代码有什么问题?[C++易]

cout««endl;

7.以下代码能够编译通过吗,为什么?[C++易]

unsignedintconstsizel=2;

charstrl[sizel];

unsignedinttemp=0;

cin>>temp;

unsignedintconstsize2=temp;

charstr2[size2];

8.以下代码中的输出语句输出0吗,为什么?[C++易]

structCLS

(

intm_i;

CLS(intI):m_i(i){}

CLSO

(

CLS(0);

)

};

CLSobj;

cout«obj.m_i«endl;

9.C++中的空类,默认产生哪些类成员函数?[C++易]

答:

classEmpty

public:

Empty();//缺省构造函数

Empty(constEmptyfe);//拷贝构造函数

"Empty();//析构函数

Emptyfeoperator=(constEmptyft);//赋值运算符

Empty*operator&();//取址运算符

constEmpty*operator&()const;//取址运算符const

};

10.以下两条输出语句分别输出什么?[C++难]

floata=1.Of;

cout«(int)a«endl;

cout«(int&)a«endl;

cout«boolalpha<<((int)a==(int&)a)<<endl;//输出什么?

Floatb=0.Of;

cout«(int)b«endl;

cout«(int&)b<<endl;

cout<<boolalpha<<((int)b==(int&)b)<<endl;//输出什么?

11.以下反向遍历array数组的方法有什么错误?[STL易]

vectorarray;

array.push_back(1);

array.push_back(2);

array.push_back(3);

for(vector::size_typei=array.size()-1;i>=0;-I)//反向遍历array数组

(

cout«array[i]«endl;

)

12.以下代码有什么问题?[STL易]

typedefvectorIntArray;

IntArrayarray;

array.push_back(1);

array,pushback(2);

array.push_back(2);

array,pushback(3);

//删除array数组中所有的2

for(IntArray::iteratoritor=array.begin();itor!=array.end();++itor)

(

if(2==*itor)array,erase(itor);

)

13.写一个函数,完成内存之间的拷贝。[考虑问题是否全面]

答:

void*mymemcpy(void*dest,constvoid*src,size_tcount)

(

char*pdest=static_cast<char*>(dest);

constchar*psrc=static_cast<constchar*>(src);

if(pdest>psrc&&pdest<psrc+cout)能考虑到这种情况就行了

(

for(sizeti=count-l;i!=-l;-I)

pdest[i]=psrc[i];

}

else

(

for(size_ti=0;i<count;++I)

pdest[i]=psrc[i];

}

returndest;

}

intmain(void)

(

charstr[]="0123456789”;

mymemcpy(str+1,str+0,9);

cout«str<<endl;

system("Pause");

return0;

)

本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结

构、算法以及深奥的语法。考试成绩

能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能

力。

笔试时间90分钟。请考生认真答题,切勿轻视。

一、请填写BOOL,float,指针变量与“零值”比较的if语句。(10分)

提示:这里“零值”可以是0,0.0,FALSE或者“空指针”。例如int变量n与“零值”

比较的if语句为:

if(n==0)

if(n!=0)

以此类推。

请写出BOOLflag与“零值”比较的if语句:

请写出floatx与“零值”比较的if语句:

请写出char*p与“零值”比较的if语句:

二、以下为WindowsNT下的32位C++程序,请计算sizeof的值(10分)

charstr[]="Hello”;

char*p=str;

intn=10;

请计算

sizeof(str)=

sizeof(p)=

sizeof(n)=

voidFunc(charstr[100])

(

请计算

sizeof(str)=

)

void*p=malloc(100);

请计算

sizeof(p)=

三、简答题(25分)

1、头文件中的ifndef/define/endif干什么用?

2、ttinclude和ttinclude^filename,有什么区别?

3、const有什么用途?(请至少说明两种)

4、在C++程序中调用被C编译器编译后的函数,为什么要加extern"C”声明?

5、请简述以下两个for循环的优缺点

//第一个

for(i=0;i++;)

(

if(condition)

DoSomething();

else

DoOtherthing();

}

//第二个

if(condition)

{

for(i=0;i++;)

DoSomething();

}

else

for(i=0;i++;)

DoOtherthing();

优点:

缺点:

优点:

缺点:

四、有关内存的思考题(20分)

voidGetMemory(char*p)

(

p=(char*)malloc(100);

)

voidTest(void)

{

char*str=NULL;

GetMemory(str);

strcpy(str,"helloworld");

printf(str);

)

请问运行Test函数会有什么样的结果?

答:

char*GetMemory(void)

(

charp[]="helloworld”;

returnp;

)

voidTest(void)

(

char*str=NULL;

str=GetMemory();

printf(str);

请问运行Test函数会有什么样的结果?

答:

VoidGetMemory2(char**p,intnum)

*p=(char*)malloc(num);

)

voidTest(void)

(

char*str=NULL;

GetMemory(&str,100);

strcpy(str,"hello");

printf(str);

}

请问运行Test函数会有什么样的结果?

答:

voidTest(void)

|

char*str=(char*)malloc(100);

strcpy(str,"hello");

free(str);

if(str!=NULL)

(

strcpy(str,"world");

printf(str);

)

)

请问运行Test函数会有什么样的结果?

答:

五、编写strcpy函数(10分)

已知strcpy函数的原型是

char*strcpy(char*strDest,constchar*strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数strcpy

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?

六、编写类String的构造函数、析构函数和赋值函数(25分)

已知类String的原型为:

classString

public:

String(constchar*str=NULL);//普通构造函数

String(constString&other);//拷贝构造函数

~String(void);//析构函数

String&operate=(constString&other);//赋值函数

private:

char*m_data;//用于保存字符串

);

请编写String的上述4个函数。

附录C:C++/C试题的答案与评分标准

一、请填写BOOL,float,指针变量与“零值”比较的if语句。(10分)

请写出BOOLflag与“零值”比较的if语句。(3分)

标准答案:

if(flag)

if(!flag)

如下写法均属不良风格,不得分。

If(flag=TRUE)

if(flag=1)

if(flag=FALSE)

if(flag==0)

请写出floatx与“零值”比较的if语句。(4分)

标准答案示例:

constfloatEPSINON=0.00001;

if((x>=-EPSINON)&&(x<=EPSINON)

不可将浮点变量用“=="或"!=”与数字比较,应该设法转化成“>="或“<=”此类形

式。

如F是错误的写法,不得分。

If(x==0.0)

if(x!=0.0)

请写出char*p与“零值”比较的if语句。(3分)

标准答案:

if(p==NULL)

if(p!=NULL)

如下写法均属不良风格,不得分。

If(p==0)

if(p!=0)

if(p)

if(!)

二、以下为WindowsNT下的32位C++程序,请计算sizeof的值(10分)

charstr[]="Hello";

char*p=str;

intn=10;

清计算

sizeof(str)=6(2分)

sizeof(p)=4(2分)

sizeof(n)=4(2分)

voidFunc(charstr[100])

(

请计算

sizeof(str)=4(2分)

void*p=malloc(100);

请计算

sizeof(p)=4(2分)

三、简答题(25分)

1、头文件中的ifndef/define/endif干什么用?(5分)

答:防止该头文件被重复引用。

2、tiinclude和ttincludeKfilename.hw有什么区别?(5分)

Q1:请你分别划划0SI的七层网络结构图,和TCP/IP的五层结构图?

:Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?

:TCP与UDP呢?

:总得来说前面两道题目还是比较简单的!

:Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实

:现的?

Q4:请问C++的类和C里面的struct有什么区别?

:Q5:请讲一讲析构函数和虚函数的用法和作用?

:Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器

:是怎么知道的?

:Q7:一些寄存器的题目,我忘记了具体实什么题目,主要好像是寻址和内

:存管理等一些知识,不记得了。

:Q8:8086是多少尉的系统?在数据总线上是怎么实现的?还有一些硬件方

:面的知识我既不清楚了。

:一般建议参加研发面试的同学先要准备一下相关的知识,软件的主要

:是看看C和数据结构方面的,硬件模电,数电和微机原理

两道c面试题

1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学

生信息连在一起,给出一个age,在些链表

中删除学生年龄等于age的学生信息。

程序代码

#Include"stdio.h"

#Include*conio.h"

structstu{

charname[20];

charsex;

intno;

intage;

structstu*next;

}*linklist;

structstu*creatlist(intn)

(

intI;

〃h为头结点,p为前一结点,s为当前结点

structstu*h,*p,*s;

h=(structstu*)malloc(sizeof(structstu));

h->next=NULL;

P=h;

for(i=0;i<n;i++)

{

s=(structstu*)malloc(sizeof(structstu));

p->next=s;

printf("Pleaseinputtheinformationofthestudent:namesexnoage

\n");

scanf(〃%s%c%d%d”,s->name,&s->sex,&s->no,&s->age);

s->next=NULL;

P=s;

}

printf("Createsuccessful!");

return(h);

)

voiddeletelist(structstu*s,inta)

(

structstu*p;

while(s->age!=a)

{p=s;

s=s->next;

)

if(s二二NULL)

printf("Therecordisnotexist.");

else

(

p->next=s->next;

printf(^Deletesuccessful!7*);

)

}

voiddisplay(structstu*s)

(

s=s->next;

while(s!=NULL)

printf("%s%c%d%d\n”,s->name,s->sex,s->no,s->age);

s=s->next;

)

intmain()

structstu*s;

intn,age;

printf(^Pleaseinputthelengthofseqlist:\n");

scanf&n);

s=creatlist(n);

display(s);

printf("Pleaseinputtheage:\n");

scanf&age);

deletelist(s,age);

display(s);

return0;

)

2、实现一个函数,把一个字符串中的字符从小写转为大写。

程序代码

#Include"stdio.h"

#Include"conio.h"

voiduppers(char*s,char*us)

(

for(;*s!='\0';s++,us++)

(

if(*s>=,a&&*s<=,z')

*us=*s-32;

else

*us=*s;

}

*us=,\0,;

)

intmain()

(

char*s,*us;

charss[20];

printf("Pleaseinputastring:\n");

scanfss);

s=ss;

uppers(s,us);

printf(^Theresultis:\n%s\n',us);

getch();

C/C++面试题大汇总之技术中心面试题

1.进程和线程的差别。

2.测试方法

3.Heap与stack的差别。

4.Windows下的内存是如何管理的?

5.介绍.Net和.Net的安全性。

6.客户端如何访问.Net组件实现WebService?

7.C/C++编译器中虚表是如何完成的?

8.谈谈COM的线程模型。然后讨论进程内/外组件的差别。

9.谈谈IA32下的分页机制

10.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

11.在IA32中一共有多少种办法从用户态跳到内核态?

12.如果只想让程序有一个实例运行,不能运行两个。像winamp一样,只能开一

个窗口,怎样实现?

13.如何截取键盘的响应,让所有的‘a,变成'b,?

14.Apartment在COM中有什么用?为什么要引入?

15.存储过程是什么?有什么用?有什么优点?

16.Template有什么特点?什么时候用?

17.谈谈WindowsDNA结构的特点和优点。

18.网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?

C++面试题集和答案,C++面试基础题,C++笔试题和答案

1.Whatisachievedbyprefixingthe'static'keywordtoafile-levelfunction

orfile-levelvariable

declaration?

2.Describethedifferencebetweenthe“ISA"and“HASA"object

relationships.Whichisthestronger

relationshipandwhy?

3.Java&C#supportinterfacesdirectlywiththe“interface"keyword.

C++doesnothavean“interface“keyword.

HowdoyoucreateaninterfaceinC++?

Where/whenistheuseofinterfacesespeciallyhelpful?

4.Ifaprogramrequiresalargenumberofexecutioncontextswhatcanbe

donetominimisethreadscheduling

overhead?

5.Whatdoesitmeantosaythatafunctionisreentrant?

Whataresomeofthewaysofachievingre-entrancy?

http://community,/Expert/topic/4902/4902262.xml?temp=.780575

NetFetch[2006-10-2809:31AM]

C++面试题更新1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个

链表,把这些学生信息连在一起,给出一个age,在些链表中删除学生年龄等

于age的学生信息。

Sinclude“stdio.h"

#include“conio.h"

structstu(

charname[20];

charsex;

intno;

intage;

structstu*next;

}*linklist;

structstu*creatlist(intn)

inti;

〃h为头结点,p为前一结点,s为当前结点

structstu*h,*p,*s;

h=(structstu*)malloc(sizeof(structstu));

h->next-NULL;

P=h;

for(i=0;inext=s;

printf(^Pleaseinputtheinformationofthestudent:namesexnoage

\n〃);

scanf("%s%c%d%d”,s->name,&s->sex,&s->no,&s->age);

s->next=NULL;

P=s;

)

printf("Createsuccessful!");

return((h);

)

voiddeletelist(structstu*s,inta)

{

structstu*p;

while(s->age!=a)

(

P=s;

s=s->next;

)

if(s二二NULL)

printf("Therecordisnotexist.");

else

(

p->next=s->next;

printf(^Deletesuccessful!7*);

)

}

voiddisplay(structstu*s)

(

s=s->next;

while(s!=NULL)

(

printf("%s%c%d%d\n”,s->name,s->sex,s->no,s->age);

s=s->next;

)intmain()

structstu*s;

intn,age;

printfCPleaseinputthelengthofseqlist:\n");

scanf&n);

s二creatlist(n);

display(s);

printf(^Pleaseinputtheage:\n");

scanf&age);

deletelist(s,age);

display(s);

return0;

)

2、实现一个函数,把一个字符串中的字符从小写转为大写。

^include"stdio.h"

ttinclude“conio.h"

voiduppers(char*s,char*us)

(

for(;*s!=,\0';s++,us++)

(

if(*s>=,a&&*s<=,z)

*us=*s-32;

else

*us=*s;

)

*us='\0';

)

intmainO

(

char*s,*us;

charss[20];

printf(^Pleaseinputastring:\n");

scanfss);

s=ss;

uppers(s,us);

printf(^Theresultis:\n%s\n”,us);

getch();

)

mrchinaone[2006-06-2005:29PM]

呵呵,我用VC++6.0运行了一下楼上的题,

得结果如下:

val=-106

prince_15[2006-06-2005:28PM]

一道C语言的面试题

unsignedlongval;

chara=0x96;

charb=0x81;

val=b«8|a;

问val=___?

0x8196或0xffffff96o

取决于编译器把char默认为无符号还是有符号。

字节作移位或算术一般定义为unsignedchar

C++笔试题(三十)

1、10个人分成4组有几种分法?

解法1:分两步,第一步:有以下九种分组方法。第二步将每种分法的可能组和数相加。

1117C10(7)

1126C10(6)*C4(2)

1135C10(5)*C5(3)

1144C10(4)*C6(4)/P2(2)

1225C10(5)*C5(2)*C(3)2/p2(2)

1234C10(4)*C6(3)*C3(2)

1333C10(3)*C7(3)*C4(3)/P3(3)

2224C10(2)*C8(2)*C6(2)/P3(3)

2233C10(2)*C8(2)*C6(3)/P2(2)/P2(2)

解法二:[4*10-(C4l)3*10+(C42)2*10-(C43)T10]/(4*3*2)

每个人有4中状态,所以有4To种

如果某一组为空则C41中可能,在这种可能中每个人就有3种状态,所以要减去(C4

1)3~10

上述一组为空情况中多减去了有两组为空的情况,所以加(C42)2~10

上述两组为空情况中多加上了有三组为空的情况,所以减(C43)T10

因为组无分别,所以除以(4*3*2)

2、如图:

78910

61211

54312

16151413

设“1”的坐标为(0,0)“7”的坐标为(-1,-1)编写一个小程序,使程

序做到输入坐标(X,Y)之后显示出相应的数字。

#include<stdio.h>

voidmain(void)

(

intcircleX,circleY,circle,x,y,num,numX,numY,i;

scanf(〃%d%d〃,&x,&y);

〃计算属于第几圈

if(x>=l)

circleX=x;

elseif(x<=0)

circleX=l-x;

if(y>=l)

circleY=y;

elseif(y<=0)

circleY=l-y;

circle=circleX>circleY?circleX:circleY;

〃获得本圈第一个数及其坐标

num=4*(circle-1)*(circle-1)+1;

numX=circle-l;

numY=l-circle;

〃查询输入坐标对应的数

for(i=0;i<2*circle-2;i++)

(

if(numX==x&&numY==y)

(

printf(/zThenumberis:%d\n〃,num);

return;

)

numX一;

num++;

)

for(i=0;i<2*circle-l;i++)

(

if(numX==x&&numY==y)

(

printf(z,Thenumberis:%d\n”,num);

return;

)

numY++;

num++;

for(i=0;i<2*circle-l;i++)

(

if(numX=x&&numY==y)

{

printf(〃Thenumberis:%d\n,/,num);

return;

)

numX++;

num++;

}

for(i=0;i<2*circle;i++)

(

if(numX==x&&numY==y)

{

printf(,zThenumberis:%d\n〃,num);

return;

)

numY一一;

num++;

)

)

)

3、ttinclude

//exampleinputandoutput

//in123out131

//in1234567892100out12345678910021

longmex(longa,longb,longc)

{longd;

if(b=0)return0;

if(b-l)returna%c;

d=mex(a,b/2,c);

d*=d;

这里忘了;〃这里不全,我在网上没找到,

d*=mex(a,b%2,c);

d%=c;

returnd;

)

intmain(void)

{longx,y,z;

while(l)

{if(scanf(%d%d%d,&x,&y,&z)>3)return0;

if(x<0){printf(,ztoosmall\n,z);continue;}

if(y<0){printf("toosmall\n〃);continue;}

if(z<l){printf("toosmall\n,,);continue;}

if(y>z){printf("toobig\nz,);continue;}

if(z>1000000010){printf(,ztoobig\n/z);continue}

printf(%d%d%d,x,z,mex(x,y,z);

})

根据这个程序,当已知一个输入,算出输出,如:输入131则输出123输

入12345678910021输出1234567892100

C语言题库

*1

A

一个C程序的执行是从O

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

*2

C

以下叙述正确的是:

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写•条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

*3

D

以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

*4

C

C语言规定:在一个源程序中,main函数的位置。

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在最后

*5

B

一个C语言程序是由

A)一个主程序和若干子程序组成B)函数组成

0若干过程组成D)若干子程序组成

*6

A

在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为

A)char<int<longint<=float<double

B)char=int<longint<=float<double

C)char<int<longint二float=double

D)char=int=longint<=float<double

*7

C

若x,i,j和k都是int型变量,则执行下面表达式后x的值为

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

*8

B

假设所有变量均为整型,则表达式("2,b=5,b++,a+b)的值是:

A)7B)8C)6D)2

*9

A

下列四组选项中,均不是C语言关键字的选项是

A)defineB)getcC)includeD)while

IFcharscanfgo

typeprintfcasepow

*10

B

下面四个选项中,均是c语言关键字的选项是

A)autoB)switchC)signedD)if

enumtypedefunionstruct

includecontinuescanftype

*11

C

下面四个选项中,均是不合法的用户标识符的选项是。

A)AB)floatC)b-aD)—123

P_0laOgototemp

do一AintINT

*12

C

C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

A)必须为字母B)必须为下划线

0必须为字母或下划线D)可以是字母,数字和下划线中任一种字符

*13

A

卜面四个选项中,均是合法整型常量的选项是:

A)160B)—1OxcdfC)一01D)一0x48a

-OxffffOla986,0122e5

OilOxe0668Ox

*14

D

下面四个选项中,均是不合法的整型常量的选项是:

A)——OflB)-OXcdfC)一018D)一0x48eg

一Oxffff017999一068

001112,4565e203f

*15

B

下面四个选项中,均是不合法的浮点数的选项是

A)160.B)123C)-k.18D)—e3

0.122e4.2123e4.234

e3.e50.0le3

*16

b

下面四个选项中,均是合法浮点数的选项是

A)+le+lB)-.60C)123eD)—e3

5e—9.412e-41.2e~.4.8e4

03e2~18e5+2e—b15.e―0

*17

A

下面四个选项中,均是合法转义字符的选项是

A),\''B),VC),\018,D)'\\0'

'\017',W'101'

'\n'>\〃,‘xab''xlf'

*18

B

下面四个选项中,均是不合法的转义字符的选项是

A)、’B))\10111O'\oirD)'\abc'

'\ior

'\xf'\a,'\}''xlf'

*19

C

下面正确的字符常量是:

A)〃a〃B)'\\''C)'W'D)''

*20

d

下面四个选项中,均是不正确的八进制数或十六进制数的选项是。

A)016B)oabcC)010D)0al2

0x8f017-0x117ff

0180x80x16-123

*21

C

卜面四个选项中,均是正确的八进制数或十六进制数的选项是。

A)-10B)0abcO00100)0al2

0x8f—017—0x11-0x123

一OilOxcOxfl-0x8

*22

d

卜面四个选项中、均是正确的数值常量或字符常量的选项是:

A)0.0日)〃a"C)'3'D)十001

Of3.9E-2.5011Oxabcd

8.9elelOxFFOO2e2

0a50.

*23

A

下面不正确的字符串常量是。

A)'abc'B)"12'12"C)"0"D)""

*24

若有代数式3ae/bc,则不正确的C语言表达式是:

A)a/b/c*e*3B)3*a*e/b/c

C)3*a*e/b*cD)a*e/c/b*3

*25

A

已知各变量的类型说明如下:

intk,a,b;

unsignedlongw=5;

doublex=l.42;

则以下不符合C语言语法的表达式是:

A)x%(-3)B)w+=-2

C)k=(a=2,b=3,a十b)D)a+=a一=(b=4)*(a=3)

*26

A

已知各变量的类型说明如下:

inti=8,k,a,b;

unsignedlongw=5;

doublex=l.42,y=5.2;

则以下符合c语言语法的表达式是:

A)a+-a-=(b=4)*(a=3)B)a=a*3=2

C)x%(—3)D)y=float(i)

*27

D

以下不正确的叙述是

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数

值。

*28

D

以下正确的叙述是:

A)在C程序中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

*29

B

以下符合C语言语法的赋值表达式是

A)d=9+e+f=d+9B)d=9+e,f=d+9

C)d=9十e,e++,d十9D)d=9十e++=d十7

*30

A

已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'•'3';后,c2

中的值为

A)DB)68C)不确定的值D)C

*31

D

在C语言中,要求运算数必须是整型的运算符是。

A)/B)++c)!=D)%

*32

B

若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为

A)7B)8C)9D)10

*33

I)

在C语言中,int、char和short种类型数据在内存中所占用的字节数

A)由用户自己定义B)均为2个字节

0是任意的D)山所用机器的机器字长决定

*34

A

若有说明语句:charc二'\72'则变量c

A)包含1个字符B)包含2个字符

O包含3个字符D)说明不合法,c的值不确定

*35

A

若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A)2•500000B)2.750000c)3.500000D)0.000000o

*36

B

sizeof(float)是:

A)一个双精度型表达式B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

*37

C

设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为

A)intB)floatC)doubleD)不确定

*38

A

卜.面四个选项中,均是非法常量的选项是。

A)'as'B)'\\'c)-0x18D)Oxabc

-offf'\or01177'\0'

'\0xa'12,456Oxf"a"

*39

D

在C语言中,char型数据在内存中的存储形式是:

A)补码B)反码C)原码D)ASCII码

*40

B

设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三

位进行四舍五人运算的表达式是------。

A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0

*41

C

表达式18/4*sqrt(4.0)/8值的数据类型为:

A)intB)floatC)doubleD)不确定

*42

C

设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:

A)0—255B)0-32767C)0-65535D)0-2147483647

*43

D

设有说明:charw;intx;floaty;doublez;则表达式w*x+z-值的数据类型

为:

A)floatB)charC)intD)double

*44

D

若有以下定义,则能使值为3的表达式是:

intk=7,x=12;

A)x%=(k%=5)B)x%=(k—k%5)

C)x%=k-k%5D)(x%=k)—(k%=5)

*45

C

设以下变量均为int类型,则值不等于7的表达式是

A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)

C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)

*46

D

putchar函数可以向终端输出一个:

A)整型变量表达式值

B)实型变量值

C)字符串

D)字符或字符型变量值

*47

B

printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5歹人如果字符串长度大

于5,则输出按方式

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

0右对齐输出该字串,左补空格

D)输出错误信息

*48

C

printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5歹ij。如果字符串长度小

于5,则输出按方式。

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

*49

D

已有定义inta=-2;和输出语句:printf(绘81x”,a);以下正确的叙述是:

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

0%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的

D)%81x不是错误的格式符,其中数字8规定了输出字段的宽度

*50

D

若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:

A)scanfC%d%lx,&x,&y,&z);

B)scanf("%2d*&y,&z);

C)scanf("%x%*d%o”,&x,&y);

D)scanf("%x%o%6.2f",&x,&y,&z);

*51

A

已有如下定义和输入语句,若要求al,a2,cl,c2值分别为10,20,A和B,当从第一列开始输

入数据时,正确的数据输入方式是

intal,a2;charcl,c2;

scanf(〃%d%c%d%c〃,&al,&cl,&a2,&c2);

A)10A20B<CR>B)10A20B<CR>

C)10A20<CR>D)10A20B<cR>。

*52

B

已有定义intx;floaty;且执行scanf(找3d%f〃,&x,&y);语句,若从第•列开始输入数

据12345678(回车),则x的值为

A)12345B)123。C)45D)345

*53

B

已有定义intx;floaty;且执行scanfCz%3d%f,z,&x,&y);语句,若从第一列开始输入数

据12345678(回车),则y的值为:

A)无定值B)45.0000C)678.000000D)123.00000

*54

D

已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10,20,A,B,当从第一列开始输入

数据时.,正确的数据输入方式是:

intal,a2;charcl,c2;

scanf("%d%d”,&al,&a2);

scanf&cl,&c2);

A)1020AB<CR>B)1020<CR>AB<CR>

C)1020AB<CR>D)1020AB<CR>

*55

D

已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为

main()

{inta;floatf;

printf(z,\nlnputnumber:");

输入语句

printf(,z\nf=%f,a=%d\n,f,a);

)

Inputnumber:4.52<CR>

A)scanf(〃%d,%f〃,&a,&f);B)scanf(〃%f,%d〃,&f,&a)

C)scanf(〃%d%f〃,&a,&f);D)scanf&f,&a);

*56

B

根据定义和数据的输入方式,输入语句的正确形式为:

已有定义:floatfl,f2;

数据的输入方式:4.52

3.5

A)scanf(z/%f,%f,z,&fl,&f2);B)scanf(z,%f%f,z,&f1,&f2);

C)scanfC%3.2f%2.lf〃,&fl,&f);D)scanfC%3.2f%2.If",&f1,&f2);

*57

D

阅读以下程序,当输入数据的形式为25,13,1(KCR>正确的输出结果为:

main()

{intx,y,z

scanf("%d%d%d”,&x,&y,&z);

printf(〃x+y+z=%d\n,x+y+z);。

)

A)x+y+z=48B)x+y+z=35

Ox+z=35D)不确定值

*58

B

阅读下程序,若运行结果为如下形式,输入输出语句的正确内容是:

main()

{intx;floaty;printf(''enterx,y:〃)

输入语句输出语句

)

输入形式enterx,y:23.4

输出形式x+y=5.40

A)scanf(〃%d,%f〃,&x,&y);printf(,z\nx+y=%4.2f”,x+y);

B)scanf(〃%d%f〃,&x,&y);printf(,/\nx+y=%4.2f〃,x+y);

C)scanf&x,&y);printf("\nx+y=%6.If”,x+y);

D)scanf(〃%d%3.If",&x,&y);printf(〃\nx十y=%4.x+y);

*59

D

以下说法正确的是:

A)输入项可以为一实型常量,如scanf(缎f〃,3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d〃);

0当输入一个实型数据时,格式控制部分应规

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论