C语言程序设计实验报告2
- 格式:docx
- 大小:241.88 KB
- 文档页数:11
程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。
其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。
掌握了c语言,可以说你就掌握了很多门语言。
学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。
所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。
同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。
在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。
在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。
这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。
比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。
北京电子科技学院(BESTI)实验报告课程:程序设计基础班级:姓名:学号:成绩:指导教师:张晓昆实验日期:实验密级:预习程度:实验时间:15:30~18:30仪器组次:必修/选修:必修实验序号: 2实验名称:函数编程练习实验目的与要求:主函数通常只处理输入和输出;掌握定义函数的方法;掌握函数实参与形参的对应关系,以及“值传递”的方式;掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法,、了解函数的嵌套调用方法和递归调用方法。
观察堆栈窗口call stack,注意函数调用过程堆栈的动态变化。
有兴趣的同学可以将几个函数分别放到不同的.C文件中,分别编译,再利用Project建立工程文件,然后连接执行,观察结果。
实验内容素数(Prime Number),又称为质数,它是不能被1和它本身以外的其他整数整除的正整数。
按照这个定义,负数、0和1都不是素数,而17之所以是素数,是因为除了1和17以外,它不能被2~16之间的任何整数整除。
任务1:试商法是最简单的判断素数的方法。
用i=2~m-1之间的整数去试商,若存在某个m能被1与m本身以外的整数i整除(即余数为0),则m不是素数,若上述范围内的所有整数都不能整除m,则m是素数。
采用试商法,分别用goto语句、break语句和采用设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断m是否为素数,如果m是素数,则按"%d is a prime number\n"格式打印该数是素数,否则按"%d is not a prime number\n"格式打印该数不是素数。
然后分析哪一种方法可读性更好。
1、goto语句#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number!\n", m);}else{printf("%d is not a prime number!\n", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i = 2;int j = 0;if(n < 2){ //若n小于2,返回0值return 0;}if(n == 2){return 1;}loop:if(n % i == 0){ //利用goto语句i++;j++;goto loop;}if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;}else{return 1;}} //子函数结束2、break语句#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number\n", m);}else{printf("%d is not a prime number\n,", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i;int j = 0;if( n < 2 ){ //若n小于2,返回0值return 0;}for(i = 2; i <= n - 1; i++){if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除j++;}if(j > 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;break;}}if( j == 0)return 1;} //子函数结束3、采用设置标志变量并加强循环测试#include <stdio.h>#include <stdlib.h>int IsPrime(int n); //判断是否是素数的函数原型int main(){int m;printf("Please enter a integer:");scanf("%d", &m); //用户输入欲判断的数if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果printf("%d is a prime number\n", m);}else{printf("%d is not a prime number\n,", m);}return 0; //返回0} //主函数结束int IsPrime(int n) //判断是否是素数的函数{int i;int j = 0;if( n < 2 ){ //若n小于2,返回0值return 0;}for(i = 2; i <= n - 1; i++){if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除j++;}}if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0;}else{return 1;}} //子函数结束任务2:用数学的方法可以证明,不能被2取整)之间的数整除的数,一定不能被1和它本身之外的其他任何整数整除。
《c语⾔程序设计》实验报告(实验-2)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
(此文档为word格式,下载后您可任意编辑修改!)《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++6.0一、实验目的:1.了解在Visual C++6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1.在Visual C++6.0环境下输入并运行下面的程序:#include<stdio.(){printf("This is a C program.\n");return0;}2.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include<stdio.(){int a,b,suma=3;b=4;sun=a+b;print("%d+%d=%d\n",a,b,sum);return0;}四、实验结果:1.运行结果(或截图):2.(1)改正后的源程序:(2)运行结果(或截图):五、思考题:1.一个C程序上机的步骤有哪些?答:2.组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。
#include<stdio.(){int2cd=3;floatπ=3.14;char for=′A′;printf("%d,%f,%c\n",2cd,π,for);return0;}2.在Visual C++6.0环境下输入并运行下面的程序,观察分析运行结果。
实验一C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、上机实验及运行结果1、例题实验及运行结果例一:#include"stdio.h"void main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}运行结果为Hello, world !Welcome to the C language world!Everyone has been waiting for.在第一次输入源程序时,由于粗心在printf(“Hello,world!”)后面忘记输入“;”,在编译中检查出来,修改后编译成功。
例二:#include"stdio.h"void main(){int a,b,sum;a=123;b=456;sum=a+b;printf("sum is %d\n",sum);}运行结果为:sum is 579。
一次编译就成功了。
例三:#include"stdio.h"void main(){int a,b,c;int max(int,int);scanf("%d,%d",&a,,&b);c=max(a,b);printf("max=%d",c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}键盘输入“8,9”,屏幕上输出“max=9”例四:#include"stdio.h"void main(){char c1 , c2;c1=97;c2=98;printf("%c %c", c1, c2);}在此基础上1)加一个printf语句,并运行之。
C语言程序设计实验报告1实验目的(1)熟练掌握scanf()/print()库函数的调用格式,正确使用各种格式转换控制副,掌握各种数据的输出输入方法;2(2)掌握getchar()/putchar()库函数的调用格式,以及使用它们进行字符类型数据输出输入的方法。
实验内容(2)输入并运行下面程序:#include<stdio.h>main(){int a,b,c;scanf("%d%d",&a,&b);c=a/b;printf("%d\n",c);}要求:调试通过后,运行该程序。
○1输入值:50 4<回车>,查看并运行结果;○2输入值:50.4 10.8<回车>,查看运行结果;○3输入值:50000 100<回车>,查看运行结果;○4输入值:10 0<回车>,查看运行结果;○5输入值:50,4<回车>,查看运行结果。
分析得到的结果,并说明原因。
(3)从键盘上输入三个小写字母,输出其对应的大写字母(例如:输入:a,b,c,则输出分别为A,B,C)。
要求:○1通过一条scanf库函数语句输入三个小写字母,通过printf函数以空格键分隔字符输出;○2通过getchar函数输入三个小写字母,通过printf函数以域宽为3的规定格式输出;○3通过getchar函数输入三个小写字母,通过putchar函数输出。
3算法描述流程图4.源程序:○1#include<stdio.h>main(){char c1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);printf("%c %c %c\n",c1-32,c2-32,c3-32);}○2#include<stdio.h>main(){char c1,c2,c3;c1=getchar();getchar();c2=getchar();getchar();c3=getchar();printf("%3c,%3c,%3c\n",c1-32,c2-32,c3-32);}○3#include<stdio.h>main(){char c1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(c1-32);putchar(c2-32);putchar(c3-32);}5测试数据:4 56789116运行结果(1)50 4 12Press any key to continue (2)50 .4 10.8Press any key to continue (3)50000 100500Press any key to continue (4)10 0Press any key to continue (5)50,4Press any key to continue (1)a bcA B CPress any key to continue6(2)a,b,c7A,B,CPress any key to continue8(3)abc9ABCPress any key to continue7出现问题及解决方法1.在编写第一个程序,运行的时候发现出现了一个错误,最后才找到是因为c的大小写问题,幸好及时改正。
《C语言程序设计》实验指导及报告书 / 学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2008前言C语言是由贝尔实验室的Dennis Richie于1973年设计并实现的一种程序设计语言,目的是用于写操作系统和复杂的系统程序。
从那时开始,C 语言已经从其位于贝尔实验室的发源地传播到世界各地,它已成为全球程序员的公共语言,并由此诞生了两个新的主流语言C++与Java—它们都建立在C语言的语法和基本结构的基础上。
现在世界上的许多软件都是在C 语言及其衍生的各种语言的基础上开发出来的。
C语言的广泛使用以及其包含了基本程序设计需要理解的主要机制,能满足讨论程序设计问题的需要的特点,使其成为计算机专业的入门语言。
《C语言程序设计》实验指导与报告书是为配合C语言程序设计课程而编写的一本具有很强的实践性教材。
为了达到本课程各个教学环节的规范化,并且让学生真正达到学以致用的效果,除了要求学生掌握本课程大纲所要求的知识点外,更重要的还要通过实践教学环节来拓展学生程序设计的逻辑思维和提高程序设计的能力,同时也能让学生深刻地了解关于如何运用软件工程的理念去开发软件。
本实验指导内容的编写,是根据本课程教学大纲的指导下,以提高学生的实践能力为目的而编写。
要求学生在上机实验前进行预习准备,实验过程认真调试,实验结束后完成实验报告。
本实验指导设计了八个实验,每个实验分为必做实验和选做实验两个部分,选做实验可根据实际情况由学生选做。
目录前言 (1)实验一C简单程序的调试与运行 (3)实验二数据及其运算 (7)实验三程序控制结构 (13)实验四数组应用 (20)实验五指针应用 (26)实验六函数应用 (31)实验七数据结构初步 (38)实验八文件和输入输出 (48)实验一C简单程序的调试与运行一、实验目的1. 熟悉C语言的常用调试环境(TC2.0,CodeBlocks等)。
c语言顺序结构程序实验报告C语言顺序结构程序实验报告引言:C语言作为一种高级编程语言,具有广泛的应用领域。
在本次实验中,我们将学习和实践C语言中的顺序结构程序设计。
通过编写一系列的实验程序,我们将深入了解顺序结构的概念和原理,并掌握如何使用C语言编写简单的顺序结构程序。
实验目的:1. 了解顺序结构程序的概念和特点;2. 掌握C语言中的基本数据类型和变量的声明;3. 学习使用C语言中的输入输出函数;4. 熟悉C语言中的基本运算符和表达式;5. 掌握C语言中的条件语句和循环语句的使用。
实验步骤:1. 实验程序一:计算圆的面积和周长首先,我们需要声明一个常量PI,并定义一个变量radius用于存储圆的半径。
然后,通过输入函数获取用户输入的半径值,并使用相应的公式计算圆的面积和周长。
最后,通过输出函数将计算结果显示在屏幕上。
2. 实验程序二:华氏温度转换为摄氏温度在这个实验中,我们需要定义一个变量fahrenheit用于存储华氏温度的值。
然后,通过输入函数获取用户输入的华氏温度,并使用相应的公式将其转换为摄氏温度。
最后,通过输出函数将转换后的摄氏温度显示在屏幕上。
3. 实验程序三:判断一个数是否为偶数在这个实验中,我们需要定义一个变量num用于存储用户输入的数值。
然后,通过输入函数获取用户输入的数值,并使用条件语句判断该数是否为偶数。
最后,通过输出函数将判断结果显示在屏幕上。
4. 实验程序四:计算1到n的累加和在这个实验中,我们需要定义一个变量n用于存储用户输入的数值。
然后,通过输入函数获取用户输入的数值,并使用循环语句计算1到n的累加和。
最后,通过输出函数将计算结果显示在屏幕上。
实验结果与分析:通过以上实验程序的编写和运行,我们成功实现了顺序结构程序的设计。
在实验程序一中,我们计算了圆的面积和周长,通过输入函数获取用户输入的半径值,并使用相应的公式计算出了圆的面积和周长。
在实验程序二中,我们将华氏温度转换为摄氏温度,通过输入函数获取用户输入的华氏温度,并使用相应的公式将其转换为摄氏温度。
实验2 流程控制实验2.1 实验目的(1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
(2)熟练运用for、while、do-while语句来编写程序。
(3)练习转移语句和标号语句的使用。
(4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。
2.2 实验内容及要求2.2.1.源程序改错下面是计算s=n! 的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
例如,8!=40320。
1 #include <stdio.h>2 int main()3 { int i,n,s=1;4 printf("Please enter n:");5 scanf("%d",n);6 for(i=1,i<=n,i++)7 s=s*i;8 printf("%d! = %d",n,s);9 }10 return 0;解答:(1)错误修改:1)输入字符格式错误,正确形式为:scanf(“%d”,&n);2)return 0;与}的相对位置错误,正确形式为:return0;}(2)错误修改后的程序:#include <stdio.h>int main(){ int i,n,s=1;printf("Please enter n:");scanf("%d",n);for(i=1,i<=n,i++)s=s*i;printf("%d! = %d",n,s);return 0;}(3) 运行结果:图1 2.2.1源程序改错测试图2.2.2.源程序修改替换(1)修改第1题,分别用while和do-while语句替换for语句。
替换为While语句1)在判断while语句前,要先定义i=1,再执行while语句。
替换后的程序如下所示:#include <stdio.h>int main(){int i,n,s=1;printf("please enter n:");scanf("%d",&n);i=1;while (i<=n){s=s*i;i++;}printf("%d!=%d",n,s);return 0;}2)运行截图及说明图2 2.2.2(1)while语句测试图替换为do-while语句1)要先定义i=1,再执行while语句。
替换后的程序如下所示:#include <stdio.h>int main(){int i,n,s=1;printf("please enter n:");scanf("%d",&n);i=1;do{s=s*i;i++;}while(i<=n);printf("%d!=%d",n,s);return 0;}2)运行截图及说明图3 2.2.2(2)do-while语句测试图(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。
例如输入整数40310,输出结果为n=8。
1)解题思路:先定义S,x=1,i=1,输入S,判断x<=S,如果为真,则有x=x*i,i=i+1,再返回判断x<=s,直至值为假,输出i-1的值。
源程序为:#include <stdio.h>int main(){int S;int x=1,i=1;printf("请输入整数S:");scanf("%d",&S);while(x<=S){x=x*i;i=i+1;}printf("满足n!>=S的最小整数n是%d",i-1);return 0;}2)运行截图及说明图4 2.2.2(3)程序测试图2.2.3.程序设计(1)假设工资税金按以下方法计算:x < 1000元,不收取税金;1000 ≤ x < 2000,收取5%的税金;2000 ≤ x < 3000,收取10%的税金;3000 ≤ x < 4000,收取15%的税金;4000 ≤ x < 5000,收取20%的税金;x>5000,收取25%的税金。
输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。
解答:if语句:1)解题思路:1.定义浮点数工资金额x,应收取税金额为y。
2.输入工资金额x,判断x属于哪一个收入范围。
3.如果x<1000,则y=0。
4.如果x>=1000且x<2000,则y=5%*(x-1000)=0.05*x-50。
5.如果x>=2000且x<3000,则y=5%*1000+10%*(x-2000)=0.1x-150。
6.如果x>=3000且x<4000,则y=5%*1000+10%*1000+15%*(x-3000)=0.15x-300。
7.如果x>=4000且x<5000,则y=5%*1000+10%*1000+15%*1000+20%*(x-4000)=0.2x-500。
8.如果x>=5000,y=5%*1000+10%*1000+15%*1000+20%*1000+25%*(x-5000)=0.25x-750。
9.输出y,结束。
2)程序清单#include <stdio.h>int main(){float x,y;printf("请输入工资金额x:");scanf("%f",&x);if(x<1000) y=0;else if(x>=1000&&x<2000) y=0.05*x-50;else if(x>=2000&&x<3000) y=0.10*x-150;else if(x>=3000&&x<4000) y=0.15*x-300;else if(x>=4000&&x<5000) y=0.20*x-500;else y=0.25*x-750;printf("应收取税金额度为%f元",s);}用例6 5500 625图5 2.2.3(1)用例1测试图图6 2.2.3(1)用例2测试图图7 2.2.3(1)用例3测试图图8 2.2.3(1)用例3测试图图9 2.2.3(1)用例4测试图图10 2.2.3(1)用例5测试图Switch语句:1)解题思路;1. 定义浮点数工资金额x,应收取税金额为y。
2. 输入工资金额x。
3.计算x/1000,强制转化数的类型为int。
4. 当结果为0时,输出y=0。
5. 当结果为1时,输出y=0.05*x-50。
6. 当结果为2时,输出y=0.10*x-150。
7. 当结果为3时,输出y=0.15*x-300。
8. 当结果为4时,输出y=0.20*x-500。
9. 当结果为其他值时,输出y=0.25*x-750。
10.结束。
2)程序清单#include <stdio.h>int main(){float x,y;printf("请输入工资金额x:");scanf("%f",&x);switch((int) (x/1000)){case 0:y=0;printf("应收取税金额度为 %f",y);break;case 1:y=0.05*x-50;printf("应收取税金额度为 %f",y);break; case 2:y=0.10*x-150;printf("应收取税金额度为 %f",y);break; case 3:y=0.15*x-300;printf("应收取税金额度为 %f",y);break;case 4:y=0.20*x-500;printf("应收取税金额度为 %f",y);break; default:y=0.25*x-750;printf("应收取税金额度为 %f",y);break; }return 0;}用例6 5200 550图11 2.2.3(1)用例1测试图图12 2.2.3(1)用例2测试图图13 2.2.3(1)用例3测试图图14 2.2.3(1)用例4测试图图15 2.2.3(1)用例5测试图图16 2.2.3(1)用例6测试图(2)将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。
1)解题思路:1.输入一行字符。
2.判断字符是否为空格。
3.如果字符是空格,判断上一位是否输出过空格。
4.如果输出过,不输出空格。
否则,输出空格。
5.如果字符不是空格,输出字符。
6.结束。
2)程序清单#include <stdio.h>int main(){int flag=1;char c;printf("请输入一行字符:\n");while((c=getchar())!='\0'){switch(c){case' ':if(flag){putchar(c);flag=0;}break;default:putchar(c);flag=1;}}if((c=getchar())=='\0'){printf("%c",c);}return 0;}3)测试图17 2.2.3(2)测试图 (3)打印如下杨辉三角形。
1 /*第0行 */ 1 1 /*第1行 */ 12 1 /*第2行 */ 13 3 1 14 6 4 1 15 10 10 5 1 16 15 20 15 6 1 17 21 35 35 21 7 1 18 28 56 70 56 28 8 1 19 36 84 126 126 84 36 9 1每个数据值可以由组合计算(表示第i 行第j 列位置的值),而的计算如下:(i=0,1,2,…)(j=0,1,2,3, (i)本程序中为了打印出金字塔效果,要注意空格的数目。
一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。