2015年安徽省C++语言版基础
C语言基础题及答案
C语言基础题及答案1、一个C语言的源程序中[正确答案:A]。
A)必须有一个主函数B)可以有多个主函数C)必须有主函数和其他函数D)可以没有主函数2、关于C程序的主函数,以下描述中正确的是[正确答案:B]。
A)C程序的第一个函数称为主函数,程序从该函数开始运行。
B)C程序的主函数即是main函数,程序从该函数开始运行。
C)C程序可以有多个主函数,程序从第一个主函数开始运行。
D)C程序可以没有主函数,程序从第一个函数开始运行。
3、C程序中,return语句的作用是[正确答案:D]。
A)终止程序运行B)返回到上层循环C)返回到外层结构D)返回到上层函数4、C语言程序的3种基本结构是[正确答案:A]。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构5、以下对C程序的描述中正确的是[正确答案:A]。
A)C程序总是从main()函数开始执行。
B)C程序可以从程序中的任何函数开始执行。
C)C程序总是从第一个定义的函数开始执行。
D)C程序中的main()函数必须放在程序的开始部分。
6、关于C程序第1行的包含语句,以下写法中正确的是[正确答案:D]。
A)#include stdio.h B)#include'stdio.h'C)#include(stdio.h)D)#include<stdio.h>7、关于C语言程序,正确的编程流程应该是[正确答案:A]。
A)编辑→保存→编译→运行B)编译→编辑→运行→保存C)保存→运行→编辑→编译D)运行→编译→保存→编辑8、下列的哪个不是C语言的关键字[正确答案:D]。
A)while B)auto C)break D)printf9、下列的哪个不是C语言的算术运算符[正确答案:C]。
A)+B)%C)=D)-10、下列的哪个不是C语言的关系运算符[正确答案:C]。
A)>=B)<=C)=D)!=11、下列的哪个是错误的描述[正确答案:D]。
安徽省计算机二级c语言笔试试题及答案
安徽省计算机二级c语言笔试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言可以用于系统软件和应用软件的开发答案:B2. 在C语言中,以下哪个选项是合法的变量名?()A. 2variableB. intC. _variableD. variable-name答案:C3. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ::D. <答案:C4. 在C语言中,以下哪个关键字用于定义一个函数?()A. intB. voidC. structD. char答案:B5. 下列关于C语言数组的描述中,正确的是()。
A. 数组的大小在编译时确定B. 数组的大小在运行时确定C. 数组可以存储不同类型的数据D. 数组的索引从1开始答案:A6. 在C语言中,以下哪个选项是正确的字符串字面量?()A. "Hello"B. 'Hello'C. "HelloD. 'Hello'答案:A7. 下列关于C语言指针的叙述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以被赋值为NULL答案:B8. 在C语言中,以下哪个选项是正确的文件操作函数?()A. printfB. scanfC. fopenD. fclose答案:C9. 下列关于C语言函数的描述中,错误的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以有参数答案:C10. 在C语言中,以下哪个选项是正确的逻辑运算符?()A. &&B. ||C. ==D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是______。
合肥学院2015年“专升本”高等数学 c语言大纲
合肥学院2015年“专升本”计算机科学与技术专业《C语言程序设计》考试大纲(一)适用专业:计算机科学与技术(二)考试基本要求:要求考生系统了解面向过程程序设计语言基本结构,了解程序代码规范化基本要求,掌握C语言基本语法,掌握自顶向下程序设计方法,掌握程序设计简单算法。
要求考生具有计算机简单操作能力,抽象思维能力,逻辑推理能力和运用所学知识分析和解决问题的综合能力。
(三)教材及主要参考书1、教材苏小红. C语言程序设计(ISBN:978-7-04-037704-0). 高等教育出版社,2013.82、主要参考书[1]苏小红.C语言程序设计学习指导(ISBN:978-7-04-038325-6)高等教育出版社,2013.9[2]颜晖.C语言程序设计(ISBN: 9787040226058).高等教育出版社,2008.1[3]谭浩强. C程序设计(ISBN:9 787302224464).清华大学出版社,2006.3(四)考试内容及要求第一部分 C语言基础知识考试内容C语言基本结构、常量与变量、基本数据类型、运算符及其表达式、C语句、标准格式化输入输出函数、宏定义考试要求1、了解C语言发展史及其在计算机科学与技术专业学习中地位。
2、理解程序代码执行过程及编写格式规范化要求。
3、掌握符号常量的定义与应用。
4、掌握不同数据类型常量取值范围、变量定义与应用。
5、掌握运算符优先级和结合方向及其对应表达式的应用。
6、掌握格式化输入输出函数的应用。
第二部分程序设计三大结构考试内容顺序结构、选择结构(if\switch语句)、循环结构(for\while\do-while语句)、break 语句、continue语句、复合语句。
考试要求1、了解三大程序设计结构特点和应用。
2、掌握常用算术库函数的应用。
3、掌握if语句中单分支和双分支及复合语句的应用。
4、掌握switch语句语法及多分支结构的编程方法。
5、掌握三种循环语句语法及嵌套循环结构的应用。
2015年计算机二级C语言选择题题库
计算机公共基础选择题部分1、一个教师讲授多门课程,一门课程由多个教师讲授。
则实体教师与课程关系BA)1:m联系B)m:n联系C)m:1联系D)1:1联系2、结构化程序所要求的基本结构不包括BA)重复(循环)结构B)GOTO跳转C)选择(分支)结构D)顺序结构3、下列叙述中正确的是CA)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中的元素随栈顶指针的变化而动态变化4、定义无符号整数类为Uint,下面可以作为unit实例化的值是CA)0.369B)整数集合{1,2,3,4,5}C)369D)-3695、下面描述中错误的是(D)A)软件设计是将软件需求转换为软件表示的过程B)PAD图是软件详细设计的表示工具C)数据结构与数据库设计是软件设计的任务之一D)系统总体结构图支持软件系统的详细设计6、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树中度为1的结构个数为:(根结点在第1层)BA)3B)6C)4D)77、软件按功能可以分为应用软件、系统软件和支撑软件,下面的软件中是应用软件的是CA)数据库管理系统B)UNIX操作系统C)学生成绩管理系统D)C语言编译程序8、下列关于栈叙述正确的是CA)栈顶元素最后才能被删除B)栈底元素永远不能被删除C)栈顶元素最先能被删除9、软件生命周期中的活动不包括AA)市场调研B)软件测试C)软件维护D)需求分析10、下列叙述中正确的是DA)有一个以上根结点的数据结构不一定是非线性结构B)双向链表是非线性结构C)循环链表是非线性结构D)只有一个根结点的数据结构不一定是线性结构11、下列关于数据库设计中的叙述中,正确的是AA)在需求分析阶段建立数据字典B)在物理设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在概念设计阶段建立数据字典12、下列叙述中正确的是DA)设计算法时只需要考虑结果的可靠性B)算法就是程序C)设计算法时只需要考虑数据结构的设计D)以上三种说法都不对13、以下是某系统总体结构图如下图所示:B该系统总体结构图的深度是A)2B)3C)714、有三个关系R、S和T如下:则由关系R和S得到的关系T的操作是DA)交B)投影C)并D)自然连接15、程序调试的任务是AA)诊断和改正程序中的错误B)设计测试用例C)验证程序的正确性D)发现程序中的错误16、下列关于二叉树的叙述中,正确是CA)叶子结点是度为2的结点数的两倍B)度为2的结点数是度为1的结点数的两倍C)叶子结点总是比度为2的结点多一个D)叶子结点总是比度为2的结点少一个20、数据库系统的三级模式不包括BA)概念模式B)数据模式C)内模式D)外模式21、下列选项中属于面向对象设计方法主要特征的是DA)逐步求精B)模块化C)自顶向下D)继承22、以下选项中叙述正确的是DA)简单算法的操作步骤不能超过20步B)有些算法不能用三种基本结构来表达C)算法需要包含所有三种基本结构D)C程序中的语句要经过编译才能转换成二进制机器代码23、下列叙述中正确的是CA)没有根结点的非空数据结构一定是线性结构B)存储空间连续的数据结构一定是线性结构C)具有两个根结点的数据结构一定是非线性结构D)存储空间不连续的数据结构一定是非线性结构24、以下关于关系数据模型描述错误的是AA)只能表示实体间1:m联系B)可以表示实体间m:n联系C)可能表示实体间1:1联系25、下面不能作为软件需求分析工具的是DA)数据字典(DD)B)判定树C)数据流程图(DFD图)D)PAD图26、在数据库设计中,描述数据间内的语义联系得到E-R图的是DA)需求分析阶段B)逻辑设计阶段C)物理设计阶段D)概念设计阶段27、下面不属于对象基本特点的是AA)可复用性B)封装性C)多态性D)标识唯一性28、设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。
2015年全国计算机等级考试二级C语言考试大纲及重点详解
2015年全国计算机等级考试二级C语言考试大纲及重点详解2014年全国计算机等级考试二级C语言考试大纲◆基本要求1.熟悉Visual C++ 6.0 集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力◆考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型及其运算1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句1.表达式语句,空语句,复合语句。
2.输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。
五、循环结构程序设计1.for循环结构。
2.while和do-while循环结构。
3.continue语句和break语句。
4.循环的嵌套。
六、数组的定义和引用1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
七、函数1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理1.宏定义和调用(不带参数的宏,带参数的宏)。
2.“文件包含”处理。
九、指针1.地址与指针变量的概念,地址运算符与间址运算符。
2015安徽省C语言版入门
1、二叉树的层次遍历序列的第一个结点是二叉树的根。
实际上,层次遍历序列中的每个结点都是“局部根”。
确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。
若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。
这样,定义一个全局变量指针R,指向层次序列待处理元素。
算法中先处理根结点,将根结点和左右子女的信息入队列。
然后,在队列不空的条件下,循环处理二叉树的结点。
队列中元素的数据结构定义如下:typedef struct{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置int l,h; //中序序列的下上界int f; //层次序列中当前“根结点”的双亲结点的指针int lr; // 1—双亲的左子树 2—双亲的右子树}qnode;BiTree Creat(datatype in[],level[],int n)//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。
n是二叉树的结点数{if (n<1) {printf(“参数错误\n”); exit(0);}qnode s,Q[]; //Q是元素为qnode类型的队列,容量足够大init(Q); int R=0; //R是层次序列指针,指向当前待处理的结点BiTree p=(BiTree)malloc(sizeof(BiNode)); //生成根结点p->data=level[0]; p->lchild=null; p->rchild=null; //填写该结点数据for (i=0; i<n; i++) //在中序序列中查找根结点,然后,左右子女信息入队列if (in[i]==level[0]) break;if (i==0) //根结点无左子树,遍历序列的1—n-1是右子树{p->lchild=null;s.lvl=++R; s.l=i+1; s.h=n-1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==n-1) //根结点无右子树,遍历序列的1—n-1是左子树{p->rchild=null;s.lvl=++R; s.l=1; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else //根结点有左子树和右子树{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列}while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树{ s=delqueue(Q); father=s.f;for (i=s.l; i<=s.h; i++)if (in[i]==level[s.lvl]) break;p=(bitreptr)malloc(sizeof(binode)); //申请结点空间p->data=level[s.lvl]; p->lchild=null; p->rchild=null; //填写该结点数据if (s.lr==1) father->lchild=p;else father->rchild=p; //让双亲的子女指针指向该结点if (i==s.l){p->lchild=null; //处理无左子女s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==s.h){p->rchild=null; //处理无右子女s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else{s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s); //右子树有关信息入队列}}//结束while (!empty(Q))return(p);}//算法结束2、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。
全国计算机等级考试二级教程C语言程序设计2015年版第一章
3
❖ 了解程序 设计 的基本含义 ❖ 了解“算法”的基本特点,学习“算法”的重要 性 ❖ 结构化程序设计
1.了解结构化程序的3种基本结构。 2.掌握如何用一般流程图和N-S流程图表示三种基本结构。
1.1 程序和程序设计
4
知识扩展:C语言概述
❖ C语言出现的历史背景
C语言是国际上广流行的计算机高级语言,又有低级 语言的一些功能。因此既可用它来编写系统软件,也可 以用来编写应用软件。(教材P9-9)
真题举例:
(13)以下叙述中错误的是( B ) (2010.9) A)C程序在运行过程中所有计算都以二进制方式进行 B)C程序在运行过程中所有计算都以十进制方式进行 C)所有C程序都需要编译链接无误后才能运行 D)C程序中整型变量只能存放整数,实型变量只能存放浮点数
1.1 程序和程序设计
1.1.3 C语言运行过程-编译连接过程
MS Office 高级应用
Thank You !
汇报结束
谢谢大家! 请各位批评指正
1.1 程序和程序设计
6
知识扩展:C语言概述
❖ C语言特点
(5)C语言允许直接访问物理地址,能进行位(bit) 操作,能实现汇编语言的大部分功能,可以直接对硬 件进行操作。
(6)C语言生成目标代码质量高,程序执行效率高。
(7)用C语言编写的程序可移植性好(及汇编语言 比)。基本上不做修改就能用于各种型号的计算机和 各种操作系统。
1.1 程序和程序设计
10
1.1.2 程序设计
考点
❖ 简单的程序设计一般包含以下几个部分:(P2)
(1)确定数据结构
(2)确定算法
(3)编码(编写程序 )
(4)在计算机上调试程序
2015下安徽省计算机等考二级C语言笔试试卷do
}
}
3.以下程序利用指针输出一个字符串中所有的数字字符,请填空。
#include<stdio.h>
void main()
{
char s[]=”A1B2C3D4E5F6G7H8I9”;
char *p;
for(p=s;_________!=‟\0‟;p++)
if(________)/*判断是否是数字字符*/
1.greenred
2.30
3.aAbBcCdDeEfFgGhH
4.
1
1
15
三、程序设计题
1.#include<stdio.h>
void main()
{ int x;
scanf("%d",&x);
if(x%2==1)
printf("1");
else
printf("0");
}
2. int i,j=0;
s=s+i;
printf(“s=%d\n”,__________);
}
2.以下程序输出图形:
12345
2345
345
45
5
请填空:
#include<stdio.h>
void main()
{
int i,j;
for(i=1;________;i++)
{
for(j=i;j<=5;j++)
printf(“%d”,______);
2015年下半年安徽省计算机水平考试(二级C语言)
一.程序填空题
(完整版)C语言基础教程
C语言基础教程(一)网上收集整理Turbo C语言概述1.1 C 语言的产生与发展C 语言是1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统的DEC PDP-11 计算机上使用。
它由早期的编程语言BCPL( Basic Combind Programming Language) 发展演变而来。
在1970年, A T&T 贝尔实验室的Ken Thompson根据BCPL语言设计出较先进的并取名为B的语言, 最后导了C语言的问世。
随着微型计算机的日益普及, 出现了许多C 语言版本。
由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。
为了改变这种情况, 美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准C 语言的特点C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。
许多著名的系统软件, 如DBASE ⅢPLUS、DBASE Ⅳ都是由C 语言编写的。
用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象PC- DOS 、WORDSTAR等就是用这种方法编写的。
归纳起来C 语言具有下列特点:1. C是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. C是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。
C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。
3. C语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。
另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。
2015C语言程序设计省考试题及其参考答案
A)0.4 B)1 C)2.0 D)0
14.若有代数式 ,则不正确的C语言表达式是____________。
A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3
A)4 B)8 C)16 D)32
40.已知:FILE *fP;,则以下选项中以只读方式打开一个已经存在的文件”result.txt”的语句是_____________。
A)fp=fopen(“result.txt”,”a”); B)fp=fopen(“result.txt”,”w”);
C)fp=fopen(“result.txt”,”r”); D)fp=fopen(“result.txt”,”r+”);
A)student.age B)(*p).age C)p->age D)p.age
38.已知:
union
{
char c[2];
float f;
}a;则sizeof(a)的值是______________。
A)2 B)4 C)5 D)6
39.表达式”64>>2”的值”等于_______________。
#include<stdio.h>
main()
{
char c;
29.以下正确的说法是______________。
A)实参与其对应的形参各占用独立的存储单元
B)实参与其对应的形参共占用一个存储单元
C)只有当实参和其对应的形参同名时才共占用存储单元
D)形参是虚拟的,不占用存储单元
30.C语言中函数返回值的类型是由____________决定。
C语言基础知识习题答案——第一章
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float 型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B 中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D 中,%(求余运算符)运算对象只能是整形数。
C语言编程——零基础初学者指南(第3版)
9.4 多重赋值
本章小结
10 复合运算符和强制类型转换
10.1 复合赋值
10.2 复合运算符的 优先级
10.3 强制类型转换
本章小结
11 测试数据做选择
2014 2015 2016
11.1 测试数据
11.2 使用if
11.3 否则…:使用else
本章小结
12 逻辑运算符
本章小结
4 在屏幕上显示结果
01 4.1 如何使 用printf() 4.1.1 printf()的格式
02 4.2 打印字 符串
03 4.3 转义序 列
04 4.4 转换字 符
05 4.5 代码示 例 本章小结
5 在程序中添加变量
2014 2015 2016 2017
5.1 变量的类型
5.2 命名变量
15 以其他方式创 建循环
15.1 for——为了重复 15.2 使用for
本章小结
16 跳出循环
16.1 break 16.2 continue
本章小结
17 switch语句
2014 2015 2016
17.1 用switch测试多个case
17.2 break和switch
17.3 考虑效率
A
社区里都有什 么?
B
灵活优惠的购 书
C
社区里还可以 做什么?
D
加入异步
E
欢迎来到异步社区!
01
购买 图书
02
下载 资源
03
与作译 者互动
社区里都有什么?
欢迎来到异步社区!
01
特别优 惠
02
纸电图 书组合
安徽大学2015_C语言试卷
#include <conio.h> #include <stdio.h> void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9},i;
{ int n;
/***********begin***********/
/************end************/ }
3. 要求程序的功能是:按下面的公式求 sum 的值。 sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 - 100 #include "stdio.h" void main() { int sum; /***********begin***********/
printf("%d %d\n",x--,--y); }
A.10 10
B. 9 9
C. 9 10
D. 10 9
10. 假定等级和分数有以下对应关系:
等级:A 分数:85~100 等级:B 分数:60~84 等级:C 分数:60 以下 对 于 等 级 grade 输 出 相 应 的 分 数 区 间 , 能 够 完 成 该 功 能 的 程 序 段 是
二、填空题(每题 2 分,共 10 分) 请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。
1. 表达式“(a>b)?a:b”的作用是获得 a、b 中的
。
2. 表达式“a+=b,b=a-b,a-=b;”的作用是
。
3. continue 语句在循环体中执行时提前_______ 循环;
c语言计算机二级基础知识
c语言计算机二级基础知识C programming language is an essential foundation for computer science students. It provides a solid understanding of basic programming concepts and logic. C语言是计算机科学学生的基础知识之一。
它为学生提供了扎实的编程基础和逻辑思维能力。
Understanding C language is crucial for anyone who wants to pursue a career in programming or software development. It is widely used in operating systems, embedded systems, and software applications. 了解C语言对于想要从事编程或软件开发职业的人来说至关重要。
它被广泛应用于操作系统、嵌入式系统和软件应用程序中。
One of the key advantages of learning C language is its efficiency and speed. C语言学习的一个关键优势是其高效性和速度。
By mastering C language, students can improve their problem-solving skills and enhance their ability to write efficient and reliable code. 通过掌握C语言,学生可以提高他们的问题解决能力,并增强他们编写高效、可靠代码的能力。
Moreover, learning C language can open up opportunities for students to work on a variety of projects, ranging from system programming to game development. 此外,学习C语言可以为学生提供参与各种项目的机会,涉及范围从系统编程到游戏开发。
安徽省c语言题库及详解答案
安徽省c语言题库及详解答案安徽省C语言题库及详解答案安徽省作为教育大省,在计算机编程语言的教学上也具有较高的水平。
C语言作为计算机编程的基础语言之一,其题库及答案详解对于学生来说具有很高的参考价值。
以下是安徽省C语言题库中的几道典型题目及其详解答案。
1. 题目一:编写一个程序,计算并输出1到100的累加和。
```c#include <stdio.h>int main() {int sum = 0, i;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的累加和为:%d\n", sum);return 0;}```2. 题目二:编写一个程序,实现输入两个整数,输出它们的平均值。
```c#include <stdio.h>int main() {int num1, num2;float average;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);average = (num1 + num2) / 2.0;printf("两个整数的平均值为:%f\n", average); return 0;}```3. 题目三:编写一个程序,判断一个整数是否为素数。
```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
2015安徽省C#入门
1、假设以I和O分别表示入栈和出栈操作。
栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。
(15分)(1)下面所示的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。
若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中)。
2、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。
(注:双向起泡排序即相邻两趟排序向相反方向起泡)3、将顶点放在两个集合V1和V2。
对每个顶点,检查其和邻接点是否在同一个集合中,如是,则为非二部图。
为此,用整数1和2表示两个集合。
再用一队列结构存放图中访问的顶点。
int BPGraph (AdjMatrix g)//判断以邻接矩阵表示的图g是否是二部图。
{int s[]; //顶点向量,元素值表示其属于那个集合(值1和2表示两个集合)int Q[];//Q为队列,元素为图的顶点,这里设顶点信息就是顶点编号。
int f=0,r,visited[]; //f和r分别是队列的头尾指针,visited[]是访问数组for (i=1;i<=n;i++) {visited[i]=0;s[i]=0;} //初始化,各顶点未确定属于那个集合Q[1]=1; r=1; s[1]=1;//顶点1放入集合S1while(f<r){v=Q[++f]; if (s[v]==1) jh=2; else jh=1;//准备v的邻接点的集合号if (!visited[v]){visited[v]=1; //确保对每一个顶点,都要检查与其邻接点不应在一个集合中for (j=1,j<=n;j++)if (g[v][j]==1){if (!s[j]) {s[j]=jh; Q[++r]=j;} //邻接点入队列else if (s[j]==s[v]) return(0);} //非二部图}//if (!visited[v])}//whilereturn(1); }//是二部图[算法讨论] 题目给的是连通无向图,若非连通,则算法要修改。
2015安徽省二级c语言考试答案
2015安徽省二级c语言考试答案1. 以下哪个选项不是C语言的基本数据类型?A. intB. floatC. charD. string答案:D2. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. return答案:C3. 若有以下C语言代码段:```cint a = 10;printf("%d", a++);```输出结果是什么?A. 10B. 11C. 9D. 编译错误答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C5. 以下哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D6. 在C语言中,哪个函数用于输入一个字符?A. scanf()B. getchar()C. printf()D. puts()答案:B7. 若有以下C语言代码段:```cint x = 5;x += 3;```x 的值是多少?A. 5B. 8C. 3D. 编译错误答案:B8. 在C语言中,哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. int[]答案:D9. 若有以下C语言代码段:```cint a[5] = {1, 2, 3, 4, 5};a[0] = 0;```数组a的第一个元素是多少?A. 1B. 0C. 2D. 编译错误答案:B10. 在C语言中,哪个函数用于输出一个字符串?A. scanf()B. printf()C. gets()D. puts()答案:D。
安徽省计算机等级二级C语言真题2015年1月
安徽省计算机等级二级C语言真题2015年1月二〇一四年下半年全国高等学校(安徽考区)计算机水平考试试卷(二级C语言程序设计)一、单项选择题(每题1分,共40分)1. 用计算机进行论文检索,属于计算机在_1_方面的应用A)科学计算B)实时控制C)信息处理D)人工智能2. 计算机最重要的特征是_2_A)高速度B)高精度C)记忆力强D)存储程序和程序控制3. 在计算机中,1GB表示_3_A)1024K 字节B)1024M 字节C)1024K 汉字D)1024M汉字4. 微型计算机的硬件系统包括_4_A) 控制器、运算器、存储器、输人设备和输出设备B) 主机、键盘、电源和CPUC) 主机、电源、CPU和显示器D) CPU、键盘、显示器和打印机5. Cache的中文译名是_5_。
A)缓冲器B)只读存储器C)可编程只读存储器D)高速缓冲存储器6. U盘属于6 。
A)只读存储器B)光存储器C)外存储器D)内存储器7. Windows操作系统是由_7_公司开发的。
A)Sun B) Microsoft C)联想D) Novell8. 目前一个好的防病毒软件的作用是_8__。
A)检査计算机是否染有病毒,消除已感染的任何毒B)杜绝病毒对计算机的感染C)查处计算机已感染的所有病毒,消除其中的一部分D)检查计算机是否染有病毒,清除已感染的部分病毒9. 某用户在域名为mail. edu. cn的邮件服务器上申请了一个账号,账号名为xing,那么该用户的电子邮件地址为_9_。
A ) mail. edu. cn@ xing B) mail. edu. cn%xingC)xing%D)*************.cn10.浏览器中的“收藏夹”主要用于收藏_10_A)网页的地址B)听过的音乐C)网页的内容D)看过的图片11. 以下叙述正确的是_11_A)在C程序中.main函数必须位于程序的最前面B)C语言本身没有输人输出语句C)C语言的每一行中只能写一条语句D)在对一个C语言程序进行编译的过程中,可发现注释中的拼写错误12. 以下叙述—的是_12_A)—个C程序可以包含多个不同名的函数B)—个C程序只能有一个主函数C)C程序在书写时,有严格的缩进要求,否则不能编译通过D)C程序的主函数必须用main作为函数名13. 以下能作为变量名的是_13_A)fast_1_3 B) ?our C)if D)five$I4. 在C语言中,不正确的int类型的常量是_14_A)32763 B)0 C)039 D)0xaf15. 已知int d =5,c2=2,c3;,则执行c3 =cl/c2 后,c3 的值是_15_A)5 B)2.5 C)3 D)216. 已知char x = 'A';,则语句printf( "x = %c,%d",x,x + 1);的输出是_ 16_A)x = A,66 B)x = 65,B C)x = 65,66 D)x = A,B17. 已知int n = 10,i=4;,则执行n%=i+1后n的值是_17_A)3 B )2 C)1 D)018. 已知int x =3,n =5;,则以下与其他三组输出不同的—组语句是_18_A)x++; printf( "%d\n" ,x) ;B)n =x++; printf( " %d\n" ,n);C) ++x; printf("%d\n" ,x) ;D)n =++x; printf( "%d\n" ,n);19. 已知int i,a;,则执行语句i = (a=2*3,a*5),a + 6;后,变量a的值是_19 _A)6 B)12 C )30 D)3620. C语言中基本数据类型包括_20_A)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)字符型、实型、逻辑型21. 如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含_21_头文件。
安徽c语言二级考试真题及答案
安徽c语言二级考试真题及答案一、单项选择题(每题2分,共40分)1. 下列关于C语言中变量的叙述中,正确的是()。
A. 变量名必须以字母开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名可以以数字开头答案:C2. 在C语言中,用于定义一个整型变量的关键字是()。
A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个是合法的标识符?()A. 2variableB. variable2C. variable-2D. variable$2答案:B4. C语言中,以下哪个是正确的字符串字面量?()A. "Hello World"B. 'Hello World'C. "Hello World'D. 'Hello World'答案:A5. 下列哪个选项是C语言中的逻辑运算符?()A. &&B. ||C. !D. A、B和C都是答案:D6. 在C语言中,哪个函数用于计算并返回字符串的长度?()A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A7. C语言中,以下哪个是正确的二维数组声明?()A. int array[3][4];B. int array[][];C. int array[3][];D. int array[4][];答案:A8. 在C语言中,以下哪个是正确的函数声明?()A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(int a);答案:A9. 在C语言中,以下哪个是正确的结构体声明?()A. struct Student {int id;char name[50];};B. struct {int id;char name[50];} Student;C. Student struct {int id;char name[50];};D. struct Student {int id;char name;};答案:A10. 在C语言中,以下哪个是正确的指针声明?()A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A11. 在C语言中,以下哪个是正确的宏定义?()A. #define PI 3.14B. #define PI = 3.14C. #define PI 3.14;D. #define PI = 3.14;答案:A12. 在C语言中,以下哪个是正确的枚举类型声明?()A. enum Color {Red, Green, Blue};B. enum Color {Red = 1, Green, Blue};C. enum {Red, Green, Blue};D. All of the above答案:D13. 在C语言中,以下哪个是正确的文件操作函数?()A. fopen()B. fclose()C. fgetc()D. All of the above答案:D14. 在C语言中,以下哪个是正确的条件语句?()A. if (condition) statement;B. if statement;C. if (condition) { statement; }D. All of the above答案:D15. 在C语言中,以下哪个是正确的循环语句?()A. for (initialization; condition; increment) statement;B. while (condition) statement;C. do statement while (condition);D. All of the above答案:D二、程序填空题(每题10分,共20分)1. 请填写以下程序中的空白,使其能够正确计算并输出100以内的奇数之和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BiTree p=(BiTree)malloc(sizeof(BiNode)); //生成根结点
p->data=level[0]; p->lchild=null; p->rchild=null; //填写该结点数据
1、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。(注:双向起泡排序即相邻两趟排序向相反方向起泡)
2、 二叉树的层次遍历序列的第一个结点是二叉树的根。实际上,层次遍历序列中的每个结点都是“局部根”。确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。这样,定义一个全局变量指针R,指向层次序列待处理元素。算法中先处理根结点,将根结点和左右子女的信息入队列。然后,在队列不空的条件下,循环处理二叉树的结点。队列中元素的数据结构定义如下:
{p->lchild=null; //处理无左子女
s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s);
}
else if (i==s.h)
{p->rchild=null; //处理无右子女
s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);
}qnode;
BiTree Creat(datatype in[],level[],int n)
//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。 n是二叉树的结点数
{if (n<1) {printf(“参数错误\n”); exit(0);}
qnode s,Q[]; //Q是元素为qnode类型的队列,容量足够大
p->data=level[s.lvl]; p->lchild=null; p->rchild=null; //填写该结点数据
if (s.lr==1) father->lchild=p;
else father->rchild=p; //让双亲的子女指针指向该结点
if (i==s.l)
6、 二叉树的层次遍历序列的第一个结点是二叉树的根。实际上,层次遍历序列中的每个结点都是“局部根”。确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。这样,定义一个全局变量指针R,指向层次序列待处理元素。算法中先处理根结点,将根结点和左右子女的信息入队列。然后,在队列不空的条件下,循环处理二叉树的结点。队列中元素的数据结构定义如下:
int LeafKlevel(BiTree bt, int k) //求二叉树bt 的第k(k>1) 层上叶子结点个数
{if(bt==null || k<1) return(0);
BiTree p=bt,Q[]; //Q是队列,元素是二叉树结点指针,容量足够大
int front=0,rear=1,leaf=0; //front 和rear是队头和队尾指针, leaf是叶子结点数
}
else if (i==n-1) //根结点无右子树,遍历序列的1—n-1是左子树
{p->rchild=null;
s.lvl=++R; s.l=1; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);
}
else //根结点有左子树和右子树
typedef struct
{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置
int l,h; //中序序列的下上界
int f; //层次序列中当前“根结点”的双亲结点的指针
int lr; // 1—双亲的左子树 2—双亲的右子树
p->data=level[s.lvl]; p->lchild=null; p->rchild=null; //填写该结点数据
if (s.lr==1) father->lchild=p;
else father->rchild=p; //让双亲的子女指针指向该结点
if (i==s.l)
int last=1,level=1; Q[1]=p; //last是二叉树同层最右结点的指针,level 是二叉树的层数
while(front<=rear)
{p=Q[++front];
if(level==k && !p->lchild && !p->rchild) leaf++; //叶子结点
}
else{s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);//左子树有关信息入队列
s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s); //右子树有关信息入队列
}
}//结束while (!empty(Q))
{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列
s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列
}
while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树
}
else if (i==n-1) //根结点无右子树,遍历序列的1—n-1是左子树
{p->rchild=null;
s.lvl=++R; s.l=1; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);
}
else //根结点有左子树和右子树
}qnode;
BiTree Creat(datatype in[],level[],int n)
//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。 n是二叉树的结点数
{if (n<1) {printf(“参数错误\n”); exit(0);}
qnode s,Q[]; //Q是元素为qnode类型的队列,容量足够大
{ s=delqueue(Q); father=s.f;
for (i=s.l; i<=s.h; i++)
if (in[i]==level[s.lvl]) break;
p=(bitreptr)malloc(sizeof(binode)); //申请结点空间
}
else{s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);//左子树有关信息入队列
s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s); //右子树有关信息入队列
}
}//结束while (!empty(Q))
{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列
s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列
}
while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树
if(p->lchild) Q[++rear]=p->lchild; //左子女入队
if(p->rchild) Q[++rear]=p->rchild; //右子女入队
if(front==last) {level++; //二叉树同层最右结点已处理,层数增1
for (i=0; i<n; i++) //在中序序列中查找根结点,然后,左右子女信息入队列
if (in[i]==level[0]) break;
if (i==0) //根结点无左子树,遍历序列的1—n-1是右子树
{p->lchild=null;
s.lvl=++R; s.l=i+1; s.h=n-1; s.f=p; s.lr=2; enqueue(Q,s);
{ s=delqueue(Q); father=s.f;
for (i=s.l; i<=s.h; i++)
if (in[i]==level[s.lvl]) break;
p=(bitreptr)malloc(sizeof(binode)); //申请结点空间
typedef struct
{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置
int l,h; //中序序列的下上界
int f; //层次序列中当前“根结点”的双亲结点的指针