C语言程序设计基础教程习题答案资料.docx

上传人:b****1 文档编号:22863315 上传时间:2023-04-28 格式:DOCX 页数:100 大小:71.28KB
下载 相关 举报
C语言程序设计基础教程习题答案资料.docx_第1页
第1页 / 共100页
C语言程序设计基础教程习题答案资料.docx_第2页
第2页 / 共100页
C语言程序设计基础教程习题答案资料.docx_第3页
第3页 / 共100页
C语言程序设计基础教程习题答案资料.docx_第4页
第4页 / 共100页
C语言程序设计基础教程习题答案资料.docx_第5页
第5页 / 共100页
点击查看更多>>
下载资源
资源描述

C语言程序设计基础教程习题答案资料.docx

《C语言程序设计基础教程习题答案资料.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础教程习题答案资料.docx(100页珍藏版)》请在冰豆网上搜索。

C语言程序设计基础教程习题答案资料.docx

C语言程序设计基础教程习题答案资料

习题答案

第1章

1.1填空题

1.1.1应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main。

1.1.2一个函数由__函数头__和__函数体__两部分组成。

1.1.3在C语言中,输入操作是由库函数__scanf完成的,输出操作是由库函数_printf_完成的。

1.1.4通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。

1.1.5C语言程序的基本单位或者模块是__函数__。

1.1.6C语言程序的语句结束符是_;___。

1.1.7编写一个C程序,上机运行要经过的步骤:

______________________________。

1.1.8在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。

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

且第一个字符必须为字母或下划线。

1.1.10C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。

1.2选择题

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

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

1.2.2以下叙述不正确的是(C)。

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

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

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

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

1.2.3C语言规定:

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

A)必须在程序的开头B)必须在系统调用的库函数的后面

C)可以在程序的任意位置D)必须在程序的最后

1.2.4C编译程序是(A)。

A)将C源程序编译成目标程序的程序

B)一组机器语言指令

C)将C源程序编译成应用软件

D)C程序的机器语言版本

1.2.5要把高级语言编写的源程序转换为目标程序,需要使用(D)。

A)编辑程序B)驱动程序C)诊断程序D)编译程序

1.2.6以下叙述中正确的是(C)。

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

1.2.7以下叙述中正确的是(A)。

A)C程序中注释部分可以出现在程序中任意合适的地方

B)花括号“{”和“}”只能作为函数体的定界符

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C语句之间的分隔符,不是语句的一部分

1.2.8以下叙述中正确的是(B)。

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

1.2.9用C语言编写的代码程序(B)。

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

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

1.2.10以下叙述中正确的是(C)。

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

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

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

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

1.2.11下列4组选项中,均不是C语言关键字的选项是(A)。

A)defineB)getcC)includeD)while

IFcharscanfgo

typeprintfcasepow

1.2.12下列4组选项中,均是C语言关键字的选项是(B)。

A)autoB)switchC)signedD)if

enumtypedefunionstruct

includecontinuescanftype

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

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

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

1.3编程题

1.3.1参照本章例题,编写一个C程序,要求输出如下字符。

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

WelcometoExpo2010!

Shanghai2010

#include

voidmain()

{

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

printf(“WelcometoExpo2010!

\n”);

printf(“Shanghai2010\n”);

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

}

1.3.2设计一程序,输入3个整数,计算并显示输出这3个整数之和。

#include

voidmain()

{

inta,b,c;

printf(“inputa,b,c:

\n”);

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

printf(“thesumofa,b,cis%5d\n”,a+b+c);

}

 

第2章

2.1填空题

2.1.1C程序中数据有常量和变量之分,其中,用一个标识符代表一个常量的,称为符号常量。

C语言规定在程序中对用到的所有数据都必须指定其数据类型,对变量必须做到先定义,后使用。

2.1.2C语言中,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量,用关键字char定义字符型变量。

2.1.3在C语言中,以16位PC机为例,一个char型数据在内存中所占的字节数为1;一个int型数据在内存中所占的字节数为2,则int型数据的取值范围为-32768~32767。

一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为8。

单精度型实数的有效位是6-7位,双精度型实数的有效位是15-16位。

2.1.4设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确无误地存放在变量a中,应采用的类型说明语句是longinta=15791;。

2.1.5C的字符常量是用单引号括起来的1个字符,而字符串常量是用双引号括起来的字符序列。

2.1.6C语言中,用“\”开头的字符序列称为转义符。

转义符“\n”的功能是回车换行;转义符“\r”的功能是回车。

2.1.7若有定义:

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

2.1.8负数在计算机中是以补码形式表示。

2.1.9C语言中,&作为双目运算符是表示的是按位与,而作为单目运算符时表示的是取地址。

2.1.10在C语言的赋值表达式中,赋值号左边必须是变量。

2.1.11自增运算符++、自减运算符--,只能用于变量,不能用于常量或表达式。

++和--的结合方向是“自右左至左”。

2.1.12若a是int型变量,则执行下面表达式后a的值为2。

a=25/3%3

2.1.13写出下列数所对应的其它进制数(D对应十进制,B对应二进制,o对应八进制,H对应十六进制)

32D=100000B=40O=20H

75D=1001011B=113O=4BH

2.1.14假设已指定i为整型变量,f为float变量,d为double型变量,e为long型变量,有式子10+'a'+i*f-d/e,则结果为double型。

2.1.15若有定义:

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

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

2.1.165/3的值为1,5.0/3的值为1.666667。

2.1.17若有以下定义,intm=5,y=2;则执行表达式y+=y-=m*=y后的y值是-16。

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

2.1.19若x和n均为int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为:

0。

2.1.20若有定义语句:

inte=1,f=4,g=2;floatm=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是13.7。

 

2.2选择题

2.2.1逗号表达式"(a=3*5,a*4),a+15"的值是(C)。

A)15B)60C)30D)不确定

2.2.2若有以下定义和语句:

charc1='a',c2='f';

printf("%d,%c\n",c2-c1,c2-'a'+'B'); 

则输出结果是:

(D)

A)2,MB)5,!

C)2,ED)5,G

2.2.3sizeof(float)是( B )。

A)一个双精度型表达式B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

2.2.4若有以下定义,则能使值为3的表达式是( D)。

intk=7,x=12;

A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)

2.2.5在C语言中,要求运算数必须是整型的运算符是(A)。

A)%B)/C)

2.2.6下面4个选项中,均是合法整型常量的选项是(A)。

A)160B)-0xcdfC)-01D)-0x48a

-0xffff01a986,0122e5

0110xe06680x

2.2.7下面4个选项中,均是不合法浮点数的选项是(B)。

A)160.B)123C)-.18D)-e3

0.122e4.2123e4.234

E3.e50.01e3

2.2.8下面正确的字符常量是(C)。

A)”C”B)”\\”C)’W’D)’’

2.2.9在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。

A)由用户自己定义B)均为2个字节

C)是任意的D)由所用机器的机器字长决定

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

A)7B)8C)6D)2

2.2.11假设所有变量均为整型,则表达式x=(i=4,j=16,k=32)后x的值为(C)。

A)4B)16C)32D)52

2.2.12若有代数式

,则正确的C语言表达式是(D)。

A)fabs(x*3+log(x))B)fabs(pow(x,3)+log(x))

C)abs(pow(x,3.0)+log(x))D)fabs(pow(x,3.0)+log(x))

2.2.13设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)。

A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0

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

A)在C语言中,逗号运算符的优先级最低

B)在C语言中,APH和aph是两个不同的变量

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

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

2.2.15以下正确的叙述是(D)。

A)在C语言中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

2.3编程题

2.2.1编写一程序,求出给定半径r的圆的面积和周长,并输出计算结果。

其中,r的值由用户输入,用实型数据处理。

#include

#definePI3.14159

voidmain()

{

floatr,c,s;

printf("inputthe半径");

scanf("%f",&r);

c=2*PI*r;

s=PI*r*r;

printf("周长为%5.2f,面积为%5.2f\n",c,s);

}

2.2.2已知华氏温度和摄氏温度之间的转换关系是:

C=5/9*(F-32)。

编写一程序,将用户输入的华氏温度转换为摄氏温度,并输出结果。

#include

voidmain()

{

floatc,f;

printf("inputthe华氏温度");

scanf("%f",&f);

c=5.0/9*(f-32);

printf("华氏温度为%5.2f,摄氏温度为%5.2f\n",f,c);

}

 

习题三

3.1填空题

3.1.1程序的三种基本结构是顺序、选择、循环。

3.1.2执行(a=3.0+5,a*4),a+=-6;变量a及表达式的值分别为2.0,2.0

3.1.3下列语句被执行后的执行结果是1\abc\def。

inta=1;

printf(“%d\\%s\\%s”,a,”abc”,”def”);

3.1.4getchar()函数的作用是从键盘上接收一个字符。

3.1.5运行以下程序后,用户输入123456abc,输出结果为123,45,6。

voidmain()

{inta,b;

charc;

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

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

}

3.1.6下面程序的输出结果是1112。

#include

voidmain()

{inti=10;

{/*inti=20;*/

i++;

printf(“%d”,i++);

}

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

}

3.1.7下面程序运行后,从键盘输入30,则程序的输出结果是a=31,Ha=1f,Oa=37。

voidmain()

{inta;

scanf(”%d”,&a);

a++;

printf(“a=%d,Ha=%x,Oa=%o”,a,a,a);

}

3.1.8下面程序的输出结果是a=-3

b=’D’

“END”。

voidmain()

{inta,b=68;

a=-3;

printf(“\ta=%d\n\tb=\’%c\’\n\”end\”\n”,a,b);}

3.1.9下面程序的输出结果是13.7000000。

#include

#include

main()

{inta=1,b=4,c=2;

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf(“%f\n”,z);

}

3.1.10下面程序运行后,若输入a=2,b=3结果是x1=6.00

x2=0.67。

voidmain()

{floata,b,x1,x2;

scanf(“a=%f,b=%f“,&a,&b);

x1=a*b;

x2=a/b;

printf(“x1=%5.2f\nx2=%5.2f\n”,x1,x2);

}

3.2选择题

3.2.1指出下面正确的输入语句是(B)。

A)scanf(“a=b=%d”,&a,&b);B)scanf(“a=%d,b=%f”,&m,&f);

C)scanf(“%3c”,c);D)scanf(“%5.2f”,&f);

3.2.2执行scanf(“%d%c%f”,&a,&b,&c)语句,若输入1234a12f56则变量a,b,c的值为(C)。

A)a=1234b=’a’c=12.56B)a=1b=’2’c=341256

C)a=1234b=’a’c=12.0D)a=1234b=’a12’c=56.0

3.2.3执行scanf(“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分别为3和4,则正确的输入方法为(C)。

A)3,4B)a:

3b:

4C)a=3,b=4D)34

3.2.4设b=1234,执行printf(“%%d@%d”,b)语句,输出结果为:

(D)。

A)1234B)%1234C)%%d@1234D)%d@1234

3.2.5若x是int型变量,y是float型变量,所用scanf语句为scanf(“x=%d,y=%f”,&x,&y);正确的输入操作是(A)。

A)x=10,y=66.6<回车>B)1066.6<回车>

C)10<回车>66.6<回车>D)x=10<回车>y=66.6<回车>

3.2.6设a,b均是int型变量,则以下不正确的函数调用为(D)。

A)getchar();B)putchar(‘\108’);

C)scanf(“%d,%2d”,&a,&b);D)putchar(‘\’);

3.2.7下列程序的执行结果是(C)。

#include

voidmain()

{inta=5;

floatx=3.14;

a*=x*(‘E’-‘A’);

printf(“%f\n”,(float)a);}

A)62.800000B)62C)62.000000D)63.000000

3.2.8若输入2.50,下列程序的执行结果是(A)。

voidmain()

{floatr,area;

scanf(“%f”,&r);

printf(“area=%f\n”,area=1/2*r*r);}

A)0B)3.125C)3.13D)程序有错

3.3编程题

3.3.1编写程序,从键盘上输入2个整数给变量a和b,交换a、b值然后输出。

//参考程序

#include

voidmain()

{inta,b,temp;

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

printf("\n交换前:

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

temp=a;a=b;b=temp;

printf("交换后:

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

}

3.3.2试编写一个程序,任意输入一个小写字母,分别按八进制、十进制、十六进制、字符格式输出。

//参考程序:

#include

voidmain()

{charc;

printf("请输入1个小写字母:

\n");

scanf("%c",&c);

printf("八进制:

%o\n十进制:

%d\n",c,c);

printf("十六进制:

%x\n字符:

%c\n",c,c);

}

3.3.3输入一个华氏温度,要求输出摄氏温度,输出要有文字说明,取2位小数。

公式为:

//参考程序:

#include

voidmain()

{floatc,f;

printf(“请输入一个华氏温度:

\n”);

scanf(“%f”,&f);

c=5.0/9*(f-32);

printf(“华氏温度F=%.2f\n”,f);

printf(“摄氏温度c=%.2f\n”,c);

}

3.3.4设圆半径r=3,圆柱高h=4,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

请编程序。

//参考程序:

#include

#definePI3.1415926

voidmain()

{floatr,h,c,s1,s2,v1,v2;

printf(“请输入圆半径,圆柱高:

”);

scanf(“%f,%f”,&r,&h);

c=2*PI*r;s1=PI*r*r;s2=4*PI*r*r;

v1=4/3*PI*r*r*r;v2=s1*h;

printf(“r=%.2f,h=%.2f\n”,r,h);

printf(“圆周长=%.2f,圆面积=%.2f\n”,s1,s2);

printf(“圆体积=%.2f,圆柱体积=%.2f\n”,v1,v2);

}

习题四

4.1填空题

4.1.1表示条件:

10

4.1.2若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为a。

4.1.3若已知a=10,b=20,则表达式!

a

4.1.4当a=3,b=2,c=1时,表达式f=a>b>c的值是0。

4.1.5设y为int型变量,请写出描述“y是奇数”的表达式y%2!

=0。

4.1.6设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式x=z||x>=z&&y

4.1.7已知a=7.5,b=2,c=3.6,表达式a>b&&c>a||a

c>b的值是1。

4.1.8假设a=5,b=2,c=4,以下表达式的值依次为:

0,1,1,1。

(1)a%b*c

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

当前位置:首页 > 初中教育 > 初中作文

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

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