1、 程 序 设 计 基 础 C实验报告教学班级:_ 学号:_ 姓名:_课程教师:_ 实验辅导教师:_重庆理工大学计算机学院 2012 年 2 月程序设计基础 C 实验报告1实验 6 循环程序设计教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、实验目的1. 了解 C 语言循环结构的使用范围。2. 学会正确使用逻辑运算符和逻辑表达式。3. 熟练掌握 C 语言的三种循环结构:whilc 语句、do_while 语句、for语句的特点和使用方法。4. 能够编写一些有实际应用意义的循环结构程序。二、实验内容1基本内容题目 1:编写一个自然数 1 至 n 的累加程序(如
2、:1+2+3+n) 。 (使用 goto 语句)(文件名:f1.cpp): #includevoid main() int i,a,n;a=i=0;printf(“n=“);scanf(“%d”,E: i+;a+=i;if (ivoid main()题目 2:计算 1357 99+101 的值 (提示:注意符号的变化) (文件名:f2.cpp )#includevoid main() int i,t=1,s=0; /* t 标识符号 */for (i=1;ivoid main() int i=1,n;long s=1;scanf(“%d“,while(i) s*=i; i+;if(in) br
3、eak;printf(“s=%ldn“,s);程序运行结果是: 不使用 break 语句,此程序应如何修改? 程序设计基础 C 实验报告3题目 4:下面程序的功能是打印 100 以内个位数为 6 且能被 3 整除的所有数,选择合适的语句填入该空格中。 (文件名:f4.cpp)#includevoid main() int i,j;for(i=0; ;i+) j=i*10+6;if( )continue;printf(“%d“,j);题目 5:编写一个把小写字母转换为大写字母的程序。要求敲入”/”,则停止转换。(文件名:f5.cpp)#includevoid main() char c,d;pu
4、tchar();do c=getchar();c=(a); while(c!=/); /* 判断是否是”/” ,则停止转换 */运行程序,输入 2AabcEfgAB/程序运行结果是: 将第 9 行改为:if (c=n)再运行程序,输入 2AabcEfgAB/程序运行结果是: 2选择内容题目 6:根据公式 求 e 的近似值,精度要求为 10-6!312!1e(文件名:f6.cpp)程序设计基础 C 实验报告4include void main() int i;double e,n;e=1.0; n=1.0;for (i=1;n=1e-6;i+) e+=n; printf(“e=%fn”,e);完
5、善程序,运行结果: 题目 7:打印出如下图案(文件名:f7.cpp)#include void main()int i,j;for(i=1;i=1;i-)for(j=1;jvoid main()题目 8:编写程序:打印出所有的“水仙花数”。所谓“ 水仙花数 ”是指一个 3 位数,其各位数字的立方和等于该数本身。例如,153 是一个“水仙花数”,因为153=13+53+33。 (文件名:f6.cpp)三、实验结果(用截图说明)四、调试心得(选作)程序设计基础 C 实验报告6实验 7,8 数组实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、 实验目的1.
6、理解数组与普通变量的区别及特点;2. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;3. 掌握字符数组和字符串函数的使用;4. 掌握与数组有关的程序与算法。二、 实验任务1基本内容实验 7:题目 1:阅读以下程序(文件名:g1.cpp)#includevoid main() int i,s=0,a10=0,1,2,3,4,5,6,7,8,9;for(i=3;ivoid main() int k,s,i,a10=1,2,3,4,5,6,7,8,9,10;float ave;for(k=s=i=0;ivoid main() 题目 5:冒泡法对 10 个数排序(从小到大) 。 (文件名:g5
7、.cpp)#include void main() int a10;int i,j,temp;printf(“Please input 10 numbers:n“);for(i=0;iaj+1) temp=aj;aj=aj+1;aj+1=temp;程序设计基础 C 实验报告8printf(“The sorted numbers:n“);for(i=0;i#include void main()char c30;int i,sum=0;gets(c);for(i=0;ivoid main() int i,j,row,col,min;int a34=1,2,3,4,9,8,7,6,-1,-2,0,
8、5;min=a00;row=col=0;for(i=0;i void main() char s20,s120;scanf(“%s”,s);printf(“s=%sn”,s); scanf(“%s%s”,s,s1);printf(“s=%s,s1=%s”,s,s1);puts(“n”);gets(s); puts(s);2选择内容实验 7:题目 6:任意输入 20 个数在一维数组 a 中,求 20 个数的平均值。 (文件名:g6.cpp)程序代码: #includevoid main()题目 7:任意输入 10 个数,判断该哪些是素数,并输出该素数。 (文件名:g7.cpp)程序代码:#inc
9、ludevoid main()实验 8:题目 8:用字符数组存储任意输入的 10 字符,求该 10 字符中最大字符。 (文件名:h8.cpp)程序设计基础 C 实验报告10程序代码: #includevoid main()题目 9:从键盘上任意键入一个 3 行 4 列的矩阵,要求输出其转置矩阵。 (文件名:h9.cpp)程序代码: #includevoid main()题目 10:有 5 个学生,考 3 门功课。求出每一个学生的总分及平均分,统计平均成绩低于 60 分的学生人数。 (文件名:h10.cpp)程序代码:#includevoid main()三、实验结果(用截图说明)四、调试心得(
10、选作)程序设计基础 C 实验报告11实验 9,10 函数实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、 实验目的1. 理解函数定义的方法。2. 掌握函数实参与形参的对应关系,以及”参数传递” 的方式;3. 掌握函数的嵌套调用和递归调用的方法;4. 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。二、 实验任务1基本内容实验 9:题目 1:以下程序是求 3 个数中的最大值(文件名:i1.cpp)#includevoid main() int a,b,c,m;int max(int x,int y); /* 函数声明*/printf(“inp
11、ut a,b,c=“);scanf(“%d,%d,%d”,printf(“m=%dn”,m);int max(int x,int y) /*函数定义*/ int z;z=(xy)?x:y;return z; 完善程序,如果输入 4,2,6,程序运行结果: 程序设计基础 C 实验报告12题目 2:(文件名:i2.cpp )#includevoid main() int a3=0,2,4,6,8,10,12,14,16,sum;int func(int a3); /*函数声明*/sum=func(a);printf(“n sum=%dn”,sum);int func(int a3) /*函数定义*
12、/ int i,j,sum=0;for(i=0;ifloat average(float array10) /* 注意数据类型的一致 */ int i; float aver,sum=0;for (i=0;ivoid main() int number;printf(“请输入一个正整数:n”);scanf(“%d”,if ( )printf(“n %d 是素数:”,number);elseprintf(“n %d 不是素数:”,number);int prime(int number) int flag=1,n;for (n=2; flag=1 int max(int a,int b) int
13、 c;c=ab?a:b;return c;void main() int a=8;printf(“%d”,max(a,b);程序设计基础 C 实验报告14局部变量: 全局变量: 程序运行结果: 题目 5:以下是一个求 1-10 累加和的错误程序,请改正。 (文件名:j5.cpp)#includevoid main() int i,s;for(i=1;i#include void main() void inverse(char str);char str100;printf(“输入字符串:n”);scanf(“%s”,str);inverse(str);printf(“转换后的字符串是:%sn
14、”,str);void inverse(char str) char t;程序设计基础 C 实验报告15int i,j;for (i=0,j=strlen(str); ivoid main()题目 7:在主函数中定义二维数组 A34、B4,用子函数对数组 A34每一行求和,其值放在数组 B4中,在主函数中输出该值。 (文件名:i7.cpp)程序代码: #includevoid main()三、实验结果(用截图说明)程序设计基础 C 实验报告16四、调试心得(选作)程序设计基础 C 实验报告17实验 11 指针实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_
15、一、 实验目的1掌握指针的概念,指针变量的定义和使用。2熟悉和了解 C 语言指针一般设计方法。3学会使用 C 语言指针进行程序设计。4学会使用数组的指针和指向数组的指针变量。5进行简单 C 语言指针语句的设计、调试、编译和运行。二、 实验任务1基本内容题目 1:阅读以下程序。 (文件名:k1.cpp#includevoid main() int x=1,y=2, *p, *q;p=x;q=y; /* error */printf(“x=%d,y=%dn”,x,y);printf(“printf(“p=%d,q=%dn”,p,q);printf(“p=%d,q=%dn”,*p,*q);请改正程序
16、中的错误。预测程序结果,并上机调试运行程序。题目 2:预测程序结果,并上机运行程序验证结果。 (文件名:k2.cpp)#includevoid main() int a=1,3,5,7,9,11,13;int *p=a ;程序设计基础 C 实验报告18printf(“1-%dn“,*p);printf(“2-%dn“,*(+p);printf(“3-%dn “,*+p);printf(“4-%dn “,*(p-);printf(“5-%dn “,*p-);printf(“6-%dn“,*p+);printf(“7-%dn“,+(*p);printf(“8-%dn“,(*p)+);p=print
17、f(“9-%dn “,*p);printf(“10-%dn“,*(+p);p+;printf(“11-%dn “,*p);程序运行结果: 题目 3:提示:静态变量的使用(文件名:k3.cpp)#includevoid main() static int a6=1,2,3,4; /* 静态变量 */int *p,i,s=1;p=a;for(i=0;ivoid main() char a=“abcdef”;char *b=“ABCDEF”;int *p,i;for(i=0;ivoid main() int n1,n2,n3;int *pointer_1,*pointer_2,*pointer_3;
18、void swap(int *p1,int *p2);printf(“请输入三个整数 n1,n2,n3:”);scanf(“%d,%d,%d”,pointer_1=pointer_2=pointer_3=if (n1n2) swap(pointer_1, pointer_2);if (n1n3) swap(pointer_1, pointer_3);if (n2n3) swap(pointer_2, pointer_3);printf(“三个整数为:%d,%d,%dn”,n1,n2,n3);void swap(int *p1,int *p2) int p;p=*p1;*p1=*p2;*p2=p
19、; 程序的功能: 如果输入 4,2,6,程序运行结果: 题目 6:预测程序结果,并上机运行程序验证结果。 (文件名:k6.cpp)#include#include#include void main() char str120, str220, str320;程序设计基础 C 实验报告20void swap(char *p1,char *p2);printf(“请按行输入三个字符串:n“);scanf(“%s“,str1);scanf(“%s“,str2);scanf(“%s“,str3);if (strcmp(str1,str2)0) swap(str1,str2);if (strcmp(s
20、tr1,str3)0) swap(str1,str3);if (strcmp(str2,str3)0) swap(str2,str3);printf(“三个字符串为:n“);printf(“%sn%sn%sn“,str1,str2,str3);void swap(char *p1,char *p2) char *p;p=(char *)malloc(sizeof(char); /malloc 函数:动态分配内存strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);程序的功能: 输入”mcb” , ”bcd”, ”Kbefr”,程序运行结果: 2选择内容题目 7:输入一
21、行字符,找出其中大写字母、小写字母、空格、数字及其字符各有多少?(文件名:k7.cpp)#includevoid main() int cle=0,sle=0,di=0,wsp=0,ot=0,i;char *p,s100=0;printf(“请输入一行字符:”);i=0;while (si=getchar()!=n) i+;p=while (*p!=0) if (Avoid main()题目 9:通过键盘输入 10 整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中,用指针的方法(即用指针变量)进行。程序代码:#includevoid main()程序设计基础 C 实验报告22题目 10:用字符数组存储任意输入的 10 字符,在子函数中把该字符数组的小写字母转换成大写字母,用指针的方法(即用指针变量)进行。程序代码:#includevoid main()三、实验结果(用截图说明)四、调试心得(选作)