帮忙看几道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,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是对的啊,如果是偶数除了以后再相乘,一定等于原来的值?

回答求助:
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++,结果就乱了……
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-03
事实上,只有一个数据
因为你已经被匹配到最后出来的最后时间
第2个回答  2013-04-03
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本回答被网友采纳

帮忙看几道C语言的期末题目(终)~~谢谢!
11.都是错的。因为定义的函数是fun,而调用时却是f,通不过编译,提示未定义错误。若不计此,C是错误的,因为a[4]不是指针,而fun的形参是数组即指针;B也是错误的,因为b是二维数组而不是一维数组,类型不配。若是多选题则B、C是答案,若是单选题则是题错了。18.因为for(i=0;ch[i]>='0...

C语言选择题(3道题),帮忙解答一下,谢谢!
第一题:先执行循环体:b-=a; a++;b=b-a=10-1=9,a=2,再判断条件:b--<0 b=9>0 然后b-- (注意无论判断条件是否满足,都执行),b=8 第二题:答案错了,应选D 程序应该这么看:int a=3,b=2,c=1;int x=10,y=20;if(ab就不满足条件,所以下面的不执行!if(b!=0)if(!x...

帮忙解下10道 C程序语言设计 题
{int a=10,b=5,c=5,d=5,i=0,j=0,k=0;for(;a>b;++b)i++;while(a> ++c)j++;do k++;while(a>d++);} 可选答案:1.j=5,i=4,k=6;2.i=5,j=4,k=6;3.j=6,i=5,k=7 4.j=6,i=6,k=6;第8题 题目类型: 单选题 题目:不能正确为字符数组输入数据的是( 2)。

求大神们帮我看看这条C语言的公式
ren "%%a" "(60X80) CPK!n:~-3!%%~nxa">nul

C语言编程题目
下面是一些C编程题目:1. 编写程序,从键盘输入两个整数,输出它们的和、差、积、商、余数。2. 编写程序,从键盘输入三角形的三条边长,判断它们是否可以构成三角形,并输出三角形的类型(等边、等腰、一般)。3. 编写程序,从键盘输入字符串,统计其中的大写字母、小写字母、数字和其他字符的个数,并...

我在看一本C语言的书时遇见了一个问题 帮忙解释一下 3Q
是通过数符±尾数m阶符±阶码e表示的,而这四个东西一共占有32位 你说的单精度的范围,是指其表示数的最大范围,而不是精度范围,比如1.xxx(小数点后100位)是不是也在float的范围内,但你看能表示的了么?32位中尾数的位数决定了其精度,而阶码的位数决定了其范围 11113.612847这数字,我们...

C语言的简单题目,求答案及解释
结果是1。< :是自右向左结合的,你这个表达式相当于: k<a ? k : (c<b ? c:a)c<b 显然成立,取前面表达式(在这里是变量c),即表达式 (c<b ? c:a)的值是1;k<a显然不成立,取冒号后面的值,就是表达式(c

c语言问题
答案应该是D,这个没的说,括号的作用就是避免二义 4 答案应该是C,不要把 int *ptr();搞混了,题上的是返回一个整形数据的指针函数,后者是一个 返回指针的函数 5 答案是A,呵呵,这个你好好想一下就明白了 6 答案是A 4 7 答案是23 这个你要好好看一看,特别是(&Arr+1)它和(Arr+1...

C语言帮忙解道题,方法简单点
main(){ int i,a[30]={0},n,sum=0,max=0;for(i=1;i<=20;i++)scanf("%d",&a[i]);for(i=1;i<=4;i++)a[20+i]=a[i]; \/*把前四个数放到最后面*\/ for(i=1;i<=20;i++){sum=a[i]+a[i+1]+a[i+2]+a[i+3];if(sum>max) {max=sum; n=i;} } print...

求全国计算机二级考试C语言的视频教程!!越详细越好~
提取码:5yu2【1】复习视频|全国计算机等级考试:二级公共基础知识|全国计算机等级考试:二级Visual FoxPro数据库程序设计|全国计算机等级考试:二级Visual Basic语言程序设计|全国计算机等级考试:二级MS Office|全国计算机等级考试:二级Java语言程序设计|全国计算机等级考试:二级C语言程序设计|全国计算机等级考试...

相似回答