1、计算机编写的程序可以是高级语言程序,如:vb,c#,c++,java等
也可以是汇编语言,机器语言程序
2、汇编语言是一种助记符语言,机器语言之后诞生,帮助人们编写程序的符号,不用再记哪些机器指令,汇编语言写的程序就是汇编程序
3、编译程序是把汇编语言或一些高级语言转换成机器语言的代码
⑵ 请问编程里的 “. _ : = ”各表示什么意思
1、" . " —— 用在指针和结构体中。比如Student a;(Student 中有int sno;int grade;)int *b = Student;那么 (*b).sno等同于a.sno。
2、“ :”——用在选择判断。x = (a > b) ? a : b;
3、“ = ”——就是赋值运算符号了,最常用的。int a = 1;表示将1赋值给变量a;int b = a;表示将a变量的值赋值给b。
编程为编定程序的中文简称,让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
(2)计算机上程序编译符号扩展阅读:
编程的执行原理:
1、计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。
2、程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
3、解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
⑶ C语言编译时,一些符号用什么写法
不是的,错误不是出在符号上,而是出在它的文件输上,你可以打开菜单栏中的Optionst选项,在下拉菜单中选择Directories选项,按回车键,第一个为Include directiories:……,这就是它的输入目录,你安装在磁盘的什么地言就输入就行了,不过后面还有一些事,自己查。
⑷ 请各位网友告诉我编程到底是怎样编的,为什么几个符号就可以了,符号也是人编出来的,计算机不是不懂吗
所谓的编程是运用一些编程软件如C++、.net、VB等按照计算机标准语言定义写出相应实现所需功能的程序段,您所说的符号是就是计算机的标准语言(并不是随便输入就可以哦),编写时必须严格按照标准,否则就会报错致使无法生成程序!另外计算机肯定是只懂0和1这两个符号,您所看到的符号是已经被编程软件等内部定义好的宏指令,把这些符号读入计算机后还是0和1的组合而已!
⑸ 计算机编译原理 图 里面的 圆圈 表示什么意思
先打个比方:
用程序接受从键盘输入的单词,并对照词典判断是不是拼写正确,步骤是:
一个一个地接收字母,每接受一个字母,识别状态往前推进一步。
假如只考虑识别3个单词:it, if, is
状态1:刚开始,一个字母还没收到。
状态2:接收到一个字母 i
状态3:又接收到一个字母 s
1,2,3用圆圈圈起来,1和2之间画个箭头连起来,箭头上标上字母 i。2和3也画个箭头,标上字母 s 。
这样的一张图,表示的是单词 is 的识别过程。
这个过程,就是你照片中第一个图,1,2,3串成一直线的图。
图中V1对应 i , 图中 V2 对应 s
你书上的图,描述的是“自动机”。自动机反映的是读取到一连串字母后的状态变化过程。
它包含若干个状态,即画有圆圈的数字。
当读入一个字母时,自动机从一个状态运行到另一个状态,对应图上的一个带箭头线条。线上标注的符号,代表读到的字符。
⑹ 关于C语言程序设计里的编译程序的符号---开根号(C++里面的)
double pow(double a, double b); // 返回a^b的值,开3方可写作pow(a,1.0/3.0)
⑺ 预编译命令行由什么符号开头
#include "stdio.h"
#define P 3
void *F(int x)/*定义一个无类型函数,它有返回值,只是返回的值是指向无类型数据的指针*/
void main(){printf("%d\n",(int)F(1+3));/*将无类型函数F返回的指针值通过(int)强制转换为int型*/
还有几个问题,
1.预处理命令行必须位于源文件的开头是对是错?为什么?
对!
编译器在编译源代码时都是从开头到结尾依次读取,自己定义的变量、宏等等都得放前面,这样在编译器在读到它们时就作一个记录;
在使用这些变量、宏时,编译器会在记录中去寻找,如果找不到就会报错——此变量未被定义。
函数可以放在结尾(main()之后),但是必须在开头作一个函数声明(也叫函数原型)以使编译器为它作记录,以便以后使用它时可以在记录中找到它。
函数也可以放在前面(main()之前),此时就不用再声明了,编译器在读到它时也会作一个记录。
总之,自己定义的东西都得先声明后使用,否则使用时在记录中会找不到它。
预处理命令也是自己定义的东西,同属这一范畴。
2.为什么在源文件的一行上不能有多条预处理命令?
每条C语句都有一个“;”作结尾,即使都放一行,编译器都能分辨得出。
预处理命令并不以“#”作为结尾标记,放一行的话编译器是无法分辨的,它会把此行作为一个语句处理
通常的语句最好都分行写,否则程序量大时是不便排错的。
3.若有下列说明和定义
union dt
date;
变量data所占内存字节数与成员c所占字节数相同,为什么?
联合体的长度是其最长成员(如double c)的长度。
联合体在内存中的存储形式:
联合体所有成员a,b,c都是同一地址,也就是说他们共同占用这一段内存。
以TC3.0为例,a占这一段内存的头2个字节,b占这一段内存的头一个字节,c占这一段内存的全部字节(也就是头4个字节)
4.为什么以下不对
char *sp;*sp="right!";
char s[10];s="right!";
一、进行字符串赋值时可以在定义时:直接在字符串定义后接“="right"”
如:char *sp="right";
或者 char s[10]="right";
二、也可以在非定义时,这时左值必须是左值必须是字符串指针变量。
如:sp="right!";
以下都是错误用法:
*sp="right!";//左值不是字符串指针变量
s="right!";//左值只是字符串指针 常量
1、如果说*a包含(x和\0),而*b包含(x和y),拿*a-*b会得出什么结果,*a和*b都是char型变量的话
最终的表达式*a-*b中,a points to '\0',b points to 'y',so 表达式*a-*b代表的是'\0'-'y',结果是-121(y的ASCII是121)
point(char*p)
main()
{
char b[4]={'a','b','c','d'),*p=b;
point(p); printf("%c\n",*p);
}
A.a B.b C.c D.d
选哪个?为什么?
选D,p最初是首地址b,然后p是b+3,此时*p相当*(b+3)、b[3].
2号问题:
main()
,,,},i,j;
for(i=0;i<4;i++)
{for (j=0;j<i,j++)
printf("%4c",' ');/*原题就是'和'之间只有个空格,我也不清楚是怎么回事*/
for(j=__;j<4;j++)
printf(%4d",num[i][j]);
printf("\n");
}
}
printf("%4c",' '); 其中的' '其实是一个空格字符常量,这个同'a','b','c'等字符常量是一样的。
这个语句中%4c是指要读取一个字符(这个字符就是后面的空格字符常量' ')并输出,这个字符在显示器上应该占4格。所以此句的功能是输出4个空格(空格也是属于字符)。
你改成printf("%4c",'a');printf("%4c",'b');试下,它是输出3个空格和一个字符。
printf("%8c",' ');是输出8个空格,这个比printf(" ");来实现输出8个字符来得方便。
若要按下列形式输出数组右上半三角(什么玩意?)。
1 2 3 4 i=0,j=i,那么j可以是0,1,2,3
6 7 8 i=1,j=i,那么j可以是1,2,3
11 12 i=2,j=i,那么j可以是2,3
16 i=3,j=i,那么j可以是3
则下划线处应填入的是?为什么?(B)
A.i-1 B.i
C.i+1 D.4-i
3号问题:
程序中若有下列说明和定义语句:
char fun(char*);
main()
{
char *s="one",a[5]=,(*fl)()=fun,ch;
......
}
下列选项中对函数的正确调用语句是?为什么?
A.(*fl)(a);
B.*fl(*s);
C.fun(&a);
D.ch=*fl( s);
选择A,根据定义char fun(char*),形参必须是一个字符指针,"a","s"才是字符指针(char pointer),而"*s" is char variable,"&a" is invalid.所以排除B、C
只有fun、*fl才是函数入口地址.
B.*fl(*s);相当于*(fl(*s)),错误,指针运算符只能针对指针运算,fl(*s)得到的是int,不是指针,下同。故排除B、D.
D.*fl( s);相当于*(fl( s));
4号问题
#define S(x) 4*x*x+1
main()
{
int i=6,j=8;
printf("%d",S(i+j));
getchar();
}
这个函数的输出结果是多少?怎么得的?
得到81.
因为S(i+j)经过预编译用i+j替换x后,它被展开为4*i+j*i+j+1。即(4*6+8*6+8+1)
你应该这样改:
#define S(x) 4*(x)*(x)+1
或者 printf("%d",S((i+j)));即将i+j用括号括起来(i+j),这样就在替换时用(i+j)替换x
⑻ 编译器怎么区分标识符和字符
首先要清楚标识符和字符的定义
标识符是程序员自己规定的具有特定含义的单词,比如类名称,属性名称,变量名等。
举例子就是 class string
字符是指计算机中使用的字母、数字、字和符号
举例子就是 1,2,3,abc
然后要强调,编译器是无法区分标识符和字符的,只有人事先为其规定好规则的情况下,编译器才会按照标识符的方式去读取。打个比方,我规定了class为类标识符,那当我程序里 出现了class test时,编译器就会认为test是类而不是字符。不知道能不能理解,不过是个好问题