《程序设计基础C》
实
验
报
告
教学班级:_______ 学号:__________ 姓名:___________ 课程教师:______________ 实验辅导教师:_____________
重庆理工大学计算机学院
2012年2月
实验5 循环程序设计
教学班级:_______ 学号:__________ 姓名:___________
实验日期:___________ 实验地点:_________(机房)
实验成绩:___________
一、实验目的
(1) 了解C语言循环结构的使用范围。
(2) 学会正确使用逻辑运算符和逻辑表达式。
(3) 熟练掌握C语言的三种循环结构:whilc语句、do……whilc语句、for语句的特点和使用方法。
(4) 能够编写一些有实际应用意义的循环结构程序。
二、实验内容
1.基本内容
题目1:计算1-3+5-7+......-99+101的值。(提示:注意符号的变化)#include
void main()
{ int i,t=1,s=0; /* t标识正负符号*/
for (i=1;i<101; i+=2) /*error*/
{ s+=i*t;
t= -t;
}
printf("s=%d\n",s);
}
①请改错,并运行程序。
②分别用do……while语句和while语句改写以上程序。
题目2:分析程序,运行时输入:24579
#include
void main()
{ int c;
while((c=getchar())!='\n')
{ switch(c-'2')
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
case 4: putchar(c+2);break;
default:putchar(c);
}
}
printf("\n");
}
题目3:下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。
#include
void main()
{
int i,j;
for(i=0;__________________ ;i++)
{ j=i*10+3;
if(__________________)
continue;
printf("%4d",j);
}
}
题目4:编程输出:用0~4任意组成无重复数字的三位数?都是多少?每行输出10个数。
#include
for(i=1;i<5;i++)/*以下为三重循环*/ for(j=0;j<5;j++) for (k=0;k<5;k++) {
if (__________________) /*确保i 、j 、k 三位互不相同*/ {
printf("%6d",i*100+j*10+k);
count++; if(________________)
printf("\n");
} }
printf("\n");
}
题目5:根据公式 ......!
31!21!111++++
=e 求e 的近似值,精度要求为10-6。 题目6:输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。
2.选择内容
题目7:打印出如下图案
*
* * * * * * * * * * * * * * * * * *
* * * *
* *
#include
void main()
{int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=8-i;j++) //理解数字8的作用
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n");
} /* 上面的程序输出上三角形*/
/* 下面的程序输出下三角形*/ for(i=3;i>=1;i--)
{for(j=1;j<=8-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n"); }
}
①运行以上程序,验证实验结果。
②模仿上面程序,打印出如下图案
1
2 2 2
3 3 3 3 3
三、实验结果(用截图说明)
四、调试心得(选作)
实验6 数组实验
教学班级:_______ 学号:__________ 姓名:___________ 实验日期:___________ 实验地点:_________(机房)
实验成绩:___________
一、实验目的
(1) 理解数组的特点及其与普通变量的区别及特点;
(2) 掌握一维数组的定义、赋值和输入输出的方法;
(3) 掌握二维数组的定义、赋值和输入输出的方法;
(4) 掌握字符数组和字符串函数的使用;
(5) 掌握与一维数组和字符数组有关的程序与算法;
(6) 理解与二维数组有关的程序与算法。
二、实验任务
1.基本内容
【题目1】读程序,写结果。
#include
void main()
{
int i,s=0,a[10]={1,2,3,4,5,6,7,8,9,10};
for(i=4;i<7;i++)
s=s+a[i];
printf("s=%d\n",s);
}
【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。
##include
#define N 8
void main()
{
int i, a [N];
for(i=0; i scanf("%d",_____________); for(i=0; i { if(_____________) printf("\n"); printf("%11d",_________); } printf("\n"); } 【题目3】用简单选择法对10个整数排序,将程序补充完整。 #define N 10 #include void main() { int i,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6}; for (i=0;i { min=i; for (j=i+1;______________;j++) if (a[min]>a[j]) min=j; if(min!=i) {_______________________________________} } printf("\n 排序结果为:\n"); for (i=0;i printf("%5d",a[i]); printf("\n"); }