周四. 6 月 26th, 2025

编写程序,首先要理解题意,即要求实现什么功能,然后对其进行分析,最后再根据分析进行编程。

具体来说,编写程序的步骤:

1、理解题意。不要看到题目就开始编程,要仔细读题,确保理解了题目要求,即题目要求做什么,要实现什么功能。如果把题目理解错了,编写出来的程序肯定也是错的。

2、问题分析。理解了题目要求之后,也不要着急编程,还要对如何实现题目要求的功能进行分析,即解决这个问题需要几步,每一步做什么。分析与编程无关,就是把解决问题的步骤列出来。

3、编写程序。根据分析的结果,也就是解决问题的步骤,把每一步用C程序写出来。要确保编写的程序语句没有语法错误,这就用到了我们学到的基础知识了,比如定义变量、给变量赋值、运算符的使用、表达式的写法、输入数据、输出数据等。

下面以字母大小写转换的题目为例,了解一下编程的步骤。

题目:通过键盘输入一个大写字母,输出其小写字母。

01

理解题意

题目要求输入一个大写字母,输出其对应的小写字母。比如输入A,输出a。

有的同学可能会问,这个题目很好理解啊,干吗还要专门强调理解题意呢。的确,这个题目很好理解,没有需要深入思考的地方。但是,这只是因为这个题目要求比较简单,以后会遇到一些复杂的题目,需要认真思考题目的要求,理解题意就很重要了。即使是这样简单的题目,我们也不要大意,不要想当然,一不小心就可能犯错,拿出一点时间好好看看题目,确保真正理解了题意,这是很有必要的。

02

问题分析

题意我们已经搞清楚了,即输入一个大写字母,输出其对应的小写字母。那么如何实现这个功能呢?我们要对这个问题分析一下,看看解决这个问题需要几个步骤。

第1步:变量分析,也就是分析一下这个程序需要几个变量。基本上所有的程序都有数据,比如本题中输入的大写字母和输出的小写字母都是数据。而程序就是对数据进行处理的,比如本题中要通过大写字母计算小写字母,这就是数据处理。所以,程序是离不开数据的。数据又包括常量和变量。常量相对来说比较简单,大部分常量都是直接常量,可以直接使用。我们主要关注程序中有哪些变量,比如本题中就有两个变量,分别表示输入的大写字母和输出的小写字母,它们之所以是变量,是因为它们是可变的,比如输入的大写字母可以是‘A’,也可以是B,当然对应的小写字母也是变化的。这样就确定了本题需要两个变量,给这两个变量起个名字吧,也就是变量名,ch1表示输入的大写字母,ch2表示对应的小写字母,当然变量名不一定非叫ch1和ch2,也可以起其它的名字,只要是合法标识符就行。变量分析是问题分析的第一步,因为在程序中一般也是先定义变量,再进行进一步处理。

第2步:输入数据。输入一个大写字母,放到变量ch1中。输入变量时,最好给出提示信息,比如提示“请输入一个大写字母:”,这样更友好一些。

第3步:任务计算。根据ch1中的大写字母,计算出其对应的小写字母,怎么计算呢?根据ASCII的规律,小写字母的ASCII码比其对应的大写字母ASCII大32,。所以要计算小写字母的ASCII,只需要ch1表示的大写字母ASCII码加32,即ch1+32,然后放到变量ch2中。如果是小写字母转换为大写字母,就是减去32。

第4步:输出数据。根据题目要求,输出小写字母,即输出ch2。

03

编写程序

分析完成之后,既可以根据分析的步骤编写程序了,将分析的每一步用C程序写出来,但要保证程序语法正确。

第1步:定义两个变量ch1、ch2,分别表示输入的大写字母和对应的小写字母。这两个变量要存放的是字符,所以数据类型是字符型char。这条语句应写为:

char ch1,ch2;

注意char后面有空格,两个变量ch1和ch2之间有逗号,语句最后有分号,这几个符号都是英文的半角符号。

第2步:先显示提示信息,再输入数据。显示信息一般用printf函数,比如要显示“请输入一个大写字母:”的提示,该语句应写为:

printf(“请输入一个大写字母:”);

注意:因为要使用printf函数,所以需要添加头文件,在程序最前面写上:

#include <stdio.h>

另外,我们希望直接在提示信息的后面输入数据,所以不用换行,不需要在printf中加\n。

然后输入一个字符,输入字符使用函数getchar,将其放到ch1中,也就是将其赋值给ch1,语句如下:

ch1=getchar();

注意:getchar函数后面的括号中没有内容(即没有参数),但是括号不能省略,必须要写。

另外,getchar函数也是在头文件stdio.h中定义的,所以要添加头文件stdio.h,不过前面已经添加过了,不用重复添加。

第3步:计算小写字母,并放到变量ch2中。根据分析,我们知道小写字母就是对应的大写字母加32,所以语句如下:

ch2=ch1+32;

第4步:输出小写字母,即输出ch2。输出一个字符,可以使用函数putchar,语句如下:

putchar(ch2);

注意:putchar函数括号里面的ch2(参数)是要输出的字符,输出ch2变量的值,也就是输出对应的小写字母。

整个程序如下图所示:

说明:第9行使用putchar函数输出了一个换行符,功能就是换行,这条语句并不是必需的。

这样,这个程序就编写出来了,实现了题目要求。

04

其它方法

通过上面的题目分析和编程,问题已经解决了。不过我们还可以再思考一下,还有没有其它方法实现这个功能呢?答案是肯定的。一般来说,解决一个问题不止一个方法,当然对应的程序也不止一种。我们看看这个题目还有什么方法实现,还可以编写什么样的程序实现这个功能。

方法1:大家可以看看上面那个程序,我们可以对它修改一下。上面这个程序中用到了两个变量ch1和ch2,分别表示输入的大写字母和对应的小写字母。我们想一想,能不能用一个变量同时表示大写字母和对应的小写字母呢?是可以的。根据这个思路,我们修改一下上面的程序,修改后的程序如下图所示:

就是将原来的ch1和ch2都改成了ch,用一个变量ch1表示两个数据。其中,第7行也可以写为:

ch+=32;

也可以把第6行和第7行合并为一条语句:

ch=getchar()+32;

方法2:方法1中我们使用一个变量同时表示大写字母和对应的小写字母。我们再想一想,能不能一个变量都不要?也是可以的。因为输入了一个大写字母,加了32之后就马上输出了,没有其它的处理,也及时其它地方没用到这两个变量,所以我们可以简化,不用变量,直接把数据写到putchar函数的参数中。根据这个思路,我们再修改一下上面的程序,修改后的程序如下图所示:

第5行中,putchar函数的参数是getchar()+32,getchar()得到输入的大写字母,加32后变为小写字母,然后再使用putchar输出。

方法3:前面的方法都是使用getchar函数输入大写字母,使用putchar函数输出小写字母。其实也可以使用scanf函数输入大写字母,用printf函数输出小写字母。getchar函数和putchar函数是专门对字符进行输入输出的,而scanf函数和printf函数可以对任意类型的数据进行输入输出,包括字符类型。根据这个思路,我们再修改一下上面的程序,修改后的程序如下图所示:

第6行使用scanf函数输入一个字符(%c表示输入的是字符),然后放到变量ch1的地址(所以ch1前面有&,表示ch1的地址),其实就是通过键盘输入一个字符,然后赋值给ch1。

第7行是通过大写字母就是小写字母,跟前面程序的语句是一样的。

第8行使用printf函数输出小写字母,双引号里面的%c表示输出一个字符,即后面的ch2变量的值。

说明:这个程序里面有两个变量ch1和ch2,也可以修改为只有一个变量,你可以试着修改一下,我就不再写了。再思考一下,这个程序能不能一个变量都不要呢?不能,因为我们使用scanf函数输入字符的时候,需要一个变量存放这个字符。

可见,解决一个问题的方法有很多,我们至少要找到一种方法,有可能的话再想想还有没有更好的方法,然后编写相应的程序。

05

遗留问题

我们想了很多方法来解决这个问题,好像这个问题完美地解决了。那上面的程序还有没有问题呢?有!什么问题?问题就是:你在输入字符的时候,如果输入的不是大写字母怎么办?如果输入的不是大写字母,它加32之后当然就不是小写字母了。那这个问题怎么解决呢?需要判断输入的字符是不是大写字母,也就是说它在A~Z之间,如果是的话,加32就可以得到小写字母,如果不是就不可以。这要用到if语句来进行判断。这个问题我们留待后面的文章解决。

Avatar photo

作者 UU 13723417500

友情提示:现在网络诈骗很多,做跨境电商小心被骗。此号发布内容皆为转载自其它媒体或企业宣传文章,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。---无意冒犯,如有侵权请联系13723417500删除!

声明本文由该作者发布,如有侵权请联系删除。内容不代表本平台立场!

发表回复

服务平台
跨境人脉通
选品平台
U选Market
展会&沙龙
群通天下