计算机二级

若输入000051,下列程序的运行结果为______。 main(){ unsigned int a; scanf("%o",&a); printf("%o\n",getbits(a));}getbits(value)unsigned int value;{ int i,j,m,n; unsigned int z,a,q; z=0; for(i=1;i<=15;i+=2) { q=1; for(j=1;j<=(16-i-1)/2;j++) q=q*2; a=value>>(16-i); a=a<<15;

题目

若输入000051,下列程序的运行结果为______。 main(){ unsigned int a; scanf("%o",&a); printf("%o\n",getbits(a));}getbits(value)unsigned int value;{ int i,j,m,n; unsigned int z,a,q; z=0; for(i=1;i<=15;i+=2) { q=1; for(j=1;j<=(16-i-1)/2;j++) q=q*2; a=value>>(16-i); a=a<<15; a=a>>15; z=z+a*q; } return(z);}

A.6

B.51

C.51

D.10

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【填空题】若从键盘输入58,则以下程序输出的结果是 () 。 main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); }


585858 本题考查对if语句的掌握,当输入58以后,程序中的3个if语句都成立,所以分别输出58。

第2题:

12、若从键盘输入58,则以下程序输出的结果是__ main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); }


585858 在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

第3题:

已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是________。 main() { char a,b; a=getchar();scanf("%d",&b); b=b*2; printf("%cn",b); }


1B 1B 解析:从键盘输入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在输出时均需要把a,b转化为字符型,因此输出为1B。

第4题:

【填空题】以下程序的输出结果为()。 main() {short i; i=-4; printf("ni:dec=%d, oct=%o, hex=%x, unsigned=%un",i,i,i,i); }


A

第5题:

若输入ab,程序运行结果为【 】 main() { static char a[3]; scanf("%s",a); printf("%c,%c",a[1],a[2]); }

A.b

B.a,

C.b,

D.程序出错


第一空: No answer. Open

第6题:

下列程序运行时输入1234567,则输出结果是______。includemain(){ int a=1,b;scanf("

下列程序运行时输入1234567<CR>,则输出结果是______。

include<stdio.h>

main()

{ int a=1,b;

scanf("%2d%2d",&a,&b);printf("%d %d\n", a,b);

}


正确答案:

本题考查的重点是scanf函数的调用。scanf(“格式化字符串>”,地址表>),格式化字符串后可以加上场宽,本题中两个变量的场宽都为2,所以输入1234567CR>后,变量a的值为12。变址b的值为34,从而输出为12 34。

第7题:

若运行时给变量x输入12,则以下程序的运行结果是 【 】 ;

main(){

int x,y;

scanf(""%d"",&x);

y=x>12?x+10:x-12;

printf(""%d\n"",y);

}


正确答案:×
0 解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。

第8题:

若输入ab,程序运行结果为______。 main() { static char a[2]; scanf("%s",a); printf("%c,%c",a[1],a[2]); }

A.a,b

B.a,

C.b,

D.程序出错


正确答案:C
解析:在C语言中,数组下标是从0开始的,因此,上面的程序a[1]的值为b,a[2]的下标超出数组范围,a[2]无值。

第9题:

若运行输入:3<回车>,则以下程序的输出结果是( )。 main() {int a,b; scanf("%d",&A); b=(a>=0

若运行输入:3<回车>,则以下程序的输出结果是( )。 main() {int a,b; scanf("%d",&A); b=(a>=0)?a:-a; printf("b=%d",B); }


正确答案:b=3
b=3 解析:条件表达式的基本格式为:“表达式1?表达式2:表达式3”;其功能是:表达式1的值若非0,则计算表达式2的值,且为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。因为a=3,则a>=0成立,所以b=a=3。