百年教育职业培训中心 百年教育学习服务平台
题库试卷

江苏开放大学《计算机科学导论》实验任务书和实验报告2——程序设计(1)

来源: 更新时间:

江苏开放大学形成性考核平时作业参考答案标准答案关注【江开搜题】微信公众号发送题目获取标准答案江苏开放大学《计算机科学导论》实验任务书和实验报告2——程序设计江苏开放大学实验报告

江苏开放大学  形成性考核  平时作业  参考答案   标准答案  

关注【江开搜题】微信公众号  发送题目获取标准答案

江苏开放大学《计算机科学导论》实验任务书和实验报告2——程序设计

江苏开放大学实验报告

学   号:

姓   名:

课程代码:    060212

课程名称:《计算机科学导论》

评阅教师:

实验任务一  选择结构程序设计

一、实验学时

2学时

二、实验目的

(一)掌握C语言关系表达式和逻辑表达式的运算和使用;

(二)正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。

三、预习要求

(一)关系运算符和关系表达式、逻辑运算符和逻辑表达式;

(二)if语句的三种形式(单分支、双分支、多分支),以及if语句的嵌套;

(三)switch语句的形式。

四、实验内容

输入下面两段程序并运行,掌握case语句中break语句的作用。

1./*  c3-2.c  */                   /*  c3-3.c  */

/* 不含break的switch */        /* 含break的switch */

#include "stdio.h"               #include "stdio.h"

void main( )                     void main( )

{ int a,m=0,n=0,k=0;       { int a,m=0,n=0,k=0;

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

switch(a)         switch(a)

{ case  1: m++;         { case 1: m++; break;

case  2:           case 2:

case  3: n++;           case 3: n++; break;

case  4:           case 4:

case  5: k++;           case 5: k++;

}                                     }

printf("%d,%d,%d\n",m,n,k);       printf("%d,%d,%d\n",m,n,k);

}                                    }

分别从键盘上输入1、3、5,写出程序运行的结果。

/*  c3-2.c  */

/* 不含break的switch */

/*  c3-3.c  */

/* 含break的switch */

(二)完善程序,从键盘上输入x的值,按下式计算y的值。

编程提示:注意逻辑表达式的正确表达方法,数学中的1≤x<10应使用C语言的逻辑表达式(x>=1 && x<10)来表示。

下面是用多分支选择结构实现本题的程序结构:

/* c3-4.c  if 语句实现的多分支结构 */

#include "stdio.h"

void main( )

{ 定义变量;

输入x;

if (x<1)y=x;            //按y=x为变量y赋值;

else if(<10) y=2*x-1;     //按y=2x-1为变量y赋值;

else

y=3*x-11;     //按y=3x-11为变量y赋值;

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

}

五、实验注意事项

(一)C程序中表示比较运算的等号用“==”表示,赋值运算符用“=”表示,不能将赋值号“=”用于比较运算。

(二)控制表达式是指任何合法的C语言表达式(不只限于关系或逻辑表达式),只要表达式的值为“非零”,则为“真”,“零”则为“假”

(三)在if语句的嵌套结构中,else与if的配对原则是:每个else总是与同一个程序中、在前面出现的、而且距它最近的一个尚未配对的if构成配对关系。

(四)case及后面的常量表达式,实际仅是起标号作用。控制表达式的值与某个情况常量一旦匹配,那么,在执行下面语句的过程中,只要不遇到break语句,就一直执行下去,而不再判别是否匹配。允许出现多个“case”与一组语句相对应的情况。

六、思考题

(一)下面程序的功能是实现表达式z=( x>=y ? x : y),请将程序填写完整。

/*  分支结构的程序  */

#include "stdio.h"

void main( )

{   int x, y, z;

printf("Please input x,y:");

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

if ( x>=y) z=x;

else z=y;

printf("z=%d ",z);

}

(二)下面程序的运行结果为__if ( x>=y) z=x__。

实验任务2  循环结构程序设计

一、实验学时

2学时

二、实验目的

(一)掌握用while,do-while,for语句实现循环的方法;

(二)掌握在设计条件型循环结构的程序时,如何正确地设定循环条件,以及如何控制循环的次数。

(三)掌握与循环有关的算法。

三、预习要求

预习教材有关while,do-while,for语句的语法格式,并能通过这三种语句编写、调试单层循环结构的程序。

四、实验内容

(一)分析并运行下面程序段,循环体的执行次数是____。

int a=10,b=0;

do { b+=2;a-=2+b;}  while(a>=0);

(二)当执行以下程序段时,循环体执行的次数是___。

x = -1;

do { x=x*x;} while( !x);

(三)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。

/*  c4-6.c   计算1到100之间的奇数之和及偶数之和  */

#include "stdio.h"

void main( )

{ int a,b,c,i;

a=0,c=0;             /*变量初始化*/

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

{ a+=i;                      /*变量a存放偶数的和*/

b=i+1;

c+=b;                     /*变量c存放奇数的和*/

}

printf("sum of evens is %d\n",a);

printf("sum of odds is %d\n", c);

}

(四)编程打印出所有的“水仙花数”,所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。如153=13+33+53。

编程提示:定义一个变量作为循环变量,再定义3个变量分别存放三位数的每位数字,在循环体中将一个三位数拆分成个位、十位、百位后判断循环变量的值是否为水仙花数,如果是则输出,否则不输出。程序的基本结构为:

/*  c4-7.c   打印出所有的“水仙花数”  */

#include "stdio.h"

void main( )

{  //定义4个整型变量;

int a,b,c,j;

for( j=100; j<=999; j++ )

{  a=j/100;             /*分离出百位数*/

b=j/10-a*10;          /*分离出十位数*/

c=___________;       /*分离出个位数*/

if(j==a*a*a+b*b*b+c*c*c)

输出j ;

}

printf("\n");

}

(五)以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请将程序补充完整。

/*  c4-8.c  求最大值最小值程序  */

#include "stdio.h"

void main( )

{ float x,amax,amin;

scanf("%f",&x);

amax=x;

amin=x;

while ( x>=0 )

{ if (x>amax) amax=x;

if (x<=amin ) amin=x;

scanf("%f",&x);

}

printf("\namax=%f\namin=%f\n",amax,amin);

}

提交时间:2023

电话咨询