当前位置:文档之家› 顺序、选择、循环三种基本结构程序设计.

顺序、选择、循环三种基本结构程序设计.

顺序、选择、循环三种基本结构程序设计.
顺序、选择、循环三种基本结构程序设计.

昆明理工大学信息工程与自动化学院学生实验报告

(2012 —2013 学年第一学期)

课程名称:结构化程序设计与C语言开课实验室:系机房444 2012 年10月21日

一、实验的目的

1、学习在VC++环境下编辑调试C语言程序的方法。

2、掌握在C语言中的各种数据类型,以及如何定义整型、实型、字符型的变量,并进

行赋值的方法。

3、掌握顺序程序的思路,特别是赋值语句的使用方法。

4、掌握各种类型数据的输入输出方法的正确应用,熟悉各种格式控制符的作用。

5、学会在选择结构中正确应用关系表达式及逻辑表达式。

6、熟练掌握if语句和switch语句的使用。

7、学会选择结构问题算法的编制与调试应用。

8、熟练掌握while语句、do-while语句和for语句实现循环的方法。

9、学会循环问题的编制与调试、运行。

二、实验内容与要求

本实验涵盖顺序、选择、循环三部分程序设计的应用,要求每部分完成两个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。具体要求完成的问题如下:(注意:在模板中给出了题的页数与题号,请写正式报告时将书上的题目内容代替页数与题号)

(1)P82/2

(2)P84/6

(3)P112/6

(4)P113/9

(5)P140/5

(6)P141/16

三、算法设计思想或程序流程图

(1)设:五年期,三年期,二年期,一年期,活期存款分别为:r5,r2,r3,r0;

第一种,第二种,第三种,第四种,第五种五年期存款的本息和分别为

p1,p2,p3,p4,p5。

则有:

p1=p*((1+r5)*5); 一次存5年期

p2=p*(1+2*r2)*(1+3*r3); 先存2年期,到期后将本息再存3年期

p3=p*(1+3*r3)*(1+2*r2); 先存3年期,到期后将本息再存2年期

p4=p*pow(1+r1,5); 存1年期,到期后将本息存再存1年期,连续存5次

p5=p*pow(1+r0/4,4*5); 存活期存款。活期利息每一季度结算一次

再将所得数据一一输出即可。

(2) 先分别把c1,c2,c3,c4,c5分别赋初值为c,h,I,n,a.

想要让它们的字母分别增加四位。只需将它们的ASCII码增加4个数就可以。便有

c1=c1+4; c2=c2+4 c3=c3+4; c4=c4+4; c5=c5+4;再将所得值以字符型输出便可

(3)输入x,用if语句判断X的值的范围。X<1将x的值赋给y并输出。

除此情况之外(x>1)再进行分类。若x<10则y=2*x-1。除此情况之外,y=3*x-11. (4)先判断它的位数。如果这个数大于9999则输出5;排除这种情况,大于999则输出4…以此类推。

分别输出每一位数字:几位数字便除以此位数的最小值。如9999便除以1000,由于都是整型,便得到9。依次除下去。得到的各位整数在赋给各个变量,反序输出。

(5)用tn=tn+a语句代表赋值后的tn为i个 a组成数的值

用 sn=sn+tn语句代表赋值后的sn为多项式前i项之和

用while语句实现在I

(6)将菱形分为上下两个部分,每个部分为一个三角形。设置两个变量I,j分别控制行和列。再用两个循环语句分别对上下两个三角进行控制。

四、源程序代码

(1)

#include

#include

int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

r1=0.0414;

r0=0.0072;

p1=p*((1+r5)*5);

p2=p*(1+2*r2)*(1+3*r3);

p3=p*(1+3*r3)*(1+2*r2);

p4=p*pow(1+r1,5);

p5=p*pow(1+r0/4,4*5);

printf("p1=%f\n",p1);

printf("p2=%f\n",p2);

printf("p3=%f\n",p3);

printf("p4=%f\n",p4);

printf("p5=%f\n",p5);

return 0;

}

(2)

#include

int main()

{char c1='C',c2='h',c3='i',c4='n',c5='a';

c1=c1+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5);

return 0;

}

(3)

#include

int main()

{ int x,y;

printf("输入x:");

scanf("%d",&x);

if(x<1) /* x<1 */

{ y=x;

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

}

else if(x<10) /* 1=

{ y=2*x-1;

printf("x=%d, y=2*x-1=%d\n",x,y);

}

else /* x>=10 */

{ y=3*x-11;

printf("x=%d, y=3*x-11=%d\n",x,y);

}

return 0;

}

(4)

#include

#include

int main()

{

int num,indiv,ten,hundred,thousand,ten_thousand,place;

printf("请输入一个整数(0-99999):");

scanf("%d",&num);

if (num>9999)

place=5;

else if (num>999)

place=4;

else if (num>99)

place=3;

else if (num>9)

place=2;

else place=1;

printf("位数:%d\n",place);

printf("每位数字为:");

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

switch(place)

{case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

break;

case 3:printf("%d,%d,%d",hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d\n",indiv,ten,hundred);

break;

case 2:printf("%d,%d",ten,indiv);

printf("\n反序数字为:");

printf("%d%d\n",indiv,ten);

break;

case 1:printf("%d",indiv);

printf("\n反序数字为:");

printf("%d\n",indiv);

break;

}

return 0;

}

(5)

#include

int main()

{

int a,n,i=1,sn=0,tn=0;

printf("a,n=:");

scanf("%d,%d",&a,&n);

while (i<=n)

{

tn=tn+a; /*赋值后的tn为i个 a组成数的值*/

sn=sn+tn; /*赋值后的sn为多项式前i项之和*/

a=a*10;

++i;

}

printf("a+aa+aaa+...=%d\n",sn);

return 0;

}

(6)

#include

int main()

{int i,j,k;

for (i=0;i<=3;i++)

{for (j=0;j<=2-i;j++)

printf(" ");

for (k=0;k<=2*i;k++)

printf("*");

printf("\n");

}

for (i=0;i<=2;i++)

{for (j=0;j<=i;j++)

printf(" ");

for (k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

return 0;

}

五、运行结果及分析

(1)

(2)

(3)

(4)

(5)

(6)

六、结论与体会(在上机程序调试中遇到的问题、采用的解决办法、得到的收获)

通过对C语言进行一个学期的学习后,我对C语言有了初步的掌握,也对C 语言的特点和优点有了更深入的体会。C语言的语言简洁,紧凑,使用方便灵活;运算符丰富,使表达式的类型多样化;数据类型也很丰富,比如字符型,实型,

整型…而且在学习的过程中,我越来越体会到了C语言编程的多样性,从初学的只有一种编法,到后来的渐渐会用不同的语句,不同的结构对同一问题进行编写。而在编程的过程中,问题也是在所难免的,而解决了这些问题之后,我发现自己的技能也随之提升。

我在上机程序调试中遇到的第一个问题,就是在编译和调试结果都正确的情况下,程序却无法运行。后来通过请教老师,解决了这一问题。在运行程序之前,必须先要关闭其他工作空间。否则系统不知道要运行哪一个程序。后来从书上也查到,在编译新文件前,应先用文件-关闭工作区将原有的工作区关闭,以免新文件在原有的工作区进行编译。

之后遇见的问题,是编译正确,但是检查的时候却无法通过。我检查了很多遍,始终找不到语法错误。后来通过请教同学,知道程序运编写必须用英文标点,而不是用中文标点。于是我把所有中文标点都改成了英文标点,程序便可以运行了。

在学习C语言的过程中,我渐渐体会到了培养能力的重要性。C语言程序设计并不是一门纯理论课程,而是一门应用的课程。我们一定要自己动手编程,将所学的理论知识应用到编程当中去。这就要求我们掌握良好的理论基础,在此基础上,努力提高自己的能力。

除此之外,解题思路的重要性也是不可小视的。要学习怎样去设计一个算法,构造一个程序。算法是程序的灵魂。

总之,C语言这门课让我受益良多。我渐渐掌握了如何去设计一个程序。分析问题的能力也有所提高。C语言的学习,为我们以后学习C++等其他语言打下了坚实的基础。

第4章程序设计三种基本结构

第4章程序设计三种基本结构 一、选择题: 【例1】(2002年4月)下面的程序的输出结果是( )。#include main( ) { int i=010,j=10; printf("%d,%d",++i,j--); } A. 11,10 B. 9,10 C. 010,9 D. 10,9 【答案】B (i的值是以八进制定义的) 【例2】(2002年4月)以下的程序的输出结果是( )。main( ) { int a=5,b=4,c=6,d; printf(("d\n",d=a>b?)(a>c?a:c):(b)); } A. 5 B. 4 C. 6 D. 不确定 【答案】C 【例3】(2002年4月)以下程序的输出结果是( )。

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); } A. 1 B. 0 C. 非0的数 D. -1 【答案】A 【例4】(2002年4月)以下程序的输出结果是( )。 main( ) { char x=040; printf("%o\n",x<<1); } A. 100 B. 80 C. 64 D. 32 【答案】A 【例5】(2002年9月)已知i,j,k为int型变量,若从键盘输入:1,2,3< 回车>,使i的值为1、j的值为2,k的值为3,以下选项中正确的输入语句是(C )。 A. scanf("---",&I,&j,&k); B. scanf("%d %d %d",&I,&j,&k); C. scanf("%d,%d,%d",&I,&j,&k); D. scanf("i=%d,j=%d,k=%d",&I,&j,&k);

作文布局三种基本结构

作文构思布局的三种基本结构 一.作文的构思(结构布局)法 构思是指在动笔作文前,对文章的内容、表达方式和结构层次的总体设计。就是我们平常所说的先写什么、后写什么、哪里详写、哪里略写的问题。它是作文过程中的一种创造性的复杂的思维活动。具体地说,文章构思就是对选材过程中所选的材料作分解和组装,使之有序化、审美化的思维过程,因为每个人的大脑的思维方式不同,所以分解和组装的方式也呈现多种多样,这里介绍几种大家常用的构思法,以打开同学们构思的路子。 1、一字(词)贯穿构思法 一字(词)贯穿,是提在构思文章时,选择一个和中心思想紧密相关的关键字或词连接文章的所有材料,从而形成文章的骨架。如《背影》一文,就是采用一词贯穿构思法,文章从始至终以“背影”一词不达意贯穿全文,使读者深深体会到一颗慈父心,体会到父子之间的深情。运用此法,要注意文章要扣紧一个字或词来写,只有这样,才有条件以此为辐射点,进行多角度的思维,才有利于有层次地、深入地进行描述或抒情,使文章丰满而有韵味。如微笑,目光,声音等类的写作。 2、排比组合构思法 排比组合,是指在题目规定的范围内,根据表达主题的需要,选择几个生动的典型的人物、事件或景物的片断排比组合成文来表现一个主题的构思方法。用这种方法构思的记人、叙事、写景的文章,可以在较短的篇幅内,多角度、多侧面地表现人物、叙述事件、描写景物。 运用排比组合的构思法需要注意的是: A、所组合的片断的形式要统一:或者是人物形象的一系列片断组合,或者是事件的一系列片断组合,或者是景物的一系列片断组合等。 B、片断本身的叙述必须是具体的、生动的、形象的。 C、片断可以是横向排列,也可以是纵向排列。横向的排列要安排好主次、实虚的关系,纵向的排列要注意时间的先后顺序。 格式分类: A并列式排比B递进式排比(如《感受自然》和《我读三国》)C小标题或镜头式排比 3、纵横对比构思法 纵横对比,是指将对立的人物、事件、景物放在同一篇文章中来叙写的一种构思方法。运用这种方法构思,形成鲜明的反差,给读者留下极深的印象。或动静对比,或美丑相映,或真假相衬,或善恶对立,或冬夏对比,或天地对照等等。如通过两篇日记或书信写同一件事中的两个不同人的相同或不同的感受。 我的视线 ――记一把蓝色的雨伞 我的视线,这么久以来都不得不为一把蓝色的雨伞所牵绊…… 那蓝色,明彻如天空。 小时候的那些下雨天,妈妈总撑着一把蓝色的雨伞来学校接我,我的头顶是一片蓝色,肩膀也笼罩于一片蓝色之中,触目所及都是一片蓝色的无雨的天空。 后来的一个下雨天,矮小的我抬头和妈妈说话,却发现妈妈的那一半天空是一片阴沉的灰色,风夹杂着雨滴,落入妈妈灰色的天空,妈妈的肩膀湿了,额前的头发也湿了,而我,依旧置身于一片蓝色的无雨的天空。

C语言之循环队列的基本操作

1):循环队列的基本操作 #include #include #define OK 1 #define ERROR 0 typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等typedef int QElemType; #define MAXQSIZE 100 // 最大队列长度(对于循环队列,最大队列长度要减1) typedef struct { QElemType *base; // 初始化的动态分配存储空间 int front; // 头指针,若队列不空,指向队列头元素 int rear; // 尾指针,若队列不空,指向队列尾元素的下一个位置 }SqQueue; Status InitQueue(SqQueue &Q) { Q.base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType)); if(!Q.base) { return ERROR; } Q.front=Q.rear=0; return OK; } Status EnQueue(SqQueue &Q,QElemType e) { if((Q.rear+1)%MAXQSIZE==Q.front) return ERROR; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXQSIZE; return OK; } Status DeQueue(SqQueue &Q, QElemType &e) { if(Q.front==Q.rear) return ERROR; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; return OK; }

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

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 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/Save F2 7 下列各种选择结构的问题中,最适合用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<0 y=|0 x=0 x>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次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() 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*

顺序队的基本操作

上机实验报告 学院:计算机与信息技术学院 专业:计算机科学与技术(师范)课程名称:数据结构 实验题目:顺序队的基本操作 班级序号:师范1班 学号: 2731 学生姓名:邓雪 指导教师:杨红颖 完成时间: 2015年12月25号

一、实验目的: 1.熟悉掌握队的定义、结构及性质;? 2. 熟练掌握循环队列的操作及应用,掌握循环队列的入队和出队等基本操作。? 3. 加深对队列结构的理解,逐步培养解决实际问题的编程能力 二、实验环境: Windows Microsoft Visual c++ 三、实验内容及要求: 掌握队列的概念及性质,并建立顺序队,实现如下功能: 1.建立一个顺序队 2.输出队 3.求队长 4.判队空 5.取队头 6.入队 7.出队 8. 清空栈 四、概要设计: 1、通过循环,由键盘输入一串数据。创建并初始化一个顺序队。 2、编写实现相关功能函数,完成子函数模块如下。 3、调用子函数,实现菜单调用功能,完成顺序表的相关操作。

#include <> #include <> #define maxsize 1024 typedef int datatype; //定义结构体 typedef struct { datatype data[maxsize]; int front,rear; }sequeue; sequeue *sq; //建立顺序队 sequeue *SET() { sequeue *sq; datatype x; sq=(sequeue *)malloc(sizeof(sequeue)); sq->front=maxsize-1; sq->rear=maxsize-1; printf("请输入要存入的结点值(以0结尾)\n"); scanf("%d",&x); while(x!=0) { sq->rear=(sq->rear+1)%maxsize; sq->data[sq->rear]=x; scanf("%d",&x); } printf("顺序队输入成功\n\n"); return sq; }

vb三种基本结构练习题

vb三种基本结构练习题 1、计算圆的面积(顺序结构) dim r,s,c as single r=inputbox("输入r的值") s=3.14*r*r c=2*3.14*r print s print c 2、小明去买电池,2.5元一节,买电池超过10节,超出的部分按八折出售。输入小明买电池的数量,输出小明应付的钱数。(选择语句) dim a as integer dim q as single a=inputbox("输入小明买的电池数") if a>10 then b=25+(a-10)*2.5*0.8 else b=a*2.5 end if print b 3、求1+2+3+4+……+100的和。(循环语句) dim i,sum as integer for i=1 to 100 sum=sum+i next i print sum 4、输入数字n,求n!(n!=1*2*3*……*n)(循环语句) dim i,sum,n as long n=inputbox("输入n的值") sum=1 for i=1 to n sum=sum*i next i print sum

1、在窗体上任意位置画一个文本框和一个命令按钮,编写程序,当用户单击命令按钮时,文本框移动到窗体的左上角,并且文本框的大小是原来的2倍。 2、在窗体上任意位置画一个文本框和一个命令按钮,设置窗体的标题属性为“信息窗口”;命令按钮的标题属性为“确定”。编写程序,当用户单击命令按钮时,在文本框中显示“包头师范学院”,要求字体为隶书、加粗、加下划线、字号为20、颜色为红色。 3、在窗体上任意位置画两个命令按钮,分别设置它们的标题属性为:加载图片、显示信息。编写程序,当用户单击第一个命令按钮时,在窗体上加载一幅图片(图片自定)。当用户单击第二个命令按钮时,在窗体上打印信息“包头师范学院“。 4、例1: 在窗体上部设置一个文本框,文本框的下面设置 3 个命令按钮,其中左边按钮中标有“单击此按钮”,中间按钮中标有“清除”,右边按钮中标有“程序结束”。当程序运行时,用鼠标单击左边按钮时,屏幕上部的文本框中显示“欢迎使用vb 6.0”;如果单击中间按钮,则清除文本框中显示的内容;而如果单击右边的按钮,则结束程序。 5、例2 请根据题目要求,设计VB应用程序: 1、在窗体的上方并排分别创建一个标签控件label1和一个文本框控件 text1; 要求:①窗体的标题命名为“个人简介”、窗体背景颜色为黄色。 ②标签和文本框中显示的字体为隶书、样式为斜体、字体大小为三号的红色字。 2、在两个控件的下方并排创建两个命令按钮控件command1、command2,分别命名为:“姓名”、“单位”。 3、请编写事件过程代码,使得程序运行时,当鼠标按下“姓名”按钮时,将在标签中显示你的名字;当鼠标按下“单位”按钮时,将在文本框中显示你现在所在的系、级、班。 4、完成以上操作后以V1为窗体名保存在D盘自己的文件夹下 上机练习三 1、在窗体上画一个文本框控件,要求运行时在文本框中显示信息“包头师范学院”(form-load事件)。当用户在文本框中选中任意数量的字符时,在窗体上显示所选中的字符数、选中字符数的首字符数及选中的字符内容。 2、在窗体上画两个文本框控件,先在属性窗口中删除两个文本框中的初始text 属性值。要求当程序运行时,当在文本框1中输入任意一个字符时,同时在文本框2中显示出来,同时也在窗体中显示出来。 3、实现“减法器”功能。

实验二 栈与队列操作实验题目

实验二栈与队列操作 实验目的: (1)理解栈与队列的结构特征和运算特征,以便在实际问题背景下灵活运用。 (2)了解复杂问题的递归算法设计。 本次实验中,下列实验项目选做一。 1、顺序栈的基本操作 [问题描述] 设计算法,实现顺序栈的各种基本操作 [基本要求] (1)初始化栈s。 (2)从键盘输入10个字符以$结束,建立顺序栈。 (3)从键盘输入1个元素,执行入栈操作。 (4)将栈顶元素出栈。 (5)判断栈是否为空。 (6)输出从栈顶到栈底元素。 要求程序通过一个主菜单进行控制,在主菜单界面通过选择菜单项的序号来调用各功能函数。 2、链栈的基本操作 [问题描述] 设计算法,实现链栈的各种基本操作 [基本要求] (1)初始化栈s。 (2)从键盘输入10个字符以$结束,建立带头结点的链栈。 (3)从键盘输入1个元素,执行入栈操作。 (4)完成出栈操作。 (5)判断栈是否为空。 (6)输出从栈顶到栈底元素。 (7)输出链栈的长度。 要求程序通过一个主菜单进行控制,在主菜单界面通过选择菜单项的序号来调用各功能函数。 3、循环队列的基本操作 [问题描述] 设计算法,实现循环顺序队列的建立、入队、出队等操作。 [基本要求] (1)从键盘输入10个字符以$结束,建立循环队列,并显示结果。 (2)从键盘输入1个元素,执行入队操作,并显示结果。 (3)将队头元素出队,并显示结果。 (4)要求程序通过一个主菜单进行控制,在主菜单界面通过选择菜单项的序号来调用各功能函数。

4、只用尾指针表示的循环链表队列的综合操作 [问题描述] 假设以带头结点的的循环链表表示队列,并且只设一个指针指向队尾元素的结点(注意不设头指针),试编写队列初始化、入队、出队函数。 [基本要求及提示] (1)首先定义链表结点类型。 (2)编写带头结点的循环链表的初始化函数,只用尾指针表示。 (3)编写入队函数、出队函数。 (4)在主函数中编写菜单(1.初始化;2.入队;3.出队;4.退出),调用上述功能函数。 5、用标志域表示队空队满状态的循环队列的综合操作 [问题描述] 要求循环队列不损失一个空间全部都得到利用,设置一个标志域tag,以0和1来区分当队头与队尾指针相同时队列状态的空和满,试编写与此结构相对应的入队和出队操作。 [基本要求及提示] (1)教材中为区分当队头与队尾指针相同时队列状态的空和满,以牺牲一个空间的代价来实现的,空:Q->front==Q->rear,满:(Q->rear+1)%MAXSIZE==Q->front。 (2)本题不损失一个空间全部都得到利用,为此如下定义循环队列类型: Typedef struct { QueueElementType element[MAXSIZE]; int front; int rear; int tag; }SeqQueue; 此时,循环队列空和满的条件分别为: Q->front==Q->rear&&tag==0 和 Q->front==Q->rear&&tag==1 (3)编写入队函数、出队函数。 (4)在主函数中编写菜单(1.入队;2.出队;3.退出),调用上述功能函数。 6、利用辅助数组进行栈的逆置 [问题描述] 利用辅助栈将栈中的元素逆置。 [基本要求及提示] 在主函数中编写菜单(1.入栈;2.出栈;3.逆置;4.退出)调试运行程序。 7、利用辅助栈进行队列的逆置 [问题描述] 利用辅助栈进行队列元素逆置。 [基本要求及提示] 在主函数中编写菜单(1.入队;2.出队;3.逆置;4.退出)调试运行程序。 8、Hanoi塔问题

三种基本结构流程图

三种基本结构流程图 1.顺序结构 图1 顺序结构N-S流程图 2.选择结构 if语句的三种形式 (1)形式一:if(表达式)语句; 该形式表示的是单分支选择结构,其N-S流程图如图2所示: 图2 形式一N-S流程图 (2)形式二:if(表达式)语句1; else 语句2; 该形式表示的是双分支选择结构,其N-S流程图如图3所示: 图3 形式二N-S流程图 (3)形式三:if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; …… else if(表达式n-1)语句n-1; else 语句n; 该形式表示的是多分支选择结构,其N-S流程图如图4所示: 图4 形式二N-S流程图

◆ switch 语句 多分支选择的问题,可以使用嵌套的if 语句解决。但在某些情况下,使用switch 语句可能更为方便。switch 语句的一般形式是: switch (表达式) { case 常量表达式E1: 语句组1; break ; case 常量表达式E2: 语句组2; break ; …… case 常量表达式En : 语句组n ; break ; default :语句组n+1; } 图5 switch 语句N -S 流程图 3.循环结构 ◆ while 语句 (1)一般形式 While (表达式) 循环体语句; (2)N -S 流程图如图6所示: 图6 while 语句N -S 流程图 ◆ do-while 语句 (1)一般形式 do{ 循环体语句; }while (表达式); (2)N -S 流程图如图7所示: 图7 do-while 语句N -S 流程图 ◆ for 语句

实验4顺序循环队列基本操作

实验4: 顺序循环队列基本操作 一、实验目的 1.熟悉并能实现顺序循环队列的定义和基本操作。 2.了解用队列解决实际应用问题。 二、实验要求 1.进行队列的基本操作时要注意队列“先进先出”的特性。 2.复习关于栈操作的基础知识。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容 1.任意输入队列长度和队列中的元素值,构造一个队列,对其进行清空、插入新元素、返回队头元素以及删除队头元素操作。 2.约瑟夫环的实现:设有n个人围坐在圆桌周围,现从某个位置i 上的人开始报数,数到m 的人就站出来。下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而来,所以通常称为 Josephus 问题。 例如:当n=8,m=4,i=1时,得到的新序列为: 4,8,5,2,1,3,7,6 编写程序选择循环队列(也可换为自己熟悉的数据结构)作为存储结构模拟整个过程,并依次输出出列的各人的编号。 3.(选做实验)设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 程序编写提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

三种基本语言结构

利用机器人平台认识三种基本语言结构 一、设计思路 信息技术基础模块中的“尝试程序开发”一节涉及到了程序设计的三种结构,程序设计的三种结构是程序设计中的基本知识点。程序的讲解是比较抽象的,学生听着也比较枯燥乏味。本节课的设计利用智能机器人仿真软件进行讲解,利用该软件既有图形化编程界面,又有相对应的代码窗口的特性,让学生在生动形象利于接受的学习活动中了解三种程序结构,能够使用图形化编程环境实现顺序、分支、循环三种控制结构。 仿真软件如图:左侧为模块库;中间为流程图编辑区;右侧为代码显示区。 二、教材分析 “尝试程序开发”一节是信息技术基础中的第四单元中的一节,这一节的内容是让学生能够认识程序设计的三中结构,了解三种程序结构执行的过程,读懂简单的程序,为后续开设算法与程序设计选修课程做知识铺垫。 三、学生情况分析 本节课之前,学生掌握了仿真软件的使用,对程序设计有了一定的了解,学会了使用仿真软件设计机器人走直线,转弯,停止,发音的设计,并同时可视化的界面看到了自己设计的成果。但是,程序设计中的抽象化和理论化会减淡学生对程序设计的热情,这就需要教师充分营造教学情境,合理安排任务,保持学生的学习热情和兴趣。 四、教学目标 知识与技能:能够清晰的绘制出顺序结构、循环结构、分支结构的流程图,能够读懂程序执行的流程,能够比较三种基本结构的异同; 过程和方法:通过演示法、讲授法、任务驱动和小组合作等方法,学生能掌握流程

图的设计思路,能绘制流程图; 情感态度与价值观:培养合作交流的意识,提高分析、解决问题的能力;促进学生对程序语言的学习兴趣。 五、教学重、难点 教学重、难点:掌握流程图的设计思路;理解三种程序结构的执行过程。 六、教学资源: 机器人仿真软件、视频材料、PPT、相关学习材料。 教学用时:90分钟

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

顺序结构、选择结构和循环结构的程序设计 请写出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 C 有一段程序为:while(表达式) 语句1;语句2; …… do-while语句中while 在C C C C C C语言中,语句x=!a==b 3个关于C语言的结论:可以用while语句实现的循环一定可以用for语句实现;可以用for语句实现的循环一定可以用while语句实现;可以用do-while C语言程序中,continue C语言中,if和switch C语言中,语句while C语言中,关于scanf C语言中,与语句while(!E C语言程序中,for循环语句中的表达式2为一非零常数且循环体内无break语句及goto 设i是int scanf(“i=%d,f=%f”,&i,&f);为了把100和765.12分别赋给i和 f

VB程序设计试题及答案一

V B程序设计试题及答案(一) 一、单选题 1. VB6.0是一种面向B 的编程环境。 (A) 机器(B) 对象 (C) 过程(D) 应用 2. 要使FormI窗体的标题栏显示"欢迎使用VB",以下D 语句是正确的。 (A) Forml.Caption=“欢迎使用VB” (B) Forml.Caption='欢迎使用VB' (C) Forml.Caption=欢迎使用VB (D) Forml.Caption="欢迎使用VB" 3. 若要使命令按钮不可操作,要对A 属性进行设置。 (A) EnabIed (B)Visible (C) Backcolor (D)Caption 4. 如果在窗体上已经创建了一个文本框对象TextI,可以通过C 事件获得输入键值的ASCII码。 (A) Change (B) LostFocus (C) KeyPress (D) GotFocus 5. 下面A 是合法的变量名。 (A) X_yz (B) 123ab。(C) integer (D) X-Y 6. 以下关系表达式中,其值为False的是A 。 (A) "ABC">"AbC" (B) "女">"男" (C) "BASIC"=UCase("basic) (D) "123"<"23" 7. 为了给x、y、z三个变量赋初值1,下面正确的赋值语句是A 。 (A) x=1:y=1:z=1 (B) x=1,y=1,z=1 (C) x=y=z=1 (D) xyz=1 8. VB提供了结构化程序设计的三种基本结构,三种基本结构是D 。 (A)递归结构、选择结构、循环结构 (B)选择结构、过程结构、顺序结构 (C)过程结构、输入输出结构、转向结构 (D)选择结构、循环结构、顺序结构 9. 下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是 D 。 (A) If sex="男" And age=4O And InStr(duty,"教授")>O Then n=n+l (B) If sex="男" And age=4O And (duty="教授" Or duty="副教授") Then n=n+l (C) If sex="男" And age=4O And Right(duty,2)="教授" Then n=n+l (D) If sex="男" And age=4O And duty="教授" And duty="副教授" Then n=n+l 10.下列关于Do…Loop循环结构执行循环次数的描述正确的是D 。 (A) Do While…Loop循环和Do…Loop Until循环至少都执行一次 (B) Do While…Loop循环和Do…Loop Until循环可能都不执行 (C) Do While…Loop循环至少执行一次和Do…Loop Until循环可能不执行 (D) Do While…Loop循环可能不执行和Do…Loop Until循环至少执行一次 11.以下B 是正确的For…Next结构。 (A) For x=1 To Step 10 (B) For x=3 To -3 Step -3 ……

议论文的三种基本结构

议论文的三种基本结构 导读:议论文基本结构 1.并列式: (1)并列分论点: (中心论点——分论点一——分论点二 ——分论点三——结论,照应全文) (2)并列论据:(引论——本论——结论) 2.对照式: 正反论述:(提出中心论点——正面阐述——反面阐述——结论) 3.层进式(递进式) 议论文(一)——层进式结构 层进式的文章一般有三种格式: (一)将中心论点进行分解,分成几个分论点,这些分论点之间的关系是由浅入深、由简单到复杂。层间可用诸如“不仅……而且……”“……况且”等关联词语过渡,同时又以此反映层次间递进的关系。 例:严于解剖自己 1、要不断进步,必须无情地“解剖我自己”。 2、论述如何才能“解剖”好自己。 ①对自己要有自知之明。(这是“解剖”好自己的前提。不了解“病”在哪里,就无从下刀。) ②光有自知之明还不够,还要勇于自我批评。(这是解剖好自己

的途径。不开刀,就无从去“病”。) ③自我批评的勇气来源于对真理的追求和崇高的信念。(这是解 剖好自己的关键。不掌握开刀的规律,刀就开不好,也就难以真正去“病”。) (二)按照“提出问题,分析问题,解决问题”的思路安排论证结构,即围绕中心心论点回答三个问题:①是什么,②为什么,③怎么办。 例:实现心中的理想 每个人心中都有属于自己的天使。何谓“天使”呢?天使就是心 中向往的东西,渴望实现的美好的东西,正如你的理想。要实现心中的理想,必须用心地雕琢心中的天使,用你手上的雕刻刀,把天使雕刻出来,展现出来。“天使”展现了微笑,理想之花绽放着光彩。(是什么) 理想是你在黑暗中指路的明灯,理想是你在迷失方向时的指南针,理想还是你焦急干渴时沁人心脾的清泉,理想是我们人生重要的部分,而人生不断前进的动力是为了实现理想,为了雕琢心中的天使,使天使成型,使理想成型。(为什么) 那要怎样才能实现心中的理想,雕琢心中的天使呢? 实现理想需要坚强的毅力和强大的意志。刘翔,一个代表速度的名字,已经载入田径史册。他从参加110栏比赛开始,就有着与世界短跑名将同台比赛的理想,同时他为实现理想而努力。跨越一道道栏,

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

第二章顺序结构、选择结构和循环结构的程序设计 一、简答 1. 参考书上23页 2. while先判断,后执行,do while先执行,后判断,循环体至少执行一次 3. 参考书上29页 4. continue,结束本次循环 break,结束循环 区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环 二、填空题 1. 顺序结构,选择结构,循环结构 2. if else 和switch 3. 语句1 ,语句2 4. 零 5. break ,continue 6. 7 ,0 7. ? : ,双目 三、单选 1-5 ABDCC 6-10 DBACA 11-15 CBCDA 16-20 ACBAD 21-25 ADCBB 26-29 BCCA 四、程序分析题 1. end 1end 2. num%10 max = t 3. j%3 4. 99 五、编程题 1. #include 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 #include 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 int main(){ float money , lixi ; int year ; scanf("%f %d" , &money , &year) ; switch(year) { case 1 : lixi = money * 0.63 / 100 ;

C语言习题:顺序、选择、循环

顺序结构程序设计 2.3.1 要点导读 () 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include <> void main() 、 { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 - 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。

#include <> void main() { int a=732; ) printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ , 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。 A)□67B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include <> #define a void main() { printf(“%f\n”,a); @ printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为。 %是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,

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