"2021年海南大学C语言考试大题题库:程序填空题解析"

需积分: 0 5 下载量 17 浏览量 更新于2024-01-04 收藏 29KB DOCX 举报
2021年海南大学C语言考试大题题库中包含了大量的C语言考试大题,其中一道题目要求在一个给定的程序中填入代码以使程序完整。这道题目要求编写一个程序,使其能够接受键盘上的输入,直到按下↙键为止,然后将输入的字符原样输出,但如果有连续多个空格时,只输出一个空格。具体的题目描述如下: /*-------------------------------------------------------【程序填空】--------------------------------------------------------- 下面程序接受键盘上输入,直到按↙键为止,这些字符被原样输出,但若有持续一种以上空格时只输出一种空格,请填(3)空使程序完整。 -------------------------------------------------------*/ #include <stdio.h> int main() { char ch; while((ch=getchar())!='\n') { putchar(ch); ___________________________; // 填空(1) } ___________________________; // 填空(2) return 0; } 根据以上的题目描述,我们需要在(1)和(2)的地方填入代码来使程序完整。要考虑的是,在每次循环中,需要检查输入的字符是否是空格,如果是空格则需要判断前一个字符是否也是空格,如果是则不输出,如果不是则输出一个空格。可以使用一个变量来保存前一个字符,用以判断是否需要输出空格。 经过思考和分析,我们可以填入以下代码来完成程序: #include <stdio.h> int main() { char prev_ch = '\0'; // 用于保存前一个字符的变量 char ch; while((ch=getchar())!='\n') { if (ch != ' ' || prev_ch != ' ') { // 如果当前字符不是空格,或者前一个字符不是空格,则输出当前字符 putchar(ch); } prev_ch = ch; // 更新前一个字符 } putchar('\n'); // 输出换行符 return 0; } 通过以上的填空,我们完成了题目要求的程序。程序接受键盘上的输入,直到按下↙键为止,然后将输入的字符原样输出,但如果有连续多个空格时,只输出一个空格。在代码中我们使用了一个变量prev_ch来保存前一个字符,通过判断当前字符和前一个字符是否都是空格来决定是否输出空格。最后输出一个换行符来结束程序。 通过这道题目的练习,我们巩固了对C语言的输入输出基本操作的掌握,同时也锻炼了对循环和条件判断的运用能力。这样的题目对于学生来说非常有益,可以帮助他们加深对C语言的理解和掌握程度。希望学生们能够通过认真的练习和思考,提高自己的编程能力,更好地掌握C语言的知识。