C语言一道简单的代码,麻烦帮我解析一下,我表示看不懂。。。
1、不信你可以先给score赋一个初值,然后 printf(%d,score);就会发现score永远是初值。
2、答案正确啊。*(a+1)就是a[1],*(ptr-1)就是ptr[-1](用负数表示下标是非法的,这里只表示从ptr所指的地方向左移一个元素的位置)。
3、printf(%d,a); // printf(%s, a)应该输出整个数组的内容,但是有一条规则,遇到结尾符\0则认为本条字符串已结束,\0后的内容会被抛弃,所以只会输出123456789。
4、这里在定义的时候赋值叫做初始化。在本例中不初始化也能正常实现功能,初始化在编程中是为了防止变量在程序中定义后没赋值就使用,此时变量中的值是个随机数,运行后可能会出现预想不到的后果。
5、auto int 和int一样的。先输出(num=)2 然后( \n换行)(num++=)3 再输出1 (num++=)2 循环后i=1 而{ }中的num释放,输出3 (num++=)4 。。
6、这个是考共用体 union,首先搞明白这个union是干嘛的,它的大小是指里面某一个变量的最大值。sizeof(mystruct) 是12byte sizeof (myenum)是4,但是它是3个组数,所以所占大小也是12 BYTE。
c语言求解,这个ok1和ok2都不会变,这不是无限循环吗,
当if()括号中的数大于0时,表示条件成立,此时if语句会执行。!表示非。题目中变量ok1的值为1,那么!ok1就的值就为0;所以x–的语句不会执行。跳到if(ok2),因为ok2=2,所以if语句执行。
这是 while 语句,“判断循环终止的语句”为:x=1。语句是一个赋值语句,而不是逻辑条件(x==1)语句。这个赋值语句的值,也就是变量 x 的值,恒等于 1。
C不是无限循环,/0为字符0,代表的值为0,通过for的判断,条件不成立,不进入循环。
所以进行 k=k+1=1+1=2;进行第二次判断while ,又进行k=1赋值,k=1后 while(1) = 是真 所以 …无限循环 本题之所以循环,是因为while(k=1)中k=1是赋值,不是判断。
c程序设计语言问题
i80;错是因为输入的字符串的长度不一定就是80;a[i]!=\n;错是因为字符结束标志是\0,而不是\n,可以改成:a[i]!=\0;istrlen(a);求的就是输入字符的长度。
调试了一下,主要问题在于内循环内操作循环控制变量j,导致循环锁死。
for语句不加大括号只对下面一句起作用,这个地方用for不太好。
看了虽然说的没错,但我觉得回答得不够好,我来说一下我的看法。我自己去编写运行了,并且每条程序右边都标有注释:这里要提一下C语言里的条件表达式。
问一道C语言的题目(解释一下..大概什么意思啊)
1、答案是 japan korea 理由:str[3][6]是一个二维数组,可以看成是 以str[6]为元素的数组,大小为3。
2、题目的意思是判断一个序列是否为H sequence序列,H sequence序列具有以下性质:当其长度为1时,其值只能为0;当其长度大于1时,第一个值只能为1,之后的数列可以分解为两部分,其中每部分都是H sequence序列。
3、也就是K。所以括号内应该填上K是否为11的倍数。如果不是11的倍数,那就循环,寻找下一个匹配的数。如果是11的倍数了。那就符合答案了。while(k%11)的解释:当k不能被整除时,执行循环。
4、首先明确说一下,这种题目完全没有任何意义,而且在不同的编译器中得到的结果也不一定相同。题目本意是考查答题者对于不同类型之间的指针进行强制类型转换的理解程度。
5、调用的顺序是这样的第一次fun(9-2)第二次fun(7-2)第三次fun(5-2)第四次fun(3-2)然后return(3); //里面的函数进行逐层返回 第一次返回判断到3-2的值,fun函数返回3。
c语言问题:
C语言规定总是从main()开始执行的(这个函数也叫“主函数”)。因此,你发来的题目中的(8)叙述都是错误的,都应该选择F。
p=&x[1][1]; 是“语句”,你的程序中它不是语句,是声明,要看成“声明和初始化”。即要看成: int *p=&x[1][1];意思是 声明 p 是int型指针,指向 下标变量 x[1][1] 的地址。
A.goodabc B.abcd C.abc D.abcgood 解:简单的说就是以“w(写生成)”打开的文件,文件内的原始数据将被删除。这东西不是一两句就能解释清楚。同学,你的C要好好加油啊,这都是些很基本的问题。
*p+a); –return(36);–a=36。所以 36 16 19 注意 c=func(a,&b);第二个参数传递的是地址,所以 *p变化时,相应的主函数中的参数的值也变化。本程序a,b,c分别被修改两次,最后一次c=19,b=16,a=36。
{int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;//定义整型变j,数组a,并赋了初值。
char c; //定义拿到int a那里去 c=A; //C语言区分大小写,没有定义 大写的A改成a printf(“%f,c) //%f改成%c} 找出下列程序中的错误,用两种不同的方法改正。
c语言。看不懂什么意思。具体怎么读。还有if(!ok1)什么意思?
当if()括号中的数大于0时,表示条件成立,此时if语句会执行。!表示非。题目中变量ok1的值为1,那么!ok1就的值就为0;所以x–的语句不会执行。跳到if(ok2),因为ok2=2,所以if语句执行。
还有一种就是if(5),c语言默认if(判别的返回值)是0就不执行,不是0就是执行!所以if(5)等同于if(1)也就是说if(表达式结果为0(逻辑判断只返回0和1,但若是某个数值则不为0则当做是1))。
写程序中,?:用的比较少,!主要用在条件判断中。延展C语言是一门通用计算机编程语言,应用广泛。
真,0假。比如if(1)这个判断条件永真,一定执行。(当然,一般没这么写的)再比如while(1)这个判断条件永真,一旦读到这一行,就一直都执行循环体(出否break跳出,这个就还是比较常用的。