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 <stdio.h>
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;