Code eins
//执行下列程序后,a和b的输出值分别是?
#include <stdio.h>
int main()
{
int a=3,b=5,c;
c=(a>b)? a++ :b--;
printf("a=%d,b=%d,c=%d\n",a,b,c); //a=3,b=4,c=5 √
return 0;
}
Die Ausgabe ist:
Die Grundlagen dieser Frage, die Antwort liegt auf der Hand!
Code zwei
//执行下列程序段后,x、y、z的值分别是?
#include <stdio.h>
int main()
{
int x=10,y=20,z=30;
if(x>y) z=x; x=y; y=z;
printf("x=%d,y=%d,z=%d\n",x,y,z); //x=20,y=30,z=30 √
return 0;
}
Beachten Sie, dass nach dem Urteil der if-Anweisung keine geschweiften Klammern stehen, daher heißt es in dieser Frage, da x und y das Urteil in der if-Bedingungsanweisung nicht erfüllen, dass z=x; nicht ausgeführt wird. Dann werden die beiden Anweisungen x=y; y=z; ausgeführt.
Code drei
//以下程序输出为?
#include <stdio.h>
int main()
{
int a=5,b=0,c=0;
if(a+b+c) printf("***\n"); else printf("$$$\n");
// *** √
return 0;
}
Ausgabe:
Wenn die if-Anweisung erfüllt ist, also die Bedingung in der if-Anweisung wahr ist, dann wird die direkt auf die if-Anweisung folgende print-Anweisung direkt ausgeführt und die darauffolgende Anweisung nicht ausgeführt, also folgendes Ergebnis ausgegeben wird.
Code vier
//以下程序输出结果为?
#include <stdio.h>
int main()
{
int m=5;
if(m++>5) printf("%d\n",m); // 6
else printf("%d\n",m--);
return 0;
}
Das Ergebnis liegt auf der Hand:
nächster Test:
//测试一下:
#include <stdio.h>
int main()
{
int m=4; //这里把m改成4看一下。
if(m++>5) printf("%d\n",m);
else printf("%d\n",m--); //5。因为 m-- 是先使用后自减
printf("m=%d\n",m); //所以说这时m的值为4
return 0;
}
Eingabe: Kombiniert man den Inhalt des Kommentars und das obige Beispiel, kann man es verstehen.
Code fünf
//执行下列程序后,x的值为?
#include <stdio.h>
int main()
{
int a=2,b=5,c=7,d=8;
int x;
if(a>b) //不满足,所以直接执行下面else中的x=7
if(c>d) x=1;
else if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
printf("x=%d\n",x);
return 0;
}
Diese Teilfrage dient hauptsächlich dazu, zu verstehen, was sonst noch mit übereinstimmt.
Du kannst es nochmal testen:
//测试
//执行下列程序后,x的值为?
#include <stdio.h>
int main()
{
int a=2,b=5,c=7,d=8;
int x;
if(a<b) //这里 修改为a<b。满足,故继续执行下面的第一个if
if(c>d) x=1; //不满足,所以继续执行下面的else-if判断语句 注意喔!
else if(a<c) //满足,所以执行下面的if语句
if(b<d) x=2; //满足,所以执行x=2。而后跳出循环
else x=3;
else x=6;
else x=7;
printf("x=%d\n",x); //x=2
return 0;
}
Die Ausgabe ist:
analysiere es:
Code 6: schalten, unterbrechen,
//运行下列程序,输出结果为?
#include <stdio.h>
int main()
{
int x=1,a=0,b=0;
switch(x){
case 0: b++; // 0不满足。所以需要继续执行
case 1: a++; // 1。满足,所以执行a++,得到a的值为1
case 2: a++; b++; //上一条语句中没有break,所以这条语句必定会执行
//所以a为2,b为1
}
printf("a=%d,b=%d\n",a,b); // a=2,b=1
return 0;
}
Die Ausgabe sieht wie folgt aus:
Pause hinzufügen und erneut testen:
//测试
#include <stdio.h>
int main()
{
int x=1,a=0,b=0;
switch(x){
case 0: b++; // 0不满足。所以需要继续执行
case 1: a++; break;// 1。满足,所以执行a++,得到a的值为1
case 2: a++; b++; //上一条语句中有break,执行完之后直接跳出break;所以该条语句不执行。
//所以a为1,b为0(b仍然为原值)
}
printf("a=%d,b=%d\n",a,b); // a=1,b=0
return 0;
}
Ausgabe:
siehe Kommentare!
Wenn die obige Unterbrechung geändert wird, um fortzufahren, dann ... wird ein Fehler gemeldet! ! !
┭┮﹏┭┮ ┭┮﹏┭┮ ┭┮﹏┭┮ ┭┮﹏┭┮ ┭┮﹏┭┮