C语言练习题1-5及参考答案 下载本文

(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。 【解】程序如下:

/*文件名:exci3_2.cpp*/

VC++6.0

#include #define pi 3.14159 main() {

char c;

printf(\输入一个字符:\ scanf(\

printf(\输出结果:%c,%c,%c\\n\}

(3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。 【解】直接使用printf()的格式符输出八进制数和十六进制数。程序如下: /*文件名:exci3_3.cpp*/

VC++6.0

#include main() {

int i;

printf(\输入一个整数:\ scanf(\

printf(\ printf(\}

(4)编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。 【解】圆锥体体积的计算公式为: v=π×r×r×h/3 程序如下:

/*文件名:exci3_4.cpp*/

VC++6.0

#include main() {

float r,h,pi=3.1415,v; printf(\圆锥半径,高度:\ scanf(\ v=pi*r*r*h/3.0;

printf(\圆锥体积=%g\\n\\n\}

13

练习题4及参考答案

1. 单项选择题

(1)if后面的逻辑表达式之值 。

A. 只能是0或1 C. 只能是整型或字符型数据

【答】A

B. 只能是正整数或负整数 D. 可以是任何类型的数据

(2)为了避免嵌套的if-else语句的二义性,C语言规定else总是与 组成配对关系。

A. 缩排位置相同的if 【答】C

B. 在其之前未配对的if

C. 在其之前最近的未配对的if

D. 同一行上的if

(3)选择出合法的if语句(设int x,a,b,c;) 。

A. if (a=b) x++;

B. if (a=

C. if (a<>b) x++;

为真。本题答案为A。

D. if (a=>b) x++;

【答】选项B、C、D中的比较运算符不正确,在选项A中,a=b返回b,若b为0或空字符,则为假,否则(4)以下不正确的if语句是 。

A. if (x>y);

B. if (x=y) && (x!=0) x+=y;

C. if (x!=y) scanf(\ D. if (x

【答】B。应改为if (x=y && x!=0) x+=y;

(5)若定义float x;int a, b;,则正确的switch语句是 。

A. switch(x)

{

case 1.0:printf(\ case 2.0:printf(\ }

B. switch(x) {

case 1.2:printf(\ case 3:printf(\ }

C. switch(a+b) {

case 1:printf\ case 1+2:printf(\ }

D. switch(a+b) {

14

case 1:printf(\ case 2:printf(\ } 【答】D

(6)执行下列程序,输入为1的运行结果是 ① ,输入为3的运行结果是 ② 。 #include main() { int k;

scanf(\ switch(k) { }

① A. 1

B. 2

C. 2 3 4 5

D. 1 2 3 4

}

case 1: printf(\

break;

case 2: printf(\case 3: printf(\

break;

case 4: printf(\default:printf(\

② A. 3 B. 4 C. 3 4

D. 4 5

【答】① A ② A

(7)执行下列程序,输入为1的运行结果是 ① ,输入为3的运行结果是 ② 。 #include main() {

int k;

scanf(\ switch(k) {

case 1: printf(\ case 2: printf(\ case 3: printf(\ case 4: printf(\

break;

default:printf(\ } }

① A. 1

B. 2

C. 2 3 4 5

D. 1 2 3 4

② A. 3 B. 4 C. 3 4

D. 4 5

【答】① D ② C

(8)以下程序的运行结果是 。

15

#include main() {

int x=1,y=0,a=0,b=0; switch(x) {

case 1:switch(y) { }

printf(\}

A. a=2,b=1

B. a=1,b=1

C. a=1,b=0

D. a=2,b=2

}

case 0:a++;break; case 1:b++;break;

case 2:a++;b++;break;

【答】A

2. 填空题

(1)有定义int x;则“x是偶数”的表达式是 。

【答】x % 2 == 0

(2)有定义int a,b;则“a是b的整数倍”的表达式是 。

【答】a % b == 0

(3)有定义int a,b,c;它们表示三个边长,则能够构成一个直角三角形的条件是 。

【答】a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a

(4)有定义int a,b,c;它们表示三个边长,则能够构成一个三角形的条件是 。

【答】(a+b main() { }

16

int k=2; switch (k) { }

case 1: printf(\

break;

case 2: printf(\case 3: printf(\

break;

case 4: printf(\default:printf(\