《C语言程序设计习题与上机指南》答案Word下载.docx

上传人:b****5 文档编号:19912713 上传时间:2023-01-12 格式:DOCX 页数:126 大小:63.77KB
下载 相关 举报
《C语言程序设计习题与上机指南》答案Word下载.docx_第1页
第1页 / 共126页
《C语言程序设计习题与上机指南》答案Word下载.docx_第2页
第2页 / 共126页
《C语言程序设计习题与上机指南》答案Word下载.docx_第3页
第3页 / 共126页
《C语言程序设计习题与上机指南》答案Word下载.docx_第4页
第4页 / 共126页
《C语言程序设计习题与上机指南》答案Word下载.docx_第5页
第5页 / 共126页
点击查看更多>>
下载资源
资源描述

《C语言程序设计习题与上机指南》答案Word下载.docx

《《C语言程序设计习题与上机指南》答案Word下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计习题与上机指南》答案Word下载.docx(126页珍藏版)》请在冰豆网上搜索。

《C语言程序设计习题与上机指南》答案Word下载.docx

6.C程序中的“\n”表示在程序运行中换行。

7.C程序中,“/*……*/”表示注释部分。

8.C程序中,一个函数由函数首部和函数体组成。

9.一个C程序总是从main()函数开始执行的,不论该函数在整个程序中的位置如何。

10.在纸上编好一个C源程序后,要经过编辑、编译、连接、运行这几个步骤进行上机运行。

三.判断题

1.C语言不具有低级语言的特性。

(错)

2.C语言之所以也被称为中级语言,是因为它比高级语言的功能要少,而比低级语言的功能多。

3.C语言与其他高级语言一样具有结构化的控制语句。

(对)

4.C语言允许直接访问物理地址。

5.每一个C程序必须有一个main函数。

6.C程序的语句最后应有一个分号。

7.C程序中的main函数必须放在整个程序的最前头。

8.计算机高级语言对源程序进行翻译有两种方式:

编译和解释。

四.编程题

1.编写一个C程序,输出以下信息:

************

Iamastudent.

#include<

stdio.h>

/*包含头文件,为了使用printf和scanf语句,注意句末无分号*/

voidmain()

{

printf(“***********\n”);

/*\n的作用相当于回车*/

printf(“Iamastudent.\n”);

}

2.编写一个C程序,输入a、b两个数,输出其中大的数。

(只用一个主函数)

inta,b;

printf(“Pleaseinputa,b:

\n”);

scanf(“%d,%d”,&

a,&

b);

/*注意输入两个数之间用逗号分隔*/

if(a>

b)

printf(“%d”,a);

else

printf(“%d”,b);

3.编写一个C程序,输入a、b、c三个数,输出其中最大数。

inta,b,c,max;

printf(“Pleaseinputa,b,c:

scanf(“%d,%d,%d”,&

b,&

c);

max=a;

if(a<

b)max=b;

/*max用于保存a,b中比较大的数*/

if(max<

c)max=c;

/*将a,b中较大的数再和c比较*/

printf(“Thelargestnumberis%d”,max);

第二章数据与运算

1.C语言中最简单的数据类型包括(B)。

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

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

2.C语言中运算对象必须是整型的运算符是(D)。

A)*B)/C)=D)%

3.在C程序中,以下不正确的叙述是(D)。

A)逗号运算符的优先级最低

B)ABC和abc是两个不同的变量

C)若a和b类型相同,在执行了赋值表达式a=b后,b中的值将放入a中,而b的值不变

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据

4.设有intx=8,表达式x++*1/3的值是(A)。

A)2B)3C)8D)9

5.若m,x,y,z都是整型变量,则计算表达式m=(x=5,y=10,z=25)执行后,m的值为(C)。

A)5B)10C)25D)40

6.设变量i是int类型,f是float型,d是double型,执行表达式5+’i’-f*d,其结果的数据类型为(B)。

A)int型B)double型C)float型D)非法表达式

7.设变量i是int类型,执行语句i=’A’+2.5后,正确的叙述是(C)。

A)i的值是字符DB)i的值是字符A的ASCII值加上2.5

C)i的值是字符A的ASCII值加上2D)非法表达式

8.下列是用户自定义标识符的是(B)。

A)intB)_xyC)2xyD)3-xy

9.下面与x=y++完全等价的表达式是(A)。

A)x=y,y=y+1B)x=x+1,y=xC)x=++yD)x+=y+1

10.已知各变量的类型说明如下:

intk,a,b;

longw=8;

floatx=2.56;

以下不符合C语言语法的表达式是(A)。

A)x%5B)w-=5C)k=(a=8,b=6,a-b)D)a+=a-=(b=2)*(a=5)

11.运行以下程序段时编译出错,其原因是(D)。

charc1='

a'

c2='

123'

;

printf("

%c,%d\n"

c1,c2);

A)字符串要用"

123"

表示B)'

只能赋值给字符数组

C)c2是字符变量,不能用%d格式输出D)c2是字符变量,只能赋以字符常量

12.若定义floata;

,现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用(A)。

A)scanf("

%6f"

&

a);

B)scanf("

%5.2f"

a);

C)scanf("

%6.2f"

D)scanf("

%f"

13.若定义doublet;

,则表达式t=1,t+5,++t的值为(B)。

A)1.0B)2.0C)6.0D)7.0

14.已知各变量的类型说明如下,则C语言中错误的表达式是(A)。

unsignedlongw=5;

doublex=1.42;

A)x%(-3)B)w+=2

C)k=(a=2,b=3,a+b)D)a+=a-=(b=4*(a=3))

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

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

if(a&

&

++b)c++;

%d,%d\n"

b,c);

A)1,1B)1,0C)0,0D)0,1

1.在C语言中,一个float型数据在内在中所占的字节数为4,一个double型数据在内在中所占的字节数是8。

2.下面程序的输出结果是28。

main()

inta=2,b=3,c=4;

a*=16+(b++)-(++c);

3.下面程序的输出结果是5。

intx=17,y=26;

printf(“%d”,y/=(x%=6));

4.执行下面程序段后,c3中的值是0。

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

5.进行下列变量定义后,表达式a*b+d-c的类型是double。

chara;

intb;

floatc;

doubled;

6.下面程序的输出结果是8,10。

intx=010,y=10;

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

7.下面程序的输出结果是12。

intx=3,y=5;

printf(“%d\n”,x=(x--)*(--y));

8.已知字母A的ASCII码是十进制数65,设c为字符型变量,则表达式c=’A’+’5’-’2’的值为D或68。

9.下面程序的输出结果是52。

intx=065;

printf(“%d\n”,--x);

/

10.下面程序的输出结果是25,21,37。

inta,b,c;

a=25;

b=025;

c=0x25

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

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

intx=0110;

printf(“%x\n”,x);

12.下面程序的输出结果是20200.000000。

charc;

intn=100;

floatf=10;

doublex;

x=f*=n/=(c=5);

printf(“%d%f\n”,n,x);

13.写出下面程序的运行结果。

(请用∪表示空格)

charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%c∪b%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c∪%c\n”,c4,c5);

程序的运行结果是:

aa∪bb∪∪∪cc∪∪∪∪∪∪abc

A∪N

14.下面程序的运行结果是9,11,9,10。

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

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

15.以下程序的运行结果是11.50。

inti=5,j=9;

floatx=2.3,y=4.5;

%8.2f\n"

i%(int)(x+y)*j/2/3+y);

1.C语言中,字符常量可以用单引号或双引号括起来。

2.C语言中,字符常量只能包含一个常量(字符)。

3.在C语言中,字符串常量隐含处理成以‘\0’结尾。

4.下面程序段的输出结果是9。

inta=9;

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

(注意:

%o中的o是字母o,不是数字0)

5.C语言中,用户所定义的标识符允许使用关键字。

6.C语言中,用户所定义的标识符中,大、小字母代表不同标识。

7.C语言中,符号常量的值在程序运行过程中可以改变。

8.C语言中,不要求对程序中所用到的变量进行强制定义。

9.C语言中,一个整数如果其值在-323768~32767范围内,认为它是int型,只能赋值给int型变量。

10.设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的。

四.计算题

1.求下面表达式的值。

1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7

第1步:

(int)(x+y)=(int)(7.2)=7

第2步:

a%3*7%2/4=7%3*7%2/4=1*7%2/4=1/4=0

第3步:

x+0=x=2.5(计算机显示为2.500000)

2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5

(float)(a+b)/2=(float)(2+3)/2=(float)(5)/2=5.0/2=2.5

(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1

2.5+1=3.5(计算机显示为3.500000)

2.写出下面赋值表达式运算后a的值,设原来a=12,n=5。

1)a+=aa=a+a=12+12=24

2)a-=2a=a-2=12-2=10

3)a*=2+3a=a*(2+3)=12*5=60

4)a/=a+aa=a/(a+a)=12/24=0注意a是整型

5)a%=(n%=2)已知:

n=5a=0

6)a+=a-=a*=a从右向左解:

a=a*a=144;

a=a-a=0;

a=a+a=0

五.编程题

1.要将“China”译成密码,规律是:

用原来的字母后面第4个字母代替原来的字母。

例如,“A”用字母“E”来替代。

因此,“China”应译为“Glmre”。

编程:

用赋初值的方法使c1.c2.c3.c4.c5这五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,这五个变量分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。

charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

c1=c1+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf(“passwordis%c%c%c%c%c\n”,c1,c2,c3,c4,c5);

运行结果:

passwordisGlmre

也可以用循环和数组:

charc[]={“China”};

printf(“passwordis“);

for(inti=0;

i<

=4,i++)

printf(“%c”,c[i]+=4);

printf(“\n”);

2.请编程,要求用赋初值的方法使c1.c2这两个变量的值分别为97和98,然后分别按整型和字符型输出。

charc1=97,c2=98;

printf(“%d,%d\n”,c1,c2);

printf(“%c,%c\n”,c1,c2);

3.编写程序,从键盘输入三个单精度数a、b、c,计算总和、平均值、x=a2+b2+c2的值,并计算x平方根的值。

所有运行数据保留三位小数,第四位四舍五入。

math.h>

doublea,b,c,total,average,square,squareroot;

请输入三个单精度实数:

"

);

scanf("

%f%f%f"

total=a+b+c;

average=total/3.0;

square=a*a+b*b+c*c;

squareroot=sqrt(square);

三个数的和=%-15.3f,三个数的平均值=%-15.3f\n"

total,average);

三个数的平方和x=%.3f,x的平方根=%.3f\n"

square,squareroot);

1.234.567.89

三个数的和=13.680,三个数的平均值=4.560

三个数的平方和x=84.559,x的平方根=9.196

4.输入三角形的三个边长,计算并输出三角形的面积。

floata,b,c,k,area;

请输入三角形三条边的边长:

if((a+b<

=c)||(a+c<

=b)||(b+c<

=a))

您输入的三条边无法构成三角形。

\n"

k=(a+b+c)/2;

area=sqrt(k*(k-a)*(k-b)*(k-c));

/*函数sqrt(x)是求x的平方根*/

该三角形的面积是%6.2f\n"

area);

5.输入两个长整型数,输出它们(整数除的)商和余数。

longa1,a2,a3,a4;

请输入两个整数:

%ld%ld"

a1,&

a2);

a3=a1/a2;

a4=a1%a2;

两数进行整数除的商是%ld,余数是%ld\n"

a3,a4);

654321789

两数进行整数除的商是829,余数是240

6.输入两个整数,输出它们(实数除)的商,并输出商的第二位小数位(例如:

15/8.0=1.875,1.875的第二位小数位是7)。

floatf;

%d%d"

f=1.0*a/b;

c=(int)(f*100)%10;

两数进行实数除,商是%f,商的第二位小数位是%d\n"

f,c);

158

两数进行实数除,商是1.875000,商的第二位小数位是7

7.输入一个(unsigned类型)无符号整数,分别输出它的低四位和高四位。

unsignedu,high4,low4;

请输入一个无符号整数:

%u"

u);

low4=(u&

0xf);

/*u的低四位保留原值,其余位置0*/

high4=(u&

0xf000)>

>

12;

/*u的高四位保留原值,其余位置0,并右移12位*/

%u的十六进制是%x\n"

u,u);

十六进制表示%u的低四位是%x,高四位是%x\n"

u,low4,high4);

54332

54332的十六进制是d43c

十六进制表示54332的低四位是c,高四位是d

8.输入两个小写字母分别赋值给字符变量ch1与ch2,将它们转换成大写字母,并交换ch1与ch2的值,最后输出ch1与ch2的值。

charc1,c2,t;

请输入两个半角的小写英文字母:

c1=getchar();

c2=getchar();

c1-=32;

c2-='

-'

A'

/*与32等价*/

t=c1;

c1=c2;

c2=t;

%c%c\n"

db

BD

9.输入秒数,将它转换,用小时、分钟、秒来表示。

例如输入7278秒,则输出:

2小时1分18秒。

intk;

inthour,minute,second;

请输入秒数:

%d"

k);

hour=k/3600;

k%=3600;

minute=k/60;

second=k%60;

%d小时%d分钟%d秒。

hour,minute,second);

7278

2小时1分钟18秒。

10.输入两个复数的实部和虚部,输出这两个复数积的实部和虚部。

两复数的积按下面的公式计算:

(a+bi)·

(c+di)=(ac-bd)+(ad+bc)i。

floata,b,c,d,real,imag;

请输入第一个数的实部和虚部:

%f%f"

请输入第二个数的实部和虚部:

c,&

d);

real=a*c-b*d;

imag=a*d+b*c;

两个复数积的实部和虚部分别是%f,%f\n"

real,imag);

1.12.2

3.34.4

两个复数积的实部和虚部分别是-6.050000,12.100000

第三章C程序的基本控制结构

1.若变量已经正确定义为float型,要通过语句scanf(“%f%f%f”,&

c)。

给a输入10.0,n输入20.0,c输入30.0,下列不正确的输入形式是(B)。

A)10<

回车>

20<

30<

B)10.0,20.0,30.0<

C)10.0<

20.030.0<

D)1020<

2.若有说明语句:

charc=’65’;

则变量c(D)。

A)包含1个字符B)包含2个字符

C)包含3个字符D)说明不合法,c的值不确定

3.若w=1,x=2,y=3,z=4,则条件表达式w<

x?

w:

y<

z?

y:

z的值是(A)。

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

4.x、y、z被定义为int型变量,若从键盘给它们输入数据,正确的输入语句是(B)。

A)inputx,y,z;

B)scanf(“%d%d%d”,&

x,&

y,&

z);

C)scan

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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