有以下程序: #include <stdio.h> main() {  int A=0,B=0,C=0;  C=(A-=

题目
单选题
有以下程序: #include  main() {  int A=0,B=0,C=0;  C=(A-=A-5);  (A=B,B+=4);  printf(%d,%d,%d,A,B,C); } 程序运行后输出的结果是(  )。
A

0,4,5

B

4,4,5

C

4,4,4

D

0,0,0

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

第1题:

有以下程序:includeunion pw{int i; char ch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;prin

有以下程序: #include<stdio.h> union pw { int i; char ch[2]; }a; main() { a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是( )。

A.13

B.14

C.208

D.209


正确答案:A
解析:在本题中,首先定义了一个共用体pw,其中有两个域:整型变量i和字符数组ch。因为共用体中的域是共享内存空间的,数组元素由低到高存储:ch[0]在低字节;ch[1]在高字节;整型变量i占两个字节,高位与ch[1]共用存储空间,低位与ch[0]共用存储空间,而高位ch[1]的值为0,所以输出的成员变量i的值就是ch[0]的值13。

第2题:

include “stdio.h” void main() { int sum=0,a=11; while(a<=10) {sum=sum+a; a++; }

#include “stdio.h” void main() { int sum=0,a=11; while(a<=10) {sum=sum+a; a++; } printf(“sum=%d\n”,sum); } 上述程序段的运行结果是( )

A. sum=0

B. sum=55

C. sum=10

D. sum=11


正确答案:A

第3题:

有以下程序:includemain(){int y=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的

有以下程序: #include<stdio.h> main() { int y=9; for(;y>0;y--) f(y%3==0)printf("%d",--y); } 程序的运行结果是( )。

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题考查的重点是printf()函数和for循环的执行方式。在循环体内,若y为的倍数,则执行print(“%d”,--y)语句。所以,当y为9时,输出--y为8;当y为6时,输出--y为5;当y为3时,输出--y为2;当y为零时,for循环结束。因此,选项C是正确的。

第4题:

有以下程序 include main() { int y=9; for( ; y>0; y--) if(y%

有以下程序 #include <stdio.h> main() { int y=9; for( ; y>0; y--) if(y%3==0) printf("%d",--y); } 程序的运行结果是

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、2。所以应该选择C。

第5题:

有以下程序:include main( ) char * p[ ] = {"3697" ,"2548" }; int i,j;long num =0

有以下程序: #include <stdio.h> main( ) char * p[ ] = {"3697" ,"2548" }; int i,j; long num =0; for(i =0;i<2;i ++ ) { j =0; while(p[i][j]! ='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+ =2; } printf( "%d \n" ,num);}程序执行后的输出结果是( )。

A.35

B.37

C.39

D.3975


正确答案:C
解析:执行main函数中的for语句,当i=0,j=0时,p[i][j]=p[0)[0]='3',满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[i][j]=p[0][2]='9',满足循环条件,执行while循环体得num=39,j=4,判断while条件,不满足并退出while循环;再次执行for语句,当i=1,j=0,p[i][j]=p[1][0]=2,满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[i][j]=p[1][2]=4,if条件为假,num不进行运算,j进行加2运算j=4,再执行while语句,条件不符合退出循环。所以结果为39。

第6题:

有以下程序: include main ( ) int i;for(i =0;i <3 ;i ++ )switch (i)case 0: printf

有以下程序: #include <stdio.h> main ( ) int i; for(i =0;i <3 ;i ++ ) switch (i) case 0: printf(" % d" ,i); case 2: printf(" % d" , i); default: printf( "% d" , i);程序运行后的输出结果是( )。

A.22111

B.21021

C.122

D.12


正确答案:C
解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

第7题:

有以下程序:include main( ) {int a =0,b =0,c =0,d =0; if(a = 1) b=1;c=2; else d=3

有以下程序:#include <stdio.h>main( ) { int a =0,b =0,c =0,d =0; if(a = 1) b=1;c=2; else d=3; pfintf( "%d,%d,%d ,%d \n" ,a,b,c,d);}

A.0,1,2,0

B.0,0,0,3

C.1,1,2,0

D.编译有错


正确答案:D
解析:程序中if子句后面有2条语句b=1;c=2;需要用{}括起来,成为一条复合语句,否则else找不到与之配对的if,所以编译出错。

第8题:

以下程序运行后的输出结果是【】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*。

第9题:

有以下程序:include main(){inty=9;for( ; y>0; y--)if(y%3==0) printf("%d", --y);}

有以下程序: #include <stdio.h> main() {int y=9; for( ; y>0; y--) if(y%3==0) printf("%d", --y); } 程序的运行结果是( )。

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、20所以应该选择C。

第10题:

有以下程序 include int a=1; int f(int c) { stati

有以下程序 #include <stdio.h> int a=1; int f(int c) { static int a=2; c=c+1; return (a++) + c; } main() { int i, k=0; for(i=0;i<2;i++) { int a=3; k += f(a); k +=a; printf("%d\n",k); }

A.14

B.15

C.16

D.17


正确答案:A
解析:静态局部变量的作用域跟一般局部变量相同,都是从声明处开始到声明所在函数或语句块结束为止。但静态局部变量的生存周期却是从第1次执行到该静态局部变量的声明语句时起,直到程序结束。而—般局部变量的生存周期到离开它的作用域时就结束了。本题的f()函数中static int a=2;语句就声明了一个静态局部变量a,并初始化为2。主函数中,通过一个for循环连着调用了2次f()函数。两次调用形参c都为3,f()函数中让c增1变为4,然后输出(a++) +c,第1次调用a为2,所以输出结果为3+4=6,而第2次调用a被上次调用时的++运算符增1,所以为3,输出结果为3+4=7。所以主函数for循环结束后,k的值是13,下面一条k+=a;语句中的a是全局变量a,值为1。故最终输出结果是14,应该选择 A。

更多相关问题