第一章:程序设计和C语言,本章主要介绍的是计算机程序相关的知识点,概念偏多,不用刻意的去背,了解即可。
友情提示:有的题目可能没写,因为我感觉没必要,还有就是下面的所有回答专业性的名词解释使用人工智能或Baidu的,程序是完全自己写的,主要是用来记笔记方便以后复习用的,希望对大家有帮助,共勉!
题目1:什么是程序?什么是程序设计?
回答:
-
程序是计算机执行的指令集合,它告诉计算机如何完成特定任务。
-
程序设计则是创建这些指令的过程,涉及编写、测试、调试和优化代码。
举例:
假设用户想让计算机输出“Hello, World!”。可以编写一个简单的程序,用任何编程语言实现这个输出。这个过程就是程序设计。然后,这个程序在计算机上运行时,会输出“Hello, World!”。这个程序就是完成特定任务(输出问候语)的指令集合。
题目2:为什么需要计算机语言?高级语言有哪些特点?
回答:
-
人与人之间的交流需要语言,不同国家人与人之间的交流需要不同的语言,人和计算机交流信息也需要解决语言问题。计算机语言是人机交互的媒介,使我们能编写指令让计算机执行任务。
-
高级语言如C、Python、C++、Java等,具有如下特点:
-
抽象度高:高级语言简化了底层细节,让程序员能更专注于逻辑和算法。
-
易学习和使用:其语法接近自然语言,易于掌握。
-
平台独立:高级语言编写的程序可在多种计算机上运行。
-
结构化和模块化:高级语言支持结构化编程,允许程序员将程序分解为函数、模块或对象,这有助于提高代码的可读性、可维护性和可重用性。
-
题目3:正确理解以下名词及其含义:
(1)源程序,目标程序,可执行程序
-
源程序:是程序员编写的原始代码,它包含了完成特定任务所需的指令,但尚未经过编译,因此无法被计算机直接执行。
-
目标程序:源程序经过编译后得到的二进制代码集合,可以被计算机识别和执行。在计算机文件上,目标程序通常以“.obj”作为扩展名。
-
可执行程序:目标程序与库函数连接后形成的完整程序,可以在操作系统下独立执行。在Windows环境下,可执行程序通常以“.exe”作为扩展名。
(2)程序编辑,程序编译,程序连接
-
程序编辑:是程序员在计算机上输入或修改源代码的过程
-
程序编译:将源程序转换为计算机可以执行的二进制代码的过程。编译器会检查源程序中的语法错误,并自动将源程序转换为目标程序。
-
程序连接:将编译后得到的目标模块与函数库相连接,形成一个整体的过程。这样,各个模块可以协同工作,共同实现程序的功能。
(3)程序,程序模块,程序文件
-
程序:一组计算机能识别和执行的指令,用于完成特定的任务或满足某种需求。
-
程序模块:是程序中的一个独立部分,通常具有特定的功能或任务。模块化的编程方式可以提高代码的可读性和可维护性。
-
程序文件:是存储程序代码的文件,通常以特定的格式和扩展名保存在计算机上。
(4)函数,主函数,被调用函数,库函数
-
函数:是将一段经常需要使用的代码封装起来,以便在需要时直接调用的代码块。函数有助于减少代码冗余,提高代码的可重用性。
-
主函数:又称main函数,是C语言程序的入口点。程序执行时,操作系统会调用主函数,并从主函数开始执行整个程序。
-
被调函数:在一个函数中调用另一个函数时,被调用的那个函数就被称为被调用函数。
-
库函数:是编译器提供的、可在程序中直接调用的函数。它们通常分为两类:一类是C语言标准规定的库函数,如printf()、scanf()、malloc()等,另一类是编译器特定的库函数。
(5)程序调试,程序测试。
-
程序调试:在程序投入实际运行前,通过手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。其目的是确保程序能够按照预期的方式正确运行。
-
程序测试:对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测。测试的目的是确保程序能够按照预定的方式正确地运行,并满足用户需求。
题目4:编写一个C程序,运行时输出Hello World!
#include<stdio.h>
int main(void) {
printf("Hello World!");
//程序正常退出返回0
return 0;
}
题目5:编写一个C程序,运行时输出以下图形
分析:
4行,每行五个星星,每增加一行,空2个星星的位置
记住一句话:外层循环控制行数,内层循环控制列数
首先4行得知程序通过外层for循环进行控制,
然后列在这个程序中主要考虑的是空格的个数,因为星星的个数一样,不需要考虑,直接输出即可,
继续通过需要输出的图形可以判断出来,每增加1行就空两个星星的空格,所以呈现线性增长,所以内层循环第一行是2*0也就是0个空格,第二行是2*1也就是2个空格,以此类推,符合程序的要求。
程序代码如下:
#include <stdio.h>
int main() {
int i = 0,j = 0;
//控制打印的行数,一共4行
for (int i = 0; i < 4; ++i) {
//打印每行*之前的空格
//第一次不打印空格,此时0<0不成立,跳出循环执行打印*****
//第二次打印0,1共两个空格,判断2<2不成立,满足条件
//第三次打印0,1,2,3共4个空格,判断4<4不成立,满足条件
//以此类推
for(j = 0;j < i * 2;j++){
printf(" ");
}
//打印每行的*
printf("*****\n");
}
return 0;
}
举一反三:输出如下的图形
#include<stdio.h>
int main(void){
int i = 0,j = 0;
//控制行数
for(i = 0;i < 5;++i){
//控制列中的星星数
for(j = 0;j < i + 1;j++){
printf("*");
}
//每行输出完成之后换行
printf("\n");
}
return 0;
}
问题6:编写一个C程序,运行时输入 a,b,c三个值,输出其中值最大者。
使用if判断或者三目运算符都行
#include<stdio.h>
int main(void){
//定义3个数
int a;
int b;
int c;
printf("请输入要比较的三个数,进行最大值的输出:\n");
//输入三个数
scanf("%d,%d,%d",&a,&b,&c);
//使用三目运算符计算
int twoMax = a > b ? a : b;
int threeMax = twoMax > c ? twoMax : c;
printf("三个数中的最大的数为:%d\n",threeMax);
return 0;
}