有以下程序#include<stdio.h>main(){int a=1,b=O;prinff(“%d,”,b=a+B);prinff(“%d\n”,a=2+

题目

有以下程序

#include<stdio.h>

main( )

{int a=1,b=O;

prinff(“%d,”,b=a+B);

prinff(“%d\n”,a=2+B);

}

程序运行后的输出结果是

A.0,0

B.1,0

C.3,2

D.1,2

参考答案和解析
正确答案:D
解析:执行第一个pfinff语句时,b=a十b=1,所以输出1,执行第二个prinff语句时,8=2+b=2,所以输出结果为2。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面程序和运行运行结果是【 】。

void swap(int * a,int * b)

{ int * t;

t=a; a=b; b=t;

}

main( )

{ intx=3,y=5,* p=&x,* q=&y;

swap(p,q);

prinff("%d %d\n", *p, *q);}


正确答案:3 5
3 5 解析:本题swap( )函数的功能是实现两个数的交换,但它为无返回值型。

第2题:

有以下程序: include main( ){ int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d

有以下程序: #include <stdio. h > main( ) { int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d \n" ,x); } 程序运行后的输出结果是( )。

A.3

B.5

C.-1

D.-2


正确答案:D
解析:程序中x=-m++执行后x=-3,执行x=x+8/++n相当于执行x=-3+8/5,即n先增加1,再代入表达式运算,结果为-2。

第3题:

有以下程序

#inelude(stdio.h>

int f(int n);

main( )

{int a=3,s;

s=f(A);8=s+f(A);prinff(“%d\n”,s);

}

int f(int n)

{static ifit a=1:

n+=a++:

return n;

}

程序运行后的输出结果是

A.7

B.8

C.9

D.10


正确答案:C
解析:s=f(a)表达式第一次调用f(n)函数时。f(n)函数运行结果为n:4,a=2,即s等于4;s=g+f(a)表达式第二次涮用f(n)函数时,f(n)函数运行结果为n=5,所以得到s值为9。

第4题:

有以下程序

#include<stdio.h>

main( )

{int a[]={2,3,5,4},i;

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

switch(i%2)

{case 0:switch(a[i]%2)

{case 0:a[i]++;break;

case 1:a[i]--;

}break;

case 1:a[i]=O;

}

for(i=O;i<4;i++)prinff(“%d”,a[i]);prinff(“\n”);

}

程序运行后的输出结果是

A.3 3 4 4

B.2 0 5 0

C.3 0 4 0

D.0 3 0 4


正确答案:C
解析:第一次循环,i=0,i%2=0,a[0]%2=0,a[0]=a[0]+1=3;第二次循环,i=l,1%2=1,a[1]=0;第三次循环,i=2,a[2]%2=l,a[2]=a[2]-1=4;第四次循环,i=3,i%2=1,a[3]=0。

第5题:

有以下程序

#include<stdio.h>

void fun(int P)

{int d=2;

P=d++;printf(“%d”,P);}

main( )

{int a=1;

fun(A);prinff(“%.d\n”,A);}

程序运行后的输出结果是

A.32

B.12

C.21

D.22


正确答案:C
解析:程序运行后,首先输出的是p的值,然后再输出a的值。p=d++,得到p的值为d的初始值2;a的值不变,仍为1。

第6题:

有以下程序

include<stdio.h>

fun(int x)

{if(x/2>O)fun(x/2);

prinff(“%d.”,x);

{

main( )

{ fun(6),printf(“\n”);}

程序运行后的输出结果是【 】。


正确答案:1 3 6
1 3 6 解析:依次执行fun(6),fun(3),fun(1),当执行fun(6)时要调用fun(3),执行fun(3)时要调用fun(1),所以输出的结果为1 3 6。

第7题:

以下程序运行后的输出结果是 【 】。

include<stdio.h>

main( )

{ int x=20;

prinff(“%d”,0<x<20);

prinff(“%d\n”,0<x&&x<20);}


正确答案:10
10 解析:第一个prinff语句输出的结果是逻辑表达式(x>0I Ix<20)的值,显然为真,即为1;第二个pfinff语句输出的是逻辑表达式(x>0&&x<20)的值,该值为假,即为0。

第8题:

有以下程序:include void sum(int a[ ] ){a[0]=a[-1] +a[1];}main ( ){int a[10] = {

有以下程序:#include <stdio, h>void sum(int a[ ] ){ a[0]=a[-1] +a[1];}main ( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); prinff("% d \n",a[2]); }程序运行后的输出结果是( )。

A.6

B.7

C.5

D.8


正确答案:A
解析:本题将主函数中a[2]的地址传递给了sum函数中的形参a[],使得sum函数中的(a+0)为主函数中a[2]的地址,所以a[-1]即*(a-1)的值为主函数中a[1]的值,故函数sum中a[0]=2+4。由于此函数中的a是指向主函数中的a[2],所以主函数中的a[2]的值即为6。

第9题:

有以下程序

include<stdio.h>

typedef struct

{int num;double s;}REC;

void funl(REC x){x.nllm=23;x.s=88.5;}

main( )

{REC a={16,90.0);

funl(A);

prinff(“%d\n”,a.num);

}

程序运行后的输出结果是【 】。


正确答案:16
16 解析:主函数中,通过funl()函数将a值传递给x。但没有把形参x的值返回,此时变量a的值并没有发生变化,所以输出a.hum的值为16。