阅读程序:main( ){int x;scanf("%d',&amp; x);if (x- -<5)printf("%d\n",x);else printf("%d\、n"

题目

阅读程序: main( ) {int x; scanf("%d',& x); if (x- -<5)printf("%d\n",x); else printf("%d\、n",x+ +); } 程序运行后,如果从键盘上输入5,则输出结果是 ( )

A.3

B.4

C.5

D.6

参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序:int sub(int n) { return(n/10+n%10); }void main(){ int x,y; scanf("%d",&x); y=sub(sub(sub(x))); printf("%d\n",y);}若运行时输入:4321<回车>,程序的输出结果是。


正确答案:10
n/10是求n的去掉个位数上的数字之外的部分,而n%10是求个位数字,所以函数的功能是将去掉个位外的数和个位相加的结果返回。第一次432+1=433,43+3=46,4+6=10.

第2题:

若执行下面程序时从键盘上输入5, main(){int x;scanf("%d",&x);if(x++>5)printf("%d\n",x);else printf("%d\n",x-); 则输出是______。

A.7

B.6

C.5

D.4


正确答案:B
根据C语言的语法,X++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。

第3题:

以下程序的输出结果是 【 17 】 。

int fun(int *x,int n)

{ if(n==0) return x[0];

else return x[0]+fun(x+1,n-1);

}

main( )

{ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3));}


正确答案:

第4题:

两次运行下列的程序,如果从键盘上分别输入3和1,则输出结果是( )。 main() { int x; scanf("%d",&x); if(x++>2)printf("%d",x); else printf("%d\n",x--); }

A.4和2

B.4和1

C.4和0

D.3和1


正确答案:A
解析: 本题考查if else语句。首先scanf函数通过键盘读入x的值。当x=3时,第一个if语句,先判断条件,取x的值3和2比较,然后将x的值加1,发现条件成立,执行下列的printf语句,输出x的值4。当x=1时,第一个if语句,先判断条件,取x的值1和2比较,然后将x的值加1(x的值变为2),发现条件不成立,执行下列的else语句,先输出x的值2,再将x的值减1。

第5题:

以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 abs(int x) { if(x>=0)return x; else return-x;} main() { int y,z,(*p)(int x)=abs; scanf(" %d" ,&y); z=( *p)(y); ——; }

A.printf("%d%d\n",&p,z)

B.Printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)


正确答案:B

第6题:

有以下程序 int fun(int n) {if(n==1)return 1; else rerurn(n+fun(n+1)); } main() {int x; scanf("%d",&x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量x输入10,程序的输出结果是

A.55

B.54

C.65

D.45


正确答案:A
解析: 本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+ 9+10=55。

第7题:

下列条件语句中,功能与其他语句不同的是

A.if(A) printf("%d\n",x); else printf("%d\n",y);

B.if(a==0) printf("%d\n",y); else printf("%d\n",x);

C.if(a!=0) printf("%d\n",x); else printf("%d\n",y);

D.if(a==0) printf("%d\n",x); else printf("%d\n",y);


正确答案:D
解析:选项A、选项B和选项C都是在s的值为0的时候输出y,a不为0的时候输出x,而选项D是在a为0的时候输出x,a不为0的时候输出y。

第8题:

以下程序的输出结果是______

nt fun(int*x,int n)

{if(n==0)

return x[0];

else return x[0]+fun(x+1,n-1);

}

main()

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

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

}


正确答案:

10

第9题:

有以下程序: int fun(int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf("%if",&x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量X输入10,程序的输出结果是( )。

A.55

B.54

C.65

D.45


正确答案:A
解析:函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。

第10题:

假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数fun()的功能是:删除数列中值为X的元素。 N中存放的是数列中元素的个数。

请改正程序中的错误,使它能够得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include<stdio.h>

define N 20

fun (int *a,int n,int x)

{int p=0,i;

a[n]=x;

while (x!=a[p])

p=p+1;

if(p==n) return -1;

else

{for (i=p;i<n;i++)

/*************found**************/

a[i+1]=a[i];

return n-1;

}

}

main()

{int w[N]={-3,0,1,5,7,99,10,15,30,90},

x,n,i;

n=10;

printf("The original data :\n");

for (i=0;i<n;i++) printf("%5d",w[i]);

printf("\nInput x (to delete ): ");

scanf("%d",&x);

printf("Delete : %d\n",x);

n=fun(w,n,x);

if (n==-1) printf("***No be found!

***\n\n");

else

{printf("The data after deleted:\n");

for (i=0;i<n;i++) printf("%5d",

w[i]);printf("\n\n");

}

}


正确答案:错误:a[i+1]=a[i]; 正确:a[i]=a[i+1];
错误:a[i+1]=a[i]; 正确:a[i]=a[i+1]; 解析:上机改错题有一个优势,就是我们可以执行该程序,根据错误的提示再一步一步实现改错的目的,我们先不看程序是什么意思,甚至不用看它在求什么。按Ctrl+F9快捷键,然后看看屏幕提示。另外,审题时我们必须要注意“不要改动main()函数,不得增行或减行,也不得更改程序结构”,这样;对我们来说,只要读懂题意,对程序执行部分:
{int p=0,i;
a[n]=x;
while (x!=a[p])
p=p+1;
if (p==n) return -1;
else
{ for (i=p;in;i++)
a[i+1]=a[i];
return n-1;
}
逐步分析,再应用平时的常识加以区分,琢磨,相信答案不攻自破,这种考题,按Ctrl+F9快捷键后,屏幕一般都不会提示错误,否则就显得太儿科了一点,所以,我们并不需要着急去找错误,而是把程序读懂。

更多相关问题