第二章 数据类型课后习题及答案.docx
《第二章 数据类型课后习题及答案.docx》由会员分享,可在线阅读,更多相关《第二章 数据类型课后习题及答案.docx(83页珍藏版)》请在冰豆网上搜索。
![第二章 数据类型课后习题及答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/8c096238-e70d-48b2-a39d-d0ae5f282897/8c096238-e70d-48b2-a39d-d0ae5f2828971.gif)
第二章数据类型课后习题及答案
第二章数据类型课后习题
1.下列哪些是合法的变量名?
如果合法,你认为它是一个好的助记符(能提醒你它的用途)吗?
(a)stock_code合法、好的助记符
(b)money$非法,$为非法字符
(c)Jan_Sales合法、好的助记符
(d)X-RAY非法,–为非法字符
(e)int非法,int为关键字
(f)xyz合法、不是好的助记符
(g)1a非法,变量名必须以字母或下划线打头
(h)invoice_total合法、好的助记符
(i)john's_exam_mark非法,’为非法字符
(j)default非法,default为关键字
2.请确定下列常量的数据类型:
(a)'x'char
(b)-39int
(c)39.99double
(d)-39.0double
3.下列哪些是合法的变量定义?
(a)integeraccount_code;非法,无integer类型
(b)floatbalance;合法
(c)decimaltotal;非法,无decimal类型
(d)intage;合法
(e)doubleint;非法,int为关键字,不能作为变量名
(f)charc;合法
4.写出下列各小题中的变量定义:
(a)整型变量number_of_transactions和age_in_years
intnumber_of_transactions,age_in_years;
(b)单精度浮点型变量total_pay,tax_payment,distance和average
floattotal_pay,tax_payment,distance,average;
(c)字符型变量account_type
characcount_type;
(d)双精度浮点型变量gross_pay
doublegross_pay;
5.为下列各小题写出最合适的变量定义:
(a)班级中的学生人数intnumber_of_students;
(b)平均价格floataverage_price;
(c)自1900年1月1日以来的天数intdays_since_1900;
(d)利率百分比floatinterest_rate;
(e)本页中最常出现的字符charmost_common_char;
(f)中国的人口总数(在2010年11月大约为1,339,724,852)intpopulation_of_china;
6.假定有如下定义:
inti;
charc;
下面哪些是合法的C语句?
c='A';合法
i="1";非法,字符串不能赋值给整型
i=1;合法
c="A";非法,”A”为字符串,存储为’A’和’\0’两个字符
c='1';合法
7.写一个C程序,给第4题中的变量各赋一个值,然后以每行一个变量的形式显示这些变量的值。
#include
intmain(void)
{
intnumber_of_transactions,age_in_years;
floattotal_pay,tax_payment,distance,average;
characcount_type;
doublegross_pay;
number_of_transactions=211;
age_in_years=66;
total_pay=3128.0f;
tax_payment=214.5f;
distance=2431.5f;
average=83.5f;
account_type='c';
gross_pay=9313.5;
printf("%d\n%d\n%.1f\n%.1f\n%.1f\n%.1f\n%c\n%.1f",number_of_transactions,age_in_years,total_pay,tax_payment,distance,average,account_type,gross_pay);
return0;
}
8.写一个C程序显示如下信息:
***************
*HelloWorld*
***************
#include
intmain(void)
{
printf("***************\n");
printf("*HelloWorld*\n");
printf("***************\n");
return0;
}
9.写一个C程序在不同的行分别显示你的姓名和家庭住址。
#include
intmain(void)
{
printf("张三\n");
printf("黑龙江省哈尔滨市南岗区\n");
return0;
}
10.ASCII码用于表示计算机内存中的字母、数字和其它符号。
使用附录C中的ASCII码表查找下面每个字符的ASCII编码:
'A''B''Y''Z''a''b''y''z''0''1'','''(空格)
字符十进制ASCII码十六进制ASCII码
A6541
B6642
Y8959
Z905a
a9761
b9862
y12179
z1227a
04830
14931
442c
空格3220
11.在程序P2C中,将第14行的%d改为%c,第16行的%c改为%d。
编译并运行修改后的程序。
你能解释运行结果吗?
(提示:
请参看附录C的ASCII码表)
第三章简单算术运算符与表达式课后习题
1.将下列数学方程转化为合法的C语句:
(a)
(b)
(c)
(d)
(e)
(a)m=(y1–y2)/(x1–x2);
(b)y=m*x+c;
(c)a=b/c–d/e;
(d)C=5*(F–32)/9.0;
(e)s=u*t+a*t*t/2.0;
2.有如下变量定义:
inta=1,b=10,c=5;
intd;
下面每条语句执行后d的值为?
(a)d=b/c+1;d=3
(b)d=b%3;d=1
(c)d=b-3*c/5;d=7
(d)d=b*10+c-a*5;d=100
(e)d=(a+b-1)/c;d=2
(f)d=((-a%c)+b)*c;d=45
(g)d=--a;d=0
3.变量定义如第2题,请改正下列C语句中的错误:
(a)d=2(b+c);d=2*(b+c)
(b)d=5b+9c;d=5*b+9*c;
(c)d=b-3X19;d=b–3*19;
(d)d=b.c+10;d=b*c+10;
(e)d=(a+b)/c;无错误
4.为下列任务写出合适的C语句:
(a)将num1加1,并将结果放回到num1中num1=num1+1;或num1++;
(b)将num1加2,并将结果放回到num2中num2=num1+2;
(c)将num2加2,并将结果放回到num2中num2=num2+2;或num2+=2;
(d)将num1减1,并将结果放回到num1中num1=num1–1;或num1--;
(e)将num2减2,并将结果放回到num2中num2=num2–2;或num2-=2;
5.有如下定义:
inta=12,b=0,c=3;
intd;
下列每条语句执行后a、b、c和d的值各是什么?
(a)a++;a=13b=0c=3d=内存单元的随机值
(b)b--;a=12b=-1c=3d=内存单元的随机值
(c)d=++c;a=12b=0c=4d=4
(d)d=c--;a=12b=0c=2d=3
(e)d=a++-2;a=13b=0c=3d=10
(f)d=a+++b++-c--;a=13b=1c=2d=9
6.有如下定义:
inta=1,b=2,c=3;
下列每条语句执行后a、b、c的值各是什么?
(a)a+=b;a=3b=2c=3
(b)a/=3;a=0b=2c=3
(c)a*=c;a=3b=2c=3
(d)a%=2;a=1b=2c=3
(e)a+=b+1;a=4b=2c=3
(f)a+=++b;a=4b=3c=3
7.有如下定义:
charch_val;intint_val;shortshort_val;
floatfloat_val;doubledouble_val;
unsignedintunsigned_int_val;
下面哪些可能因为赋值类型自动转换而损失数据?
(a)short_val=int_val;可能损失精度
(b)int_val=ch_val;不能损失精度
(c)double_val=float_val;不能损失精度
(d)int_val=float_val;可能损失精度
(e)int_val=unsigned_int_val;可能损失精度
8.和第7题的变量定义一样,下列各表达式的数据类型各是什么?
(a)int_val*float_val;double
(b)float_val+int_val/100;double
(c)ch_val+short_val+int_val;int
(d)(double)int_val+double_val+float_val;double
(e)(int)float_val*float_val/int_val;double
(f)int_val+3.0;double
9.有如下变量定义:
inta=5,b=4;
floatc=3.0,d;
下列每小题中的d的值为?
(a)d=a/b;