收藏 分销(赏)

第4章选择结构程序设计.doc

上传人:s4****5z 文档编号:8948664 上传时间:2025-03-09 格式:DOC 页数:6 大小:65.50KB 下载积分:10 金币
下载 相关 举报
第4章选择结构程序设计.doc_第1页
第1页 / 共6页
第4章选择结构程序设计.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
第4章 选择结构程序设计 通过本章实验作业应达目标 1.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构; 本章必须上交作业 程序4_2.c、4_3.c、4_4.c、4_5.c上传至http://121.251.227.27:8080/c 实验一 大小写转换 【实验目的】 熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。 【实验内容】 下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以4_1.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。 #include<stdio.h> void main() {char ch; ch=getchar(); if('a'<=ch<='z') ch-=32; if('A'<=ch<='Z') ch+=32; putchar(ch);putchar('\n'); } 实验二 算术运算 【实验目的】 学习if~else、switch语句的使用。 【实验内容】 键盘输入一个算术的运算式子,输出运算结果。这里我们规定可以接收五个算术运算的符号:+、-、*、/、^(乘方)。输入这五个符号以外的运算符号则提醒出错。程序以4_2.c命名并上交。 下图是输入输出的示意图: 输入一个加法的算术式: 输入一个除法的算术式: 输入一个乘方的算术式: 求3的平方根: 【实验提示】 本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。 C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含<math.h>。 【思考】 输入的表达式实质是按多个不同类型的数据来获取数据的。程序中需要定义多个变量来接收表达式中包含的数据与运算符,并设计相应的输入/输出函数实现。 实验三 金额计算 【实验目的】 学习分析与解决实际问题的能力,综合嵌套使用if~else或switch语句。 【实验内容】 某服装店经营套服。以50套为限,若购买数量不少于50套,每套80元;不足50套时每套90元;只买上衣每件60元;只买裤子每条45元。编写程序实现:读入所买上衣c和裤子t的数量,计算应付款总量。程序以4_3.c命名并上交。 实验四 成绩转换 【实验目的】 使用if~else、switch语句的嵌套完成程序。 【实验内容】 按下表规则,将输入的五分制成绩转换成百分制输出。程序以4_4.c命名本程序并上交。 输入 五分制字符 5+ 5 5- 4+ 4 4- 3 2 1 输出 百分制数值 100 90 85 80 75 70 60 <60 <60 要有输入错误提示。 【实验提示】 本程序需要从键盘接收两个字符,先判断第一个字符,再判断第二个字符以确定其对应的百分制数。例如:输入4+,第一个字符等于'4',则应再判断第二个字符,如果是'+'则输出80,如果是回车符则输出75,如果是'-'则输出70。 【思考】 对于 5+、4-这类输入的数据,程序中应采用什么数据类型与数据结构接收保存? 实验五 判断天数 【实验目的】 熟练使用switch语句,并设计精巧程序。 【实验内容】 按yyyy-mm-dd格式输入一个日期,如2004-10-31,判断这是这一年的第几天。要有输入的判断,一旦输入错误日期则通知输入出错,重新输入。程序以4_5.c命名并上交。 【实验提示】 以2004-10-31为例,先把前九个月的天数加起来,然后再加上31天。需要考虑的是,当年是闰年,2月为29天,否则2月为28天。也可以2月固定按28天计算,当年是闰年且月份大于2时,多加一天。 问题与思考 1.若执行下面的程序时从键盘上输入5,则输出结果是______ main() {int x; scanf("%d",&x); if(x++>5)printf("%d\n",x); else printf("%d\n",x--); } A) 7 B) 6 C) 5 D) 4 2.已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为______ int a=3,b=4,m=0,n=0,c=3,d=4; (m=a<b)||(n=c<d); A) m=1 n=1 B) m=1 n=0 C) m=0 n=0 D) m=0 n=1 3.表达式(!7<5+1>0+4<5)的值是______ A) 3 B) 2 C) 1 D) 0 4.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值, 则下列能正确表示1/(xyz)的表达式是______ A) 1/x*y*z B)1/(x*y*z) C) 1/x/y/(float)z D) 1.0/x/y/z 5.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为______ char a='a';a--; printf("%d,%c\n",a+'2'-'0',a+'3'-'0'); A) b,c B) a--运算不合法,故有语法错 C) 98,c D) 格式描述和输出项不匹配,输出无定值 6.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与_____配对。 A) 缩排位置相同的if B) 其之前最近的if C) 其之后最近的if D) 同一行上的if 7.若给定条件表达式(M)?(a++): (a--),则其中表达式M______ A) 和(M==0)等价 B) 和(M==1)等价 C) 和(M!=0)等价 D) 和(M!=1)等价 8.若有说明语句char s='\092'; 则该语句______ A) 使s的值包含1个字符 B) 说明不合法,s的值不确定 C) 使s的值包含4个字符 D) 使s的值包含3个字符 9.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为______ A) 4 B) 3 C) 2 D) 1 10.有如下的变量定义: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是______ A) a+=a-=(b=4)*(a=3) B) x%(-3) C)a=a*3=2 D) y=float(i) 11.有以下变量定义: int k=7,x=12; 则下列值为3的表达式是______ A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5) 12.设 int a=3 ; 则表达式 a<1&& - - a>1 的运算结果和a的值分别是______ A) 0和2 B) 0和3 C) 1和2 D) 1和3 13.假定所有变量均已正确定义,下列程序段运行后x的值是______ ok1=1;ok2=2;ok3=3;x=15; if(!ok1) x--; else if(ok2) if(ok3) x=3; else x=4; A) 14 B) 4 C) 15 D) 3 14.下面程序的输出结果是______ void main() {int x=1,a=0,b=0; switch(x) { case 0 :b++; case 1 :a++; case 2 :a++;b++; } printf(“a=%d,b=%d\n”,a,b); } A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 15. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_____ void main( ) { int x; scanf("%d",&x); if(x++>5)printf("%d",x); else printf("%d\n",x--); } A) 7和5 B) 6和3 C) 7和4 D) 6和4 16.有定义:int a=1,b=3,c=5,d=4,x; 则执行完下面一段程序后x的值是 ______。 if(a<b) if(c<d) x=1; else if(a<c) if( b<d) x=2; else x=3; else x=6; else x=7; A) 1 B) 2 C) 3 D) 6 17.能正确表示a和b同时为正或同时为负的表达式是________。 A) (a>=0||b>=0)&&(a<0||b<0) B) (a>=0&&b>=0)&&(a<0&&b<0) C) (a+b>0)&&(a+b<=0) D) a*b>0 18.当a=3,b=2,c=1时,表达式f=a>b>c的值是 ______ 。 19.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是________。 A) c=b=a B) (a=c)||(b=c) C) (a=c)&&(b=c) D) a=c=b 20.下面程序程序后输出结果是_____。 void main() {int a=3,b=2,c=1,t; if(a>b>c) t=1; else if(a<b<c) t=0; else t=-1; printf("%d\n",t); } A) 1 B) 0 C) -1 D) 不确定的数 21. 以下程序运行后的输出结果是________。 void main() {int a=3,b=4,c=5,t=99; if(a<b<c) t=a;a=c;c=t; if(a>c,c>b) t=b;b=a;a=t; printf("%d %d %d\n",a,b,c); } 22. 以下程序运行后的输出结果是__________。 void main() {int x=1,y=0,a=0,b=0; switch(x) {case 1:switch(y) {case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } printf("%d %d\n",a,b); } 23.有以下程序 void main( ) { int i=1,j=1,k=2; if((j++||k++)&&i++) printf( "%d,%d,%d\n",i,j,k ); } 执行后输出结果是_____。 A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3 24.以下程序执行后输出结果是_____。 void main( ) { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else printf("%d",++d+1); printf("%d\n",d); } A) 2 B) 3 C) 43 D) 44 25.以下程序执行后输的结果是________ 。 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf("%d\n",x); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服