又有不懂的C语言题目了,没有办法要考试了,帮帮我啊,各位大侠!

来源:百度知道 编辑:UC知道 时间:2024/06/28 12:53:17
2.以下所列的C语言常量中,错误的是
A) 0xFF B) 1.2e0.5 C) 2L D) '\72'

5.下面程序段的运行结果是【5】
float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;
int i;
p=&a[1];
for(i=0;i<3;i++) y+=*(p+i);
printf("%f\n",y);
A) 12.0000 B) 28.0000
C) 20.0000 D) 18.0000

14.下面函数调用正确的是【14】
A) fopen('file.dat','r'); B) fprintf("%ld",data,fp);
C) fclose("file.dat"); D) fread(&i,sizeof(int),1,fp);

18.有如下程序: C
main()
{ int i,sum;
for(i=1;i<=3;sum++)
sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是【18】
A) 6 B) 3 C) 死循环 D) 0

20.有如下程序段:
int *p,a=10,b=1;
p=&a;a=*p+b;
执行该程序段后,a的值为【20】
A) 12 B) 11 C) 10 D) 编译出错
21.以下函数返回a所指数组中最小的值所在的

2. B
因为double型下的 1.2e0.5 ,e后面不能带有小数,只能是整数。

5. D
float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;
int i;
p=&a[1]; /**将a[1]的地址赋给P*/
for(i=0;i<3;i++) y+=*(p+i); /**从p开始将p,p+1,p+2地址的值

加起来*/
printf("%f\n",y); /*输出总合*/

理解了上述的程序段,那么可以知道
在循环中,i=0时,*p=4.0 ,y=4.0
i=1时,*p=6.0 ,y=10.0
i=2时,*p=8.0 ,y=18.0
因为是浮点形式输出,所以最终的结果是D

14.A

fopen的原型是:FILE *fopen(const char *filename,const char

*mode)
fclose的原型是:fclose(FILE *fp)
fprintf的原型是:int fprintf(FILE*stream, const

char*format[,argument]…); ]
fread的原型是:int fread(void *buf,int size,int count,FILE

*stream);
参照上述函数原型,就可以得到A是对的。其他错的。

18. C

因为在循环条件中,首先定义i=1,但是在循环体中并没有对i进行操

作,那么i就一直保持不变=1,而只要i<3那么就进入循环,所以进入

循环的条件一直都是为真,所以就一直循环,变成死循环,无法进入p

rintf那条语句了。

20. B

int *p,a=10,b=1;
p=&a;a=