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=*p+b;
首先p是一个指针,p=&a这个是让p指向a,也就是说*p里面存的是a的
值10;a=*p+b;这句就是进行加法运算,10+1=11赋给a,所以a的最终
结果就是11
21. D
这个函数的大意就是说,假设p存放的是最小的那个数的下标,从第0
个数开始跟后面的数进行比较,如果这个数比后面的数大,那么就把
后面的那个数的下标作为最小值的下标赋给p,然后继续进行比较,直
到全部比较结束。
25. A
int k=0;
while(k=1) k++
k=1实际上就是1,也就是命题为真,所以不管怎么样进入循环体的条
件永远都成立,所以每次都可以进入循环,所以是死循环。
28.D
st(char *s)
{char *q=s; /**将字符串s的首地址赋给指针q*/
while(*q!='\0') q++; /**如果q地址的内容不是字符串结束符的话,
那就取下一个*/
return (q-s); /**返回q-s的值,这个是一个int类型,实际上就是
取这个字符串的长度*/
}
30.B
程序跑的
31.A
main()
{int i=0;
while(1)
{ printf("*"); /*打印一个* */
i++; /*此时i=1*/
if(i<3) break; /**因为i=1满足if条件,所以跳出循环体*/
}
printf("\n");
}
所以最终只打印了一个*
32. D
#include
main(int argc,char *argv[])
{
while(--argc) /**只要参数的总数自减不为0,那么进入循环体*/
printf("%s",argv[argc]); /**打印出第argc个参数*/
printf("\n");
}
因为argc=4,所以会进入循环体4次,--argc是先做判断再自减
33 A
^按位异或
<<左移
优先级,左移〉按位异或
按照这个规则去算就可以了
所以选择A
34. B
getchar()不能带参数。
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=*p+b;
首先p是一个指针,p=&a这个是让p指向a,也就是说*p里面存的是a的
值10;a=*p+b;这句就是进行加法运算,10+1=11赋给a,所以a的最终
结果就是11
21.
D
这个函数的大意就是说,假设p存放的是最小的那个数的下标,从第0
个数开始跟后面的数进行比较,如果这个数比后面的数大,那么就把
后面的那个数的下标作为最小值的下标赋给p,然后继续进行比较,直
到全部比较结束。
25.
A
int
k=0;
while(k=1)
k++
k=1实际上就是1,也就是命题为真,所以不管怎么样进入循环体的条
件永远都成立,所以每次都可以进入循环,所以是死循环。
28.D
st(char
*s)
{char
*q=s;
/**将字符串s的首地址赋给指针q*/
while(*q!='\0')
q++;
/**如果q地址的内容不是字符串结束符的话,那就取下一个*/return
(q-s);
/**返回q-s的值,这个是一个int类型,实际上就是取这个字符串的长度*/
}
30.B
程序跑的
31.A
main()
{int
i=0;
while(1)
{
printf("*");
/*打印一个*
*/
i++;
/*此时i=1*/if(i<3)
break;
/**因为i=1满足if条件,所以跳出循环体*/
}
printf("\n");
}
所以最终只打印了一个*
32.
D
#include
main(int
argc,char
*argv[])
{
while(--argc)
/**只要参数的总数自减不为0,那么进入循环体*/
printf("%s",argv[argc]);
/**打印出第argc个参数*/
printf("\n");
}
因为argc=4,所以会进入循环体4次,--argc是先做判断再自减
33
A
^按位异或
<<左移
优先级,左移〉按位异或
按照这个规则去算就可以了
所以选择A
34.
B
getchar()不能带参数。
B,D,D,C,B,D,C,D,B,A,D,A,B
B,D,D,C,B,D,C,D,C,A,C,A,D