‘壹’ c语言中定义一个变量,不给它赋值。它会有值吗若有是多少
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。
如果加了static不给初值,变量的初值是默认的 0。
不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。
(1)c语言弱类型扩展阅读:
在C语言中,如果按存储占用空间来分,包括:
整型变量(代码为int),整型变量包括长整型变量(代码为longint)以及短整型变量(代码为shortint),字符型变量(代码为char),浮点型变量(代码float)等。
声明变量时,可以不用声明就直接赋值来决定变量类型的语言,这类语言变量的声明通常被称为弱类型,而如(c++等)必须先声明,后使用,而且声明时必须确定变量类型,这种就是严格的数据类型。
‘贰’ c语言的特点是什么
首先c语言是一种面向过程的语言。
主要优点就是可以直接和汇编语言交互,因为更接近底层,所以运行速度快。
就语言本身而言最大的优点就是弱类型化,指针啥都能干,但是最大的问题也是指针,初学者连复杂的指针定义都识别不了,更别说使用了。
‘叁’ C语言为什么是一个 弱 类型的高级语言
弱类型语言指的是一种没有很强类型概念的语言,如vb,而强类型语言指的是有很强类型概念的语言,如c(虽然c允许类型转换,但是相对来讲比vb要是强类型),弱类型的好处在于程序员不需要过多的着重与类型的转换,而强类型的好处在于程序可以有条不紊的执行,而且类型错误的出现率很低,即使有也很容易发现。
弱类型例子:(语言为vbscript)
var result=5+5; //两个数字之和
alert(result); //输出10
var result=5+'5'; //一个数字和一个字符之和
alert(result); //输出55
因此使用弱类型语言也要格外注意数据类型防止出错
而c语言相对来讲比vb更具有类型概念:
#include <stdio.h>
int main(void) {
int a = 5 + 5; //两个数字之和
printf("%d", a); //输出10
in b = 5 + '5'; //一个数字和一个字符之和
printf("%d", b); //输出106,因为字符'5'被隐式转换成了相应字符的虚拟键值(即101)再和数字5相加
return 0;
};
‘肆’ php和C语言的区别
一、指代不同
1、php:即“超文本预处理器”,是一种通用开源脚本语言。
2、C语言:是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
二、特点不同
1、php:是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。
2、C语言:能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
三、优势不同
1、php:具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。
2、C语言:提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
‘伍’ C语言 int和char
C语言是一种弱类型语言,如果使用熟练了你就会知道,类型什么的都是浮云,内存才是王道,考虑问题的时候要深入本质才行,关于这个问题从内存来看,如下:
char是字符型,内存中占用 1 个字节,取值范围是-128到127,int类型占用 4 个字节,范围就不说了,肯定是比char要大的多,这两个都是有符号数。
char和int一般情况下是可以直接做加减运算的,你可以直接把char当成一个int,只不过取值范围小点;
不同类型的数值在做运算时,以尽量不丢失有效数据为原则,比如char和int相加,系统会自动把char转换成int,最终结果也是int型;
赋值时如果类型不一样,要小心,若等号左边的类型小于右边的,会产生截断赋值(特别注意),大于的话就没问题,不会丢失有效数据。
如你写的第一句,A-B是int,C是char,比较时会先把char转换成int,也就是从1个字节变成4个字节,肯定不会丢失有效数据,没问题;
第二句,A+B是int,要赋值给char型C,相当于把4个字节的信息装到1个字节的内存中,这肯定放不下,因此会产生截断赋值,取A+B结果的最后一个字节赋值,前面三个字节则会丢掉,
所以这些写会有风险(当然编译肯定是过的,只是警告罢了),这种情况下,如果A+B结果没超过char取值范围,也问题,因为不会丢失有效数据,如果超过了的话,结果就不是它应该有的结果了,这是就要小心了,所以一般别这么写,除非你确定数据不会越界,一旦越界就会截断赋值(只是结果不对,但程序也不会崩溃的)。
满意请采纳。
‘陆’ 求C语言练习题答案
二、填空题
1. ___变量__是指在程序运行过程中,值可以发生变化的量。
2.C语言是一种____区分_(区分/不区分)字母大小写的语言,Password和password在C语言中是两个___不同__(相同/不同)的标识符。
3.下面的转义字符分别表示:
’\b’__退格___,’\n’__换行___,’\t’__水平制表___,’\”’ __双引号字符“"”___
4.下面常量的类型分别为:
1.5E12__浮点型___,1288L _整型____,’a’__字符___,"a"__字符串___
08 __整形___,’\007’__整型___
5. C语言源程序一定要有而且只有一个__主函数___函数,程序执行时也从它开始。
6. 结构化程序设计主要有___顺序__、__选择___和__循环___三种基本结构。
三、判断题
1. C语言不是一种结构化程序设计语言。(错)
2. C语言是弱类型语言,为了类型转换的方便,对类型的要求很不严格,在许多情况下不做类型检查。(对)
3. C语言既具有高级语言的特点,同时也具有部分低级语言的特点。(对)
4. C源程序可以由多个文件组成,每个文件中都可有一个主函数main()。(错)
5. C程序从main()函数开始执行,因此主函数main()必须放在程序的开头。(错)
6. 命名标识符时字符个数不得超过6个。(错)
7. 对于同一个数据种类型,变量值越大,它所占内存的字节数越多。(错)
8. 定义一个变量时必须指出变量类型,但是不一定必须给变量初始化。(对)
9. ""表示一个空字符串常量,’’表示一个空字符常量。(对)
10. 一个表达式中出现多种数值型数据类型,运算前先进行类型转换。(对)
11. 浮点数不能作自增或自减运算,只有整型才可作自增或自减运算。(错)
12. 已知a、b是整型变量,则表达式a=3,2+4,b=6,7+8是一个逗号表达式。(对)
四、问答题
1. 写出下面表达式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最终结果是多少?i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最终结果是多少?a=9,b=9,c=25
2. 下列表达式是否正确?若正确,表达式的值是什么?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、编程题
编写程序,在屏幕上输出如下信息:
===================
= I am a student. =
===================
#include"stdio.h“
void main()
{
printf("= I am a student. =");
}
‘柒’ c语言是强类型还是弱类型,有定论吗
强制定义就手把以前定义好的数据类型强制转换为另一种类型,正常情况下我们是定义一种数据类型,如chari,当我们要把它变为int时,就要用(int)i了。强制转换就是我们可以把我们以前定义好的数据类型转换为我们要用的令一种类型!
‘捌’ c语言 unsigned int
unsigned
int类型相加的情况。
没有强制转换。
UINT+UINT
INT+INT
UINT+INT
对于加法器(CPU内部)
是完全相同的。Computer的设计者非常巧妙的统一了他们:
使用反码代替负数。
(32位INT情况下)
-1
和
0xFFFFFFF
是物理等价的。
-2
和
0xFFFFFFE
是物理等价的。
(-1)+(-2)
加法器回答是
0xFFFFFFF
+
0xFFFFFFE
=
0xFFFFFFFD
和(-3)是物理等价的。
所以关键是结果是什么类型,而不是2个输入是什么类型。
加法减法都没有问题。但是比较大小必须注意要同类。要看编译器了。
‘玖’ int main() 与int main(void) 的区别是啥
没有本质上的区别。
void main() 这么定义只是说明main函数没有返回值。
int main(void)和int main()是一样的,括号里没有东西就相当于void,只是说明main函数有一个int类型的返回值。
C语言的规范里面要求main函数需要返回一个int类型的返回值来告诉操作系统这个程序是执行正确还是执行错误。执行正确返回0,执行错误返回非0。但是目前操作系统都不去判断这个返回值,所以你写成void main()还是int main()其实是一样的,没有什么区别。不过既然有规范,还是推荐写成int main()这种形式。
对于C和C++来说还有一点区别。C++加强了C的一些检查,我们知道C语言是弱类型的语言,编译检查没有那么严格。C++其实也是弱类型的语言(相对于java、c#这些高级语言),但是比C的检查稍微严格了一些。
希望回答对你有帮助。