顺序结构选择结构和循环结构的程序设计典型例题分析与解答

合集下载

c语言顺序结构程序例题

c语言顺序结构程序例题

C语言顺序结构程序例题一、介绍顺序结构是C语言中最简单的程序结构,也是最基本的程序设计思路。

它按照代码的编写顺序,依次执行每一条语句,没有条件、分支或循环的判断。

本文将通过一些例题来帮助读者理解和掌握C语言顺序结构的使用方法。

二、示例代码1.题目一描述:编写一个程序,实现两个整数相加,并输出结果。

代码:#i nc lu de<s td io.h>i n tm ai n(){i n tn um1,nu m2,s um;p r in tf("请输入两个整数:\n");s c an f("%d%d",&num1,&nu m2);s u m=nu m1+n um2;p r in tf("它们的和为:%d\n",su m);r e tu rn0;}2.题目二描述:编写一个程序,计算圆的面积和周长。

代码:#i nc lu de<s td io.h>#d ef in eP I3.14159i n tm ai n(){f l oa tr ad iu s,ar ea,p er im et er;p r in tf("请输入圆的半径:\n");s c an f("%f",&ra diu s);a r ea=P I*ra di us*ra d iu s;p e ri me te r=2*PI*ra d iu s;p r in tf("圆的面积为:%.2f\n",ar ea);p r in tf("圆的周长为:%.2f\n",pe rim e te r); r e tu rn0;}3.题目三描述:编写一个程序,将华氏温度转换为摄氏温度。

代码:#i nc lu de<s td io.h>i n tm ai n(){f l oa tf ah re nh ei t,c e ls iu s;p r in tf("请输入华氏温度:\n");s c an f("%f",&fa hre n he it);c e ls iu s=(f ah re nhe i t-32)*5/9;p r in tf("摄氏温度为:%.2f\n",ce lsi u s);r e tu rn0;}三、运行结果1.题目一请输入两个整数:57它们的和为:122.题目二请输入圆的半径:2.5圆的面积为:19.63圆的周长为:15.713.题目三请输入华氏温度:75.5摄氏温度为:24.17四、总结通过以上例题可以看出,在C语言中,顺序结构是最简单、最基础的程序结构。

01-顺序结构程序设计课后练习及题解

01-顺序结构程序设计课后练习及题解

顺序结构程序设计练习1、编写程序,在屏幕上输出如下字符串2、编写程序,任意输入矩形的长和宽,求出矩形的周长和面积;若矩形长是420,宽是297,则结果显示如下:3、编写程序:任意输入一个整型数,在屏幕上显示它对应的的八进制数、十六进制值以及所表示的字符。

若整型变量x 的值是43,输出结果如下:4、编写程序:任意输入圆半径r,圆柱高h,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。

若输入圆半径r=1.5,圆柱高h=3,程序结果如下:5、编写程序,将输入的5 个字符译成密码,译码规律是:用原来字母后面的第4 个字母代替原来的字母,字母"A"后面第 4 个字母是"E"."E"代替"A"。

例如, 要将"China"译成密码,因此,"China"应译为"Glmre".程序设计参考(注:答案不唯一,可以有不同设计方法)1、#include <stdio.h>int main( ){printf("hello,world!\nhello Kitty!\n");return 0;}2、#include<stdio.h>int main(){int a,b;long l,s;printf("请输入边长a b\n");scanf("%d,%d",&a,&b);l=2*(a+b);s=a*b;printf("周长是:%ld,面积是:%ld\n",l,s);return 0;}3、#include<stdio.h>int main( ){int x=43;printf("x 的八进制值是:%o\n", x);printf("x 的十六进制值是:%X\n", x);printf("ASCII 码值为%d 所对应的字符是:%c\n", x , x); return 0;}4、#include<stdio.h>int main(){float r,h,C1,Sa,Sb,Va,Vb;scanf("%f,%f",&r,&h);C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf("C1=%.2f\n",C1);printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb); return 0;}5、#include<stdio.h>int main(){char c1,c2,c3,c4,c5;printf(" 请输入5 个字符\n");scanf("%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5);c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;}。

循环结构程序设计课后习题及答案

循环结构程序设计课后习题及答案

循环结构程序设计习题与答案1、循环语句的三要素分别是、、.2、for语句括号内的3个表达式的作用分别是、、.3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环.4、在循环结构中,break语句的作用是;continue语句的作用是.5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次.6、下面程序段的执行次数:int a=0;while<a=0>{ printf<"good\n">;a--;}7、下面程序段的执行次数:int a=0;while<a==0>{ printf<"good\n">;a--;}8、下面程序段的执行次数:int a=1;while<a=1>{ printf<"good\n">;a++;}9、下面程序段的执行次数:int a=1;while<a==1>{ printf<"good\n">;a++;}10、下列程序段的运行结果是.for<i=5;i>=0;i-->printf<"%d ",i>;11、下列程序段的运行结果是.for<n=1;n<20;n=n+3>printf<"%d ",n>;12、下列程序段的运行结果是.for<ch='a' ;ch<='e' ;ch++>printf<"%d",ch-97>;13、下列程序段的运行结果是.for<i=1,j=5 ; i<j ; i++,j-->printf<"i=%d j=%d\n",i,j>;14、下列程序段的运行结果是.for<n=1 ; n*n<20 ; n++>printf<"%d \n",n+n>;二、选择题1、下列程序段中,死循环的是〔〕A、for <i=1; ;>B、i=32767;{ if<++i%2==0> continue; doif<++i%3==0> break; { if<i<0> break;} }while<++i>;C、i=1;D、for<i=1; ; >while<i-->; if<++i<10> break;2、下列程序段中,不是死循环的是〔〕A、inti=10;B、for< ; 1;>while<1>{ i=i%100+1;if<i>100> break;}C、int a=0;D、int x=21;do while<x>{ ++a; --x;}while<a>=0>;三、阅读程序,写出程序运行结果.1、#include"stdio.h"main<>{inti=0,sum=1;do{sum+=i;i++;}while<i<5>;printf<"%d\n",sum>;}程序运行结果:2、#include"stdio.h"main<>{inta,b;b=10;a=1;while<a<=b>a*=2;printf<"%d\n",a>;}程序运行结果:3、#include"stdio.h"main<>{int x=2;while<x-->;printf<"%d\n",x>;}程序运行结果:4、#include"stdio.h"main<>{int x=3;do{printf<"%d\n",x-=2>;}while<!x>;}程序运行结果:5、#include"stdio.h"main<>{inti;for<i=1;i<=5;i++>switch<i%5>{case 0:printf<"*">;break; case 1:printf<"#">;break; case 2:printf<"&">;break; default:printf<"\n">;}}程序运行结果:6、#include"stdio.h"main<>{charch;while<<ch=getchar<>>!='!'>putchar<++ch>;}程序运行结果:7、#include"stdio.h"main<>{inti,j;for<i=0;i<=5;i++>{for<j=1;j<10;j++>if<j==5> break;if<i<2> continue;if<i>2> break;printf<"j=%d\n",j>;}printf<"i=%d\n",i>;}程序运行结果:8、#include"stdio.h"main<>{int x ,y;x=37,y=13;while<x!=y>{if<x>y>x=x-y;if<y>x>y=y-x;}printf<"x=%d\n",x>;}程序运行结果:四、编程题1、输出下列图案12 43 6 94 8 12 165 10 15 20 252、输出下列图案*********3、编程求2-4+6-8+…-100+102的值.4、输出公元1500年至2500年所有的闰年的年号.5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.循环结构程序设计〔参考答案〕一、填空题、1.循环条件循环体循环控制变量2.循环变量赋初值循环测试条件循环变量更新3.执行整个周期外层循环条件为假4.提前结束包含它的循环语句的执行提前结束本次循环周期开始执行下一次循环周期5.0 1 06.07. 18.无数9. 110.5432111.1 4 7 10 13 16 1912.0123413.I=1,j=5I=2,j=414.14916二、选择题1. B2. D三、程序运行结果1.112.163.-14.15.#&*6.bgufsoppo7.i=5J=38.x=1四、编程题1.#include"stdio.h"main<>{inti,j;for<i=1;i<=5;i++>{for<j=1;j<=i;j++>printf<"%d ",i*j>;printf<"\n">;}}2.#include"stdio.h"main<>{inti,j;for<i=5;i>=1;i-=2>{for<j=1;j<=i;j++>printf<"*">;printf<"\n">;}}3.#include"stdio.h"main<>{inti,y=1,s=0;for<i=2;i<=102;i+=2>{ s=s+y*i;y*=-1; 〔y=-y>; } printf<"2-4+6+...-100+102=%d",y>;}4.#include"stdio.h"main<>{inti;for<i=1500;i<=2500;i++>if<i%4==0&&i%100!=0||i%400==0> printf<"%d ",i>;}5.#include"stdio.h"main<>{floatcj,min,max=0;printf<"请输入学生成绩,输入负数时结束:\n">; scanf<"%f",&cj>;min=cj;while<cj>=0>{if<cj>max>max=cj;if<cj<min>min=cj;scanf<"%f",&cj>;}printf<"max=%f\nmin=%f",max,min>;}。

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析

习题解析与答案第1 章C语言概述一.简答题1.概述C语言的主要特点。

【解答】。

活(1)语言简洁、紧凑,使用方便、灵。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛如if ⋯else 语句、while 语句、do while 语句、switch (4)具有结构化的控制语句。

语句、for 语句。

行(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进。

访问操作。

(6)所生成的目标代码质量高,可移植性好2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1 ,a2,x;a1=100;a2=50;x=a1-a2;printf (″x=%d n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1 ,a2,x;a1=10;a2=20;x=a1*a2;printf (″a1=%d,n″,a1,a2);printf (″x=%d n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。

#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。

循环结构程序设计典型例题

循环结构程序设计典型例题

循环结构程序设计典型例题例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的与。

算法分析:对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。

由于数列的题一般执行次数能确定,用for语句来编写比较方便。

此题,前后项的关系就是:后一项的分子就是前一项的分母加1,后一项的分母就是前一项的分子加分母。

解题思路就是用循环语句求各项,并把值累加,因为就是求前30项的与,循环执行30次。

1、初值i=2,j=3,s=0;2、用n从1到30循环3、s=s+ i/j;4、c=i; i=j+1; j=c+j;5、输出s;程序:#include<stdio、h>main( ){ int i=2,j=3,n,c;float s=0;for(n=1;n<=30;n++){ s=s+(float)i/j;c=i;i=j+1;j=c+j;}pr intf(“\n%f”,s);}此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。

例2:下面这个程序,想想它实现的就是什么功能?#include<stdio、h>main( ){ int i,s=0;for(i=1;i<=100;i++){if(i%5==0) continue;s=s+i;}printf(“\n%d”,s);}在左边的程序中,i从1到100循环,当i就是5的倍数时,直接进入下一个i,当i不就是5的倍数时,把i累加到s,最后输出s。

所以,这个程序实现的就是求1~100中间所有非5的倍数的数之与。

例3:输出n~m中(0<n<m)能被3整除,且至少有一个数字就是5的所有数。

算法分析:1 输入n与m的值2 用整型变量a从n-m循环,每次值加13、若a能被3整除,执行第4步,否则执行第9步4令整型变量x=a5、若x>0,执行第6步,否则执行第9步6、i=x%107、若i值不为5,执行第8步,否则输出a,并执行第9步8、x=x/10,并返回第5步9、返回第2步,察瞧下一个a程序:#include<stdio、h>main( ){ long a,x,i,t,n,m;scanf(“%ld%ld”,&n,&m);for(a=n;a<=m;a++)if(a%3==0){ x=a;while(x>0){ i=x%10;if(i==5) {printf(“\t%ld”,a);break;}x=x/10;}}}问:能把a%3==0也放到for循环语句的表式2中,写成a<=m&&a%3==0不?答:不可以!例4:求3-150中所有素数的与。

顺序结构、选择结构和循环结构的程序设计

顺序结构、选择结构和循环结构的程序设计

顺序结构、选择结构和循环结构的程序设计请写出switch语句的一般格式及注意事项。

一般格式:Switch(表达式){case常量表达式1:语句组1;break;Case常量表达式2:语句组2;break;……Case常量表达式n:语句组n;break;Default:语句组n+1;}1switch中表达式可以是任意类型,常用的是字符或整型。

2每个常量表达式的值不能相同。

3语句组可以为任意语句。

4break可以省略,然后执行完本组语句后紧接着执行其后的i+1组语句。

5多个case可以用一组执行语句。

6break的作用是跳出switch,执行switch下面的语句。

试说明while语句和do-while语句的异同:二者相同点在于都可以进行次数确定的循环体的次数。

不同点在于do-while现执行循环中的语句,然后再判断条件是否为真,若为真则继续循环;若为假则终止循环。

因此,do-while循环至少要执行一次循环语句。

而while则是先判断条件后执行循环体简述for语句的执行过程及注意事项:计算机表达式1表达式2非0?执行语句s计算机表达式3循环结束,执行下面的语句注意事项:for语句中的3个表达式可以省略但后面的分号不能省略。

试说明continue语句和break语句的作用及区别:break的功能是跳出本层循环(对多层循环而言),接着执行下面的语句。

continue语句的作用是执行continue时,循环体中continue下面的语句都不执行,重新进行循环判断以决定是否继续进行下次循环。

Break和continue的区别在于:continue只结束本次循环重新进行下次循环判断,而break结束整个循环。

C有一段程序为:while(表达式)语句1;语句2;……do-while语句中while在CC&.&.C语言中,运算符优先级最高CC语言中,要求运算符数据必须是整型的运算符是%C语言中,语句x=!a==b3个关于C语言的结论:可以用while语句实现的循环一定可以用for语句实现;可以用for语句实现的循环一定可以用while语句实现;可以用do-while语句实现的循环一定可以用while语句实现。

第2章 顺序结构、选择结构和循环结构的程序设计 习题答案

第2章 顺序结构、选择结构和循环结构的程序设计 习题答案

第二章顺序结构、选择结构和循环结构的程序设计一、简答1. 参考书上23页2. while先判断,后执行,do while先执行,后判断,循环体至少执行一次3. 参考书上29页4. continue,结束本次循环break,结束循环区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环二、填空题1. 顺序结构,选择结构,循环结构2. if else 和switch3. 语句1 ,语句24. 零5. break ,continue6. 7 ,07. ? : ,双目三、单选1-5 ABDCC 6-10 DBACA 11-15 CBCDA 16-20 ACBAD 21-25 ADCBB 26-29 BCCA四、程序分析题1. end 1end2. num%10 max = t3. j%34. 99五、编程题1.#include <stdio.h>int main(){char str[100] ;gets(str) ;int n1 , n2 , n3 , n4 , i ;n1 = n2 = n3 = n4 = 0 ;for(i = 0 ; str[i] != '\0' ; ++i) {if(str[i] >= 'A' && str[i] <= 'Z')++n1 ;else if(str[i] >= 'a' && str[i] <= 'z')++n2 ;else if(str[i] >= '0' && str[i] <= '9')++n3 ;else}printf("大写字母:%d\n" , n1) ;printf("小写字母:%d\n" , n2) ;printf("数字字符:%d\n" , n3 ) ;printf("其他字符:%d\n" , n4) ;return 0;}2.#include <stdio.h>#include <stdlib.h>int main(){int array[4] , min , max , i ;for(i = 0 ; i < 4 ; ++i)scanf("%d" , &array[i]) ;min = max = array[0] ;for(i = 1 ; i < 4 ; ++i) {if(array[i] < min)min = array[i] ;else if(array[i] > max)max = array[i] ;}printf("min = %d , max = %d\n" , min , max) ;return 0;}3.#include <stdio.h>int main(){float money , lixi ;int year ;scanf("%f %d" , &money , &year) ;switch(year) {case 1 :lixi = money * 0.63 / 100 ;case 2 :lixi = money * 0.66 / 100 ;break ;case 3 :lixi = money * 0.69 / 100 ;break ;case 5 :lixi = money * 0.75 / 100 ;break ;case 8 :lixi = money * 0.84 / 100 ;break ;default :printf("输入错误\n") ;return -1 ;}printf("%f\n" , money + lixi) ;return 0;}4.#include <stdio.h>int main(){int x , y ;scanf("%d" , &x) ;if(x > 100)y = x + 8 ;else if(x < -10)y = -x + 8 ;elsey = 0 ;printf("%d\n" , y) ;return 0;}5.#include <stdio.h>int main(){int i , j , k , m = 3 ;for(k = 5 ; k < 12 ; k += 2 , --m) {for(i = 0 ; i < m ; ++i)printf(" ") ;for(j = 0 ; j < k ; ++j)printf("*") ;printf("\n") ;}return 0;}6.此题可以沿用第五题的思路进一步完善,写出最佳程序。

循环程序设计习题及答案

循环程序设计习题及答案

循环程序设计习题及答案循环程序设计习题及答案1-基本循环控制结构1-1 基本循环结构示例<代码示例>1-2 循环条件<代码示例>答案:循环条件是一个布尔表达式,如果条件为true,循环将继续执行。

如果条件为false,循环将终止。

1-3 循环计数器<代码示例>答案:循环计数器是一个变量,用于记录循环执行的次数。

1-4 循环控制语句1-4-1 break语句<代码示例>答案:break语句用于提前终止循环,并跳出循环体。

1-4-2 continue语句<代码示例>答案:continue语句用于跳过当前循环体中剩余的代码,直接进入下一次循环。

2-常见循环题型2-1 计算累加和<代码示例>答案:使用循环结构,每次迭代都将当前值累加到一个变量中。

2-2 计算阶乘<代码示例>答案:使用循环结构,每次迭代都将当前值与累积值相乘,并更新累积值。

2-3 猜数字游戏<代码示例>答案:使用循环结构,与用户交互对比猜测的数字与目标数字,直到猜测正确或达到最大猜测次数。

3-循环的嵌套和嵌套控制结构3-1 嵌套循环结构示例<代码示例>3-2 循环的嵌套控制3-2-1 嵌套循环的break语句<代码示例>答案:break语句可以终止当前循环,并直接跳出嵌套循环的外层循环。

3-2-2 嵌套循环的continue语句<代码示例>答案:continue语句可以跳过当前循环体中的剩余代码,并继续下一次迭代。

4-附件本文档没有涉及附件。

5-法律名词及注释5-1 循环:程序中一种重复执行的结构,可通过循环变量控制执行次数。

5-2 循环条件:循环结构中的判断条件,决定循环是否继续执行。

5-3 循环计数器:循环结构中用于记录循环次数的变量。

5-4 break语句:用于提前终止循环,并跳出循环体的语句。

5-5 continue语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。

【答案】多分支2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。

【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。

次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。

只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。

【答案】直到型3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。

【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。

系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。

【答案】#include"stdio.h"或#include<stdio.h>4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( )①'A'/②A/③x=A/ ④x=A,y=12/12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符,在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。

【答案】④5 设有下列程序段,则执行该程序段后的输出是( )int i=012;float f=1.234E-2;printf("i=%-5df=%5.3f",i,f);...①i=__012f=1.234 ②i=10___f=0.012③10___O.012 ④___100.012注:答案中的_代表一个空格。

【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。

只有备选答案②符合题意。

【答案】②6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。

【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。

【答案】File/SaveF27 下列各种选择结构的问题中,最适合用if-else语句来解决的是( )①控制单个操作做或不做的问题②控制两个操作中选取一个操作执行的问题③控制三个操作中选取一个操作执行的问题④控制10个操作中选取一个操作执行的问题【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。

【答案】②8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。

例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。

请填写程序中所缺少的语句。

main(){char ch ;scanf(”%c”,&ch〕;ch=ch- 32+1;___________________;printf("%c\n",ch);} 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。

如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。

为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。

完成这个任务的语句是一条单分支语句,正是所缺少的语句。

【答案】 if (ch=='Z'+l) h='A';9不能正确计算下列分段函数的程序段是_________|-1 x<0y=|0 x=0x>0① switch(x< 0)② if(x> 0){case1:y=-1;break; y=1;case 0:switch(x==0)else{casel:y=0;break;if(x==0)case 0: y= l;y=0}else} &ny=-l③ y= l;④ y= l;if(x==0)if(x<0)y=0; y =-l;else else y=- l; if(x== 0)y=0;【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。

如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。

该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。

如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。

再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。

分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。

至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。

【答案】③10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。

【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。

【答案】for11执行下列程序段后的输出是()x=l;while(x<=3) x++,y=x+++x;printf("%d,%d",x,y);① 6,10 ②5,8 ③4,6 ④3,4【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下:x=1;进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3;继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5;继续循环,条件不满足退出循环;输出x和y的值为5,8。

【答案】②12 执行下列程序段,其中的do-while循环一共执行_次。

static int x;do x+=x*x;while (x);【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。

执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*x)=0+(0* 0)=0;再判断控制循环的条件“x”,结果为0,条件不成立,退出循环。

所以循环仅执行1次。

【答案】 113 下列程序段的输出结果是()for( i=0; i<1;i+=l)for( j= 2;j> 0;j--)printf("*");① **②***③****④******【分析】注意每次内层循环仅输出1个“*”,所以只要分析出二重循环的总次数即可。

首先分析外层循环的次数:控制变量i的初值为0;终值为0(i<1相当于i<=0);步长为1(i+=l相当于 i= i+ l),所以外层循环次数为1。

再分析内层循环次数:控制变量 j的初值为2;终值为1(j>0相当于j>=1);步长为-1(j--),所以内层循环次数为人内层循环体一共执行的次数等于外层循环次数乘以内层循环次数,共计为l*2=2。

【答案】①14 执行下列程序段后的输出是________________。

x=0;while(x<3)for(;x< 4;x++){printf(”%1d”,x++);if( x< 3) continue;else break;printf(”%1d”,x);}【分析】我们用执行程序并记录各变量值的方法来获得程序的输出结果,记录如下:x=0;第一次执while循环,条件x<3成立,执行while的循环体(即for循环);第一次执行for循环,条件x<4成立,执行for的循环体;输出x的值问位整数,其值为0),然后x++,x值为1;if-else的条件 x< 3成立,执订 continue,继续 for循环,执行 x++, x为 2;第二次执行拉循环,条件x<4成立,执行比r的循环体;输出x的值(1位整数,其值为对,然后x++,x值为3;if-else的条件x<3不成立,执行break,退出for循环,返回while循环;第二次执行while循环,条件x<3不成立,退出while循环,结束程序运行。

所以,最终输出结果是两个一位整数0和2。

【答案】 0215 与下列程序段的基本功能不相同的是_____________x=0;LOOP:x++;if(x< 10) gotO LOOP;①for(x=0;x<10;x++);②x=10;③do x=0;④x=0;while (x++<10);while(x++<9);【分析】先分析给出的程序段,很明显这段程序是用 goto语句构成的循环,控制循环的条件是“x<1O”,循环要做的工作是“x++”;当 x值为 9时,进行循环,通过“x++”,使 x值为 10后,条件“x<10”将木再成立,退出循环,则此时 x的值为 10。

相关文档
最新文档