C语言如何学习,编写的程序如何验证它的正确性

C语言如何学习,编写的程序如何验证它的正确性,第1张

刚学C语言要抓住几个重要的知识点,一个是三大结构,二是数组,三是函数,四是指针,然后结构体,最后把学生管理系统写出来就差不多了,至于编写程序的正确性,可以通过调试,推荐vc60,调试很不错,可以随时看某个变量的值是怎样变化的,进而查出问题的根源,对学习很有帮助。

1、预处理

在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。

根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。

GCC预处理阶段可以生成i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o helloi helloc

2、编译

这一阶段,编译器对源码进行词法分析、语法分析、优化等 *** 作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。

可以通过选项-S使GCC在进行完编译后停止,生成s的汇编程序。例如:gcc -S -o hellos helloc

3、汇编

这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为o的目标文件中。

当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成o目标文件后,才能进入下一步的链接工作。

目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o helloo helloc

4、链接

经过汇编以后的机器代码还不能直接运行。为了使 *** 作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello helloc

5、运行:执行EXE文件,得到运行结果。

D:int A[10]是正确的。

A:int A[a]---a未知

B:int A[3,4] ----二维数组的定义必须用类似 int A[3][4] 的形式

C:int A[][]----第二维的大小必须给出

运行程序步骤:

1编辑:输入源程序并存盘(C)

2编译:将源程序翻译为目标文件(OBJ)

3链接:将目标文件生成可执行文件( EXE)

4运行:执行EXE文件,得到运行结果。

上机1 C语言简单程序的编写和调试

:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。c 语言应用程序上机过程具体步骤如下:

打开VC++ 60程序 2、点“文件”,“新建“。

在新建页面上选择文件→C++ Source File 并在右边编辑文件名称,选择保存位置,确定。

简单程序示范。

鼠标右键Compile(Ctrl+F7)如图,确定两次,注意下方可查看错误,可上下拉动。确定无错之后,右键Build(F7)如图,同样注意下方是否出现问题,最后右键BuildExecute(Ctrl+F5)。完成。

参考资料:c语言_百度百科

1)D 一个非0值

2)D 6 (3/12=6)

3)D 字符数组变量

4)B 地址

5)D C语言

6)D p与s[0]相等

7)C 0177666,0101,0133,032

8)B 1,6

9) C *** 作数4

10) D (1)在对p进行说明的同时进行初始化,使p指向a(2)将变量a的值赋给p

11) A read(intfd,charbuf,intcount)

12) B 联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址

13) D 'A'

14) B a=1,b=111

15) C 成员中占内存量最大者所需的容量

A

A

A

B

B

B

A

A

B

A

===

刚才楼主怎么删了。。花了老半天才做完,楼主给分吧。。。

#include<stdioh>

#define MAX 10 //预定义,在编译前编译 遇到MAX先转变成10在执行编译

int a[MAX],i; //定义全局变量

void sub2(); //必须先声明函数

void sub1();

void sub3(int a[]);

void main()

{

printf("\n"); //换行

sub1(); //执行函数sub1()

sub3(a); //把数组a作为参数执行sub3函数

sub2();

sub3(a);

}

void sub2()

{

int a[MAX],i,max; //此处需要注意,因为a已定义为局部变量,所以全部数组a[MAX]在本函数被屏蔽

max=5;

for(i=0;i<max;i++) //给数组a前5个元素赋值为其下标

a[i]=i;

}

void sub1() //给数组a所有元素赋值为其下标2

{

for(i=0;i<MAX;i++)

a[i]=i+i;

}

void sub3(int a[]) //输出数组a的所有元素

{

int i;

for(i=0;i<MAX;i++)

printf("%d ",a[i]); //此处若能适当增加空格能更容易看清楚

printf("\n");

}

解释:

1、在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入:

scanf("%c%c%c",&c1,&c2,&c3);

如输入 ab  c

字符‘a’送给c1,字符‘ ’送给c2,字符‘b’送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此‘ ’作为下一个字符送给c2。

2、在输入数据时,遇以下情况时该数据认为结束。

① 遇空格,或按“回车”或“跳格”(tab)键。

② 按指定的宽度结束,如“%3d”,只取3列。

③ 遇非法输入。

如scanf("%d%c%f",&a,&b,&c);

若输入

1234 a 123o26

↓ ↓ ↓

a b c

第一个数据对应%d格式在输入1234之后遇字母a,因此认为数值1234后已没有数字了,第一个数据到此结束,把1234送给变量a。字符‘a’送给变量b,由于%c只要求输入一个字符,因此输入字符a之后不需要加空格,后面的数值应送给变量c。如果由于疏忽把本来应为123026错打成123o26,由于123后面出现字母‘o’,就认为该数值数据到此结束,将123送给c。

解答:所以你应该在输入完7182后直接输入字母,不要回车,因为回车也是一个字符,系统会当做是将你输入的回车字符送给了C1变量。

以上就是关于C语言如何学习,编写的程序如何验证它的正确性全部的内容,包括:C语言如何学习,编写的程序如何验证它的正确性、C语言源程序到运行程序经过哪几个步骤、c语言程序设计 选择正确的定义语句A:int A[a] B:int A[3,4]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9473444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存