作业帮 > 综合 > 作业

帮忙看几道C语言的期末题目(二)~3Q!

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/29 10:10:37
帮忙看几道C语言的期末题目(二)~3Q!
19、以下程序的运行结果是
void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; }
int x,y; void main() { int a=7,b=5; x=a-b; y=a+b; num(); printf("%d,%d",x,y); }
A) 12,2 B)不确定 C) 5,25 D) 1,12
Extern定义的x和y改变了,为什么main中的x和y也会改变?难道不是main中局部
的优先级更大吗?
15.以下论述中正确的是
A) 实型数据占字节数多于整型数据,因此,实型运算比整型运算精确.
B) 二维数组元素有两个下标,在特殊情况下也可以是一个下标.
C) 如果a是带符号整型变量,b是无符号整型变量,则执行a=b后a的值一定为正.
D) 存放文本的文件称文本文件,存放二进制数的文件称二进制文件.
答案给的是B,其余的选项又怎么错了啊?
1.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的正确表达式是
A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
11.以下程序中,有一个不符合C语法规则的语句,这个语句是
#define N 5 main() {
A) int a[2*N]={0,0,0,0,0,0,0,0,0,0};
{
B) int i,a=2;
C) printf ( "\n %d\n",a );
D) for ( i=0; i
帮忙看几道C语言的期末题目(二)~3Q!
回答求助:
19.答案是C.因为x、y不是在main中声明的,所以它们是全局变量.在fun函数中用extern说明了x、y,这就使fun中的x、y也是全局变量了.你把extern删除,运行一下就是2,12了;你在main中把x、y声明一下,也就不听fun摆布了……这样你就恍然大悟了.
15.首先,二维数组可以设法降为一维数组,用一个下标操作,也可以只用前一个下标表示某一行的首地址.如a[2][3],那么可以用a[0]~a[5]操作这6个数,且a[0]、a[1]还表示第一行、第二行的首地址.所以B是正确的.
A错在说反了.实际上浮点数在计算机中都是近似值,且不连续.而整数在其范围内都是连续的,所以是精确的.
C的错在于,整型数是有范围的,把一个而无符号数最大值是有符号数的最大值的二倍+1,所以把一个大于有符号数最大值的无符号数赋给一个有符号变量就自动成了负数了.
D的错是文本文件也是用二进制数存放的.
1.C、D的错误太明显,算法有错.A能达到四舍五入,但不能截取两位小数;B正确.当把运算结果赋给整型变量m时,小数部分自然丢失,再除以100.0又获得了两位小数.严格说来B还有点问题,就是若要输出,会成为X.xxx0000的形式,还需要输出控制才能把0消除.不过这大概不是本题考虑的了.
11.我赞同你.显然是题错了.
10.不正确的是B而不是C,显然是答案错了.B错在不是偶数时,不能p++,结果就乱了……