C语言作业答案

发布 2023-05-19 03:47:28 阅读 2138

一、思考题。

1、 常量和变量有什么区别?它们分别是如何定义的?

常量是指在c程序运行过程中其值不变的量,变量是一个值的存放处,其值在程序运行过程中可以被改变。

常量有两种形式:字面常量与符号常量,c语言可以使用以下两种形式定义符号常量。

1)用关键字const定义。

定义格式为:const 类型名常量名=值;

2)用编译预处理命令#define

定义格式为:#define 《常量名》 《值常量》

变量的定义格式为:

数据类型变量名1,变量名2,…,变量名n;

或。数据类型变量名1=初值1,变量名2=初值2,…,变量名n=初值n;

2、 变量的要素有哪些?请用一个例子说明?

名字、类型、值和地址。

int a = 1;int是类型,a是名字,1是值,地址是编译器给a变量分配的内存空间。

3、 变量在整个程序中能有相同的值吗?为什么?请举例说明。

可以,因为变量的值可以被改变,但不是一定被改变。如果程序中没有其它不同的赋值,变量将保持不变。

4、 为什么程序需要有短整型(short)和长整型(long)?

整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,c语言的整型只能表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的c语言系统可表示整数的范围可能不同。不同范围的整型数据所占有的内存空间大小不同。程序开发人员通过选择能够满足范围要求的类型(short或long),可以减少数据存储空间。

比如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。

5、 字符’8’和数字8有何不同?

字符’8’是字符型,数字8是整型。

6、 c语言有字符串变量吗?

没有。7、 c语言中的运算符“/”和“%”有何区别?c语言中除法运算符“/”与数学中的运算符“÷”的用法和功能完全一样吗?

/”是除法,“%是取余数,“/与“÷”的用法和功能不完全一样,“÷得到的是两数相除后得到的真实值,“/得到的是两数相除后取整的值。

8、 在c语言中,运算符“=”的功能是什么?能用它来判别两个量是否相等吗?

=”是赋值运算符,它将右侧表达式的值赋予左侧变量。不能判别两个量是否相等。

9、 双目运算符两边的操作数可以是不同的类型吗?如果可以,它们如何影响运算的结果?

可以,c编译器会先对其中一些操作数进行隐式类型转换,使操作数类型一致后进行计算。转换方向为:char,short->int->unsigned->long->double,float->double

10、描述你所学过的运算符的优先级。

) [从左到右

type) sizeof 从右到左

/ 从左到右

- 从左到右

< >从左到右

<=从左到右

= !从左到右

从左到右

从左到右

从左到右

& 从左到右

| 从左到右

: 从右到左

<= 从右到左

从左到右。

11、什么是表达式?它与数学中的代数式有何不同?

c语言的表达式是运算符和操作数组成的运算式。代数式是由运算符号(加、减、乘、除、乘方、开方)把数或表示数的字母连结而成的式子。单独一个数或者一个字母也是代数式。

带有“<(等符号的不是代数式。而c语言中根据运算符的不同,可将表达式分为算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式,可以包含的运算符更多。

12、你在何处可以使用表达式?为什么在表达式中有时要使用括号?

当希望程序执行计算时,应写出一个表达式以制定必要的操作。括号可以用来强制改变表达式的运算顺序。

13、++i与i++有何区别?

+i是先让i自加1后再参加其他运算,而i++是先让i参加其他运算后再自加1。

14、在函数printf的控制字符串参数末尾经常有一个转义字符“”,它的作用是什么?而为何当用printf显示提示用户输入的信息是很少使用该字符?

n作用是换行。用户输入时需要回车,因此会自动换行,不需要输出。

15、若变量i已定义为int型变量,当执行赋值语句i=8.9;后,i的值是什么?若接着执行赋值语句i=16.46;后,i的值又是什么?

二、选择题。

1、合法的c语言标识符是。

2、设int a=12,则执行完语句a+=a-=a*a后,a的值是d.-264

3、c语言程序的基本单位是c.函数。

4、选出合法的c语言赋值语句。

5、选出以下语句的输出结果printf("%d",strlen("\t\"\065\xff");a.6

6、以下各组标识符中,合法的用户标识符为 print

7、选出可用作c语言用户标识符的一组标识符b._123 if a3_b3

8、下列语句中符合c语言语法的赋值表达式是。

9、在c语言中,要求运算数必须是整形的运算符是a.%

10、已知字母a的ascii码为十进制65,下面程序的输出是a.67,d

main()

char ch1,ch2;

ch1='a'+'5'-'3';

ch2='a'+'6'-'3';

printf("%d,%c",ch1,ch2);

11、下面程序的输出是c.3

main()

int x=10,y=3;

printf("%d",y=x/y);

12、已知语句int x=1,y=3,经下列计算后,x的值等于6的正确选项是

13、已知语句int i=3,j=4,运算j=i+++j+i后,则j的正确值为a.10

14、有关运算符的正确描述是a.运算符的优先级最高的是圆括号运算符。

15、已知语句float x=3.0,y=4.0,下列表达式中y的值为9.0的是。

16、若有下列类型说明语句:char w; int x; floaty; double z;则表达式w*x+z-y值的正确数据类型为。

17、在c语言中,要求运算对象必须是整数的运算符是c.%

18、下列浮点数的表示中不正确的是。

19、自加自减运算符的正确描述是d.主要用于while循环语句的运算符。

20、下列是c语言中的合法常量a.10 b.3.1415 d040 e0x1e g.1.23e+6 j"nba"

21、下列标识符是c语言中的合法变量名

三、 编程题。

1、写一个程序,计算出半径为r的球体体积。

#include<>

#include<>

#define pi asin(1)*2

void main()

double r;

scanf("%lf",&r);

printf("%lf",4*pi*r*r*r/3);

2、编一程序,输入a,b两个值,输出两个数中较大的开方。

#include<>

#include<>

void main()

double a,b,max;

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

max=a>b?a:b;

printf("%lf",sqrt(max));

3、编一程序,计算从键盘输入的一个数的平方和立方。

#include<>

void main()

double a,b;

scanf("%lf",&a);

b=a*a;

printf("%lf %lf",b,b*a);

4、编一程序,计算从键盘输入的4个数的平均值。

#include<>

void main()

double a,b,c,d,sum;

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

sum=a+b+c+d;

printf("%lf",sum/4);

5、编一程序,从键盘输入一个5位正整数,然后分别求出它的个位数、十位数、百位数、千位数和万位数,并打印出这五位数字的和。如输入12345,打印出15(1+2+3+4+5=15)。

#include<>

main()

int sum=0,i,a[5],x;

printf("输入一个五位数:")

scanf("%d",&x);

for(i=0;i<5;i++)

printf("%d",sum);

putchar('(

for(i=4;i>=0;i--)

putchar('\b');

printf("=d",sum);

putchar(')

6、求下面算术表达式的值:

1)x+a%3*(int)(x+y)%2/4-6 -3.2

2)(double)(a+b)/3+(int)x%(int)y 6.33

7、写出程序运行结果。

void main()

int i,j,m,n;

i=11;j=10;

m=2*--i;

n=j--;

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

8、设int a=13,n=17,计算下面表达式的值。

1)a+=3*a 52

2)a-=211

3)a*=10-3 91

4)a/=(a+a)/2 1

5)a%=(n%=2) 0

6)a+=a-=a*=a 0

9、指出下列程序中的错误之处。

#define tax_of_rate 0.08;

main()

float cost;total;

printf("enter the cost of the item:")

scanf("%f",cost);

printf("enter the shipping charge:")

scanf("%f",&shipping)

total=cost+cost*tax of rate+shipping;

printf("the total is %f:",total);

#include<>

#define tax_of_rate 0.08;

main()

float cost,total,shipping;

printf("enter the cost of the item:")

C语言作业答案

一 选择题。1 下列叙述中错误的是c 预处理命令必须位于源文件的开始处。2 c语言编译系统对宏替换的处理是在a 源程序编译前进行的。3 在宏定义 define pi 3.14159 中,3.14159是c 字符串。4 设有宏定义 define a b abcd 则宏替换时,a 宏名a用b abcd替...

c语言作业答案

no.name 第1讲c语言概述。注 本系列习题中符号表示一串字符中的空格,符号表示下划线,符号 表示换行回车,即键盘上enter键。一 选择题。1.一个c程序的执行是从a a 本程序main函数开始,到main函数结束。b 本程序文件第一个函数开始,到最后一个函数结束。c 本程序文件第一个函数开始...

C语言作业答案

一 思考题。1 顺序结构的语句有哪些?表达式语句,空语句,复合语句。2 从程序控制的角度看,复合语句是单一的语句吗?是。3 c语言中的语句有哪几类?c语句与其他语言中的语句有哪些异同?表达式语句,空语句,复合语句,控制语句。c语言与其他语言的语句类型基本相同,只是语法有所区别。4 怎样区分表达式和表...