当前位置:文档之家› 第三章作业-程序控制结构

第三章作业-程序控制结构

第三章作业-程序控制结构
第三章作业-程序控制结构

第三章程序控制结构

通过本章实验作业应达目标

1.熟练掌握格式输入与格式输出函数与各种格式符的使用,掌握各类数据输入/输出的实现方法;

2.学会正确使用关系与逻辑运算,熟练构建关系与逻辑表达式;

3.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构;

4.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构;

5.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。

6.进行算法设计训练,能综合所学控制结构语句解决一般问题。

本章必须上交作业

第一部分输入/输出作业要求

程序3_3.c上传至。源程序可以.cpp命名。

第二部分分支结构作业要求

程序3_5.c、3_6.c、3_8.c上传至。

第三部分循环控制结构作业要求

程序3_9.c、3_11.c、3_13.c、3_14.c、3_15.c、3_16.c、3_19.c上传至。

第一部分顺序结构与输入/输出程序设计

实验一一个三位数逆序输出

【实验目的】

了解顺序程序结构,学习调试程序。

【实验内容】

下面程序功能:键盘输入一个三位数,输出逆序后的数。例如,输入236,输出632。程序中有多处错误,改正后在机器上调试通过。程序以3_1.c命名。

#include

void main()

{int x,int y;

int a,b,c;

a=x/100;

b=x/10%10;

c=x%10;

printf("Please input a num:");

scanf("%d",&x);

y=100c+10b+a;

printf("y=%d\n",y);

}

【思考】如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?

实验二字符数据输入/输出

【实验目的】

学习字符数据的输入与输出,学习getchar()/putchar()函数使用。

【实验内容】

用getchar()函数输入两个字符给c1、c2,然后分别用putchar()分别输出这两个字符,再输出它们的ASCII。程序以3_2.c命名。

【思考】

能否将输入的两个字符转换大小写后再一次输出?即输入是大写字符则输出对应小写字符,输出小写字符则输出对应的大写字符。

实验三复数乘法

【实验目的】

学习格式化输入/输出操作。

【实验内容】

编写程序读入两个复数并输出这两个复数的乘积。输入输出如下图。程序以3_3.c命名并上交。

程序运行时用户只须输入两个复数的实部与虚部。

两个复数的乘积仍然是一个复数,复数的乘法按照以下法则进行:

设z1=a+bi,z2=c+di(a、b、c、d∈R)是两个任意复数,则它们的积为:

(a+bi)(c+di)=(ac-bd)+(ad+bc)i。

【提示】

程序运行时屏幕首先显示:

输入5,回车后屏幕再次给出输入提示 virtualpart:

输入3,回车后屏幕显示该复数,并给出输入第二个复数的提示。

输入第二个复数的实部与虚部,最后输出这两个复数相乘得到的第三个复数。

注意,数学概念中的复数a+bi是一个非实型数据,在C语言中是没有复数类型的,因此没有办法定义一个变量来保存一个数学概念中的复数。为描述并记录复数,我们在此用两个float类型的变量分别记录一个复数的实部与虚部,用这两个变量描述一个数学概念中的复数。显示时以×× + ×× i的方式展示数据。具体说,计算机内是没有复数类型的,程序中用两个实型数据描述一个复数。复数的计算实质是对实部与虚部的计算,结果放在相应表示复数实部与虚部的变量里。

第二部分分支结构程序设计

实验一大小写转换

【实验目的】

熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。

【实验内容】

下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以3_4.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。

#include

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语句的使用。

【实验内容】

键盘输入一个算术的运算式子,输出运算结果。这里我们规定可以接收五个算术运算的符号:+、-、*、/、^(乘方)。程序以3_5.c命名并上交。

下图是输入输出的示意图:

输入一个加法的算术式:

输入一个除法的算术式:

输入一个乘方的算术式:

求3的平方根:

【实验提示】

本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。

C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含

【思考】

输入的表达式实质是按多个不同类型的数据来获取数据的。程序中需要定义多个变量来接收表达式中包含的数据与运算符,并设计相应的输入/输出函数实现。

实验三金额计算

【实验目的】

学习分析与解决实际问题的能力,综合嵌套使用if~else或switch语句。

【实验内容】

某服装店经营套服。以50套为限,若购买数量不少于50套,每套80元;不足50套时每套90元;单买上衣每件60元,单买裤子每条45元。若购买金额大于10000元,则超过10000元部分可以打九折。

编写金额计算程序,实现:键盘读入所买上衣c和裤子t的数量,计算应付款总额。程序以3_6.c命名并上交。

实验四利息计算

【实验目的】

综合使用选择结构语句,解决实际问题。

【实验内容】

RMB

,计算并输出到期时的利息总额、利息税(20%)与实得利息。

两档期限之间以活期计算,如存款期限为50个月,则36个月按3.96%计算利息,14个月按0.72%计算利息。程序以3_7.c命名。

实验五判断天数

【实验目的】

熟练使用switch语句,并设计精巧程序。

【实验内容】

按yyyy-mm-dd格式输入一个日期,如2004-10-31,判断这是这一年的第几天。程序以3_8.c命名并上交。

【实验提示】

以2004-10-31为例,先把前九个月的天数加起来,然后再加上31天。需要考虑的是,当年是闰年,2月为29天,否则2月为28天。也可以2月固定按28天计算,当年是闰年且月份大于2时,多加一天。

第三部分循环程序设计

1.循环设计

循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。

(1)计数器控制的循环

事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。

(2)标志控制的循环

事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。

2.基本算法

程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。

循环主要用来解决程序设计中两类基本的算法:穷举和迭代。

1. 穷举算法

穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。

例3- 1 输入两个正整数x和y,求其最大公约数。

#include

void main()

{

int x,y,i,flag;

flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/

printf("Please input two numbers:");

scanf("%d%d",&x,&y);

for(i=x

if(x%i==0&&y%i==0) flag=0; /*条件满足,就改变标志变量的值*/

else i--;

printf("greatest common divisor=%d\n",i);

}

两个数中的小者到1之间任何一个数都有可能是公约数,因此用变量i从大到小一一穷举,直到找到为止。若两数互质,当i==1时也能使条件满足。

2. 迭代算法

按照特定规律和方法,重复地由旧值递推出新值,并由新值代替旧值,直至问题解决为止,这种解决问题的方法为迭代。迭代的关键因素是:迭代初值、迭代公式和迭代次数(精度要求)。

例3- 2 使用辗转相除法求两数的最大公约数。

辗转相除法:如果x除以y的余数为0,则除数y就是最大公约数,或余数不为0,则被除数x被除数y取代,除数y被余数取代,再用新的x除以新的y,判断余数是否为0,如果不为0,则重复此迭代过程,直至余数为0,此时的除数y即为最大公约数。

#include

void main()

{

int x,y,temp;

printf("Please input two numbers:");

scanf("%d%d",&x,&y);

temp=x%y;

while(temp!=0)

{

x=y; /*迭代*/

y=temp; /*迭代*/

temp=x%y;

}

printf("greatest common divisor=%d\n",y);

}

运行时输入:66 121

输出:greatest common divisor=11 各值的变化如下:

x y temp=x%y

66 121 66

121 66 11

66 11 0

实验一 简单的循环设计

【实验目的】

学习设计一个循环,能进行循环变量的初始化,循环条件的设计与循环变量值的修正。

【实验内容】

编写程序,输入一个整数x ,按下式输出对应的y 值。程序以3_9.c 命名并上交。

???++++++++=为偶数

为奇数x x x x

y ΛΛ642531 【指导】

简单循环结构,通常方法是设计一个循环变量i ,让其在初值与终值之间变化控制控制循环实现,循环条件通常是:i ≤终值。如:

for(i=初值;i ≤终值;i=i+步长)

循环体语句;

实验二 整数按位折分求和

【实验目的】

学习设计与控制循环,并熟练%(求余)运算。

【实验内容】

输入一个不大于2×109(用long 型数据)的正整数x ,求这个数每位数字之和。例如,若输入33456781,

输出37。程序以3_10.c 命名。

【提示】

设计循环,每次求出x 的个位数(使用求余运算)并累加到和值变量中,再迭代操作,改变x 的值,使原来的十位变个位。

【讨论与思考】

long 型数据的最大值是2147483647,受变量类型限制,本程序只能接收不大于2×109的正整数。如果进行扩充,要求能接收并计算一个30位整数的各位之和,那么数据类型应如何设置,程序应该如何编写?

实验三 最值求解

【实验目的】

学习在多个数据中求取最大最小值,并设计用控制的循环。

【实验内容】

键盘输入一组学生成绩,输入以-1作为输入的结束。统计这批数据的最大值,最小值,平均值。程序以3_11.c 命名并上交。

【提示】

这里的循环并不由循环变量的值来进行控制了,需要根据输入的数据来控制循环,并需要设计变量来统计循环执行的次数。

实验四打印数字塔图形

【实验目的】

学习使用循环语句构成的多重循环嵌套。

【实验内容】

编写程序,使用循环输出如下图所示的数字塔图形。程序以3_12.c命名。

【提示】

此图形上下对称,可将程序分为上下两部分实现。上半部输出9行,下半部输出8行。每一行包含三部分内容:开始的空格、中间的数字及最后的换行符。需要考虑的是字符个数与行号的关系。

下面程序用于输出如下*字符塔,供本题参考。

#include

void main()

{int i,j;

clrscr(); /* 清屏 */

for(i=1;i<=9;i++) /* 行循环 */

{for(j=1;j<=9-i;j++) /* 输出行左空格*/

printf(" ");

for(j=1;j<=2*i-1;j++) /* 输出若干* 字符 */

printf("%c",'*');

printf("\n"); /* 换行 */

}

}

实验五寻找素数

【实验目的】

领会并牢固掌握素数算法,深入循环结构设计。

【实验内容】

从键盘输入一个大于3的正整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。程序以3_13.c命名并上交。

实验六不等式求解

【实验目的】

学习在循环中使用break控制语句。

【实验内容】

键盘输入一个数给m,计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。例如,当m=10000时,程序输出:n=38。程序以3_14.c命名并上交。

【提示】

参考解法:

for(i=1;1;i++) /* 循环条件为恒真 */

{计算(1+2+3+……+i) s;

将计算结果s累加到变量sum中;

判断sum的值是否大于m

是,则终止循环

否,则继续进入下一次循环

}

输出与对应结果,其值会与i相关。

实验七最佳方案寻找

【实验目的】

穷举算法与最佳方案算法设计与训练。

【实验内容】

一根长度为235m的材料,需要截成长度为19m和23m的短料,编程设计最佳截取方案,即求两种短料各截成多少根时,剩余的材料最少?程序以3_15.c命名并上交。

实验八礼炮响声统计

【实验目的】

学习循环中条件的设计与数据统计。

【实验内容】

活动中有三门礼炮,各装有十枚炮弹。第一门礼炮每隔3秒发一枚炮弹,第二门每隔5秒、第三门每隔7秒发一枚炮。问观礼群众一共听到几声炮响。三门炮的第一发炮弹是同时发出的,同一时间发出炮声算一响。程序以3_16.c命名并上交。

【实验提示】

程序中可分别设置计时器变量与计数器变量。计时器以秒为单位递增,测试此时有无炮发出。只要有一枚炮发出,则计数器增1。注意不要重复统计。

实验九验证哥德巴赫猜想

【实验目的】

综合运用多重循环结构、标志法、穷举法解决问题。

【问题描述】

1742年6月,德国数学家哥德巴赫在给大数学家欧拉的信中提出一个问题:任何大于4的偶数均可以表示为两个素数之和吗?欧拉复信道:任何大于4的偶数均可以表示为两个素数之和,这一猜想我还不能证明,但我确信无疑地认为这是完全正确的定理。

哥德巴赫猜想是世界著名的数学难题,至今未能在理论上得到证明,自从计算机出现后,人们就开始用计算机去尝试解各种各样的数学难题,包括费马大定理、四色问题、哥德巴赫猜想等,虽然计算机无法从理论上严密地证明它们,只能在有限的范围内对其进行检验,但也不失其意义。

【实验内容】

程序要求:输入一个int 型数据范围内的偶数x(x>4),找到两个素数a 、b ,满足 x=a+b 。最后输出此等式。如输入98,输出98=19+79。程序以3_17.c 命名。

【实验提示】

读入偶数x ,找出一对数a 、b 满足x=a+b ,测试a 、b 是否都为素数,若不满足,则找下一对a 、b 继续测试,直到a 、b 均为素数为止。算法描述如下:

读入x;

a=3;

while(a

{b=x-a;

测素数循环,测试a 是否为素数;

测素数循环,测试b 是否为素数;

if(a 、b 同为素数)

退出while 循环;

a+=2; /* a 在奇数上穷举 */

}

if(a

验证成功,输出x=a+b;

else 验证失败,输出失败信息;

为了判断a 、b 是否是素数,可以设置两个二元标志变量flag_a 和flag_b ,其值为1时表示对应变量是素数,其值为0时表示变量是非素数。令flag_a 和flag_b 的初始值为0,代表开始时假设a 、b 都不是素数,然后进入测试循环。若测素数循环检测a 是素数,则改变flag_a=1;若b 是素数,则令flag_b=1。 则 if(a 、b 同为素数)可以表示为 if(flag_a*flag_b!=0)。

实验十 计算立方根

【实验目的】

练习迭代算法,学习几种解一元高次方程的方法。

【实验内容】

键盘输入一个实数a ,输出它的立方根。请自行设计算法编写程序,不允许调用pow 函数。程序用3_18.c 命名。

【提示】

假设a 的立方根为x ,则a x =3,问题转化为求一元高次方程03

=-a x 的解。应用教材介绍的牛顿迭代法解一元高次方程可以比较快捷的得到近似解。 实验十一 斐波那契(Fibonacci )数列

【实验目的】

练习迭代算法,了解斐波那契(Fibonacci )数列。

【实验内容】

输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。程序用3_19.c命名并上交。

【提示】

1,1,2,3,5,8,13,21,34,……这是斐波那契(Fibonacci)数列的前几项。斐波那契数列的特点:前两项均为1,后面任意一项都是其前面两项之和。

本实验虽然只要求输出在[m,n]范围内的斐波那契数,但是依然需要从第1个Fibonacci数开始依次得到下一个,并判断是否是需要输出的那个。

习题三

第一部分:输入与输出

1.已有如下定义和输入语句,若要求a,b,c1,c2的值分别为5、6、A和B,当从第一列开始输入数据时,正确的数据输入方式是 ______ (表示回车)。

int a,b;

char c1,c2;

scanf("%d%c%d%c",&a,&c1,&b,&c2);

A) 5 A 6 B B) 5 A6B C) 5A6B D) 5A6 B

2.以下说法正确的是_______。

A)输入项可以为一个实型常量,如scanf(“%f”,3.5);

B)只有格式控制,没有输入项,也能正确输入,如scanf(“a=%d,b=%d”);

C)当输入实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

D)当输入数据时,必须指明地址,如scanf(“%f”,&f);

E)可以采用不同的格式符,实现对一个实型数据以八进制或十六进制形式输入/输出。

F)整型数据不能使用%f或%lf格式符。

3.若a是int型变量,则表达式(a=5*6,a*3),a+8的值是 _________ 。

4.若有定义:int b=7; float a=2.5,c=4.7; 则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为_____。5.输出长整型数据使用格式符_______,输出无符号的整数用格式符_____ ,以指数形式输出单精实数用格式符______。

6.下面程序运行时输入:10 11<回车>,输出__________。

#include

void main()

{int a,b;

scanf("%o%x",&a,&b);

printf("a=%d,b=%d\n",a,b);

}

7.下面程序段执行时,怎样输入才能让a=10,b=20 ?__________________

int a,b;

scanf("a=%d,b=%d",&a,&b);

8.若a和b均为int变量,以下语句的功能是_____________。

a+=b;b=a-b;a-=b;

9.在scanf函数调用中,可以在格式字符和%之间加一星号*,它的作用是________。

10.a++、++a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有__________

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

循环结构程序设计习题及答案 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 ; i100) break; } C、int a=0; D、int x=21; do while(x) { ++a; --x; }while(a>=0); 三、阅读程序,写出程序运行结果。 1、#include"stdio.h" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf("%d\n",sum); } 程序运行结果: 2、 #include"stdio.h" main() { int a,b;

第三章测验及答案

第三章测验 一、判断 1. 文档不属于软件,所以不重要。() 2. 软件学是专门研究软件开发的学科。() 3. 通常把计算机软件分为系统软件和应用软件。() 4. 所谓系统软件就是购置计算机时,计算机供应厂商所提供的软件。() 5. 当前流行的操作系统是Windows系列及Office系列。() 6. Word属于系统软件,因为它在多个行业、部门中得到广泛的使用。() 7. Oracle是一数据库软件,属于系统软件。() 8. “软件工程”的概念出现在计算机软件发展的第三阶段。() 》 9. 一般只有硬件、没有软件的计算机被称为“裸机”。() 10. 计算机操作系统自举完成后,操作系统的所有程序常驻内存。() 11. Windows操作系统可以在任意的计算机上安装。() 12. Linux操作系统是Unix简化后的新版本。() 13. 机器语言程序是直接运行在裸机上的最基本的系统软件。() 14. 汇编语言是面向机器指令系统的机器语言。() 15. 计算机硬件就是组成计算机的各种物理设备的总称。() 16. 同一个程序在解释方式下的运行效率比在编译方式下的运行效率低。() 17. 编译程序仅是指从高级语言到机器语言的翻译程序。() 18. 在设计程序时一定要选择一个时间代价和空间代价都是最小的算法,而不用考虑其它问题。() 、 19. 离散数学的主要研究对象是连续的数据结构。() 20. 数据结构的内容包括数据的逻辑结构、存储结构以及在这些数据上定义的运算的集合。() 21.链接表是以指针方式表示的“线性表结构”。() 22. 程序与算法不同,程序是问题求解规则的一种过程描述。() 23. 软件产品的设计报告、维护手册和用户使用指南等不属于计算机软件。() 24. 支持多用户、多任务处理和图形用户界面是Windows的特点。() 25. 程序设计语言按其级别可以分为硬件描述语言、汇编语言和高级语言三大类。() 26.源程序通过编译处理可以一次性地产生高效运行的目标程序,并把它保存在外存储器上,可供多次执行。() 27. 程序语言中的条件选择结构可以直接描述重复的计算过程。()

实验二 分支结构程序设计实验

实验二 分支结构程序设计实验 1、实验目的和要求: 掌握汇编语言分支程序的设计方法; 2、实验内容: 编程序求分段函数Y 的值。已知变量X 为16位带符号数, 分段函数的值要求 保存到字单元Y 中。函数定义如下: 1 (当X>0) Y = 0 (当x=0) —1 (当X<0) 3、实验仪器与器材:计算机及 EMU8086汇编软件等。 4、实验原理: 分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。 5、实验过程与测试数据(含电路图/程序流程框图):

6、实验分析:自己分析 7、实验体会:自己总结 实验参考程序: DATA SEGMENT X DW -128 Y DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X CMP AX,0 JG ISPN JZ ISZN MOV Y,-1 JMP FINISH ISPN: MOV Y,1 JMP FINISH ISZN: MOV Y,0 FINISH: MOV AH,4CH INT 21H CODE ENDS END START 思考题:把程序修改成如下的分段函数的值 —1 (当X>=0)Y= 1 (当X<0)

顺序结构程序设计习题

一维数组程序设计习题 1、【逆序输出问题】 题目描述:按照顺序从键盘读入十个数据,以逆序方式输出。 输入数据:1 2 3 4 5 6 7 8 9 10 输出结果:10 9 8 7 6 5 4 3 2 1 2、【数组元素的移动问题】 题目描述:将元素个数为10的数组a中的第一个元素移到数组末尾,其余数据依次往前平移一个位置,请编程实现。 输入数据:1 2 3 4 5 6 7 8 9 10 输出结果:2 3 4 5 6 7 8 9 10 1 3、【斐波那契数列问题】 题目描述:有这样一种数列:1、1、2、3、5、8、……,这个数列的特点是:第1、2两个数为1,1,从第3个数开始,该数是其前面两个数之和。这种数列被称为Fibonacci(斐波那契)数列,请编程输出斐波那契数列的前20项(用一维数组完成)。 输出结果:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 4、【求和问题】 题目描述:编程计算并输出S=∑ = 10 1 i i i y x 其中,Xi的值为1、8、5、7、2、99、34、67、2589、19,Yi的值为2、22、14、3、7、9、11、8、132、30。 输出结果:344402 5、【排序问题】 题目描述:从键盘输入10个数,将它们按照从小到大的顺序输出。 输入数据:72 98 79 66 39 95 96 25 5 37 输出结果:5 25 37 39 66 72 79 95 96 98 6、【进制转换问题】 题目描述:请编程将一个从键盘输入的十进制整数转化为二进制数输出。 输入格式:32570 输出格式:111111********* 7、【圆环找数问题】 题目描述:有一组数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,15,8且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置。 输出结果:58 19 8、【质数问题】 题目描述:用筛选法求100之内的质数,要求每行输出5个数据。 输出结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

循环结构程序设计练习题 内含答案

第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是( D )。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( A )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、以下程序程序的执行后的输出结果是( c )。 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} A.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( A )。 void fun(char*s) { while(*s) { if(*s%2==0) printf(“%c”,*s); s++;} } main() { char a[]={“good”};fun(a);printf(“\n”);} 注意:字母a的ASCⅡ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0

顺序结构程序设计练习题

顺序结构程序设计练习题 一、选择题 1、下面正确的赋值语句是()。A)x+y=30B)y=π*r*r C)y=x+30D)3y=x 2、为了给x,y,z三个变量赋初值1,下面正确的赋值语句是()A)x=1:y=1:z=1B)x=1,y=1,z=1C)x=y=z=1D)xyz=1 3、赋值语句:a=123+left("123456",3)执行后,a变量中的值是。A)"12334"B)123C)12334D)246 4、在Visual Basic中,下列____程序行是正确的。A)X=Y=5B)A+B=C^3C)Y=1&Y=Y+1D)I=X10” 5、假定X是一个数值型变量,那么由函数组成的表达式INT(X/2)=X/2,作用是____。 A)用于测试X是否偶数B)返回一个整数C)返回一个奇数D)用于测试X是否整数 6、在Visual Basic中,下列____单词用于注释语句。A)Rem B)End C)Else D)Loop 7、inputBox函数反回值的类型为()。A)数值B)字符串C)变体D)数值或字符串(视输入的数据而定) 8、如果在立即窗口中执行以下操作: a=8:b=9 print a>b 则输出结果是()。A)–1B)0C)False D)True 9、语句Print Format(32548.5,"000,000.00")的输出结果是()A)32548.5B)32,548.5C)032,548.50D)32,548.50 10、为了把焦点移到某个指定的控件,所使用的方法是()A)SetFocus B)Visible C)Refresh D)GetFocus 11、在窗体(Name属性为Form1)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程: Private Sub Command1_Click() a=Text1.Text+Text2.Text Print a End Sub Private Sub Form_Load() Text1Text="" Text2Text="" End sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和321,然后单击命令按钮,则输出结果为()。 A)444B)321123C)123321D)132231 12、在VB中,下列()语句可以改变变量A的值:A)a=a+1B)t=A C)print a+1D)b=a+1 13、在VB中,下列()语句是错误的:A)PRINT"x="&x B)PRINT"X=";X C)PRINT A+1D)PRINT"X="+X 14、下列VB程序段运行后,变量X,Y的结果为(): A=256:X=INT(A/100):Y=INT(A/10)-X*10A)65B)652C)25D)665 15、.在VB中,下列()表达式能够表达[10,50]之间的随机整数: A)INT(10*RND)+40B)40*INT(RND(10+40))C)10+INT(41*RND)D)INT(10*RND)*(10+40) 16、在VB中,要交换变量A和B的值,应用的语句组是(): A)A=B:B=A B)C=A:B=A:B=C C)A=B:B=C:C=A D)C=A:A=B:B=C 17、在某个VB程序中,变量A的值为A=3.14,则应定义为()类型:A)integer B)single C)boolean D)string 18、下列VB程序运行后,变量A、B的值为():A)-6,5B)-5,4C)5,-6D)4,-5 A=4:B=-5:A=A+1:B=B-1:M=A:A=B:B=M 19、在VB中,欲显示静态的文本,可采用下列():A)命令按钮B)标签控件C)文本框D)定时器控件 20、下列关于Print方法的说法中,()不正确: A)Print方法具有计算和输出的双重功能B)使用Print方法输出数据时,前面的窗体名称可以省略 C)Print方法对于字符串是原样输出,但不包括定界符双引号D)Print方法在窗体的Load事件下也可以运行 21、下面程序运行结果为(): Dim a as single,b as single,c as single A)123B)321C)231D)632 A=1:b=2:c=3:Let b=a*b*c:Let a=b/(c*2):Let c=a*c:Let b=b/3:Print a,b,c 22、设有语句x=inputbox(“输入数值”,“0”,“示例”),程序运行后如果从键盘上输入数值10并按回车键,则下列叙述正确的是() A)变量X的值是数值10B)在INPUTBOX对话框标题栏中显示的是“示例”C)0是默认值D)变量X的值是字符串“10” 23、要使控件与框架捆绑在一起,以下操作正确的是() A)在窗体不同位置上分别画一框架和控件,再将控件拖到框架上B)在窗体上画好控件,再画框架将控件框起来 C)在窗体上画好框架,再在框架中画控件D)在窗体上画好框架,再双击工具箱中的控件 24、要使文本框获得输入焦点,则应采用文本框控件的哪个方法()A)GotFocus B)LostFocus C)KeyPress D)SetFocus 25、能够获得一个文本框中被选取文本的内容的属性是()A)Text B)Length C)SelText D)SelStart 26、要使标签能够显示所需要的东西,则在程序中应设置其哪一属性的值()A)Caption B)Text C)Name D)AutoSize 27、在运行阶段,要在文本框TEXT1获得焦点时选中文本框中所有内容,对应的事件过程是 A)Private Sub Text1_GotFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub B)Private Sub Text1_LostFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub C)Private Sub Text1_Change() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub D)Private Sub Text1_SetFocus() Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

第四课 简单的分支结构程序设计

第四课简单的分支结构程序设计 在现实生活中,我们每天都要进行根据实际情况进行选择。例如,原打算明天去公园,但如果明天天气不好,将留在家里看电视。所以人也会根据条件进行行为的选择。计算机也会根据不同情况作出各种逻辑判断,进行一定的选择。在这课与下一课中,我们将会发现,我们是通过选择结构语句来实现程序的逻辑判断功能。 一、PASCAL中的布尔(逻辑)类型 在前面,我们学习了整型(integer)与实型(real)。其中integer型数据取值范围为-32768到32767之间所有整数。而real型数据取值范围为其绝对值在10-38到1038之间的所有实数。它们都是数值型的(即值都为数)。布尔型(Boolean)是一种数据的类型,这种类型只有两种值,即"真"与"假"。 1、布尔常量 在Pascal语言中"真"用ture表示,"假"用False表示。所以布尔类型只有TRUE 与FALSE两个常量。 2、布尔变量(BOOLEAN) 如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(ture或false)。 例如,VAR A,B:BOOLEAN; 3、布尔类型是顺序类型 由于这种类型只有两个常量,Pascal语言中规定ture的序号为1,false的序号为0。若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,我们称这种类型为顺序类型。如前面我们学过的整型(integer),以及后面要学到的字符型(char)都是顺序类型。 4、布尔类型的输入与输出 a)输出 VAR A,B:BOOLEAN; BEGIN A:=TRUE;B:=FALSE; WRITELN(A,B);

第3章顺序结构程序设计练习题及答案

第3章顺序 一、单选题: 1.己知int k,m=1;执行语句k=-m++;后k的值是( A)。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2 2.若变量a, b已正确定义,且a,b均已正确赋值,下列选项中合法的语句是( B) A) a=b B)++a; C) a+=b++=1; D)a=int(b); (提示:a=b 只是表达式非语句; b++是个表达式)3.若有定义int x=4;则执行语句 x + = x * = x + 1;后,x的值为( C )。 A)5 B)20 C)40 D)无答案 4.若有定义和语句: int s,p; s=p=5; p=s++,++p,p+2,p++;则执行语句后 p的值是( C) A)9 B)8 C)7 D)6 5.若有定义:int a,b;则表达式 a=4,b=3,a+b+2,a++,a+b+2的值为( C)。 A) 12 B)11 C)10 D)无答案 6.若有定义:float a=3.0,b=4.0,c=5.0;则表达式 1/2*(a+b+c)的值为( C )。 A)6.0 B)6 C)0.0 D)无答案 7.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。) int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 8.下列程序段的输出结果是(C)。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%3.2f,%4.1f",a,b,c); A)无输出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 9.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 10.以下程序的输出结果是( A )。 void main() { int a=20,b=10; printf("%d,%%d\n",a+b,a-b); } A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符)11.下列程序的运行结果是(A)。 void main() { float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 12.己知int k=10 , m=3,n;则下列语句的输出结果是(B)。 printf("%d\n",n=(k%m,k/m));

分支结构教学设计

学会分支,也学会选择 《分支结构》教学设计 一、教材内容分析 1、本节的主要内容及在本章中的地位 分支结构是程序设计结构中的一个重要模化。既是顺序结构的延续,又是程序编写的一个基础。对以后编程影响重大。通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为高中时学习多分支选择结构打下基础。 2、课时安排:一课时 二、学习者分析 本节是在学习了程序的基本要素和顺序结构的基础上学习的,大部分学生对程序的编写和结构有了一种认识,所以在这个基础上学习,学生可以再上一个台阶。但仍有部分学生对程序的要素和顺序结构认识不够、掌握不好,不能顺利地编写好程序;这部分学生仍需老师的辅导、鼓励和同学的帮助。 三、教学目标 1.知识与技能 (1)了解分支程序的结构,流程以及作用。 (2)熟悉掌握分支语句的作用格式。 (3)掌握分支选择结构实现条件判断控制。 (4)能够运用分支选择结构设计编制程序解决问题。 情感目标: 1、在思维分析中,体验学习带来的自信与成功感,激发学生学习的兴趣。 2、通过趣味性的教学内容,使同学们保持高涨的学习兴趣,在操作的同时获得成功的喜悦。 3、培养学生的逻辑思维能力,促进学生对问题解决方法的理解。 2.过程与方法 (1)通过简单游戏程序的运行和流程思考,培养学生的思考逻辑分析能力。(2)通过运行程序、分析程序、编写程序提高学生自主学习的能力。 (3)通过分层教学和辅导,学生能力得到提高。 (4)通过小组学习,提高学生的学习兴趣和团结合作精神。 3.情感态度价值观 通过体验程序,分析程序,修改程序和编写程序,提高学生学习兴趣,克服畏惧心理,培养学生的团结合作精神和拓展学生的能力,使每个学生的能力都有提高。 四、教学重点及难点 重点:分支语句的流程图,分支语句的实现过程以及分支语句的格式。 难点:分支语句的应用以及分支语句的格式,。 五、教学策略 本节是本章的一个重点、难点,故采用情景设置,游戏导入,讲练结合,任务驱动,分层辅导,分层练习,小组学习等多种立体方式呈现。以教师为主导,

实验一 顺序结构程序设计

实验一顺序结构程序设计 一、实验目的 1. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2 2. 学会使用有关算术运算符,以及包含这些运算符的表达式。 3. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验学时数 4学时 三、实验内容和步骤 1..启动TC 2.0编译系统,进入编辑界面,建立一个新文件。文件名自定。(要求每个学生建立一个自己的文件夹,每个同学的练习和作业的源程序命名形成系列,便于检查、查找和考核)。 利用一个小程序验证常量、变量的使用方法与特点,验证数据类型和表达式值的计算规则及其输出格式。 参考程序: main( ) { char c1,c2; c1=97;c2=98; printf(″%c,%c\n″,c1,c2); } (1)在此基础上加入以下printf语句,并运行。 printf(″%d,%d\n″,c1,c2); (2)将第二行改为以下语句,并运行。 int c1,c2; (3)将第三行改为以下语句,并运行。 c1=300;c2=400; 分别写出三次运行结果。 2.编程并调试运行 (1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。上机运行此程序,比较putchar和printf函数输出字符的特点。 (2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。 3.写出下面程序的运行结果: 1)main() { int x=1,y=1,z=1; y=y+x; x=x+y; printf(″%d\n″,x); printf(″%d\n″,y); } 2) main()

循环程序设计习题及答案

模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0;

while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况

分支结构的程序设计教学设计

分支结构的程序设计》教学设计 一、概述 分支结构的程序设计》是信息技术佛山版九年级第二单元第4 课的内容,它主要包括:程序的结构,IF 语句的基本格式(常用的一种)。 它的重点与难点:1、用户登录程序2 、IF 语句的格式3 、IF 语句的拓展形式。 二、教学目标分析 1)知识与技能 1.了解程序3 种基本的结构(顺利结构、分支结构和循环结构), 2.掌握IF 语句的基本格式: IF 条件THEN 语句组1 ELSE 语句组2 ENDIF 3.掌握用户登录程序的编写,能够应用IF 语句来设计及编写 书中的用户登录程序 2)过程与方法 通过任务驱动,屏幕演示、实例练习、小组、协作学习等方法, 使学生设计界面,编写代码,让学生在课堂中掌握用户登录程序的编写,使学生初步形成结合实际进行思考的方法。 3)情感态度与价值观 通过本课的学习,让学生建立一种团队精神。培养学生保护知识 产权,让学生懂得保护软件版权,引导学生践行社会主义价值观。 三、学习者特征分析

九年级学生,已了解VB的程序界面,能够用VB设计图2-15的界面,以及各控件的使用,同时,他们的思维也比以前有了进一步的提高,会析问题,询求解决问题的方法,但由于我校的学生生整体素质一般,所以一节课的内容不能太多。 四、教学策略选择 运用主导策略,在教师指导下,学生小组协作进行学习。 五、教学环境及资源 1 .多媒体网络教室 2 .教学资源:(1 、课件2 、学习资源)六、教学过程 1.导入:我们上QQ或上网购物时,要输入用户名和密码才能 进入,那么这个程序,我们也可以用VB设计一个类似的登录窗口。 设计意图:激发学生的学习兴趣。 教师:运行一个已经写好的用户登录程序。 设计意图:把神秘的编程化做我们平时的生活,使编程这个问题,简单化,同时告诉学生;谁学了VB语言,都可以编写的。 2.编登录程序之前,教师让学生说出程序的答案然后讲解、分析 程序的结构 1 )顺序结构:程序一般是从上到下一句一句地顺序执行,即 如: X=4

C语言——顺序结构程序设计练习题

顺序结构程序设计习题 一、选择题:(以下各题□代表空格。) 1.以下程序运行的结果是: #include int main() {int m=5,n=10; printf(“%d,%d\n”,m++,--n); } A)5,9 B)6,9 C)5,10 D)6,10 2.以下程序运行的结果是: #include int main() {int a=201,b=012; printf(“%2d,%2d\n”,a,b); return 0 } A)01,12 B)201,10 C)01,10 D)20,01 3.有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变 量b得到数值5,下面输入形式,错误的是: A)6,5<回车> B)6,□□<回车> C)6 5<回车> D)6,<回车>5<回车> 4.设有如下程序: #include int main() {char ch1=’A’,ch2=’a’; printf”%c\n”,(ch1,ch2)); return 0; } 则以下叙述正确的是: A)程序的输出结果为大写字母A; B)程序的输出结果为小写字母a; C)运行时产生错误信息; D)格式说明符的个数少于输出项个数,编译出错。 5.以下程序运行的结果是: #include int main() {int x1=0xabc,x2=oxdef;

x2-=x1; printf(“%X\n”,x2); return 0; } A)ABC B)0XABC C)0X333 D)333 6.以下程序输出的结果是: #include int main() { printf(“\n*s1=%15s*”,”chinabeijing”); printf(“\n*s2=%-5s*”,”chi”); } A)*s1=chinabeijing□□□* S2=**chi* B)*s1=chinabeijing□□□* *s2=chi□□* C)*s1=*□□chinabeijing* *s2=□□chi* D)*s1=□□□chinabeijing* *s2=chi□□* 7.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是: A)整形变量的输出格式符只有%d一种; B)%x是格式符的一种,它可以适应与任何一种类型的数据; C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。 8.以下C程序的运行结果是: #include int main() {long y=-43456; printf(y=%-8ld\n”,y); printf(y=%-08ld\n”,y); printf(y=%08ld\n”,y); printf(y=%+8ld\n”,y); return 0;

第三章作业 程序控制结构

第三章程序控制结构 通过本章实验作业应达目标 1.熟练掌握格式输入与格式输出函数与各种格式符的使用,掌握各类数据输入/输出的实现方法; 2.学会正确使用关系与逻辑运算,熟练构建关系与逻辑表达式; 3.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构; 4.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构; 5.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 6.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 第一部分输入/输出作业要求 程序3_3.c上传至http://121.251.227.27:8080/c。源程序可以.cpp命名。 第二部分分支结构作业要求 程序3_5.c、3_6.c、3_8.c上传至http://121.251.227.27:8080/c。 第三部分循环控制结构作业要求 程序3_9.c、3_11.c、3_13.c、3_14.c、3_15.c、3_16.c、3_19.c上传至http://121.251.227.27:8080/c。 第一部分顺序结构与输入/输出程序设计 实验一一个三位数逆序输出 【实验目的】 了解顺序程序结构,学习调试程序。 【实验内容】 下面程序功能:键盘输入一个三位数,输出逆序后的数。例如,输入236,输出632。程序中有多处错误,改正后在机器上调试通过。程序以3_1.c命名。 #include void main() {int x,int y; int a,b,c; a=x/100; b=x/10%10; c=x%10; printf("Please input a num:"); scanf("%d",&x); y=100c+10b+a; printf("y=%d\n",y); } 【思考】如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?

C语言(顺序结构程序设计)习题与答案

1、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数结束。 B.本程序的main函数开始,到本程序文件的最后一个函数结束。 C.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 D.本程序文件的第一个函数开始,到本程序main函数结束。 正确答案:A 2、C语言规定:在一个源程序中,main函数的位置( )。 A.必须在系统调用的库函数的后面 B.必须在最开始 C.可以任意 D.必须在最后 正确答案:C 3、下面四个选项中,均是不合法的浮点数的选项是( )。 A.160. 0.12 e3 B.123 2e4.2 .e5 C.-e3 .234 1e3 D..18 123e4 0.

4、下面四个选项中,均是合法浮点数的选项是( )。 A.+le+1 5e-9.4 03e2 B.123e 1.2e-.4 +2e-1 C.-.60 12e-4 -8e5 D.-e3 .8e4 5.e-0 正确答案:C 5、下面正确的字符常量是( )。 A.'' B.'W' C."a" D.'\\'' 正确答案:B 6、下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。 A. 016 0x8f 018 B. 010 -0x11 0x16

7ff -123 D.oabc 017 0x8 正确答案:C 7、下面不正确的字符串常量是( )。 A."12\12" B."0" C."" D.'abc' 正确答案:D 8、在C语言中,要求运算数必须是整型的运算符是( )。 A./ B.= C.++ D.% 正确答案:D 9、若以下变量均是整型,且num=sum=7;则执行表达式 sum=num++,sum++,++num后sum的值为( )。 A.7 B.9 C.10 D.8 正确答案:D 10、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

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

循环结构程序设计习题及答案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

相关主题
文本预览
相关文档 最新文档