C语言题目 1.下面程序的运行结果是( )

作者&投稿:巩秀 (若有异议请与网页底部的电邮联系)
C语言题目:分析下面程序执行后的结果~

1、答案:

a,b,c
97,98,99
2、原因,第一次输出的是%c控制符,输出字符,第二次输出的是%d,是整数类型。因此不一样

C语言中 -1<=i<1 这样的语句是无法达到你要的效果的,对于这个句子,C语言是这样处理的:
(-1<=i)<1 (1)
这样的话,-1<=i为真,所以这个表达式的值为1,也就是说(1)这个表达式等价于(1<1)然后这个式子为假,所以不会进入该循环,所以i没有发生变化,也不会输出i,所以答案为-1


如果for循环写成这样:for (a=1,i=-1;-1<=i&&i<1;i++) 那么题主你的答案就对了。

其中有不少小的错误,作为程序它是不能运行的。

#include<stdio.h>
int main( )
{ int y=2,a=1;
while(y--!=-1)
{ do{a *=y; a++;} while(y--); }
printf("%d,%d",a,y);
return 0;
}

运行后的输出是:

1,-2

分析运行过程:

y=2,a=1;

判断,为真,y变为1

进入do循环:

a=1*1=1; a++变为2

内循环判断y--为真,y变为0;

再次内循环:

a=2*0=0; a++变为1

内循环判断y--为假,y变为-1;

外循环判断为假,y变为-2;

所以,最后的输出是1,-2



C语言中 -1<=i<1 这样的语句是无法达到你要的效果的,对于这个句子,C语言是这样处理的: (-1<=i)<1 (1) 这样的话,-1<=i为真,所以这个表达式的值为1,也就是说(1)这个表达式等价于(1<1)然后这个式子为假,所以不会进入该循环,所以i没有发生变化,也不会输出i,所以答案为-1 如果for循环写成这样:for (a=1,i=-1;-1<=i&&i<1;i++) 那么题主你的答案就对了。

#include<stdio.h>
int main(void)

     int y=2,a=1;
     while(y--!=-1)
   { 
    do{a*=y; a++;} 
    while(y--); 
    }

printf("%d,%d",a,y);
 system("pause");
return 0;
}




运行结果是:1,-2


霞浦县19244588649: C语言:下面程序的运行结果是() -
中茅稳可: 因为i=3;进入switch(i)后,执行a+=3;后a的值是3;因为没有break语句,它并没退出switch()语句,所以又执行到a+=2.a值变成了5.接着,执行break语句,退出switch(),执行printf().所以选B

霞浦县19244588649: C语言,下面程序运行的结果是 -
中茅稳可: a<b<c你理解错了,在c语言里不能这样用的,只能写成a<b && b<c,a<b<c在c语言里的真正意思是(a<b)<c,而(a<b)给出的结果是真(1)或假(0),所以其实a<b<c就是1或者0跟c比较.第一次比较,a<b得1(也就是说a<b是真),1比c(=2)小,执行程序,使得a=2,b=1,c=1 第二次比较,a<b得0(也就是说a<b是假),0比c(=1)小,执行程序,使得a=1,b=2,c=0 第三次比较,a<b得1(也就是说a<b是真),1比c(=0)大,不执行程序,所以最后的结果还是a=1,b=2,c=0

霞浦县19244588649: C语言.第六章作业第六章作业一选择题.1、下面程序段的运行结果是 . int n=0;while (n++A. 2 B. 3 C. 4 D. 有语法错误2、对for(表达式1; ;表达式3)可... -
中茅稳可:[答案] 一 :1B 2C 3C 4C 5C 二 :1T 2F 3F 4F 5F 三 :1、25 2真 四 :1 【1】 【2】 2 【1】i解析看不懂?免费查看同类题视频解析查看解答

霞浦县19244588649: 在C语言中,下面程序的执行结果是 ( ) -
中茅稳可: a+=SUM(i+j)/SUM(i+j); 相当于 a=a+SUM(i+j)/SUM(i+j);=a+i+j*i+j+2/i+j*i+j+2=2+1+1*1+1+2/1+1*1+1+2=2+1+1+1+2+1+1+2=11

霞浦县19244588649: C语言 1.阅读下面的程序,写出其执行结果. -
中茅稳可: 同学,下次写程序注意一下,你看一下正确的程序和你给的程序的差别吧.一下正确程序来说:a<b为真,所以,把b的值给a,即是a=14,b不变;a<c明显为假,所以该if语句不执行.那么打印出来的结果就是:a=14,b=14,c=3.#include<stdio.h> main() { int a,b,c; a=10,b=14,c=3; if(a<b) a=b; if(a<c) a=c; printf("a=%d,b=%d,c=%d\n",a,b,c); }

霞浦县19244588649: C语言分析下面程序的运行结果 -
中茅稳可: 1、输出为:1 if条件语句中,当()中的值为零时,条件为假,非零时条件为真;由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;最终输出为12、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,...

霞浦县19244588649: c语言中,下面程序运行的结果是什么? -
中茅稳可: 输入2时,输出66 输入3时,输出77 输入4时,输出8 输入5时,输出88 输入6时,输出9 输入其他数字或字母时,无输出,键入时,结束程序./*2345666778889 Press any key to continue*/

霞浦县19244588649: c语言题目下面程序的运行结果是 -
中茅稳可: #include main() {int a=11,b=10,c=0; a/=b+(b&&c); printf("%d\n ",a);} 我运行过了,是1选b

霞浦县19244588649: C语言问题,求详细步骤讲解下面程序的运行结果是____ - main() { char s1[20]="ABCDEF"; int i=0; while(s1[i++]!='\0') printf("%c", s1[i++]); } A) ABCDEF ... -
中茅稳可:[答案] 当然了,你要先知道while是先判断然后在确定是否执行的哈,首先看s1[i++]!='\0'是真,那么这时i=1,printf("%c",s1[i++]),其实就是s1[1],然后i自加1 ,这时i=2; ,再while判断 i=3 ,这时打印的是s1[3],以此类推就是了哈

霞浦县19244588649: c语言.下面程序运行的结果是 - -----------.求过程 -
中茅稳可: 感觉你程序写错了.void abc(char *P) {while(*P) {*p+=2,*p++;}//*p=*p+2,将所有字符ascii码值+2;*p++,单目运算符结合性从右向左,先算p++//即指针向高位移动一位,然后再算*p(算完没存,没有意义,所以这里可以将*p++前的*去掉) } main() {char str[5]=”abcd”; abe(str); //应该是abc(str);你函数名写错了 printf(”%S”,str); } 这样程序输出结果应该就是cdef了.另外注意所有标点请用英文半角

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网