c语言习题册及答案.docx

上传人:b****4 文档编号:5070538 上传时间:2022-12-13 格式:DOCX 页数:80 大小:87.92KB
下载 相关 举报
c语言习题册及答案.docx_第1页
第1页 / 共80页
c语言习题册及答案.docx_第2页
第2页 / 共80页
c语言习题册及答案.docx_第3页
第3页 / 共80页
c语言习题册及答案.docx_第4页
第4页 / 共80页
c语言习题册及答案.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

c语言习题册及答案.docx

《c语言习题册及答案.docx》由会员分享,可在线阅读,更多相关《c语言习题册及答案.docx(80页珍藏版)》请在冰豆网上搜索。

c语言习题册及答案.docx

c语言习题册及答案

第3章课后练习及作业习题指导(参考答案)

作业01C语言基础知识

一、选择题

1.C语言程序的基本单位是()。

A)函数B)过程C)子程序D)子例程

2.下列个选项中,合法的C语言关键字是()。

A)integerB)sinC)stringD)void

3.下列选项中,不是C语言提供的合法关键字的是()。

A)switchB)cherC)defaultD)case

4.以下选项中合法的用户标识符是()。

A)intB)a#C)5memD)_243

5.C语言程序一行写不下时,应该()。

A)用回车换行B)在任意空格处换行

C)用分号换行D)用逗号换行

6.在C程序中,可以作为用户标识符的一组标识符是()。

A)voiddefineWORDB)as_b3_224Else

C)switch—wercaseD)4bDOSIG

7.在C语言中,下列合法的字符常量是()。

A)’\039B)’\x76’C)’ab’D)’\o’

8.以下说法正确的是()。

A)C语言程序是从第一个定义的函数开始执行

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序是从main()函数开始执行的

D)C语言程序中的main()函数必须放在程序的开始部分

9.()是构成C语言程序的基本单位

A)函数B)变量C)子程序D)语句

10.一个C语言程序总是从()开始执行的

A)主过程B)主函数C)子程序D)主程序

11.以下叙述不正确的是()

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main()函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

12.C语言规定:

在一个源程序中,main()函数的位置()

A)必须在最开始B)必须在系统调用的库函数的后面

C)可以任意D)必须在最后

13.以下叙述正确的是()

A)在C程序中,main()函数必须位于程序的最前面

B)C程序中的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

14.C语言中标识符只能由字母、数字和下划线3种字符组成,且第一个字符()

A)必须为字母B)必须为下划线

C)必须为字母或下划线D)可以是字母、数字和下划线中任意一种字符

二、填空题

1.一个C语言编写的程序是从main函数开始执行的。

2.结构化程序所规定的3种基本控制结构是顺序结构、选择结构和循环结构。

3.C语言的标识符可分为保留字、用户定义标识符和预定义标识符3类。

4.在C语言中,整数可用十进制、八进制和十六进制三种。

5.一个C语言程序的开发过程包括:

编辑、编译、连接和运行4步。

6.一个C源程序中至少应包括一个main函数。

7.在一个C源程序中,注释部分两侧分界符分别为/*和*/。

8.C语言中的标识符只能由3种字符组成,它们是字母、数字和下划线。

9.C程序执行过程生成的3种文件及扩展名为.c、.obj和.exe。

作业02数据类型及运算

一、选择题

1.C语言中简单数据类型有()。

A)整型、实型、逻辑型B)整型、字符型、逻辑型

C)整型、实型、字符型D)整型、实型、字符型、逻辑型

2.以下选项中正确的整型常量是()。

A)-37B)32,758C)326D)6.

3.以下选项中合法的C语言字符常量是()。

A)‘\t’B)”A”C)67D)A

4.以下选项中不正确的实型常量是()。

A)123B)1e4C)3.640E-1D)0.35

5.不合法的十六进制数是()。

A)0xffB)0X11C)0x1gD)0Xabc

6.以下选项中合法的C语言赋值语句是()。

A)a=b=34B)a=34,b=34C)--iD)m=(int)(x+y);

7.在C语言中,char型数据在内存中是以()形式储存的。

A)原码B)补码C)ASCII码D)反码

8.以下()是不正确的转义字符

A)‘\\’B)‘\”C)‘020’D)’\0’

9.若有代数式3ae/bc,则不正确的C语言表达式是()。

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3

10.在C语言中,要求参加运算的数必须是整数的运算符是()。

A)%B)/C)!

D)**

11.若已定义x和y为double类型,则表达式“x=1,y=x+3/2“的值是()。

A)1B)2C)2.0D)2.5

12.若变量已正确定义并赋值,符合C语言语法的表达式是()。

A)a=a+1B)a=7+b+c,a++C)int(12.3/4)D)a=a+7=c+b

13.若a为整型变量,则下列语句()。

a=-2L;

printf(“%d\n”,a);

A)赋值不合法B)输出值为-2C)输出值不为确定值D)输出值为2

14.对于条件表达式(M)?

(a++):

(a--),其中表达式M等价于()。

A)M==0B)M==-1C)M!

=0D)M!

=1

15.若有定义:

intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为()。

(x+y)%2+(int)a/(int)b

A)1.0B)1C)2.0D)2

16.若x和n均是int型变量,且x初值为12,n初值为5,则执行下面表达式后x值为()。

x%=(n%=2)

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

17.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()。

A)7B)8C)9D)10

18.设intx=1,y=1;表达式(!

x||y--)的值是()。

A)0B)1C)2D)-1

19.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。

A)1B)2C)2.0D)2.5

20.若变量a,i已正确定义,且i已正确赋值,则合法的语句是()。

A)i=int(a)B)++i;C)a=a++=5D)a=int(i)

21.若执行以下程序段后,c3的值是()。

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

A)0B)0.5C)1D)2

22.能正确表示逻辑关系”a≥10或a≤0”的C语言表达式是()。

A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10||a<=0

23.若变量x、y、z均为double类型且已经正确赋值,不能正确表示x/(y×z)的C语言表达式是()。

A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z

24.设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为()。

A)不定值B)4C)3D)1

25.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。

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

26.假定w、x、y、z、m均为int型变量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(w

w:

x;m=(m

m:

y;m=(m

m:

z;

则该程序运行后,m的值是()。

A)4B)3C)2D)1

27.已知inti;floatf;正确的语句是()。

A)(intf)%i;B)int(f)%i;C)int(f%i);D)(int)f%i;

28.已知intj,i=1;,执行语句j=-i++;后,j的值是()。

A)1B)2C)-1D)-2

29.已知inta=4,b=5;,则执行表达式a=a>b后,变量a的值为()。

A)0B)1C)4D)5

30.判断char类型数据c1是否为大写字母的最简单且正确的表达式为()。

A)’A’<=c1<=’Z’B)(c1>=’A’)&(c1<=’Z’)

C)(‘A’<=c1)AND(‘Z’>=c1)D)(c1>=’A’)&&(c1<=’Z’)

二、填空题

1.若a是int型变量,则执行表达式a=25/3%3后a的值是2。

2.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为10,n的值为6。

3.若x和y都是double型变量,且x初值为3.0,y初值为2.0,则表达式pow(y,fabs(x))的值为8.0。

4.表达式pow(2.8,sqrt(double(x))值的数据类型为double。

5.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。

6.若有定义intm=5,y=2;则执行表达式y+=y-=m*=y后y的值为-16。

7.已知inta=15,b=240;则表达式(a&b)&b||b的结果为1。

8.表达式8.0*(1/2)的值为0.0。

9.字符串“ab\034\\\x79”的长度为5。

10.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为1。

11.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为6,b值为4,c值为2。

12.若有定义:

charc=’\010’;则变量c中包含的字符个数为1。

13.若i为int整形变量且赋值为6,则运算i++后表达式的值为6变量i的值是7。

14.若二进制a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,

则二进制b是11110000。

15.表达式3&4的值为0,表达式3|4的值为7,表达式3&&4的值为1。

三、读程序写结果

1.如下程序的运行结果是(33)。

#include

voidmain()

{inty=3,x=3,z=1;

printf(“%d%d\n”,(++x,y++),z+2);}

2.以下程序的输出结果是(6)。

#include

voidmain()

{inta=5,b=4,c=6,d;

printf(“%d\n”,d=a>b?

(a>c?

a:

c):

(b));}

3.在C语言中,如果下面的变量都是int类型,则输出的结果是(7)。

sum=pad=5;

pad=sum++,pad++,++pad;

printf(“%d\n”,pad);

4.以下程序的输出结果是(9,10)。

#include

voidmain()

{inti=010,j=10;

printf(“%d,%d\n”,++i,j--);}

作业03基本语句

一、选择题

1.若有说明:

doublea;则正确输入语句是()。

A)scanf(“%if”,a)B)scanf(“%lf”,&a)

C)scanf(“%if”,&a)D)scanf(“%lo”,&a)

2.合法的C语言赋值语句是()。

A)a=b=58B)k=int(a+b)C)a=58,b=58D)--i;

3.若变量已确定定义,以下程序段输出结果是()。

x=5.16894;

printf(“%f\n”,(int)(x*1000+0.5)/(float)(1000)”);

A)输出格式说明与输出项不匹配,输出无定值B)5.170000

C)5.168000D)5.169000

4.若有以下程序其输出结果是()。

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

A)3,0,-10B)0,0,5C)-10,3-10D)3,0,3

5.以下程序其输出结果是()。

#include

voidmain()

{inta=2,b=5;

printf(“a=%%d,b=%%d\n”,a,b);}

A)a=%2,d=%5B)a=2,b=5C)a=%%d,b=%%5D)a=%d,b=%d

6.以下程序段输出结果是()。

floata=3.1415;

printf(“|%6.0f|\n”,a,b);

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

7.以下程序段输出结果是()。

floata=57.666;

printf(“*%010.2f*\n”,a);

A)*0000057.66B)*57.66*C)*00000.57.67*D)*57.57*

8.若变量c定义为float型,当从终端输入283.1900后按回车,能给变量c赋以283.19的输入语句是()。

A)scanf(“%f”,c);B)scanf(“%8.4f”,&c);

C)scanf(“%d”,&c)D)scanf(“%8f”,&c);

9.若有以下定义语句,则输出结果是()。

intu=010,v=0x10,w=10;

printf(“%d,%d,%d\n”,u,v,w);

A)8,16,10B)10,10,10C)8,8,10D)8,10,10

10.下面程序的输出是()。

#include

voidmain()

{intk=11;

printf(“%d,%o,%x\n”,k,k,k);}

A)12,11,11B)11,13,13C)11,013,0xbD)11,13,b

11.下面程序的输出结果是()。

#include

main()

{intx=5,y=3;

printf(“%d\n”,y=x/y);}

A)0B)1C)3D)不确定的值

12.若变量已正确定义,下面程序段的输出结果是()。

//与3类似

x=5.238794;

printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);

A)5.239000B)输出格式说明与输出项不匹配,输出无定值

C)5.238000D)5.24

13.下面语句的输出结果是()。

print("|%8.5f|\n",3461.45);

A)|61.45000|B)|3461.450|C)|3461.45000|D)|3461.4500|

14.执行下面程序中的输出语句后,a的值是()。

#include

voidmain()

{inta;

printf("%d\n",(a=3*5,a*4,a+5));}

A)65B)20C)15D)10

15.以下程序不用第三个变量,实现将两个数进行对调的操作,请填空()。

#include

main()

{inta,b;

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

printf("a=%db=%d",a,b);

a=a+b;b=a-b;a=_____;

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

A)a=bB)a-bC)b*aD)a/b

16.以下程序的输出结果是()。

#include

voidmain()

{intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf("%f\n",x);}

A)27.000000B)27.500000C)28.000000D)28.500000

17.若变量都已正确说明,则以下程序段输出结果是()。

a=2;

b=3;

printf(“a>b?

***a=%d;###b=%d”,a,b);?

?

?

?

?

A)没有正确的输出格式控制B)输出为:

****a=2

C)输出为:

###b=2D)输出为:

***a=2###b=2

18.若已定义inta=256;,执行语句printf("%x",a);的结果是()。

A)100B)256C)ffeD)ff

19.执行下列程序时输入1234567,程序的运行结果为()。

#include

voidmain()

{intx,y;

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

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

A)17B)46C)15D)9

20.已知inta,;intb;floatc;doubled;,则表达式a*b==c-d结果为()型。

?

?

?

?

A)DoubleB)intC)floatD)char

21.已知inta,b;,用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是()。

A),B)空格C)回车D)[Tab]键

22.语句printf("%d",(a=2)&&(b=-2));的输出结果是()。

A)无输出B)结果不确定C)-1D)1

23.下述程序的输出结果是()。

#include

voidmain()

{printf("%f",2.5+1*7%2/4);}

A)2.50000B)2.750000C)3.375000D)3.000000

2、填空题

1.变量i、j、k已定义为int类型并有初值0,用以下语句进行输入:

scanf(“%d”,&j);scanf(“%d”,&k);

当执行以上输入语句,从键盘输入(代表回车键):

12.3

则变量i、j、k的值分别是0,12,0。

2.复合语句在语法上被认为是一条语句,空语句的形式是;。

3.C语句句尾用;结束。

4.运行如下程序:

#include

voidmain()

{inta,b,c;

scanf(“%d,%d,%d”,&a,&b,&c);

printf(“%d,%d,%d”,a,b,c);}

运行时,输入3、4、5,输出的值为3,4,5。

5.字符常量使用一对'界定单个字符,而字符串常量使用一对"来界定若干个字符的序列。

6.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为2.5。

7.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。

8.表达式5%(-3)的值是2,表达式-5%(-3)的值是-2。

三、读程序写结果

1.下列程序的输出结果是()。

#include

voidmain()

{inti=-200,j=25;

printf("%d,%d",i,j);

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

printf("i=%d\nj=%d\n",i,j);}

2.使用强制转换方法将正整数转换成字符。

本程序的执行结果是()。

#include

voidmain()

{charc;inti;

printf("输入一个正整数(小于255):

");

scanf("%d",&i);

c=(char)i;

printf("%c的ASCII码为%d\n",c,i);}

3.下列程序的输出结果是(560分钟<=>9小时20分钟)。

#include

voidmain()

{inti=560,h,m;

h=i/60;

m=i-60*h;

printf("%d分钟<=>%d小时%d分钟\n",i,h,m);}

4.下列程序的输出结果是(*3.140000,3.142*)。

#include

voidmain()

{printf("*%f,%4.3f*\n",3.14,3.1415);}

5.已有定义intd=-2;执行以下语句后的输出结果是()。

printf("*d

(1)=%d*d

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

(1)=-2*d

(2)=-2*d(3)=-2*

printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);*d(4)=fffffffe*d(5)=fffffffe*d(6)=fffffffe*

6.在scanf()函数调用语言,可以在格式字符和%号之间加上一个星号,他的作用是(跳过对应的输入数据);当输入以下数据时:

10203040〈回车〉(此处代表空格),下面语句的执行结果是(103040)。

inta1,a2,a3;

scanf("%d%*d%d%d",&a1,&a2,&a3);

printf("%d%d%d",a1,a2,a3);

7.执行以下程序时,若从第一列开始输入数据,为使变量

a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',

正确的数据输入形式是()。

#include

voidmain()

{inta,b;floatx,y;charc1,c2;

scanf("a=%db=%d",&a,&b);a=3b=7

scanf("x=%fy=%f",&a,&b);x=8.5y=71.82

scanf("c1=%cc2=%c",&c1,&c2);c1=A,c2=a

printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);}

四、程序填空

1、给定程序的功能是:

求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:

圆面积公式为:

2,在程序中定义的变量名要与公式的变量相同)。

例如:

输入圆的半径值:

19.527,输出为:

s=598.949991。

注意:

部分源程序给出如下。

试题程序:

#include

voidmain()

{doublex;

printf("Enterx:

");

scanf("%lf",【1】);&x

printf("s=%lf\n",3.14159*【2】/2.0));}x*x

五、编程题

1.请编写程序其功能是:

将两个两位的正整数a、b合并成一个整数放在c中。

合并方式是:

将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

例如:

当a=45,b=12,调用该函数后,c=5241。

2.假设m是一个三位数,则输出将m的个位,十位,百位反序而成的三

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1