一、思考题。
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 怎样区分表达式和表...