C语言的几个问题
char str[10]={"ABCDE"},占用内存10个字节,前6个字节的值是"ABCDE\0",字符串不一定占用全部字符数组的内存,因此最后会加'\0'(0值)表示字符串的实际结尾。该字符串实际占据数组的前6个单元;
char str[]={“ABCDE”},会自动根据字符串长度确定占用内存的大小,为6个字节。
用strlen()函数去查看,结果都是5。
整数相除,余数舍去,只有整数部分。
同类型运算,从左至右顺次进行。
x/y=3/2=1,x/y/z=1/1=1,
取整之后,还是1,化成浮点数之后是1.000000.
如果想得到小数结果,有两种做法:
(1)在运算之前,先强制类型转换:(float x)/(float y)/(float z);
(2)运算的第一个数是浮点数:1.0*x/y/z;
运算时会自动选定第一个数的格式,进行计算。
1.其实“4.3”中的“4”是有用处的,“4”代表输出数字的宽度设置,但如果你输出数字的宽度大于你所设置的数字宽度“4”,则数字全
部输出,如果你输出的数字的宽度小于你所设置的数字宽度“4”,则用空格填满。
比如printf(“*%f,%8.3f*
”,3.14,3.1415);
则输出:*3.140000,---3.142*(-表示空格)[“8”正的是右对齐,负的是左对齐]
2.我后面输出的是*d(4)=37777777776*d(5)=37777777776*d(6)=37777777776*
如果输出的是177776的话,你的答案应该对的,应该输出*d(4)=177776*d(5)= 177776*d(6)=177776 *;
3.我输出的结果是
*d(1)=3.500000e+000*d(2)=3.5000e+000*d(3)=3.5000e+000*
*d(4)=-3.500000e+000*d(5)=-3.500000e+000*d(6)=-3.50000e+000*
d(3)%10.4e的“10”是指数字宽度,“4”指小数点后面四位;
4.你的意思是说把printf("x=%d y=%d *sum*=%d
",x,y,x+y);改成printf("x=%d x=%d x=%d
",x,y,x+y);吗?
那结果会输出 x=1 x=2 x=3
10 Squared is: 100
5.我输出的结果是:5.681000e+002
e型的小数保留6位 ,指数部分保留3位
6.#include
main()
{
int i;
for(i=1;i<=5;i++) printf(“##%*d
”,i,i);
}
解析:printf(“##%*d
”,i,i);中的第一个 i是设置输出数字的宽度,第二个i是输出的数字;
号的作用是【可以使同一输出语句中的输出宽度得以改变】
for循环内,每次循环先输出##然后设定要输出的数字宽度,再输出数字,因为你的宽度i是正的,所以输出数字是右对齐。
7.很奇怪,你的输出结果怎么和我的不一样呢,我输出的就是
3.1415926000##
3.1415926000 ##
你自己再试试看~
8.你好,我输出的结果是:a=+00325(中间1个空格)x=+3.141593e+000
a=+00325因为你输出设定的宽度为6,其中“+”也算在其中的;而x=+3.141593e+000在上面第四题已解释
9.我输出的答案基本和你所猜想的一致,是
(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281
(2) x=7281,x=7281 ,x=$7281 ,x=$007281,x=%06d
(3) x=+7281,x= +7281,x=+0007281
只有(3)有点不一样,自己再检查检查吧,问题跟上面的都差不多,我想你应该能够解决的!
希望我的答案能让你满意!谢谢~
A a%(int)(x-y)----首先是X-Y运算,之后将其结果强制转换成INT型,之后进行a与其结果的取模运算。
B a=x!=y;-----
C (a*u)%b------U未定义
D y=x+y=x-------关于B,D选项。。。不能详细说明为啥不对,可能可以编译,但是这样写不合理。
2若变量以正确定义,在if(w)printf("%d",k);中,以下不可替代W的是:(D)
A a<>b+c;
B ch=getchar()
C a==b+c
D a++
解释:
题干中的IF语句意思是 如果IF()括号里为1(真)时,执行以下语句。所以()里应该是返回为整型数的语句。A错了,没这么写的。<=,>=,==,!=逻辑判断符号。B不对,意思是得到一个从输入值,并返回,这里是从输入得到IF的判断命令。但是得到的是字符型的,返回的也是字符型。D 提前前提是正确定义,那么这里就可以假设a是初始化为0的,判断后自加1.C语句不对吧 要加括号,a==(b+c)
3若有定义:double a=22;int i=0,k=18;则不符合C语音规定的赋值语句是B
A a=a++,i++------可以理解成a,i各自加1;
B i=(a+k)<=(i+k);-----感觉不对。。。
C i=a%11---a对11取模后赋值给i
D i=!a;
我还还是新手,如果错误请见谅,3题不把握,最好你再问问比人,记得把答案给我回复下哦
1.B a!=y 是一个判断语句 要么为0 要么为1 (但题目中没有给x y赋值 所以运行时程序会出错)C a*u u是什么看不懂诶 如果是unsiged 那么用法不对 如果是变量 那么u未定义 也错的 D x+y=x 明显不对 如果x y都赋值了的话 那么x的值不能赋给x+y
2.A的意思是a不等于b+c C是判断a是否等于b+c 如果a++后是正数则if成立,否则不成立 选B
3.A a=a++相当于a++ B 为判断语句 当a+k<=i+k成立时 i=1 否则为0 C. 明显对 D.明显错
第二题选A,楼上先看清题目啊,就A的“<>”符号是错误的,BCD都可以
A A B
【悬赏】几个C语言初学的问题,求解,求解!谢谢
1、必须定义file *fp 或file fp。2、dat文件可以存放文本文件。3、extern之后就变成全局。可以一开始就extern,没有出现过也没有关系。这个extern是最大的全局。不局限在两个文件之间。所有的文件都可以使用。一般的所谓全局变量作用域只是在自己的文件中。5、&+普通变量表示地址,数组名就是地址,如果...
go语言的出现非常奇怪,有几个问题请高手答案一下~~~??
1:go与c语言相比,go有垃圾回收,不会造成内存泄露问题,go的语法简洁优美,同样的c++100行代码go大概50行可以做到,go的目标是能做C++能做的事,虽然目前可能不太实际 2:go的并行机制并不是一般的线程,通过channel和goroutine来实现,比线程还要轻量级很多,所以go适合高并发的服务器端 3:go是系统...
问几个C语言scanf函数和printf函数问题?
第一个问题:因为读取数字时,遇到非数字字符就结束读取了,非数字字符就可以在下一次读取。所以,数字和字母之间可以不用空格隔开。读取字符的后面,如果要读取数字,空格不是必须要加的,只是看起来更清楚一点罢了(不加空格也是可以的)。第二个问题:在使用scanf()输入字母时,字母和字母之间不能有...
关于c语言的几个题目,求助
include <stdio.h>int main(void){ char input[100];\/\/输入字符串 int flag[256]={0};\/\/标记每个字符的出现次数(只处理ASCII码) char *ptr;\/\/要求用指针处理 char *temp; printf("please input a string:"); scanf("%s",input);\/\/接受输入 for(ptr=input;*ptr...
C语言程序设计中几个很基础的问题,求大神帮忙解答,感激不尽~~_百度...
AF 1%2为1除2的余数为1 int m=10\/11.0=0 10\/11.0应该为小数 然后转换成了int型为小数的整数部分及0 m==8 此时10==8为假则为0 2\/3为0 两int型相除 结果用int存储 ~m&m为0 因为自身与自身的反做交的话肯定是0 F ~(m|m)=~m=-11 此中的为二进制计算 G !m 为0 ...
我有几个关于学习C语言路线的问题,高手帮下忙
如果比较一下的话,VB算是先甜后苦,C语言算是先苦后甜吧。1.《C Primer Plus》上面的指针相关学完可以了,不用一下子深入太多。指针的问题,可以在以后编窗口程序时碰到了再慢慢研究。当然,既然你学了C,指针这样的特色功能自然要好好研究一下,但不用一下子全学透。2.C不显式支持面向对象,...
关于pascal语言for语句的几个小问题(急急急)
第一个:var c,sum:integer;begin sum:=0;for c:=1 to 50 do sum:=sum+2*c-1;writeln(sum);end.第二个:var c,sum:integer;begin sum:=0;for c:=1 to 34 do sum:=sum+c*3-2;writeln(sum);end.第三个:var a:array[1..10] of integer;c,d,e:integer;k:real;begin for...
言语交际的最大困难是什么?为什么?
在人际交往过程中,有大部分时间是靠语言完成的,所以一个人的言语、谈吐是十分重要的。由于我们是在安庆,我在这里就重点分析安庆人的语言问题。 粗话、脏话在安庆人中是很常见的。记得有一天,我到学校停车场去放自行车时,就听见几个初一学生的对话: “ 他妈的!!!老子叫你传球听没听见?!!” “老子的球是一百三...
关于汉语言文字学的几个疑问
看来你对北大中文系比较倾心,那我就找来北大中文系汉语言文字学的几个方向一起看看:01.现代汉语02.汉语方言03.汉语史04.古文字学05.中文信息处理06.对外汉语教学 其实汉语言文字也无非就是这几个方向,本人就读于南开,就把南开汉语言文字的几个方向拿来对照一下:01汉语语法学 02汉语语音学和方言...
java语言hashcode和真实物理地址的关系以及相关几个问题
第一,输出的是:getClass().getName() + "@" + Integer.toHexString(hashCode()),这是jdk对toString方法的实现。第二,“==”比较的就是一个对象的引用地址是否相同,即是不是一个对象。即不是左右两边非一个对象的话,该运算就返回false。hashcode和物理地址没关系,只是一种约定,并非强制性的...
枝群百日: SPSR = 0; n 因为 SPSR = 0; 是一个完整的语句,后面的 n 是另外一个语句,也就是一个变量,在这个语句后也要加 ; 才正确.SREG|=0X80 中的 “|”是 C 语言中的按位或操作符,也就是把 SREG 中的每一位与 0x80的每一位进行或操作,注意操作中不进位.SREg=0x80 是赋值语句,将 0x80 的值传送到 SREg 中.return(acxx) 和 return acxx 没有区别.关于调用一个数组,d 数组被调用时,如果是传值调用,d 中元素的值不变,如果按指针调用,调用 d 的函数可以改变 d 中元素的值.
龙山区18453774545: C语言中的几个问题 - ?
枝群百日: 前者是预处理命令中的条件编译,不过第一句#if(a>0)应该是错的,预处理器应该无法判断(a>0) 的值 后者是一个表达式,TMRSET &= B0000_1111 ,TMRSET=TMRSET&B0000_1111,这2个值或者是定义的变量,或者是宏定义的常量和表达式
龙山区18453774545: C语言中几个问题?
枝群百日: 1,x=y++的含义是x=y;y++;如果x=++y,结果才是x=11 2,这个问题你是不是打错了?如果前者也是p*=i的话,那么他们的功能是不同的,因为第一每循环一次p都被重新赋值为1,最后为p=5;而第二个只在第一次循环的时候赋值p=1,其余p值为上次循环得到的值,结果为p=5! 3,'\'是转义字符,他后面接数字的话代表一个字符的ASCII码,'\72'代表了'H' 建议你自己动手写点代码运行以下,设断点追踪一下就可以得到这些答案 初学者要多动手,这很有帮助
龙山区18453774545: C语言的一些问题?
枝群百日: 第一题:数组a的长度为变量n,这种定义数组的方式是错误的.定义数组时,数组长度可以用符号常量表示.例如#define N 40float s[N] 第二题:应改成 scanf("%s",str); 用%s格式输出一个字符串时,在输出表列中只需给出字符串的首地址,一 维数组直接用数组名,而二维数组可以看成是由多个一维数组构成的. 第三题:%d表示按整形的实际长度输出;%f表示按小数格式输出,整数部分按实际位数输出,6位小数. 所以要改成:a已定义为整型,b定义为实型 a=3;b=4.5; printf("%d%f\n",a,b);
龙山区18453774545: 几个C语言问题1.数学中一元二次方程的求根公式的C语言表达式为?2.梯形面积公式的C语言表达式? - ?
枝群百日:[答案] (1)ax^2 + bx + c = 0 double x1=(-b+sqrt(a*a-4ac))/2a; double x2=(-b-sqrt(a*a-4ac))/2a; (2)double S=(top+bot)*h/2;
龙山区18453774545: c语言里几个简单的问题? - ?
枝群百日: 第一个问题,说的是汇编里的表示方法吧,正和负的确是不一样的,第二题是值是多少,要看用什么数据类型存储或者输出类型决定,如果超出对应数据类型的范围值,就会造成溢出,结婚肯定不对了第三题,和第二题一样,如果i为0时,再减1会出现溢出,造成程序出错
龙山区18453774545: C语言中的某些问题?
枝群百日: 1、无符号类型是一个不带正负号的一个数值,有符号类型就是带上正负号的数值. 2、用户自定义函数,顾名思义,就是你自己构造的一个函数,是一个自己写的函数,里面的算法,是你自己想出来的独一无二的,它与系统函数相对,系统函...
龙山区18453774545: c语言几个问题?
枝群百日: 1.systme("cls") 清屏 2.你的price是在循环里面获得的.不是在循环外面获得的,所以还会在循环有相等的时候,恭喜打印出来,接下去不循环了! 3.getch() 获取下一个字符
龙山区18453774545: c语句的问题 - ?
枝群百日: 1、C程序就是C语言写出来的程序.就像中文歌曲是汉语写出来的一样. 2、C语句是C程序的组成部分,写了它它就能照着你的意思做一些事情,比如你让它几个数字按大小排序之类的. 3、这个问题有点问题.程序...
龙山区18453774545: 关于C语言的一些问题 - ?
枝群百日: 1,无区别2,char本质是int型,是用ascii码来表示的,所以会有负值.3,s为字符型时,s++表示当前字符的ASCII+1,为结构体,共用体,文件类型时,不能++运算,为数组和字符串时,s表示指针,s++表示指向下一个数据或字符.4不可以嵌套定义函数