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

19、以下程序的运行结果是voidnum(){externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;voidmain(){inta=... 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,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<2*N; i++ ) printf ( "%d",a[i] );
} }
我认为是错在B中的a与上面的数组a重名了,为什么答案给的是D?

10.对以下求数组a中所有偶数之和的各程序段中,不正确的是
A) int a[5]={1,3,6,7,8}, s=0, *p=a; for ( p=a; p<a+5; p++ ) if ( *p%2==0) s+=*p;
B) int j, a[5]={1,3,6,7,8}, s=0, *p=a; for ( j=0; j<5; j++ ) if ( *p%2==0) s+=*p++;
C) int j, a[5]={1,3,6,7,8}, s=0, *p=a; for ( j=0; j<5; j++ ) if ( *(p+j)/2*2==*(p+j)) s+=*(p+j);
D) int j, a[5]={1,3,6,7,8}, s=0, *p=a; for ( j=0; j<5; j++ ) if ( *p%2==0) s+=*p++; else p++;
答案是C,我觉得C是对的啊,如果是偶数除了以后再相乘,一定等于原来的值?
展开
 我来答
White_MouseYBZ
2013-04-03 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6281万
展开全部
回答求助:
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++,结果就乱了……
杨飞设计
2013-04-03
知道答主
回答量:5
采纳率:0%
帮助的人:7323
展开全部
事实上,只有一个数据
因为你已经被匹配到最后出来的最后时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风舞浅夏
2013-04-03 · TA获得超过294个赞
知道答主
回答量:91
采纳率:0%
帮助的人:80.1万
展开全部
19、xy定义在main外,全局变量,extern表示变量或者函数的定义在别的文件中。所以函数num()中对变量xy的操作就是对全局变量xy的操作
15、二维数组的元素也称为双下标变量,其表示的形式为:数组名[下标][下标]。也可这样定义:int a[][3]={1,2,3,4,5,6,7,8,9};
1、选B。m=n*100+0.5;m为int型,假如n为三位小数(1.124),则n*100=112.4再加上0.5(是否进位)是为了四舍五入(最后赋值给m时会强制转换为int型,也就是舍弃小数部分)
10、答案应为B
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式