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

#include #include main() {

char s[]=\

printf(\}

【答】字符串s由字符'a'、'b'、'\\n'、'\\\\'、'\\''、'\\r'、'\\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\\0'。所以,s的长度为7,在内存中占用8个字节。输出为:8,7。 (5)以下程序的运行结果是 。 #include main() {

int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c);

printf(\}

【答】结果为y=6,x=6。

(6)以下程序的运行结果是 。 #include main() {

char a,b; a='a';b='b'; a=a-32;b=b-32;

printf(\}

【答】A,B,65,66

(7)以下程序的运行结果是 。 #include main() {

int i,j,x,y; i=5;j=7; x=++i;y=j++;

printf(\}

【答】执行x=++i后,i=6,x=6;执行y=j++后,j=8,y=7;所以输出为:6,8,6,7。 (8)以下程序的运行结果是 。 #include main() {

int a=1; char c='a';

5

float f=2.0;

printf(\\\n\ printf(\\\n\ printf(\\\n\

printf(\\\n\ printf(\\\n\ printf(\\\n\}

【答】①:1 (a+2=3,c-100=-3,表达式结果=1(真)) ②:1(a>c的结果是0(假),f>4的结果是0,表达式结果=1) ③:1(!a的结果是0,!f的结果是0,表达式结果=1) ④:1(!a&&1的结果是0,!c||1的结果是1,表达式结果=1)

⑤:0(!a>2的结果是0,(!a>2)?3:0的结果是0,f!=1的结果是1,(f!=1)?0:1的结果是0,表达式结果=0)

⑥:1((1,2,3)表达式的结果是3,(3,3,3)的结果是3

6

练习题3及参考答案

1. 单项选择题

(1)以下说法正确的是 。

A. 输入项可以为一个实型常量,如scanf(\

B. 只有格式控制没有输入项也能进行正确输入,如scanf(\

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\D. 当输入数据时,必须指明变量的地址,如scanf(\【答】D

(2)若a为整型变量,则以下语句 。 a=-2L;

printf(\

A. 赋值不合法 B. 输出值为-2 C. 输出为不确定值 D. 输出值为2 【答】B

(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是 。 A. scanf(\C. scanf(\【答】scanf()函数中没有精度控制。本题答案为D。

(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是 。

A. read(a,b,c); B. scanf(\C. scanf(\【答】D

(5)若有定义和语句: int n=10; printf(\其输出结果是 。

A. 输出10 B. 输出一空行 C. 没有输出 D. 编译不通过 【答】D

(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是 。 A. scanf(\C. scanf(\【答】C

(7)字母a的ASCII码为97,则下列语句的运行结果为 。 char a='a'; a--;

printf(\

A. b,c B. a--运算不合法,故有语法错

C. 98,c D. 格式描述和输出项不匹配,输出无定值 【答】C

7

(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是 。 scanf(\scanf(\A. 1020 B. 10 20 C. 10,20 D. 10 20 1020 10 20 10,20 10,20 【答】D

(9)有如下程序,输入数据12345 678↙后,x的值是 ① ,y的值是 ② 。 #include main() {

int x; float y;

scanf(\} ①

A.

12345

B.

123

45 D.345

② A. 45.000000 B. 45678.000000 C. 678.000000 D.123.000 【答】① B ② A

(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是 。 #include main() {

int x,y,z;

scanf(\ printf(\}

A. x+y+z=48 B. x+y+z=35 C. x+y+z=38 D. 不确定值 【答】输入的数据与scanf()函数的格式不匹配。本题答案为D。

(11)有如下程序,输入数据12 345↙后,x的值是 ① ,y的值是 ② 。 #include main() {

int x; float y;

scanf(\}

8

C.