以下程序的运行结果是().  main() 

题目

以下程序的运行结果是().  main()  {  int  i=1,sum=0;  while(i<10)  sum=sum+1;i++;     printf("i=%d,sum=%d",i,sum);  }

  • A、i=10,sum=9
  • B、i=9,sum=9
  • C、i=2,sum=1
  • D、运行出现错误
参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序运行后的输出结果是______。 main ()inta.b,c;a=10; b=20;c=(a%b<)||{a/b>1);printf("%d%

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

main ()

int a.b,c;

a=10; b=20; c=(a%b<)||{a/b>1);

printf("%d %d %d n" ,a,b,c);

}


正确答案:10 20 0
10 20 0 解析:本题的关键在于求表达式(a%b1)‖a/b>1)的值。已知a=10,b=20,所以a%b=10,因此(a%b1)为“假”。而a/b=0,因此(a/b>1)亦为“假”。,D运算的两边同时为“假”,所以整个表达式的值为。“假”,即c等于0。所以,本题最终输出为:10 20 0。

第2题:

有以下程序 main() {int c=35;printf("%d\n",c&c);} 程序运行后的输出结果是

A.0

B.70

C.35

D.1


正确答案:C
解析:按位与“&”,因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

第3题:

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

main()

{ int m=011,n=11;

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

}


正确答案:
答案 10 11
解析 : ( 011 ) 8 转换成十进制其值等于 9 , 然后在输出语句中变量 m 、 n 分别自加后其值分别是 10 和 12 ,但 “ ++m ” 和 “ n++ ” 表达式的值分别为 10 和 11 。所以输出结果是 10 11 。

第4题:

若运行输入: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。

第5题:

有以下程序 include main( ) { printf("%d\n",NULL); } 程序运行后的输出结果是

有以下程序

#include <stdio.h>

main( )

{ printf("%d\n",NULL); }

程序运行后的输出结果是

A.0

B.1

C.-1

D.NULL没定义,出错


正确答案:A
解析:因为在头文件stdio.h中,已对NULL作了宏定义,其值为0。

第6题:

以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

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

include <stdio.h>

main ( )

{ char a[] ="123456789", *p;

int i =0;

p=a;

while( * p)

{ if(i%2 ==0) *p='*';

p++;i++;

}

puts(a);

}


正确答案:*2*4*6*8*
*2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

第7题:

下面程序运行输出的结果是【】。 include using namespace std; int main(){char a[]="C

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

include <iostream>

using namespace std;

int main(){

char a[]="Chinese";

a[3]='\0';

cout<<a<<endl;

return 0;

}


正确答案:Chi
Chi 解析:字符串的结束标识是'\0',输出字符串时,到第一个'\0'输出结束,而不管其后是否还有数据,因此本题输出为字符中的前3个字符。

第8题:

以下程序运行后的输出结果是【】。 include using namespace std; int main() {int i=10,

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

include<iostream>

using namespace std;

int main()

{

int i=10,i:0;

do{

j=j+i;

i--;

}while(i>2);

cout<<j<<end1;

return 0;

}


正确答案:52
52 解析:do-while语句的特点:先执行循环体,后判断条件。第1次循环执行后,j和i的值分别为10和9。判断循环条件为真,继续执行循环体,j和i分别为19和8。继续上述执行过程,直到i的值为2时,表达式“2>2”不再成立,退出循环。此时j的值为52。

第9题:

有以下程序:include main( ){ unsigned int a; int b=-1;a=b;printf(" % u", a);程序

有以下程序: #include <stdio. h> main( ) { unsigned int a; int b=-1; a=b; printf(" % u", a);程序运行后的输出结果是( )。

A.-1

B.65535

C.32767

D.-32768


正确答案:B
解析:不同类型的对象进行混合运算时,需要进行数据的类型转换,其转换方向为int→unsigned→long→double。本题程序中的变量b为int型,需要转换为unsigned型。int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以整型数-1在内存中表示为16个1,最高位的1表示符号为负,将它转换为unsigned类型,即将原符号位的1看成数值,所以得到16个数值1,即65535。

第10题:

有以下程序:include main(){ printf("%d\n",NULL);}程序运行后的输出结果是()。A.0B.1C

有以下程序: #include<stdio.h> main() { printf("%d\n",NULL);} 程序运行后的输出结果是( )。

A.0

B.1

C.-1

D.NULL没定义,出错


正确答案:A
解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

更多相关问题