二级c语言有几个不懂的问题,希望大家帮忙解疑

作者&投稿:营供 (若有异议请与网页底部的电邮联系)
刚开始看,有几个不懂的问题,希望大家帮忙解~

看什么?什么问题?最好写出来,这样知道的人才会答你啊

实际长度是4,最后有一个结束符'\0'是默认在字符数组里加上的,作为结束标志

第一个:
fun函数其实就是排序,从大到小。
一个概念:逆序。一列数,小的在大的前叫一个逆序,则N个数,逆序数最大为N*N/2
for (i=0 ;i<n-1;i++)//循环N次
for(j=i+1;j<n;j++)//消除n-1-i个逆序
{
if(a[i]<a[j]) //小的在前则换位,消除一个逆序
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
则总共消除了(n-1+n-2+...+1+0)个逆序,即N*N/2个,所以可消除所有逆序,即从小到大排好。这其实就是“冒泡法排序”,LZ还有疑问可以找相关资料看看,或者问度娘搜冒泡法排序。
fun(c+4, 6)就是从第5个数:5开始排,即9、8、7、6、5、0
所以程序结果是1、2、3、4、9、8、7、6、5、0

第二个: 1,2,3,4,4,3,2,1,1,1,2,3;1加了4次,2加3次,3加3次,4加2次,所以是
4、3、3、2

第三个: 楼上很详细,就不多说了

fun函数,完成从大到小排序

第一问,我认为程序有问题,因为调用fun函数时把c4传过去,其他的没有传,所以它不能改变什么。第二问,第一个for是统计s数组里各个数字出现的次数,存在c数组中,1的就存在c1中,以此类推。第二个for就是把c1到c4输出。第三问,选a,函数的功能是把c[2][2]和c[1][1]用十六进制输出,当然,你要先知道c是一个4*4的二维数组,并且其对应的值要知道。注意,数组的序号是从0开始的

1.结果 1,2,3,4,9,8,7,6,5,0
函数func的功能时将数组a的前n个元素进行从大到小排序。
fun(c+4, 6) c+4等同于&c[4]就是将c数组从第5个元素开始的6个元素进行从大到小排序。

2.第一个for里的c[s[i]]++,是将s数组里的每个值作为c数组的下标,进行计算的。
第一次循环时 c[s[0]]++; s[0]值为1,所以是c[1]++; 依次类推计算即可。
第二个for没什么好说的,循环输出。
其实本题还有个聪明点的解法,查s数组中1、2、3、4的个数,按顺序排下来就是结果,4个1,3个2,3个3,2个4,结果为4332

3.%x是将结果用16进制显示
先将c数组排列好
1,2,3,4
5,6,7,34
213,56,62,3
23,12,34,56
c[2][2]值为62,16进制为3e
*(*(c+1)+1) 一层一层来看,先看里面*(c+1),将指针定位在二维数组的第二行,*(*(c+1)+1)即为第二行的第2个元素的值,是6,十六进制依然为6
至于3e的e大小写问题,看%x中的x用的大写还是小写,与其一致就可以了。
选A

#include <stdio.h>
void fun (int *a,int n)
{int t,i,j;
for (i=0 ;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4, 6); /*将数组c的第四个元素开始的元素从大到小排序*/
for(i=0;i<10;i++)
printf(''%d,'',c[i]); /*打印c数组中元素*/
printf("\n");

程序的运行结果是:1,2,3,4,9,8,7,6,5,0

#include <stdio.h>
main()
{int s[12]={1,2,3,4,4,3,2,1,1,1,2,3} ,c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++; /* 按照数组s的元素对c数组中的相应元素进行自加运算 */
for(i=1;i<5;i++) printf(''%d'',c[i]);
printf(''\n'');
}
程序的运行结果是:4332

#include ''stdio.h''
main()
{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
printf(''%x,%x\n'',c[2][2],*(*(c+1)+1));} /* 以十六进制打印c[2][2],c[1][1],即62,6 */
运行后的结果四个选项 A
A,3e,6 B, 62,5 C, 56.5 D, 3E,6

有个最简单的办法就是直接编译运行的试试看。


二级c语言有几个不懂的问题,希望大家帮忙解疑
第二个: 1,2,3,4,4,3,2,1,1,1,2,3;1加了4次,2加3次,3加3次,4加2次,所以是 4、3、3、2 第三个: 楼上很详细,就不多说了

C语言4个简单问题不懂 求解
A1.对于字面常量4,编译器认为是int型的,而4.0是double型的,因此虽然4\/3的值等于1.333333,但是当它转换成整型之后就是1了,而对于4.0那个表达式,它的结果是double型的,因此可以保留小数部分。这个问题涉及到的知识是类型的隐式转换。A2.abs()函数是接受整型参数,返回其绝对值,而fabs()函数...

问几个C语言里很多人没注意过的问题
说实话要是这几个问题只要理解了C语言的人,怎么可能不明白。很多人没注意,说明他们还没学懂。当然我也不是在自夸,我也是初学者,可是我还是为楼上几位悲哀。1.你要知道程序在内存中的结构,有栈区、堆区、文字常量区、全局变量区、函数区,使用 char* a = "xxx";这样的语句初始化指针a,"xx...

c语言中一些混淆不清的地方
3、计算舍入:例如两个float数相乘,默认“四舍五入”--->二进制是0舍1入,但是可以人为控制。4、输出舍入:由于计算机内部的表示是2进制,而人们喜欢看10进制,而二进制数往往不能精确的转换为10进制数,这个也会产生舍入。一般是printf负责,这个可能会有比较大的出入。--- 特别注意的是,由于...

c语言菜鸟不懂就问!!!
4. ch='\\xaa',该赋值语句编译可以通过,但是输出的内容就不是你预想的那样了,因为ch只能存放一个字符,编译器在编译时会截取一个字符存放在其中。5.这一题就是在考验C语言中除号“\/”的用法了,1\/3最后会被编译器计算成0,而不是0.33,只有改成1\/3.0才行。6. k=ac ? c:k; 是值...

自学C语言怎么看不懂呀
回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好? 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最...

C语言关于打印n阶魔方阵的编程有几个看不懂的,,求指点啊
幻方是可以构造的 分为奇数阶、双偶阶、偶数阶三种情况 具体可以参考百度百科 p==1表示true,为真也就是一直循环,直到p变成0 参考资料:http:\/\/baike.baidu.com\/view\/5058.htm

怎样学好c语言,那些符号什么的看不懂啊
C语言的关键之少,运算符多。运算符有算术运算、位运算、逻辑运算等,有单目、双目、三目运算,有优先级之分。加上C语法的灵活性,同样的代码在不同编译器上的解释都可能不一样,就是老程序员也未必能弄清楚。优先级 运算符 名称或含义 使用形式 结合方向 说明 1 []数组下标 数组名[常量表达式]...

小白刚学c语言,有点不懂
一个 表达式 是 b[i++]=t%2,另一个是 t=t\/2 逗号表达式 的 值 等于 最右一个表达式的值,即 t=t\/2。while 是循环语句,循环体是空语句,循环条件是 (t=t\/2)不等于0,换一句话说, if ((t=t\/2)==0) 时 break; 循环结束。i++ 是后缀加加,后缀加加 在表达式里 ...

又有不懂的C语言题目了,没有办法要考试了,帮帮我啊,各位大侠!
--argc) \/**只要参数的总数自减不为0,那么进入循环体*\/ printf("%s",argv[argc]); \/**打印出第argc个参数*\/ printf("\\n");} 因为argc=4,所以会进入循环体4次,--argc是先做判断再自减 33 A ^按位异或 <<左移 优先级,左移〉按位异或 按照这个规则去算就可以了 所以选择A ...

奉新县13779024577: 二级c语言有几个不懂得问题.....请高手帮忙..... -
农股西曼: 1. 0000 调用 sub函数内抄 没能使 x发生袭变化2.k < 3printf 输出 以2113 w[1][1] w[2][2] 的地址5261为首地址的字符串w[1][0] 是 "EFGH" 的E ,所以4102k = 1 输出 FGH同理 w[2][2] 是 "IJKL" 的K ,所以k = 1 输出 KL3.所有选项都是错1653的p = max;(*p)(a,b);

奉新县13779024577: 关于2级C语言的几个问题(详细解答一下,谢谢!)
农股西曼: (1)选A char x='A'; 是定义一个变量x并赋值为字符A x=(x>'A'&&x'A'&&x'A'不是>='A',所以不包括A,当条件满足时就执行x=x+32,大写字母 +32就转换成小写字母,当条件不满足就执行x=x,这里的x是='A'的,所以 不满足条件,执行x=x,所以输出x为A,因此选A. (2)选B x&15表示与运算,结果为真,即1;Z 评论0 0 0

奉新县13779024577: 全国计算机等级考试二级C语言 -
农股西曼: (1)计算机二级一般没有在县级报名的,应该是在市级所以你的情况应该是去重庆报名并且考试 (2)考试大纲近几年都不会有什么大的变动,所以不用担心,即使有变动也是换汤不换药,现在开始复习,9月份考试完全来的及 (3)公共基础知...

奉新县13779024577: c语言有几个不懂得问题 -
农股西曼: 你的程序有不少错误,对人工解答或多或少有影响,看看吧,楼上两个就被吓跑了.第一题:#include int main(){ int i,k,n; FILE *fp; fp=fopen("data.dat","w+...

奉新县13779024577: 关于计算机二级C语言的几个问题
农股西曼:1、 用的是VC6.0 2、这是一个文件名,没有关系的 3、这是电脑正在链接你所写的程序,要等一下才行,message是一个信息的意思. 4、放在TC的文件夹里,你只要找到你写的那个文件夹名就可以找到它.

奉新县13779024577: 我想问几个关于计算机二级,特别是C语言的问题.
农股西曼: 二级的几个种类并没有什么好坏之分,主要是看你使用哪一种,二级主要是不同的程序语言和数据库,对于不是从事计算机专业的人来说考哪一种都差别不大,因为用一个问题用不同语言编程都可以解决. C语言相对BV要难一些,但是考二级也不会很困难,我以前是学的谭浩强的《C程序设计》这本书,也没有专门买其它复习资料,只要把这本书学好肯定是没问题的.学习编程主要还是要平时多练习,不能只看别人编好的程序,要经常找一些问题来自己编程解决,这样才能真正锻炼你自己的能力,对考试也很有帮助.

奉新县13779024577: 全国计算机等级考试二级C语言难吗??考过的给点经验 -
农股西曼: 如果你实现做好了准备,二级C还是很好过的. 二级C分上级和笔试,上级一般没问题,前两题都比较简单,最后一题虽然难一点但还是可以编的,上级时间充足 笔试时最难过的,因为考的内容比较多,有很多你肯能都没复习到, 我劝你找本资料,最好既有基础理论内容,再加上练习.最后过应该问题不大 因为哥就是这样过来的,成绩还很理想,

奉新县13779024577: 计算机2级c语言考试应该注意什么? -
农股西曼: 在考试中,最主要的是细心,题目都是2113不难的,我去年考的,真正不会的题目不会超过526110;在写试卷时一定要小4102心里面的陷阱,往往都是会的,但1653因为粗心写错,在考试之前做几套模拟卷版,把模拟卷上的问题都弄懂,不是说会做就行,一定要懂原理.能举权一反三.

奉新县13779024577: 上海二级C语言难题不懂啊?帮帮忙啊各位大哥 -
农股西曼: p->y 是28 p->x 是4 s[1].x 是9 s1[1].y 是36 计算...

奉新县13779024577: 计算机2级C语言的问题
农股西曼: 你好: VC++6.0也是很好用的一个软件,不会稍微学一下看一下就知道了,而且2级考试也要用到,总不能一直不会吧? 如果你的VC++是中文的那就更好办了. 你可以直接在 VC菜单中选择 新建-&gt;文件-&gt;C++源文件 点确定 然后就可直接...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网