在一个C语言程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束。 B)

在一个C语言程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束。 B),第1张

从main函数开始到main函数结束。

答案选A。

C语言常考考点:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“ ;”。)

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

扩展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:

百度百科--C语言

您好,此题我在二级c语言笔试中遇到过,原题如下:

一个c语言的执行是从:()

a)

本程序的主函数开始,到本程序的主函数结束

b)

本程序的第一个函数开始,到本程序的最后一个函数结束

c)

本程序的主函数开始,到本程序的最后一个函数结束

d)

本程序的第一个函数开始,到本程序的主函数结束

标准答案是a

C程序设计之四书五经

自从Dennis MRitchie于1973年设计并实现C语言以来,计算机程序设计领域已经发生了巨大的变化。以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。今天,C及其后裔几乎统治了计算机程序设计世界。可以这么说,C语言的诞生是现代程序语言革命的起点,它改变了程序设计语言发展的轨迹,是程序设计语言发展史中的一个里程碑。

然而,C并不仅仅是其他语言的起点和基础,否则它早已成为程序设计语言发展过程中又一个被遗弃者。和当初发明时一样,C语言今天依然至关重要。它的表达力、效率、简练、紧凑、对机器的最终控制以及跨平台的高度移植性,使其在系统编程、嵌入式编程等领域一直占据着统治地位,而C99标准的制订则再一次使C语言焕发出新的活力。下文介绍C程序设计领域中的几本好书,其中一些堪称经典。

1 Brian WKernighan, Dennis MRitchie,《C程序设计语言》,机械工业出版社

这是迄今为止在所有程序设计语言书籍中最广受尊敬的一部经典,是任何一名C程序员的必读之作。因为出自C语言的设计者Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan之手,它被昵称为“K&R C”。是它首先引入了“Hello World!”程序,这个程序几乎成了后来任何一本入门性程序设计语言书籍中的第一个例子。

如同C语言本身简洁紧凑而极具威力一样,这本书轻薄短小而极富张力。通过简洁的描述和典型的示例,它全面、系统、准确地讲述了C语言的各个特性以及C程序设计的基本方法,内容涵盖基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口以及标准库等内容。

简洁清晰是这本书最大的特色。这本小书可以教给你许多比它厚几倍的“大部头”的知识。我认为那些动辄洋洋洒洒拼凑出好几百页乃至上千页的技术作者应该好好向K&R学一学。对于中、高级程序员而言,如果希望迅速获得C语言的严肃知识而又不愿意多花费哪怕一丁点时间,这本书就是首选。

顺便说一句,这本书的索引制作非常出色,极具实用价值,这可能首先要归功于正文部分的简明扼要。此外,尽管它看上去很像一本教程,但其实更是一本写给专业程序员的指南。如果你不具备任何其他语言程序设计背景或基本的C语言知识,这本书也许并不适合用作你的C语言启蒙读物。

2 Perter Van Der LinDen,《C专家编程》,人民邮电出版社

C语言是严肃的程序员语言,但这并不意味着C语言书籍必须板着面孔说教。在这本被C程序员昵称为“鱼书”(封面上有一条“丑陋的”腔棘鱼)的著作中,作为SUN公司编译器和 *** 作系统核心开发组成员之一,Peter淋漓尽致地展示了其深厚的技术沉淀、丰富的项目经验、高超的写作技巧以及招牌式的幽默。在这部作品中,作者以流畅的文字、诙谐的笔法将逸闻典故、智慧和幽默自然地融入技术描述中,读来宛若一本小说,极富趣味。

本书讲述了C语言的历史、语言特性、声明、数组、指针、连接、运行时以及内存使用等知识,揭示了C语言中许多隐晦之处,尤其深入解析了声明、数组和指针、内存使用等方面的细节。要想成为一名专家级C程序员,这些内容都是必须掌握的。和其他满是抽象例子的C语言书籍不同,这本书充满了大量的来自真实世界的C程序设计实例,它们对C程序员具有很高的参照价值。另外,每一章都以极富趣味的“轻松一下”收尾,而附录A“程序员工作面试的秘密”则是任何语言的程序员在应聘工作前增强自信的好材料。

我怀疑真正的C专家可能用不着看这本书 — 从内容到组织方式到行文风格都决定了这是一本轻松愉快的“从菜鸟到高手”的进阶读本,所以,它理应拥有更广泛的读者群。初级程序员往往更需要热情的鼓励,在阅读这本书的过程中,你定会深深地被作者对编程的激情所感染。

世间并无完美。我认为这本书的缺陷在于,和大多数平庸的C语言书籍一样,它画蛇添足地加入了一章关于C++的描述。在今天看来,这个描述既不全面也有失公允。不过,鉴于作者是在1994年从一名C程序员的角度去观察C++,这一点也就不足为奇了。

3 Samuel P Harbison, Guy L Steele,《C语言参考手册(第五版)》(影印版),人民邮电出版社

在C语言参考手册类书籍里,Samuel P Harbison 和Guy L Steele合著的《C: A Reference Manual》是非常出色的一本。这本手册的第五版新增了对C99标准的介绍,以便满足新时期C语言学习的需要。全书共分为两大部分,第一部分专注于C语言特性,第二部分则全面讨论了C标准库。本书涵盖C99、C89、传统的C、所有版本的C运行库以及编写与C++兼容的C代码等一切知识。

这本手册只是中等厚度,但它比“比它更厚”的其他参考手册更清晰地描述了C语言的现在和过去的方方面面。整本手册技术细节描述精确,组织条理清楚,内容完备详尽而又简明扼要。可以这么说,它在广度、深度和精度方面都是出类拔萃的。对于中、高级C程序员而言,这本手册值得常备案头,它几乎肯定要比K&R的著作使用频率更高。

2004年2月1日补充:我手头有这本书的中文版:《C语言参考手册》(机械工业出版社出版)。它在很大程度上减轻了我的查阅负担,不过偶尔也增加了理解上的困难。

4 David Hanson,《C语言接口与实现:创建可重用软件的技术》,机械工业出版社

C语言能够历经三十多年而不衰,一个重要的原因在于它的适应能力。在这“复用”、“面向对象”、“组件”、“异常处理”等先进机制漫天飞舞的年代,C语言仍然能够凭借它小而优雅的语言特性,在相当程度上满足现代软件体系架构提出的要求。只不过,想要达到这个程度,必须要在C的应用功力上达到最高层次。在嵌入式、系统软件以及对性能要求极高的系统开发中,开发人员必须达到这样的层次,熟练掌握C语言的高级特性,才能够同时满足效率和灵活性、复用性的要求。可惜,虽然C语言技术图书汗牛充栋,但是关注这个峰顶之域的作品却是屈指可数。David Hanson的《C Interfaces and Implementations》就是个中翘楚。

David Hanson是业内大名鼎鼎的自由编译器lcc的合作者。在这个项目中,他负责提供高度可复用的基础架构。在不断的实践中,他完全使用ANSI C形成了一整套可复用组件库。这套组件库架构清晰,性能优异,而且提供了很多高级的特性,比如类Win32 SEH的异常处理机制,可移植的线程库,高性能的内存池,丰富的可复用数据结构组件。David Hanson把他在创作这些组件的过程中所积累的心得以及对其源码的精致剖析原原本本地写在了这本书里。这样的著作,当然堪称C语言领域里的铭心绝品。难怪已故著名技术作家Richard Stevens对此书赞不绝口,他说:“这本书中的技术,对于大部分C程序员来说,已经遗忘得太久了。”对于希望能在C语言应用上达到最高层次的核心程序员而言,这本书是难得的必读之作。

其他

除了以上四本书以外,我还乐意推荐Andrew Koenig的著作《C陷阱和缺陷》(人民邮电出版社)和Deitel父子合著的《C How to Program》两本书。

Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减少程序错误的建议以及前面各章问题的参考答案。尽管这个小册子成书于C89标准制定之前,然而,即使到了C99早已颁布的今天,书中提到的大多数陷阱和缺陷一如十五年前那样使我们警醒。

Deitel父子合著的《C How to Program》一直是非常好的C语言入门教程,我手头的中译本名为《C程序设计教程》(机械工业出版社出版,原书第二版)。除了对技术的正规描述(辅以许多简明扼要的例子)外,每一章后面都带有小结、术语、常见的程序设计错误、良好的程序设计习惯、性能忠告、可移植性忠告、软件工程评述、自我测验练习及答案等。整书内容清晰,组织良好,易于阅读和理解。值得一提的是,有许多入门书读完一遍即可扔掉,而这一本是个例外。

结语

以上这几本书很大程度上局限于描述C语言及标准库本身,如果希望学习更专业的、领域相关的C程序设计技术,你可以在选择阅读这几本书的基础上继续查阅专门书籍。此外,在C语言书籍领域,水平不相上下的作品有很多,这几本只是根据我自身的阅读体验而做出的推荐。

我并不是一名C程序员,我的大多数时间都花在C的后裔语言尤其是C++身上了。然而,正如你知道的那样,C++并不全是类和模板,不全是面向对象和泛型编程,在较低的层面,C++的各个实现一如既往在很大程度上兼容C。C++和C的亲密关系决定了每一本C语言经典都应该是C++程序员的读物。

这世界变化得真是太快。各色新事物层出不穷,让人眼花缭乱、目不暇接。人们也很容易被那些五光十色的花哨玩意儿所吸引,常常会忘记构筑过去、现在和未来的坚实基础。C语言就是这样的基础之一。今天,世界上有许多我们看不见的重要软件是用C语言(以及C++等)编写而成的,正是它们在默默地支撑着这个信息世界的运转。

#include <stdioh>

#include <mathh>

#include <floath>

#include <stringh>

#define N 4

int main(void) {

int i;

char str[1024];

float a[N+1][2] = {0};

float sum=0,min=FLT_MAX;

float alphaX, alphaY,dist=0;

printf("请输入4个坐标点x,y:\n");

for(i=1; i<5; i++) {

scanf("%f,%f",&a[i][0],&a[i][1]);

}

for(i=1; i<5; i++) {

alphaX = a[i][0] - a[i -1][0];

alphaY = a[i][1] - a[i -1][1];

dist=sqrt(alphaXalphaX+alphaYalphaY);

printf("%62f,%62f ====>%62f,%62f, 距离=%62f\n",a[i-1][0],a[i-1][0],a[i][0],a[i][1],dist);

if(min>dist) min = dist;

sum += dist;

}

printf("\n");

printf("最短距离=%62f\n",min);

printf("距离总和=%62f\n",sum);

getchar();

getchar();

return 0;

}

1.

最初的C语言是为描述和实现

UNIX

*** 作系统而设计的。

2.

C语言规定,标识符必须以字母或

下划线

开头。

3.

C语言的double型数据在内存中占用

8

个字节的存储单元。

4.

×C语言的变量有

2

种存储类型,其中

static

型变量不进行初始化时,初值自动为0

5.写出下列表达式的求值结果:

(1)

2+3<=2

0

(2)

5/3+2

3

(3)

!

(3>2)||8!=7

1

(4)

3+7%3

4

6.已知int=12;

执行语句a=2+4后,变量a的值为

24

7.已知int=2,b;

执行语句b=

a--;

后,变量a的值为

1

,

b的值为

2

8.若有int

a=2,b=1,c=0;

执行语句c=a++

-

b

-

-;

后,变量c的值为

1

,b的值为

0

一、

判断题(1×5分,正确的画√,错误的画×)

(×)1

C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。

(√)2

C语言允许用实型表达式向整型变量赋值。

×(×)3

C语言的全局变量只能是extern存储类型。

×(×)4

已知int

a[4],p;则语句p=&a;是正确的。

(×)5

下面的程序段构成死循环。

a=5;

while

(1)

{a--;

if

(a<0)

break

;

}

三、单项选择题:(2×10分)

1

在IBM-PC机中,unsigned

int类型表示的数据范围是(

D

)。

A)0-127

B)0-255

C)0-32767

D)0-65535

2

下列符号中,合法的C常量是(

C

)。

A)

1e82

B)

0XFFH

C)

‘\n’

D)

089

3.语句x=3;

do{printf(“%d”,x);x--}while(x=

=0);

的执行结果是(

C

)。

A)3210

B)

321

C)3

D)无任何显示

4

已知p、q

是两个同类型的指针变量,下列表达式有语法错误的是(

B

)。

(A)p!=NULL&&p=

=q

(B)

pq

(C)p++,q--

(D)p-q+1

5.若k=

-1,

表达式k=

k>=0

(k-2)

:

(

k+2)

的值为(

D

)。

(A)-3

(B)

-2

(C)1

(D)2

×6.下面关于C函数的说法中正确的是(

B

)。

A)C函数的返回值类型必须是整型、实型或指针三者之一

B)C函数的返回值必须用return语句带回主函数

C)C函数允许递归调用,也允许在函数体中定义子函数

D)任何C函数必须使用return语句带回主程序

×7.若定义typedef

struct

user

{int

num;

char

name[21];

long

code;}

UserTp,;

则表达式

sizeof(UserTp)的值为(

D

)。

A)

0

B)

21

C)

31

D)

27

×8.已知static

int

a[

]={1,2,3,4};

int

p;

若有p=a+2;

则p++的值为(

C

)。

A)1

B)2

C)3

D)4

×9.定义C函数时,若缺省函数返回值类型,则返回值类型为(

A

)。

A)int

B)char

C)void

D)char

10

×为只读 *** 作打开正文(文本)文件,正确的打开方式是(

A

)。

A)

“r+”

B)

“a”

C)

“w”

D)

“rb”

四、多项选择题(2×5分,多选或错选不得分,少选得1分)

1.以下数据类型在内存中占用4个字节的是(

BC

)。

A)

int

B)

unsigned

long

C)

float

D)

unsigned

char

×2

定义char

s[81];

后,能正确输入一个字符串到数组s的语句是(

ABC

)。

A)gets(s);

B)scanf

(”%c”,s);

C)scanf

(”%s”,&s[0]);

D)gets(&s[0]);

3

以下关于C源程序文件的说法中正确的是(

BCD

A)是一种二进制文件

B)是一种文本(ASCII码)文件

C)可以用DOS的type命令显示其内容

D)文件扩展名一般为c

×4

下面关于C语言的说法错误的是(

ACD

)。

A)

C函数必须有形式参数

B)

任何复合语句体的{

}中允许定义局部变量

C)

局部变量都存储在动态存贮区

D)

C程序的执行起点只能是main函数

5

以下程序正确计算p=n!

(n>=0)的是(

AB

)。

A)

for(p=10,k=1;k<=n;)

p=k++;

B)

p=10;k=0;while(k<n)

p=++k;

C)

p=10;k=1;do{++k;p=k;}

while(k<=n);

D)

p=10;for(k=n;k>=1;k--)

p=k--;

五、读程序与程序填空(共22分)

1.阅读以下程序,写出程序运行结果:(共3Χ4分)

×

(1)

#include

”stdioh”

void

main()

{char

a[61],s;int

n;

gets(a);

for(s=a;s;s++)

if(s>=’a’&&s<=’z’)

s-32;

puts(a);

}

若程序的输入为abcb,则输出结果为

ABCD

(2)

#include

”stdioh”

void

main()

{

int

s=0,k=0;

while(k<4)

{s+=k;k++;printf(“%d”,s);}

}

该程序的输出是

0136

(3)

#include

“stdioh”

void

main(

)

{static

int

a[5]={2,-15,1,0,-7};

int

i;

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

if(a[i]<0)

a[i]

=

-a[i];

for(i=4;i>=0;i--)

printf(“%4d”,

a[i]);

}

该程序的输出是7

0

1

15

12

(4)

×#include

“stdioh”

#define

N

5

int

swap(int

p,

int

q)

{int

t;

if(p<q)

{t=p;p=q;q=t;}

return

p<q;

}

void

f(int

a[

],int

m)

{int

p,

q;

p=a;q=a+m;

while(swap(p,q))

{p++;

q--}

}

void

main(

)

{int

m,a[N];

for(m=0;m<N;m++)

scanf(“%d”,a+m);

f(a,N-1);

for(m=0;m<N;m++)

printf(“%d”,a[m]);

}

若程序的输入为1

2

3

4

5,

则输出结果为

5

4

3

2

1

2.程序填空:(共10分)

(1)

×以下程序的功能是输入年、月、日,求该日期是这一年的第几天,填空使之完善。

#include

“stdioh”

int

IsLeap(int

y)

/

此函数的功能是判断年号y是否为闰年

/

/

已知闰年的条件是年号y能被4整除,但不能被100整除,或年号y能被400整除

/

{int

r;

if(

y%4=

=0&&y%100!=0||y%400=

=0

)

r=1;

else

r=

0

;return

r;}

int

DaysofMonth(int

y,int

m)

/

此函数的功能是求y年m月的天数

/

{

int

days;

switch(m)

{case

4,6,9,11:days=30;break;

case

2:if(IsLeap(y))

days=28;else

days=29;break;

default:days=

31

;

}

return

days

;

}

void

main

(

)

{int

k,y,m,d,days;

printf(“Input

year,month,date:”);scanf(“%d%d%d”,&y,&m,&d);

days=0;

for(k=

1

;

k<m

;k++)days+=

DaysofMonth(y,k);

days+=d;

printf(“days=%d\n”,days);}

(2)

下面程序的功能是输出100至1000以内的素数,请填空使之完善。

#include

“stdioh”

#include

mathh

void

main

(

)

{

int

m,k,j;

for(m=100;m<=1000;m++)

{k=sqrt(m);

for(j=2;

j<=k

;j++)

if(m%j

=

=

0)

break;

if(

j>k或

j>=k+1

)

printf(“%5d”,m);

}

}

六、根据题意编写程序:(3Χ6+10=28分)

1

编程序,从键盘输入a0,a1,a2,…,an计算s=ao+a1x+a2x2+…+anxn

×2.编程序,将正文(文本)文件中的小写字母变成大写并统计输出文件有多少个字符,

要求文件名由键盘输入。

×3.编程序,输入n个英文单词(n用#define定义为8),然后将这些单词按英文字典顺

序输出。

×4.编程序,从键盘输入n个学生的姓名、学号和住址,按照学号次序把它们串成一个单向链表。

1.

main(

)

{float

x,a[n+1],s=00;

int

i,n;printf(“请输入n和x的值”);scanf(“%d,%f”,n,x);printf(“请输入所有系数的值”);

for(i=0;i<=n;i++)scanf(“%f”,&a[i]);

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

s=s+a[i]pow(x,i);printf(“s=%f”,s”);}

2

#include

“stdioh”

main

(

)

{int

i;char

ch,name[80];

FILE

fp;

i=0;

printf(“please

input

the

filename:”);

scanf(“%s”,name);

if((fp=fopen(name,”r+”))==NULL)

{

printf(“cannot

open

the

file”);

exit(0);}

ch=fgetc(fp);

i++;

if((ch>=’a’)&&(ch<=’z’))

ch=ch-32;

fputc(ch,fp);

printf(“字符总数为%”,i);

fclose(fp);

}

3

#include

"stdioh"

#include

"stringh"

#define

n

8

void

main(

)

{char

p,s[n],t[21];

int

i,j;

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

{scanf("%s",t);

s[i]=(char

)malloc(strlen(t)+1);

strcpy(s[i],t);

}

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(strcmp(s[i],s[j])>0)

{p=s[i];s[i]=s[j];s[j]=p;}

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

printf("%s\n",s[i]);

}

输入

basic

good

well

c

pascal

morning

hlr

cpp

输出:

basic

c

cpp

good

hlr

morning

pascal

well

以上就是关于在一个C语言程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束。 B)全部的内容,包括:在一个C语言程序的执行是从( )。 A) 本程序的main函数开始,到main函数结束。 B)、一个C程序的执行是从什么函数开始到什么函数结束、历史上最权威最经典的关于C语言的书是哪本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10208854.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存