(C)一些错题

1、下列程序的输出结果是( A ) 

A .a
 B . b 

C.c

D.d


# include < stdio . h >
 point ( char * p )
{
 p +=3;
 printf ("% c \ n ",* p );
}
 void main ()
{
 char b [4]=(' a ',' b ',' c ',' d '),* p = b ;
 point ( p );
 pr intf ("% c \ n ",* p );
 }

输出为:d

             a

所以选A

2.设 float x ;,由键盘输入:12.45,能正确读入数据的输入语句是 A

A . scanf ("%5f",& x ); 

B . scanf ("%5d",& x );   错在%d
 C . scanf ("% f ", x );  错在取地址符
 D . scanf ("%5.2f",& x );  错在输入时宽度不能为小数,而宽度可以

3.struct ex

{ intx ; float y; char z ;}

 example;

则下面的叙述中不正确的是( B) 。

A. struct 结构体类型的关键字

B. example 是结构体类型名   错,是结构体变量的名字

C. x,y,z 都是结构体成员名

D.struct ex是结构体类型



4.假定x和y为double型,则表达式x=2,y=x+3/2的值是( D)。

A.3.500000

B.3

C.2.000000

D.3.000000

/两边为整型,所以3/2得1



5.以下合法的赋值语句是( B)。

A. x=y=100

B.d--;  等价于d=d-1;

C. x+y;

D. c=int(a+b);   错,应为(int)(a+b);

6.调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B)。

A.地址传递

B.单向值传递

C. 由实参传给形参,再由形参传回实参

D.传递方式由用户指定

9.面程序的功能是输出1-100之朗每位数的乘积大于每位数的和的数。

#include 

void main()
{
int n,k-l,s=0,m;

for(n=l;n<= 100;n++)
{

k=l;s=0;
_____________;
while(__________)
{
k*=m%10;
s+=m%10;
__________;
}
if(k>s) 
printf("%d",n);

答案:m=n;     m!=0;     m/=10;    

你可能感兴趣的:(算法,c语言)