内容正文:
第二章C语言概述(课后练习及答案)-《C语言程序设计》同步教学(清华大学出版)
一、选择题
1. C程序的基本单位是________。
A) 函数 B) 过程
C) 子程序 D) 子例程
答案:A
分析:C程序由main函数和若干(包括零个)其他函数组成,函数是C程序的基本单位。
2. 下列叙述中不正确的是________。
A) main函数在C程序中必须唯一。
B) C程序的执行是从main函数开始的,所以main函数必须放在程序的最前面。
C) 函数可以带参数,也可以不带参数。
D) 函数在执行时,将按函数体中语句的先后次序,依次执行每条语句。
答案:B
分析:C程序是由函数组成的,函数的排列顺序是任意的。因此,main函数放在其他函数的前面、后面或中间均可。
3. 以下叙述中正确的是________。
A) C程序中的注释只能出现在程序的开始位置或语句的后面。
B) C程序书写格式严格,要求一行内只能写一条语句。
C) C程序书写格式自由,一条语句可以写在多行中。
D) 使用C语言编写的程序只能放在一个程序文件中。
答案:C
分析:C语言书写格式自由,一条语句可以写在多行中,一行中也可以写多条语句。
4. 以下叙述中正确的是________。
A) C程序的基本组成单位是语句。
B) C程序中的每一行只能写一条语句。
C) 简单的C语句必须以分号结束 。
D) C语句必须在一行内写完。
答案:C
分析:分号是C语句的一部分,不能省略。
5. 计算机能直接执行的程序是________。
A) 源程序 B) 目标程序 C) 汇编程序 D) 可执行程序
答案:D
二、填空题
1. 在C源程序中,注释部分两侧的分界符分别为________和________。
答案:/* */
分析:C程序的注释部分需要使用分界符/*和*/括起来。注释部分可以使用任何文字符号,但分界符不能出现嵌套形式。换言之,注释内不能再出现分界符,例如/*……/*……*/……*/是错误的。
2. C程序总是从________开始执行。
答案:main函数
分析:C程序总是从main函数开始执行,而不论main函数被放在何处。
3. C语言既可用来编写________软件,也可用来编写应用软件。
答案:系统
分析:C语言既像汇编语言那样允许直接访问物理地址,能进行位运算,还能实现汇编语言的大部分功能,比如直接对硬件进行访问;也有高级语言的面向用户、容易记忆、容易学习且易于书写的特点。因此,C语言既可以用来编写系统软件,也可以用来编写应用软件。
4. C源程序的后缀是________;经过编译后,生成的目标程序的后缀是________;经过链接后,生成的可执行程序的后缀是________。
答案:.c .obj .exe
三、编程题
1. 编写程序,在屏幕上显示如下信息:
*****************************
Merry Christmas!
Happy New Year!
*****************************
分析:可利用库函数printf的输出功能方便地实现上述效果。
程序如下:
#include <stdio.h>
int main()
{
printf("*****************************
");
printf(" Merry Christmas!
");
printf(" Happy New Year!
");
printf("*****************************
");
return 0;
}
2. 输入a和b后,输出一元一次方程ax+b=0的解。
分析:这个方程的解为x=-b/a。
程序如下:
#include<stdio.h>
int main()
{
float a,b,x; /* 定义存放实数的3个变量a、b、c */
scanf("%f %f",&a,&b); /* 输入两个实数,分别赋给a和b */
x=-b/a; /* 求方程的解 x */
printf("x=%f
",x); /* 输出变量x的值 */
return 0;
}
程序运行结果如下:
5 6↙
x=-1.200000
3. 输入3个数,输出其中的最小值。
分析:既可采用例2.3中的形式,也可按如下算法编写程序。
第1步:输入3个数并分别赋给a、b、c。
第2步:将a的值赋给min。
第3步:如果min>b,将b的值赋给min。
第4步:如果min>c,将c的值赋给min。
第5步:输出min的值。
提示:上面的第3步可通过语句if(min>b) min=b;来实现。
程序如下:
#include<stdio.h>
int main()
{
float a,b,c,min; /* 定义存放实数的变量a、b、c、min */
printf("a,b,c=?
"); /* 输出提示信息"a,b,c=?" */
scanf("%f%f%f",&a,&b,&c); /* 输入3个数并分别赋给a、b、c */
min=a; /* 将a的值赋给min */
if(min>b)min=b; /* 当min>b时,将b的值赋给min */
if(min>c)min=c; /* 当min>c时,将c的值赋给min */
printf("min=%f
",min); /* 输出变量min的值 */
return 0;
}
程序运行结果如下:
a,b,c=?
5 3 8↙
min=3.000000
学科网(北京)股份有限公司
$$