C语言问题,C语言基本问题

2021-01-19 08:52:12 字数 4896 阅读 3692

1楼:匿名用户

a、2这里的逗号不是逗号运算符,而是参数分隔符。

因为格式串中只有一个%d,所以只打印第一个参数。

2楼:林夢嫣

这句话提示的意思是:用类型“int (const char *,...)”隐式声明了库函数printf。

该提示的背景知识:因为printf这一类库函数太常用了,所以编译器在编译的时候,发现源文件中并没有声明printf这个函数就直接使用了它,那么编译器就会为printf函数隐式生成一个声明。你那个编译器提示你,它为printf生成的隐式声明是:

int printf(const char *, ...) 该提示后果:通常情况下,这个提示只是一个warning,而不是error,编译仍然可以通过。

解决方案:要消除这个提示,只要加上printf的声明就行了。printf函数是一个库函数,它的声明在stdio.

h文件里。所以,你只要在源文件中#include 就可以了。

c语言问题!

3楼:匿名用户

因为s是一个指向float类型的指针,在初始化的时候,*s=a;所以s指向了数组a,因为数组名代表了数组的首地址,也就是s此刻指向了数组a的第一个元素a[0],而a[0]==1.1,然而,你调用fun(a,b,s),但是在函数fun中并没有对main()函数中的s指针有任何改变,因为你在func()函数中的s和main()根本就不是同一个,在fun()中的s在没有调用calloc()之前,也是指向a[0]的,但是调用calloc()后,func()中的s就指向了一个系统分配的地址,所以改变func()中的s并不会影响到main()中的s。

4楼:匿名用户

为什么是21.1?即使没发现错误也应该理解为11.1才是啊……错误在于对s的重新赋值。

s作为参数传给fun,然后fun内部改变了s的值,并写入新数。

但fun执行完后返回时,main函数里面的s没有改变,因为c语言的参数传递是传值的。

结果就是,执行printf所显示的实际还是a[0],所以显示1.10修改方法:

1、把calloc放在main里

2、如果calloc有特别要求不能动,那么把fun的第三个参数变成 float** s ,其他s对应着修改。

c语言基本问题

5楼:岔路程序缘

一、c语言规定总是从main()开始执行的(这个函数也叫“主函数”)。因此,你发来的题目中的(1、6、8)叙述都是错误的,都应该选择f。

二、第2题中,c语言对其数据在内存中所占用的实际字节数,随着程序中声明的数据类型以及数据的多少而变化,c语言本身并没有明确规定。这题应该选f。

三、第3题,c语言中强制类型转换,仅对转换的语句有效,而不会改变所转换变量的原有数据类型,这是正确的,应该选t。

四、第4题,i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);实际上是一个程序执行类题目,执行这一句时,先取得ij变量的值,其中有一个++i(先自增),一个j++(后自增),先自增的i先加上1,也就是i=8+1=9,而后自增的j在打印之后再加1,所以打印时仍是j=10。所以打印出来是:9 10 9 10。

这是正确的。

五、第5题“c语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示”的说法是错误的。举一个例子就可以了:print("%d",8);是打印不出来%d的,它只能打印出来8。

所以它是错的。

六、第7题,设x、t均为int型变量,则执行语句"x = 10;t = x && x >10;"后,t的值为,这个题目好似没有写完,成了填空题了,现在来看计算过程,t = x && x >10,根据计算的优先级,>号是6级,&&是11级,先计算x >10,因为x=10,故x>10是不成立的,所以它的值是0,第二步再计算x && 0=10 && 0=0。t的值最后应该是0。

希望对你有所帮助。

6楼:匿名用户

第一题:f,是从主函数的第一条语句开始执行的。

第二题:t,每一种数据类型在c语言中都占用固定的字节数。

第三题:f,强制类型转换会改变数据类型。

第四题:f,输出结果为8,10,9,10。

第五题:f,不能被原样显示的有预处理命令中被包含文件名(如"stdio.h")、printf函数的转义字符(如"\n")。

第六题:f,程序执行是从主函数第一条语句开始,执行到主函数最后一条语句结束。

第七题:t的值为0,因为x>10的值为0。

第八题:f,c程序执行从主函数开始。

7楼:匿名用户

f( t )c语言程序是从源文件的第一条语句开始执行的。

//c语言程序是从主函数中的第一条语句开始执行的

2. f( t )c语言对其数据在内存中所占用的实际字节数是有明确规定的。

//c语言对其数据在内存中所占用的实际字节数没有明确规定,比如:整型数据在turbo c中占2字节,在vc中占4字节

3. t( f)c语言中强制类型转换不会改变原变量的原有数据类型。

//强制类型转换不会改变原变量的原有数据类型,得到的结果是转换后的类型数据

4. t( f )程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其结果9,10,9,10.

//先执行j++,输出10 再执行++i,输出9,然后输出i和j的值,分别是9,10

5. f( t )c语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。

//c语言中放在“”之间的内容都被视为字符串的一个构成部分,前半句是正确的

//都可以在屏幕上原样显示。不一定,比如有些转义字符,换行符\n,退格\b等等

6. f( t )c程序的执行是从程序的第一行开始,一直到程序的最后一行结束。

//c程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束

7. t( f)设x、t均为int型变量,则执行语句"x = 10;t = x && x >10;"后,t的值为。

//执行语句"x = 10;t = x && x >10;"后,t的值为0

8. f(t )c程序的执行从程序头开始。

//c程序的执行是从主函数的第一行开始,主函数可以位于程序中的任何地方,不一定是程序的开头

8楼:匿名用户

1经常程序运行是由启动**开始的,而启动**一般都是汇编写的,2.不确定的,数据类型定义的时候是确定的,运行的时候根据硬件多不同会有所不同

3.毫无疑问肯定会了,要不还说什么强制呢,对吧4.应该是8,10,9,10吧。

因为printf语句就运行了一次,所以第一个i是8,第二个i是先+后输出应该是9,第一个j是9,第二个j是先输出后++,而程序只运行了一次,所以还是没有+,等于10。

5.双引号是c的字符串格试符,所以是对的。

6.同第一题

7·没有看明白

8.同第一题

9楼:匿名用户

1、假,从main开始执行。

2、假,int的长度不明确。

3、真。

4、假,从左向右计算,8,10,9,10

5、假,有转义字符。

6、假,见1

7、t=0

8、假,见1

10楼:匿名用户

第4题你是正确的 ,不同的编译器会有不同的结果,这属于垃圾**

11楼:蹉灿紫婉娜

("a/1000>=1")

你这句写错了,应该是

(a/1000>=1)

把引号去掉

12楼:狂云德潮莺

1·c语言程序的基本单位是(b函数)a过程b函数c子程序d标志符2·如果a=5<<2,为什么a=20?

a=5<<2相当于a=a*2的平方

即a=5*4=20

3·不能正确对字符串赋值的是(a

二维数组不应该这样赋值)a

char

st[4][5]=;b

char

*s;scanf("%s",s);

cchar

*s;s="abcde";d

char

s[5]=;

4·正确输入字符组a的是(d)a

gets('a');

bscanf("%c",a);

cscanf("%s",a);d

gets("a");

5·如果c=35,为什么printf("%d\n",c&c)的值为35?那个c&c是什么东西。&在这里是“按位与”运算

c&c化为二进制的比较,都为1

则为1,否则为0.再化回10进制数

13楼:淦菀欧阳阳冰

if("a/1000>=1")

这句应改为

if(a/1000>=1)

不然永为真

c语言问题

14楼:王囧囧

大概看了一下,楼主的意思是

通过creatpolyn创建一个链表,而且貌似元素是根据expn的值有序排列的

创建时首先搜索待插入元素的关键字是否存在,不存在才插入插入的时候,楼主不想再做一次比较了,因此搞了个q想来保存插入的位置关于效率,其实再次搜索一次也无妨,因为while(p && e.expndata.expn)

与while (p->next &&i

15楼:匿名用户

就把q定义为常变量吧:const int p;

或定义指向它的指针:int * p

16楼:匿名用户

链表高级。。。。。。。。

c语言问题,C语言问题 10

1楼 include int main void c语言问题 2楼 匿名用户 include include void main 冒泡排序按英语词典规律排序 for i 1 i 5 i printf the country s after sort is n 排序后的国家名称 for i 0 i 5...

C语言数组问题,C语言新手 数组问题

1楼 千锋教育 你的 问题有以下几个 1 min和max没有初始化 2 对于a min 和a max 没有做循环参考 如下 include main printf 最大数是 d,下标是 d,最小数是 d,下标是 d n a max max a min min 2楼 天雨下凡 include void...

C语言问题

1楼 天云一号 因为只能是int转换为float型,而不能反过来,可以理解为float型级别比int型高,c语言规定数据只能从低级别转换到高级别,如int a 3 printf f n a 输出就是3 0 你题目中的输出相当于是乱码了 c语言问题 2楼 一个能通过的名 首先你的scanf语句不对,应...