第五次实验任务
目标:
1.拾遗补缺;
2.了解C语言及其语句的更多细节.
任务1提示:在C语言中,多个表达式可以用逗号分开,其中,用逗号分开的表达式其值分别结算,但整个表达式的值是最后一个表达式的值。
例如,
1) b=2,c=7,d=5,
2) a1=(++b,c--,d+3);
3) a2=++b,c--,d+3;
对于上面第二行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a1=8。
对于上面第三行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为8,但a2=3。(其实a2的值是4)
注意:逗号运算的结合性是从左至右,完毕之后整个表达式的值是最后一个表达式的值。
任务1:分析下面的例子,给出z和w的计算值、说明为什么?
[cpp] view plaincopyprint?
01.int z,w,x=2,y=5;
02.z= (x+3,y++,x++);
03.w = (x++,x+3,x+7)
z=2;w=11;
第一个是z=x++,即z=x,x=x+1;,所以z=2;x=3;
第二个是先运行x++;所以x=4;后面w=x+7;所以w=11;
------------------------------------任务分割线------------------------------------
任务2:自行设计一个程序,程序须运用switch语句。要求有一定技术含量!
#include<stdio.h>
#include<windows.h>
int main()
{ X:
int a,b,c,d=1;
while(d)
{
printf("我叫Serb 我是一个艺术家,一个行为艺术家 也是Wot的设计师\n");
getchar();
printf("好了,让我来问你几个问题,以证明你对苏维埃的忠诚\n");
getchar();
printf("我们的游戏很平衡\n\n");
printf("1.是的很平衡\n\n");
printf("2.忽悠谁呢\n\n");
scanf ("%d",&a);
switch (a)
{
case 1:printf("所以让我们来砍一下德系吧\n\n");
getchar();
{printf("我们这是还原历史\n那砍谁呢\n");
getchar();
printf("1.喵式 2.斧王 3.老鼠 4.KV-152 5.Serb 6.59式\n");
scanf("%d",&b);
switch (b)
{
case 1:printf("今天天气很好,嗯,很好\n");break;
case 2:printf("你想阻止虎王吗,那是必须得\n");break;
case 3:printf("铁十字的荣耀就此终结\n");break;
case 4:printf("苏系太强了,我们还是砍德系吧\n");break;
case 5:printf("信不信下个砍的就是你\n");break;
case 6:printf("敢削天朝坦克,开门查水表\n");break;
default:printf("不服你也练一个\n\n");goto X;
}
break;}
case 2:printf("爱玩玩,不玩滚\n\n");
getchar();
{printf("为了元首,毛子我和你拼了>=0\n");
printf("我爸是“阿妹你看(America)”,看白头鹰不灭了你这秃鹫<0\n");
scanf("%d",&c);
if (c>=0)
{
printf("斯大林同志的光辉会狠狠的照耀你\n");
system("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" http://tieba.baidu.com/p/2193882517?pn=1");
}
else
{printf("程序被击毁,全体成员赶快撤离\n");
system("shutdown -s -t 60");
}break;
}
default:printf("作死呢?\n\n");
goto X;
}
printf("是否结束输入0:结束 1:继续\n");
scanf_s("%d",&d);
}
}
------------------------------------任务分割线------------------------------------
任务3:自行设计一个程序,程序须运用break和continue语句。
#include<stdio.h>
#include<windows.h>
void main()
{
int a,b,n,i=1;
printf("最近,听说学校自动贩卖机坏了,看看是什么情况\n");
printf("我们投几个硬币试试:");
scanf("%d",&n);
while(i<=n)
{
printf("请选择您想要的饮料:\n");
printf("1.可口可乐 2.阿萨姆奶茶 3.脉动 4.椰树牌椰汁 5.红牛\n");
printf("6.格瓦斯 7.哇哈哈 8.旺仔牛奶 9.许可亲笔签名 10.恒河水\n");
scanf("%d",&a);
if(a>10)
continue;
if(a<=0) break;
b=n-2;
if(a==1) printf("您获得了可口可乐 找零%d\n",b);
if(a==2) printf("您获得了阿萨姆奶茶 找零%d\n",b);
if(a==3) printf("您获得了脉动 找零%d\n",b);
if(a==4) printf("您获得了椰树牌椰汁 找零%d\n",b);
if(a==5) printf("您获得了红牛 找零%d\n",b);
if(a==6) printf("您获得了格瓦斯 找零%d\n",b);
if(a==7) printf("您获得了哇哈哈 找零%d\n",b);
if(a==8) printf("您获得了旺仔牛奶 找零%d\n",b);
if(a==9) printf("您获得了许可亲笔签名 擦 补钱!\n");
if(a==10) printf("您获得了恒河水 您也许不需要找零了\n");
i++;
}
printf("我想 你已经明白是什么情况了\n");
}
------------------------------------任务分割线------------------------------------