下面程序段的输出结果是()。int i=32770;printf("%d\n",i);A.32769B.32767C.-32766D.输出不确定数

题目

下面程序段的输出结果是( )。 int i=32770; printf("%d\n", i);

A.32769

B.32767

C.-32766

D.输出不确定数

参考答案和解析
正确答案:C
解析:在Turbo C 20环境中,int数据类型在内存中只占两个字节,其表示形式为二进制补码形式,所以范围是:-32768~ 32767,即10000000000000002~01111111111111112(首位为符号位)。而32770转换为二进制为10000000000000102其符号位为1故输出时为一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为01111111 111111012+1=0111111111111102,即十进制的32766。综上所述,选项C正确。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

4、以下程序段的输出结果是: int i; for(i=‘A’; i<‘I’;i++,i++) printf(“%c”,i+32); printf(“\n”);

A.aceg

B.abcdefghi

C.acegi

D.编译不通过,无输出


aceg

第2题:

若所用变量均已正确定义,则执行下面程序段后的输出结果是_____. for(i=0 ; i<2 ; i++) printf("YES"); printf("n");


A

第3题:

下面程序段的输出结果是() int main() { int i; for(i=1;i<6;i++) { if(i%2!=0) { printf("#"); continue; } printf("*"); } printf("n"); }

A.#*#*#

B.#####

C.*****

D.*#*#*


6 5 4

第4题:

有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

有以下程序,程序执行后,输出结果是【 】

include<stdio.h>

void fun(int*A)

{ a[0]=a[1];}

main()

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

for(i=2;i>1=0;i-) fun(&a[i]);

for(i=0;i<10;i++) printf("%d,a[i]);

printf("\n");

}


正确答案:7777654321
7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

第5题:

若i是int型变量,且有下面的程序段: for(i=4;i<6;i++) printf((i%2)?("**%d\n"):("##%d\n"),i); 上面程序段的输出结果是______。

A.**4 ##5

B.##4 **5

C.**4 **5

D.##4 ##5


正确答案:B
解析:函数printf中的参数是三目条件表达式,循环控制变量i值为4时, i%2为0,格式控制字符串为"##%d\n",输出为##4;循环控制变量i值为5时,i%2为1,格式控制字符串为"**%d\n",输出为*5,两次输出不在同一行。

第6题:

下面程序的输出结果是_______。includemain(){char*p[]={"DOOL","OPK","H","SP"}; int

下面程序的输出结果是_______。 #include<stdio.h> main() { char*p[]={"DOOL","OPK","H","SP"}; int i; for (i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

A.SO

B.SP

C.SPOPK

D.SHOB


正确答案:A
解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“0”,所以本题的输出为SO。

第7题:

下面程序的输出结果是______。includemain(){char*p[]={"BOOL","OPK","H","SP"}; int i

下面程序的输出结果是______。#include<stdio.h>main(){ char*p[]={"BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n");}

A.SO

B.SP

C.SPOPK

D.SHOB


正确答案:A
解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“0”,所以本题的输出为SO。

第8题:

下面程序的输出结果是() include main( ) { int i,a[ ]={2,4,6,8}; int * p=a;

下面程序的输出结果是 ( ) # include<stdio.h> main( ) { int i,a[ ]={2,4,6,8}; int * p=a; for(i=0;i<4;i+ +)a[i]=* p+ +; printf(*%d\n",a[2]); }

A.6

B.8

C.4

D.2


正确答案:A

第9题:

下面程序的输出结果是______。 include main() {char *p[]="BOOL","OPK","H","SP"};int

下面程序的输出结果是______。 #include<stdio.h> main() { char *p[]="BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

A.SO

B.SP

C.SPOPK

D.SHOB


正确答案:A
解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。