C软件工程师笔试题范文

对语句(1)constint*x;和语句(2)int*constx;,描述正确的是()。

A、语句(1)的含义是指针变量x不能更改

B、语句(2)的含义是指针变量x所指向的值不能更改

C、语句(2)的含义是指针变量x不能更改

D、语句(1)和(2)是相同含义的不同定义方式


参考答案:C


函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

void fun( float *sn, int n)

{ float s=0.0, w, f=-1.0;

int i=0;

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

{ f=( )* f;

w=f/(2*i+1);

s+=w; }

( )=s;}


正确答案:
-1;*sn


下列关于指针变量赋空值的说法错误的是

A.当赋空值的时候,变量指向地址为0的存储单元

B.赋值语句可以表达为变量名=′\0′;

C.赋值语句可以表达为变量名=0;

D.一个指针变量可以被赋空值


正确答案:A


若有定义float a=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为( )。

A.两个语句都是将变量a的值赋予变量p

B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p

C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a

D.两个语句都是使p指向变量a


正确答案:C
解析: “p”是指针变量,指向一个地址;“*p”为p指针所指向地址的内容。


执行下列语句后,变量n的值是______。

int n=0;

for(int i=1;i<=3;i++)

for(int j=1;j<<=i;j++)

n++;


正确答案:6
6 解析:当i=1时,内循环中的i的值为1,n目加一次,n=1;当i=2时,内循环中的j的值为i和2,n自加两次,n=3,当i=3时,内循环中的i的值为1、2、3,n自加三次,n=6。


摘要:一、请填写BOOL,float,指针变量与“零值”比较的if语句。(10分)提示:这里“零值”可以是0,0.0,FALSE或者“空指针”。例如int变量n与“零值”比较的if语句为:if(n==0)if(n!=0)以此类推。请写出BOOLflag与“零值”比较的if语句:标准答案:if(flag)if(!flag)如下写法均属不良风格,不得分。if(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0)请写出floatx与“零值”比较的if语句:标准答案示例:constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。如下是错误的写法,不得分。if(x==0.0)if(x!=0.0)请写出char*p与“零值”比较的if语句:标准答案: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)=6sizeof(p)=4sizeof(n)=4voidFunc(charstr[100]){请计算sizeof(str)=4}void*p=malloc(100);请计算sizeof(p)=4三、简答题(25分)1、头文件中的ifndef/de


在下列叙述中,正确的一条是( )

A.语句int *pt中的*pt是指针变量名

B.语句"int *p=a;"等价于"int *p;p=&a[0];”

C.运算符*和&都是取变量地址的运算符

D.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值


正确答案:D


对下列语句正确的描述是( )。 const int *x; int *const x;

A.语句1的含义是指针变量x不能更改

B.语句2的含义是指针变量x所指向的值不能更改

C.语句2的含义是指针变量x不能更改

D.语句1和语句2含义是相同的


正确答案:C
解析:语句1的含义是指针变量x所指向的地址的值不能更改。但是指针变量x的值可以进行修改。


写出float x 与“零值”比较的if语句。


正确答案:
if(x>0.000001&&x<-0.000001)


在下面语句中,其含义为“p为指向含n个元素的一维数组的指针变量”的定义语句是 ( )

A.int p [n]

B.int * p( );

C.int * p(n);

D.int( * p)[n]


正确答案:D


下列关于指针变量赋空值的说法错误的是A.当赋空值的时候,变量指向地址为0的存储单元 B.赋值语句可以表达为变量名=’\0’;C.赋值语句可以表达为变量名=0; D.一个指针变量可以被赋空值


正确答案:A
本题考查的是对指针变量赋空值。在C语言中用NULL给指针赋空值,如p=NULL。当指针值为NULL时,指针不指向任何有效数据。由于NULL与整数0相对应,所以有下面三条语句等价:
p=NULL;p=0;p=’\0’。


相关考题:

考题 已知整型变量i,j的值为1,2;布尔型变量m,n的值为true,false,那么表达式NOT(ij)AND false 0R(m=n)的值为()A、0B、1C、trueD、false正确答案:D

考题 假定已有变量定义语句:intm=3,n=2;,那么(float)(m/n)表达式的值是1.5。正确答案:错误

考题 写出float x 与“零值”比较的if语句。正确答案: if(x0.000001x-0.000001)

考题 单选题已知整型变量i,j的值为1,2;布尔型变量m,n的值为true,false,那么表达式NOT(ij)AND false 0R(m=n)的值为()A0B1CtrueDfalse正确答案: C解析: 暂无解析

考题 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:( ) 正确答案:B

考题 在下列叙述中,错误的一条是______。A.有下列语句组,则c=(*p)(a,b)与c=max(a,b)等价 int max();int(*p)();int c;p=max;B.执行下列语句后,则*p的值为1 int a=1,*p;*p=a;C.已知指针变量p1指向数组元素a[1],p2指向数组元素a[4],则p2-p1=4-1=3D.2个指针变量指向同一数组时可以进行比较,其值为1或0 正确答案:B

考题 单选题设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于(  )。Ap= ;Bp='0';Cp=0;Dp='';正确答案: A解析: NULL的ASCII码值为0,p=NULL等价于p='\0';或p=0。答案选择C选项。

考题 设变量p是指针变量,语句p=NULL;,是给指针变量赋NULL值,它等价于()A、p="";B、p=’0’;C、p=0;D、p=’’;正确答案:C

考题 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。 正确答案:BOOL : if ( !a ) or if(a)int : if ( a == 0)float : const EXPRESSION EXP = 0.000001if ( a EXP a -EXP)pointer : if ( a != NULL) or if(a == NULL)

考题 若已定义inta=5;下面对(1)int*p=a;(2)*p=a;两个语句的正确解释是()A、语句(1)和(2)中的*P含义相同,都表示给指针变量p赋值B、语句(1)和语句(2)的执行结果,都是把变量a的地址值赋给指针变量pC、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋给指针变量pD、语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋于*p正确答案:D