C语言练习题及参考答案.docx

上传人:b****7 文档编号:15437938 上传时间:2023-07-04 格式:DOCX 页数:55 大小:51.85KB
下载 相关 举报
C语言练习题及参考答案.docx_第1页
第1页 / 共55页
C语言练习题及参考答案.docx_第2页
第2页 / 共55页
C语言练习题及参考答案.docx_第3页
第3页 / 共55页
C语言练习题及参考答案.docx_第4页
第4页 / 共55页
C语言练习题及参考答案.docx_第5页
第5页 / 共55页
C语言练习题及参考答案.docx_第6页
第6页 / 共55页
C语言练习题及参考答案.docx_第7页
第7页 / 共55页
C语言练习题及参考答案.docx_第8页
第8页 / 共55页
C语言练习题及参考答案.docx_第9页
第9页 / 共55页
C语言练习题及参考答案.docx_第10页
第10页 / 共55页
C语言练习题及参考答案.docx_第11页
第11页 / 共55页
C语言练习题及参考答案.docx_第12页
第12页 / 共55页
C语言练习题及参考答案.docx_第13页
第13页 / 共55页
C语言练习题及参考答案.docx_第14页
第14页 / 共55页
C语言练习题及参考答案.docx_第15页
第15页 / 共55页
C语言练习题及参考答案.docx_第16页
第16页 / 共55页
C语言练习题及参考答案.docx_第17页
第17页 / 共55页
C语言练习题及参考答案.docx_第18页
第18页 / 共55页
C语言练习题及参考答案.docx_第19页
第19页 / 共55页
C语言练习题及参考答案.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言练习题及参考答案.docx

《C语言练习题及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题及参考答案.docx(55页珍藏版)》请在冰点文库上搜索。

C语言练习题及参考答案.docx

C语言练习题及参考答案

练习题1及参考答案

1.单项选择题

(1)以下并非C语言的特点的是     。

A. C语言简洁和紧凑

B.能够编制出功能复杂的程序

C. C语言可以直接对硬件进行操作

D. C语言移植性好

【答】B

(2)一个C程序的执行是从     。

A. main()函数开始,直到main()函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D. main()函数开始,直到最后一个函数结束

【答】A

(3)在C程序中,main()的位置     。

A.必须作为第一个函数

B.必须作为最后一个函数

C.可以任意

D.必须放在它所调用的函数之后

【答】C

(4)一个C程序是由     。

A.一个主程序和若干子程序组成

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

【答】B

(5)下列说法正确的是     。

A.在执行C程序时不是从main()函数开始的

B. C程序书写格式限制严格,一行内必须写一个语句

C. C程序书写格式比较自由,一个语句可以分行写在多行上

D. C程序书写格式严格要求一行内必须写一个语句,并要求行号

【答】C

2.填空题

(1)一个C源程序至少有  ①  个main()函数和  ②  个其他函数。

【答】①一 ②若干

(2)任何C语句必须以     结束。

【答】分号

(3)C语言源程序的基本单位是     。

【答】函数

(4)C编译程序的功能是     。

【答】将C源程序编译成目标代码

练习题2及参考答案

1.单项选择题

(1)以下字符串为标识符的是     。

A._MY               B.2_2222                  C.short                  D.LINE5

【答】A

(2)下列符号可以作为变量名的是     。

A.+a                 B.*p                        C._DAY                 D.nextday

【答】C

(3)设c是字符变量,则以下表达式正确的是     。

A.c=666            B.c='c'                     C.c="c"                 D.c="abcd"

【答】B

(4)23+'m'+3.6-123.45/'b'的结果是     型数据。

A.char               B.double                   C.int             D.longint

【答】3.6和123.45均为double型,运算结果也是double型。

本题答案为B。

(5)若变量已正确赋值,以下符合C语言语法的表达式是     。

A.a=a+7;                                      B.a=7+b+c,a++

C.int(12.3%4)                                D.a=a+7=c+b

【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。

本题答案为B。

(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是     。

A.x=(x=1+2,x*2)                          B.x=y>2?

6:

5

C.x=9-(--y)-(--y)                          D.x=y*(int)(4.8/2)

【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。

本题答案为C。

(7)若定义

intm=7,n=12;

则能得到值为3的表达式是     。

A.n%=(m%=5)                          B.n%=(m-m%5)

C.n%=m-m%5                         D.(n%=m)-(m%=5)

【答】A、B、C、D选项各表达式的值分别是0、2、2、3。

本题答案为D。

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

#include

main()

{

   inti=5,j=6,m=i+++j;

   printf("%d,%d,%d\n",i,j,m);

}

A.6,6,11      B.5,6,11      C.5,6,12      D.6,6,12

【答】m=i+++j等价于m=(i++)+j。

本题答案为A。

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

#include

voidmain()

{

   doublef=3.14159;

   intn;

   n=(int)(f+10)%3;

   printf("%d\n",n);

}

A.1                         B.0                             C.2                         D.3

【答】f+10=13.14159,(int)(f+10)=13,13%3=1。

本题答案为A。

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

#include

voidmain()

{

   intn,i=2,j=4;

   n=(++i==j--);

   printf("%d\n",n);

}

A.0                          B.1                             C.2                         D.3

【答】++i返回3,j--返回4,两者不等,故n=0。

本题答案为A。

2.填空题

(1)表达式语句与表达式的不同是     。

【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。

(2)在C语言中可以利用     将一个表达式的值转换成指定的类型。

【答】强制类型转换

(3)写出完成下列功能的表达式:

·如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。

  ①  

·如果d是数字,则将d转换成相应的整数,否则d的值不改变。

  ②  

·返回两个整数x、y中较大者。

  ③  

·返回三个整数x、y和z中最大者。

  ④  

【答】①c=(c>='A'&&c<='Z')?

c-'A'+'a':

c

②d=(d>='0'&&d<='9')?

d-'0':

d

③(x>y)?

x:

y

④(x>y)?

(x>z?

x:

z):

(y>z?

y:

z)或(x>y&&x>z)?

x:

(y>z?

y:

z)

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

#include

#include

main()

{

  chars[]="ab\n\\\'\r\b";

  printf("%d,%d\n",sizeof(s),strlen(s));

}

【答】字符串s由字符'a'、'b'、'\n'、'\\'、'\''、'\r'、'\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\0'。

所以,s的长度为7,在内存中占用8个字节。

输出为:

8,7。

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

#include

main()

{

   inta=2,b=4,c=6,x,y;

   y=(x=a+b),(b+c);

   printf("y=%d,x=%d\n",y,x);

}

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

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

#include

main()

{

   chara,b;

   a='a';b='b';

   a=a-32;b=b-32;

   printf("%c,%c,%d,%d\n",a,b,a,b);

}

【答】A,B,65,66

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

#include

main()

{

   inti,j,x,y;

   i=5;j=7;

   x=++i;y=j++;

   printf("%d,%d,%d,%d\n",i,j,x,y);

}

【答】执行x=++i后,i=6,x=6;执行y=j++后,j=8,y=7;所以输出为:

6,8,6,7。

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

#include

main()

{

   inta=1;

   charc='a';

   floatf=2.0;

   printf("①:

%d\n",a+2!

=c-100);

    printf("②:

%d\n",(a>c)>=(f>4));

    printf("③:

%d\n",!

a==!

f);

    printf("④:

%d\n",(!

a&&1)!

=(!

c||1));

    printf("⑤:

%d\n",(!

a>2)?

3:

0)<((f!

=1)?

0:

1);

    printf("⑥:

%d\n",(1,2,3)==(3,3,3));

}

【答】①:

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

练习题3及参考答案

1.单项选择题

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

A.输入项可以为一个实型常量,如scanf("%f",3.5)

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

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)

D.当输入数据时,必须指明变量的地址,如scanf("%f",&f)

【答】D

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

a=-2L;

printf("%d\n",a);

A.赋值不合法                                        B.输出值为-2

C.输出为不确定值                                 D.输出值为2

【答】B

(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是     。

A.scanf("%d%lx,%le",&x,&y,&z);            B.scanf("%2d*%d%lf",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);                 D.scanf("%x%o%6.2f",&x,&y,&z);

【答】scanf()函数中没有精度控制。

本题答案为D。

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

A.read(a,b,c);                                                B.scanf("%d%d%d",a,b,c);

C.scanf("%D%D%D",a,b,c);                  D.scanf("%d%d%d",&a,&b,&c);

【答】D

(5)若有定义和语句:

intn=10;

printf("%\n",n);

其输出结果是    。

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

【答】D

(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是    。

A.scanf("%6.2f%d",&a,&b);                    B.scanf("%f%n",&a,&b);

C.scanf("%f%3o",&a,&b);                D.scanf("%f%f",&a,&b);

【答】C

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

chara='a';

a--;

printf("%d,%c\n",a+'2'-'0',a+'3'-'0');

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

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

【答】C

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

scanf("%d%d",&k1,&k2);

scanf("%d,%d",&k3,&k4);

A.1020

B.1020

C.10,20

D.1020

1020

1020

10,20

10,20

【答】D

(9)有如下程序,输入数据12345678↙后,x的值是 ① ,y的值是 ② 。

#include

main()

{

   intx;

   floaty;

   scanf("%3d%f",&x,&y);

}

①A.12345                B.123                         C.45                          D.345

②A.45.000000          B.45678.000000        C.678.000000                    D.123.000

【答】①B ②A

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

#include

main()

{

   intx,y,z;

   scanf("%d%d%d",&x,&y,&z);

   printf("x+y+z=%d\n",x+y+z);

}

A.x+y+z=48                                  B.x+y+z=35

C.x+y+z=38                                  D.不确定值

【答】输入的数据与scanf()函数的格式不匹配。

本题答案为D。

(11)有如下程序,输入数据12345↙后,x的值是 ① ,y的值是 ② 。

#include

main()

{

   intx;

   floaty;

   scanf("%3d%f",&x,&y);

}

①A.12                    B.123                  C.12345                     D.0

②A.12.000000         B.345.000000             C.12345.000000          D.0.000000

【答】①A ②B

(12)有如下程序,输入数据9876543210↙后,程序的运行结果是     。

#include

main()

{

   inta;

   floatb,c;

   scanf("%2d%3f%4f",&a,&b,&c);

   printf("a=%d,b=%f,c=%f\n",a,b,c);

}

A.a=98,b=765,c=4321                                    B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000                    D.a=98,b=765.0,c=4321.0

【答】C

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

#include

main()

{

   floata=3.1415;

   printf("|%6.0f|\n",a);

}

A.|3.1415|            B.|3.0|        C.|3|          D.|3.|

【答】C

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

#include

main()

{

   floata=3.1415;

   printf("|%06.0f|\n",a);

}

A.|000003|           B.|3.1415|            C.|00003.0|          D.|3|

【答】A

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

#include

main()

{

   floata=3.1415;

   printf("|%-6.0f|\n",a);

}

A.|3|             B.|000003|           C.|3.1415|                   D.|3.0|

【答】A

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

#include

main()

{

   inti=010,j=10;

   printf("%d,%d\n",++i,j--);

}

A.11.10              B.9,10                C.010,9                     D.10,9

【答】B

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

#include

main()

{

   intx=10,y=10;

   printf("%d,%d\n",x--,--y);

}

A.10,10               B.9,9                   C.9,10                        D.10,9

【答】D

2.填空题

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

#include

main()

{

   floatf=3.1415927;

   printf("%f,%5.4f,%3.3f",f,f,f);

}

【答】3.141593,3.1416,3.142

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

#include

main()

{

   floatf=3.5;

   printf("%f,%g",f,f);

}

【答】3.500000,3.5

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

#include

main()

{

   floatf=31.41592;

   printf("%f,%e",f,f);

}

【答】31.415920,3.141592e+001

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

#include

main()

{

   intx=0177;

   printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);

}

【答】127,127,177,7f,127

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

#include

main()

{

   intx=0177;

   printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x);

}

【答】127,127,177,7f,127

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

#include

main()

{

   charc='A'+10;

   printf("c=%c\n",c);

}

【答】c=K

(7)以下程序输入123456↙后,其运行结果是     。

#include

main()

{

   inta,b;

   scanf("%2d%3d",&a,&b);

   printf("a=%d,b=%d\n",a,b);

}

【答】a=12,b=345

(8)以下程序输入ABC↙后,其运行结果是     。

#include

main()

{

   charc;

   scanf("%3c",&c);

   printf("c=%c\n",c);

}

【答】c=A

(9)以下程序输入100↙后,其运行结果是     。

#include

main()

{

   intn;

   scanf("%o",&n);

   printf("n=%d\n",n);

}

【答】n=64

(10)以下程序输入x=1.23,y=50↙后,其运行结果是     。

#include

main()

{

   floatx,y;

   scanf("x=%f,y=%f",&x,&y);

   printf("x=%7.2f,y=%7.2f\n",x,y);

}

【答】x=1.23,y

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2