求几道C语言题的答案3

来源:百度知道 编辑:UC知道 时间:2024/05/06 07:58:00
1.单选题: int fun(int b[][4])

{ int i,s=0;

for(i=0;j<4;j++)

{ if(i==3) s+=b[i][i-3];else s+=b[i][i]; }

return s; }

int main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,6},{1,4,7,2},{3,2,1,0}};

printf(“%d\n”,fun(a));

return(0);}

A. 12
B. 14
C.
11

D. 13

2.单选题: 在C语言中,while语句后的一对圆括号中,用以决定是否循环的表达式( )。
A. 可以是任意表达式
B. 只能是关系表达式
C. 只能是逻辑表达式
D. 只能是逻辑表达式或关系表达式

3.单选题: 分析程序结果。

int main()

{float t,s=0.0; int i=1;

t=0;

do { s= s+t; t=1.0/(i*i); i++; }

while(i<=2);

printf(“%f ”,s);

return(0); }

A. 1.5
B. 2.0
C.
1.0

D. 1.25

4.单选题: 以下程序的输出结果为( )。

int main( )

{ int i=010;

printf("%d,%d\n",++i,i++);

1.D 题目中j应该为i,可能是笔误.当i=0时,s=s+a[0][0]=0+1=1;当i=1时,s=s+a[1][1]=1+2=3;当i=2时,s=s+a[2][2]=3+7=10;当i=3时,s=s+a[3][0]=10+3=13.

2.A While(1+3)这个是成立的,里面的表达式是算术表达式,这样下面选项就不攻自破了.

3.C 运行过程是:s=s+t=0.0+0.0=0.0;t被附值为1.0/(i*i)的值,此时i==1,t就是1.0,i自加1,i的值变为2.while(i<=2)判断为真再执行一次do后语句.s=s+t=0.0+1.0=1.0;t=0.25;i自加1,值变为3.while判断为假,跳出语句.

4.C 整型变量i初始化为010,这是个八进制表示形式.转化为十进制值为8.printf输出语句各变量输出是按照从右到左的方式输出,也就是先输出i++的值,(%d是使变量的值按照十进制的形式输出)后面那个就是8,同时i的值自加为9,再输出++i的值,先自加1,变为10输出.

5.C 这里要注意的是含参数的宏定义,把参数一成不变地代进去,象该题D(a+b)*c,把a+b代替x,表达式就是a+b*a+b*c=4+5*4+5*2=34;如果你要得到(a+b)*(a+b)*c这种格式的话,在宏定义时就要改为#define D(x) (x)*(x)

6.A 这是概念性问题.找书看就知道了.

7.D x?a=b这个条件表达式就是当x为真时,值是a,假时为b 而x!=0这个关系表达式,就是当x不等于0时,为真.

8.D 指针变量p还没有指向一个确定的整型变量,不能附值.

9.B 规定的格式 就是将字符串的首地址附给p.

10.A 这题和第三题类似,就是在do后语句中,顺序变了.基本思路一样.

不错