文档库 最新最全的文档下载
当前位置:文档库 › C语言教学与思考

C语言教学与思考

C语言教学与思考
C语言教学与思考

Value Engineering 0引言

C 语言程序设计是高校计算机及其应用专业学生的一门必修课,也是其它一些非计算机专业学生的一门重要基础课。它数据类型丰富,运算符多而灵活,表达能力强,适宜于编写各种程序。但其丰富的功能所带来的繁多的数据类型和复杂的语法结构,给初学者产生了不少困难,尤其对于那些高校非计算机专业的学生而言更是不易接受。本文指出高校C 语言教学中存在的问题以及应对措施。

1C 语言的优势

C 语言是目前广泛流行的、极有发展前途的计算机高级语言,

既适合系统程序设计,又适合应用程序设计。C 语言数据结构丰富,数据流控制灵活,应用面宽,通用性和可移植性好,目标程序效率高,既具有高级语言的优点,又具有低级语言的一些特点,能够在系统级工作,使程序员几乎能书写他所需要的任何程序,还具有扩充自身的能力;由于它允许分别编译,可使程序员方便地管理大型项目,最大限度地减少重复劳动。C 语言不仅用于系统程序开发,也用于应用程序开发。它在操作系统,软件工具、图像处理、数值分析、人工智能、数据库管理系统等许多方面都得到了广泛的应用。C 语言的特点使得其应用领域广泛,

具有极强的生命力。——————————————————————

—作者简介:曹莎莎(1981-),女,重庆人,讲师,研究方向为计算机软件与理论。C 语言教学研究与思考

Research and Thoughts on C Language Teaching

曹莎莎Cao Shasha

(四川建筑职业技术学院,德阳618000)

(Sichuan College of Architectural Technology ,Deyang 618000,China )

摘要:C 语言程序设计是高校计算机专业一门重要的基础课程,也是一门实践性很强的课程。针对该课程难教、难学的现象,作者结合高校

计算机专业的学生特点,依据近几年的教学经验,从课程设置、教学内容、教学方法等方面做了阐述,以期为C 语言教学提供借鉴和积累经验。

Abstract:C language program design is a foundation course in university computer major,also is a course with stronger practice.The author expounded some aspects,such as course offering,teaching content and teaching methods,based on own years'teaching experience and students'characteristics,aiming at the phenomenon of difficulty in C language teaching and learning,so as to provide reference and gain experience for C language teaching.

关键词:C 语言;教学方法;高级语言;程序设计Key words:C language ;teaching methods ;high-level language ;program design

中图分类号:G642

文献标识码:A

文章编号:1006-4311(2012)01-0179-02

查询均通过数据库方式完成。(图3)

5E-Net 网络系统技术分析

5.1用户能够自行掌控节目制作系统群集成度高,有固定型

号、规格的各模块产品配备多种固定的产品配置方案可供用户定制选择具备产品清晰化和产品简单化的基本特性,用户能够方便、清晰的了解网络结构,便于用户自行维护;从节目制作流程来看,系统仍然像传统的非线性编辑网络一样完全满足大多数电视台的工作流程,用户无需重新学习过程即可快速的开始工作。

5.2网络配置模块化,系统构成简单化E-Net 的核心组件用千兆以太网电缆相连接,即可构成制播一体网,内部有分别负责制作

系统和播出系统的管理、

存储和传输工作,集成度很高,制作系统中包含数据库服务器、文件存储服务器、硬盘阵列和千兆以太网交换

机,与外界(编辑站点、

网关站点、播出系统)仅有以太网接口相连接;实现与其它网络(如台内局域网)的安全连接。

5.3编辑站点独立化,应用软件层次化E-Net 独立化设计,各个软件模块之间相互独立,功能明确,只需确定某一软件模块需要在多少台工作站上安装即可;制作系统中包含两种工作站配置,即视音频工作站和普通工作站,在选配时可按实际需求定制选择编辑站点和管理站点数量;其制作系统中工作站点包含的软件模块分别为EN1编辑软件、文稿软件、审片软件、配音软件、后台生成软件和网管软件。

6结束语

本文探讨了影视节目制播E-Net 网络系统的技术设计,并对系统进行技术分析;在系统设计上,不仅注重整体设计目标和需求分析,而且对制播系统进行认真的思考和设计;不仅在系统整体工作流程上还是在节目编辑与资料存储工作流程上,都提供了详细的展示,便于系统的实施;综上所述,本文提供了一个行之有效的制播系统的技术设计与分析,具有一定的借鉴意义。

参考文献:

[1]别业鹏.荆门电视台新闻直播系统的设计与实现[J].电视技术,2008,(9).[2]杨云君.州市级电视台无带化制播网系统设计探析[J].电视技术,2008,(9).[3]刘鸿波.县级电视台实现全数字硬盘播出系统的趋势[J].中国科技博览,2009(28).

[4]李裕,

孙慧璞.自动播控软件在硬盘播出系统中应用[J].计算机光盘软件与应用,2010(8).

保存节目检索保存素材检索

保存节目选取

中心数据库中心存储器

保存节目编目保存节目迁移

保存节目刻录(记录)保存节目刻录

(记录)

保存素材选取

保存素材编目

保存素材迁移

·179·

c语言公共基础知识

二级公共基础知识总结 第一章数据结构与算法 1.1 算法算法:是指解题方案的准确而完整的描述。算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。指令系统:一个计算机系统能执行的所有指令的集合。基本运算包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制结构:顺序结构、选择结构、循环结构。算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。算法复杂度:算法时间复杂度和算法空间复杂度。算法时间复杂度是指执行算法所需要的计算工作量。算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本基本概念数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。数据结构是指相互有关联的数据元素的集合。数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。数据的存储结构有顺序、链接、索引等。线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。非空线性表的结构特征:(1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。顺序表的运算:插入、删除。 (4)1.4 栈和队列栈是限定在一端进行插入与删除的线性表,允许

C语言程序设计形考任务1答案

一、选择题(共40分,每小题2分) 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。选择一项: A. main B. MAIN C. name D. function 正确答案是:main 题目2 C语言源程序文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c 正确答案是:c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj

正确答案是:exe 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。 选择一项: A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 正确答案是:空格或回车 题目5 每个C语言程序文件的编译错误被分为()。 选择一项: A. 1类 B. 2类 C. 3类 D. 4类 正确答案是:2类 题目6 不符合C语言规定的复合语句是()。 选择一项: A. {}

C. {x=0;} D. {y=10} 正确答案是:{y=10} 题目7 C语言程序中的基本功能模块为()。 选择一项: A. 表达式 B. 标识符 C. 语句 D. 函数 正确答案是:函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。选择一项: A. 表达式 B. 语句 C. 参数表 D. 函数体 正确答案是:参数表 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。

选择一项: A. 尖括号 B. 双引号 C. 单引号 D. 花括号 正确答案是:双引号 题目10 在C语言程序中,多行注释语句使用的开始标记符为()。 选择一项: A. // B. /* C. */ D. ** 正确答案是:/* 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。 选择一项: A. char B. int C. float D. double 正确答案是:char

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

c语言基础知识及考点整理

第一周 int定义整型变量所有字母都要先定义再使用。 算法:描述完成任务的步骤序列。 算法的三个基本结构:顺序、分支、循环。 算法的表示:自然语言、程序流图、N-S图 程序流图中判定框用菱形,开始结束用圆角矩形,赋值用矩形。 main:主函数,后面一定是英文输入法下的() int:定义“整形变量” printf:输出语句 scanf:输入语句 %:占位符一个占位符就是占据一个字符的位置,格式化输出时显示为个空格. 具体用法如下: %a,%A 读入一个浮点值(仅C99有效) %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数%x,%X 读入十六进制整数 %s 读入一个字符串,遇空格、制表符或换行符结束。 %f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。 %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合

%% 读%符号(c此内容来自baidu) &:“取地址”运算符:这个运算发可以这样理解,比如说&a的含义就是a在内存中的地址。因为&运算符能够取出一个变量在内存中的地址,所以叫做取地址运算符。 输入语句scanf("%d %d",&a,&b); 输出语句printf("%d", c); 输出内容由“”引出 注意一个;就是一个语句,每句话后都要有分号,不能丢。括号是英文的, 一个程序主要由顺序分支循环3种结构构成 { }不能忘,限制变量作用范围 进入CodeBlocks之后新建一个项目,在project选项中选择控制台应用程序Console application进行编写。 输入语句scanf和输出语句printf中的“f”指的是format格式。 程序编写完成后点击Build——Build and run 或F9进行运行,并可点击View——log看到编程日志,检查错误。 分号;不能少 .如果觉得编写过程中字符显示太小可以按住ctrl并将鼠标滚轮向下滚来放大~ 第二周 计算一元二次方程的根的题目中,遵守四则运算法则,求根公式.../2a中的2a要用()括起来 华氏温标(Fahrenheit temperature scale)符号℉,1724年,德国人华伦海特制定了华氏温标,他把一定浓度的盐水凝固时的温度定为0℉,把纯水凝固时的温度定为32 ℉,把标准大气压下水沸腾的温度定为212℉,中间分为180等份,每一等份代表1度,这就是华氏温标,用符号F表示,这就是华氏温度 摄氏温度(℃)和华氏温度(℉)之间的换算关系为: 华氏度(℉)=32+摄氏度(℃)×,摄氏度(℃)=(华氏度(℉)-32)÷。

C语言程序设计形考任务3

一、选择题(共30分,每小题2分) 题目1 在下面的函数声明语句中,存在着语法错误的是()。 选择一项: a. AA(int a, int b) b. AA(int, int) c. AA(int a; int b) d. AA(int a, int) 正确答案是:AA(int a; int b) 题目2 在下面的保留字中,不能作为函数的返回值类型的是()。 选择一项: a. void b. int c. enum d. long 正确答案是:enum 题目3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。 选择一项: a. 1 b. 2

c. 4 d. 8 正确答案是:4 题目4 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。 选择一项: a. a[i] b. *a++ c. *a d. *(a+1) 正确答案是:*a++ 题目5 用calloc函数创建具有10个整型元素的一维数组的正确语句是()。选择一项: a. int *p=calloc(10,2); b. int *p=calloc(10); c. int *p=calloc(10,4); d. int *p=malloc(10) 正确答案是:int *p=calloc(10,4); 题目6 假定变量m定义为“int m=7;”,则下面正确的语句为()。 选择一项: a. int p=&m;

b. int *p=&m; c. int &p=*m; d. int *p=m; 正确答案是:int *p=&m; 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为()。 选择一项: a. double p=&k; b. int *p=&k; c. double &p=*k; d. char *p="Thank you!"; 正确答案是:char *p="Thank you!"; 题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。 选择一项: a. x=pa[3]; b. x=*(a+3); c. x=a[3]; d. x=*pa+3; 正确答案是:x=*pa+3; 题目9 假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。

C语言期末考试模拟试题及答案

重点看后面的起泡法排序和找最大最小值。那些问结果的奇怪的代码,随意。 C语言期末考试试题 2008年04月12日星期六00:22 一选择题(24分,每小题2分) 1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。 A存放读入数据项的存储区 B存放读入数据的地址或指向此地址的指针 C一个指向所读文件的文件指针 D一个整形变量,代表要读入的数据项总数 )。 2.以下程序的输出结果为( main() { int i=010,j=10; printf("%d,%d\n",i++,j--); } A11,9 B9,10 C8,10 D9,9 3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2; A125,6,31,1 B125,6,1,20 C125,6.666666,31,20 D125.534,6.666666,2,20 )。 4.设i和k都是int类型,则for循环语句( for(i=0,k=-1;k=1;i++,k++) printf("****\n"); A循环结束的条件不合法 B循环体一次也不执行

C循环体只执行一次 D是无限循环 5.以下程序的输出结果为(main() { char c; int i; )。 }for(i=65;i<68;i++) { c=i+32; switch(c) { case'a': case'b': case'c':printf("%c,",c);break; default:printf("end"); } } A a,b,c,end B a,a,a,end C a,a,a, D a,b,c, 6.函数调用语句:fseek(fp,-10L,2);的含义是()。 A将文件位置指针从文件末尾处向文件头的方向移动10个字节B将文件位置指针从当前位置向文件头的方向移动10个字节C将文件位置指针从当前位置向文件末尾方向移动10个字节D将文件位置指针移到距离文件头10个字节处 7.以下程序的输出结果为( main() { int i=0,j=0; while(s1[i]!='\0') i++; while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]=0; )。

C语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

C语言基础知识整理

C 语言基础知识 1. 每个C 程序有且只有一个主函数main() ,且程序必须从main() 函数开始执行,并在main() 函数中结束。 2. 在C语言中,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。 3. 用单引号括起来的一个字符常量只能存放一个字符;C 语言中没有字符串变量,只能用字符数组来存储字符串。 4. 外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。 5. 在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。 6. 用sizeof(int) 计算int 类型数据的字节数。 7. C语言运行时,首先系统检查语法的正误,再运行程序的语法;C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。 8. 预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空 间。 9. feo f函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。 10. 当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。 11. 在赋值表达式中,赋值运算符"=”右侧不能为表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。 12. 静态局部变量,只有当程序结束后,其值才释放。 13. 当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。 14. 算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同;算法 正确的程序最终一定会结束。15. 在 C 语言中,预处理命令行都以“#”开头;当需要时才用 #include; 预处理的作用就是实现宏定义和条件编译。16. 当数组元素的下标超出了定义 的下标范围时,系统不给出“下标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。 17. 共用体变量不能作为函数的参数,也不能使函数带回共用体变量。 18. 指向函数的指针变量的定义形式为:数据类型(* 指针变量)();,因此其为指向函数的 指针变量。 19. 用C 语言编写的代码程序是源程序,只有通过编译、连接才能进行。 20. 在说明为static 时,其生存期得到延长,而其作用域并没有改变,在定义后系统会自动帮它赋值为0,static 为关键字不能被用作它用。 21. 频繁地使用空语句会降低程序的可读性和运算速度。22. 运算符%两边都应是整数,赋值语 句左边应该是变量,而非表达式,强制转换语句强制类型应加括号。 23. 在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。 24. 函数fread (&larray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的数据 存储到数组larray中。25.整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达 到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。 26. 使用putchar、getchat、puts、gets、printf、seanf函数时,必须在程序的开头岀现包含头文件 #inelude "stdio.h ”的命令行,而使用字符串处理函数时,必须在程序的开头岀现包含头文件 #include”string.h ”命令行,而使用数学函数时,必须在程序的开头岀现包含头文件#include”math.h” 的命令行。 27. 一个斜杠与小于等于127 任意数字按一个字符计算,一个斜杠与任意一个字符按一个字符计 28. 一个C 程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C 语言程序可以实现

2019年12月计算机二级C语言考试模拟题及答案

2019年12月计算机二级C语言考试模拟题及答案 A.用户自己定义的函数只能调用库函数 B.实用的C语言源程序总是由一个或多个函数组成 C.不同函数的形式参数不能使用相同名称的标识符 D.在C语言的函数内部,能够定义局部嵌套函数 参考答案:B 参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不准确的,也能够调用自定义函数;C选项中,对于不同函数的形式参数能够使用相同名称的标识符;D选项中,关于函数的定义不能够嵌套,但函数的调用能够嵌套。所以B选项准确。 2[单选题]以下关于C语言数据类型使用的叙述中错误的是( )。 A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 B.若要保存带有多位小数的数据,可使用双精度类型 C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型表示的自然数是准确无误差的 参考答案:C 参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,能够用单精度类型也能够用双精度类型。处理包含不同类型的相关数据能够定义为结构体类型。整数类型能够无误差的表示自然数。 3[单选题]下面选项中关于编译预处理的叙述准确的是A.预处理命令行必须使用分号结尾 B.凡是以#号开头的行,都被称为编译预处理命令行 C.预处理命令行不能出现在程序的最后一行

D.预处理命令行的作用域是到最近的函数结束处 参考答案:B 参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行能够出现在程序的最后一行,预处理命令行作用域是整个文件。 4[单选题]设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。 A.71 B.70 C.69 D.不可能有这样的二叉树 参考答案:D 参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,因为结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。 5[单选题]以下选项中,能用作用户标识符的是( )。 A.-0- B.8-;8 C.void D.unsigned 参考答案:A 参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。 6[单选题]以下叙述准确的是( )。A.表达式sizeof(FILE*)==sizeof(int*)的值为真 B.文件指针的值是一个整数,它的值一定小于文件字节数 C.文件指针的值是所指文件的当前读取位置 D.使用fscanf函数能够向任意类型的文件中写入任意数量的字符

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

c语言程序设计形考任务二标准答案

c语言程序设计形考任务二答案

————————————————————————————————作者:————————————————————————————————日期:

一、选择题(共20分,每小题2分) 当处理特定问题时的循环次数已知时,通常采用的语句是()。 a. for b. while c. do-while d. switch 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。 a. for b. if c. do d. while 题目3 for语句能够被改写成的语句是()。 a. 复合 b. if c. switch

d. while 题目4 下面循环语句执行结束后输出的i值为()。 for(int i=0; in/2) {cout<

int i=0; do i++; while(i*i<10); a. 4 b. 3 c. 5 d. 2 题目7 在下面的一维数组定义中,有语法错误的选项是()。 a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d. int a[5]; 题目8 在下面的二维数组定义中,语法正确的选项是()。 a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10);

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

C语言基础知识归纳

C语言基础知识 1.每个C程序有且只有一个主函数main(),且程序必须从main() 函数开始执行,并在main()函数中结束。 2.在C语言中,用e来表示科学计数法时,规定在e的前面必 须有数字,后面必须为整数。 3.用单引号括起来的一个字符常量只能存放一个字符;C语言中 没有字符串变量,只能用字符数组来存储字符串。 4.外部变量在编译时由系统分配永久的内存空间,所以外部变 量的类型不是自动存储类别。 5.在一个函数内的复合语句中定义的变量,只能在这个复合语 句范围内有效。 6.用sizeof(int)计算int类型数据的字节数。 7.C语言运行时,首先系统检查语法的正误,再运行程序的语法; C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。 8.预处理命令行的位置没有规定,只是习惯放在前面;在源文 件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。 9.feof函数的作用是检查文件是否结束,当结束时返回的 值为非零,否则为零。

10.当定义了数组后,在给其赋值时,不能直接把字符串赋给数 组名。 11.在赋值表达式中,赋值运算符“=”右侧不能为表达式;在 求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。 12.静态局部变量,只有当程序结束后,其值才释放。 13.当调用函数时,实参是一个数组名,则向函数传送的是数组 每一个元素的地址。 14.算法的特点为有零个或多个输入,有一个或多个输出,当相 同的输入时,其结果相同;算法正确的程序最终一定会结束。 15.在C语言中,预处理命令行都以“#”开头;当需要时才用 #include;预处理的作用就是实现宏定义和条件编译。 16.当数组元素的下标超出了定义的下标范围时,系统不给出“下 标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。 17.共用体变量不能作为函数的参数,也不能使函数带回共用体 变量。 18.指向函数的指针变量的定义形式为:数据类型(*指针变量) ();,因此其为指向函数的指针变量。 19.用C语言编写的代码程序是源程序,只有通过编译、连接才 能进行。 20.在说明为static时,其生存期得到延长,而其作用域并没有改

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案 形考任务3 一、选择题(共30分,每小题2分) 题目1 在下面的函数声明语句中,存在着语法错误的是()。 选择一项: a. AA(int a, int b) b. AA(int, int) c. AA(int a; int b) d. AA(int a, int) 题目2 在下面的保留字中,不能作为函数的返回值类型的是()。 选择一项: a. void b. int c. enum d. long 题目3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。选择一项: a. 1 b. 2 c. 4 d. 8 题目4 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。 选择一项: a. a[i] b. *a++ c. *a d. *(a+1)

选择一项: a. int *p=calloc(10,2); b. int *p=calloc(10); c. int *p=calloc(10,4); d. int *p=malloc(10) 题目6 假定变量m定义为“int m=7;”,则下面正确的语句为()。 选择一项: a. int p=&m; b. int *p=&m; c. int &p=*m; d. int *p=m; 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为()。 选择一项: a. double p=&k; b. int *p=&k; c. double &p=*k; d. char *p="Thank you!"; 题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。选择一项: a. x=pa[3]; b. x=*(a+3); c. x=a[3]; d. x=*pa+3; 题目9 假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。 选择一项: a. pb=b; b. pb=&b[0];

c语言模拟考试题

1. 一个C程序的组成部分可以是()。 A)一个主函数和一至若干个其他函数B)一至若干个主函数 C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序 2. 一个C程序的执行是从()。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。 A)必须为字母B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是()。 A)–1 B)0 C) 1 D) 2 5. 表达式11&10的结果用二进制表示为()。 A)11B)3C)1D)10 6. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是()。 (A)3(B)0(C)9(D)-12 7. 在下列选项中,不的赋值语句是()。 A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 8. 下列( )表达式不满足:当x的值为偶数时值为"真",为奇数时值"假"。 A)X%2==0B)!x%2!=0 C)(x/2*2-x)==0D)!(x%2) 9. 若有定义:int a=8,b= 5,c;执行语句c=a/b+0.4 后c的值为() A)1.4 B)1 C)2.0 D)2 10. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是()。 A)true B)false C)0D) 1 11. 若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。 A)3B)0C)4D)2 12. 以下哪个表达式的值为4() A)11/3B)11.0/3C)(flaot)11/3D)(int)(11.0/3+0.5) 13. 若变量a,i已经正确定义,且i已经正确赋值,合法的语句是() A) a==1 B) ++i C) a=a++=5 D)a=int(i) 14. 以下程序的输出结果是() int a=1234; printf("%2d",a); A) 12 B) 34 C)1234 D) 提示错误,无结果 15. 设x,y分别为单精度和双精度类型变量,则下列选项()可将表达式x+y的运算结果强制转换为整型数据。 A)(int)x+y B)int(x)+y C)int(x+y)D)(int)(x+y) 16. 当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是() A)1B)0C)3D)2 17. 若x=2,y=1,则表达式x>y?1:1.5的值为() A)1B)1.5C)1.0D)2 18. 在位运算中,操作数每左移一位,其结果相当于() A)操作数乘以2B)操作数除以2C)操作数乘以4D)操作数除以4 19. 在位运算中,某操作数右移3位,其结果相当于() A)操作数乘以6B)操作数除以6C)操作数乘以8D)操作数除以8 20. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是()。 s=6,u=6;u=s++;u++; printf("%d",u); A)7B)6C)5D)4 21. 若有定义:int x,y;char a,b,c;并有以下输入数据:x=12A B C, 则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的程序段是() A)scanf("x%d y=%d",&x,&y); a=getch();b=getch();c=getch(); B)scanf("x=%d%d",&x,&y); a=getch();b=getch();c=getch(); C)scanf("x=%d%d%c%c%c",7x,&y,&a,&b,&c); D)scanf("x=%d%d%c%c%c%c%c",&x,&y,&a,&b,&b,&c,&c); 22. 如下程序:#include void main() {int m,n,k; m=(n=4)+(k=10-7); printf(“m=%d\n”,m); } 运行后m的值为()。 (A)4(B)3(C)7(D)14

相关文档
相关文档 最新文档