C语言程序设计习题与上机指引答案.docx

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

C语言程序设计习题与上机指引答案.docx

《C语言程序设计习题与上机指引答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题与上机指引答案.docx(127页珍藏版)》请在冰点文库上搜索。

C语言程序设计习题与上机指引答案.docx

C语言程序设计习题与上机指引答案

《C语言程序设计习题与上机指南》答案

第一部分习题篇第一章C语言概述

一.单选题

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

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

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

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

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

2.一个C语言程序是由(B)。

A)一个主程序和若干子程序组成B)函数组成

C)若干过程组成D)若干子程序组成

3.C语言规定,在一个源程序中,main函数的位置(C)。

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

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

4.以下叙述不正确的是(D)。

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

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

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

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

5.下列关于C语言的说法不正确的是(D)。

A)C语言既有高级语言的功能,也具有低级语言的一些功能

B)C语言中的一条执行语句都必须用分号结束

C)注释可以出现在程序中任意合适的地方D)include命令行后面必须加分号6.用C语言编写的代码程序(B)。

A)可以立即执行B)是一个源程序

C)经过编译即可执行D)经过编译解释才能执行

7.用高级语言(如C语言)编写的程序称为(A)

A)源程序B)目标程序C)可执行程序D)编译程序

8.一个函数的组成有(A)。

A)函数首部和函数体B)函数名和函数的声明部分

C)主函数和子函数D)声明部分和执行部分

9.在C语言中,用来表示“取地址”的符号是(B)。

A)#B)&C)*D)@

10.C语言是计算机高级语言,它适合于作为系统描述语言,它(A)。

A)既可用来写系统软件,也可用来写应用软件

B)只能写系统软件,不能用来写应用软件

C)不能写系统软件,只能用来写应用软件

D)既不能写系统软件,也不能写应用软件

二.填空题

1.C语言用函数作为程序的模块单位,便于实现程序的模块化。

2.C语言允许直接访问物理地址,能进行位操作。

3.用C语言编写的程序,每一个语句和数据定义的结尾必须要有一个分号。

4.每个C程序中必须有一个main()函数。

5.C程序中的函数体由{}括起来。

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/*包含头文件,为了使用printf和scanf语句,注意句末无分号*/voidmain()

\n”);

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

(只用一个主函数)

#includevoidmain()

{

inta,b;

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

printf(“Pleaseinputa,b:

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

if(a>b)

printf(“%d”,a);

elseprintf(“%d”,b);

}

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

(只用一个主函数)#include

voidmain()

{

inta,b,c,max;

printf(“Pleaseinputa,b,c:

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

max=a;if(a

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.已知各变量的类型说明如下:

C)k=(a=8,b=6,a-b)D)a+=a-=(b=2)*(a=5)(D)。

B)'123'只能赋值给字符数组

D)c2是字符变量,只能赋以字符常量

intk,a,b;longw=8;floatx=2.56;以下不符合C语言语法的表达式是(A)。

A)x%5B)w-=5

11.运行以下程序段时编译出错,其原因是charc1='a',c2='123';printf("%c,%d\n",c1,c2);

A)字符串要用"123"表示

C)c2是字符变量,不能用%d格式输出

12.若定义floata;,现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用(A)。

A)scanf("%6f",&a);B)scanf("%5.2f",a);

C)scanf("%6.2f",&a);D)scanf("%f",a);

C)6.0D)7.0

C语言中错误的表达式是(A)。

13.若定义doublet;,则表达式t=1,t+5,++t的值为(B)。

A)1.0B)2.0

B)w+=2

D)a+=a-=(b=4*(a=3))

14.已知各变量的类型说明如下,则intk,a,b;unsignedlongw=5;doublex=1.42;

A)x%(-3)

C)k=(a=2,b=3,a+b)15.以下程序段的运行结果是(C)。

inta=0,b=0,c=0;if(a&&++b)c++;printf("%d,%d\n",b,c);

A)1,1B)1,0

二.填空题

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

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

main()

{

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

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

printf(“%d”,a);

}

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

main()

{

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。

main(){

intx=010,y=10;printf(“%d,%d\n”,x,y);

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

main()

{

intx=3,y=5;

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

}

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

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

main()

{

intx=065;

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

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

main(){inta,b,c;a=25;b=025;c=0x25printf(“%d,%d,%d\n”,a,b,c);

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

main(){

intx=0110;printf(“%x\n”,x);

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

main()

{

charc;intn=100;

floatf=10;

doublex;

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

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

}

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

(请用∪表示空格)

main()

{

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。

main()

{

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。

#include

voidmain()

{

inti=5,j=9;

floatx=2.3,y=4.5;

printf("%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

第1步:

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

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

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',并输出。

#includevoidmain()

{

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(“passwordisn”,c1,c2,c3,c4,c5);

}运行结果:

passwordisGlmre也可以用循环和数组:

#include

voidmain()

{

charc[]={“China”};printf(“passworids“);

for(inti=0;i<=4,i++)printf(“%c”,c[i]+=4);

printf(“\n”);

c1.c2这两个变量的值分别为97和98,然后分别按整

}2.请编程,要求用赋初值的方法使型和字符型输出。

#include

voidmain()

{

charc1=97,c2=98;

printf(“%d,%dn”,c1,c2);

printf(“%c,%cn”,c1,c2);

}

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

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

#include

#include

voidmain()

{

doublea,b,c,total,average,square,squareroot;printf("请输入三个单精度实数:

");scanf("%f%f%f",&a,&b,&c);

total=a+b+c;average=total/3.0;square=a*a+b*b+c*c;squareroot=sqrt(square);printf("三个数的和=%-15.3f,三个数的平均值=%-15.3f\n",total,average);printf("三个数的平方和x=%.3f,x的平方根=%.3f\n",square,squareroot);

}运行结果:

请输入三个单精度实数:

1.234.567.89三个数的和=13.680,三个数的平均值=4.560三个数的平方和x=84.559,x的平方根=9.196

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

#include

#include

voidmain()

{

floata,b,c,k,area;

printf("请输入三角形三条边的边长:

");scanf("%f%f%f",&a,&b,&c);

if((a+b<=c)||(a+c<=b)||(b+c<=a))

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

\n");

else{

k=(a+b+c)/2;area=sqrt(k*(k-a)*(k-b)*(k-c));/*函数sqrt(x)是求x的平方根*/

printf("该三角形的面积是%6.2f\n",area);

}}

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

#include

voidmain()

{

longa1,a2,a3,a4;

printf("请输入两个整数:

");

scanf("%ld%ld",&a1,&a2);

a3=a1/a2;

a4=a1%a2;

printf("两数进行整数除的商是%ld,余数是%ld\n",a3,a4);

}

运行结果:

请输入两个整数:

654321789

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

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

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

#include

voidmain()

{

inta,b,c;

floatf;

printf("请输入两个整数:

");

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

f=1.0*a/b;

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

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

}

运行结果:

请输入两个整数:

158

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

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

#includevoidmain()

{

unsignedu,high4,low4;

printf("请输入一个无符号整数:

");

scanf("%u",&u);

low4=(u&0xf);/*u的低四位保留原值,其余位置0*/high4=(u&0xf000)>>12;/*u的高四位保留原值,其余位置0,并右移12位*/printf("%u的十六进制是%x\n",u,u);

printf("十六进制表示%u的低四位是%x,高四位是%x\n",u,low4,high4);

}

运行结果:

请输入一个无符号整数:

54332

54332的十六进制是d43c

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

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

#include

voidmain()

{

charc1,c2,t;

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

");

c1=getchar();

c2=getchar();

c1-=32;

c2-='a'-'A';/*与32等价*/

t=c1;

c1=c2;

c2=t;

printf("%c%c\n",c1,c2);

}

运行结果:

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

dbBD

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

例如输入7278秒,则输出:

2小时1

分18秒。

#include

voidmain()

{

intk;

inthour,minute,second;

printf("请输入秒数:

");

scanf("%d",&k);

hour=k/3600;

k%=3600;

minute=k/60;

second=k%60;

printf("%d小时%d分钟%d秒。

\n",hour,minute,second);

}

运行结果:

请输入秒数:

7278

2小时1分钟18秒。

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

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

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

#include

voidmain()

{

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

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

");

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

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

");

scanf("%f%f",&c,&d);

real=a*c-b*d;

imag=a*d+b*c;

printf("两个复数积的实部和虚部分别是%f,%f\n",real,imag);

}

运行结果:

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

1.12.2

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

3.34.4

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

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

一.单选题

1.若变量已经正确定义为float型,要通过语句scanf(“%f%f%f”,&a,&b,&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<回车>30<回车>

2.若有说明语句:

charc='65';则变量c(D)

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

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

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

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