二级C语言公共基础知识复习与配套选择题
- 格式:doc
- 大小:70.50 KB
- 文档页数:16
c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。
答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。
答案:*三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储相同类型的元素集合。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以作为指针使用,但数组本身不是指针。
数组的大小在定义时确定,而指针可以指向不同大小的内存块。
2. 解释C语言中的递归函数。
答案:递归函数是一种函数,它在执行过程中调用自己。
递归函数通常用于解决可以分解为相似子问题的问题。
递归函数必须有一个明确的终止条件,以避免无限递归。
四、编程题1. 编写一个C语言程序,实现求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语言函数,实现字符串反转。
答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1。
1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构.在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等.一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成.考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.1。
算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的.撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
计算机二级c语言选择题库(带答案)二级C语言相关考点1、以下选项中,能用作数据常量的是________。
(标准答案:C)(A)o115 (B)0118 (C)115L (D)1.5e1.52、下列叙述中错误的是_______。
(标准答案:A)(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成3、设变量已正确定义并赋值,以下正确的表达式是_______。
(标准答案:B)(A)int(15.8%5) (B)x=y+z+5,++y (C)x=25%5.0 (D)x=y*5=x+z4、以下叙述中错误的是_____________。
(标准答案:A)(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(B)C语言源程序经编译后生成后缀为.obj的目标程序(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件5、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________。
(标准答案:D)(A)大写字母(B)下划线(C)数字字符(D)连接符6、以下选项中,合法的一组C语言数值常量是__________。
(标准答案:D)(A)0x8A 10,000 3.e5 (B).177 4e1.5 0abc(C)028 .5e-3 -0xf (D)12. 0Xa23 4.5e07、以下选项中不合法的标识符是__________。
(标准答案:C)(A)print (B)FOR (C)&&a (D)_008、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是(A)i=(a+k)<=(i+k); (B)a=a++,i++; (C)i=a%11; (D)i=!a;标准答案:C11、设有定义:int x=2;,以下表达式中,值不为6的是(A)x*=(1+x) (B)x*=x+1 (C)x++,2*x (D)2*x, x+=2标准答案:D12、有以下程序#includemain(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是(A)2,3,3 (B)2,2,1 (C)2,3,2 (D)2,3,1标准答案:D13、以下叙述中错误的是(A)使用三种基本结构构成的程序只能解决简单问题(B)C语言是一种结构化程序设计语言(C)结构化程序由顺序、分支、循环三种基本结构组成(D)结构化程序设计提倡模块化的设计方法标准答案:A14、以下选项中,能用作用户标识符的是(A)8_8 (B)unsigned (C)_0_ (D)void标准答案:C15、C源程序中不能表示的数制是(A)二进制(B)十六进制(C)十进制(D)八进制标准答案:A16、若有定义语句:int x=10; ,则表达式x-=x+x的值为- -2-(A)0 (B)10 (C)-20 (D)-10标准答案:D17、以下选项中不合法的标识符是(A)&a (B)print (C)_00 (D)FOR标准答案:A18、以下关于结构化程序设计的叙述中正确的是(A)一个结构化程序必须同时由顺序、分支、循环三种结构组成(B)有三种基本结构构成的程序只能解决小规模的问题(C)在C语言中,程序的模块化是利用函数实现的(D)结构化程序使用goto语句会很便捷标准答案:C19、对于一个正常运行的C程序,以下叙述中正确的是(A)程序的执行总是从main函数开始,在程序的最后一个函数中结束(B)程序的执行总是从程序的第一个函数开始,在main函数结束(C)程序的执行总是从main函数开始(D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束标准答案:C20、以下选项中能表示合法常量的是(A)1.5E2.0 (B)―\007‖ (C)1, 200 (D)?\ ‘标准答案:B21、以下定义语句中正确的是(A)float a=1,*b=&a,*c=&b (B)int a=b=0;(C)double a=0.0;b=1.1; (D)charA=65+1,b=‘b‘;标准答案:D22、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)double(x)/10 (B)x=x+10=x+y (C)x+1=y (D)++x,y=x--标准答案:D23、计算机能直接执行的程序是(A)可执行程序(B)目标程序(C)源程序(D)汇编程序标准答案:A(A)C语言规定必须用main作为主函数名,程序将从此开始执行(B)C语言程序将从源程序中第一个函数开始执行(C)main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等(D)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行标准答案:A25、以下选项中可用作C程序合法实数的是(A)E9 (B)9.12E (C)3.0e1.2 (D).1e0标准答案:D26、下列定义变量的语句中错误的是(A)float US$; (B)double int_; (C)char For; (D)int _int;标准答案:A27、表达式:(int)((double)9/2)-9%2的值是(A)5 (B)4 (C)0 (D)3标准答案:D28、以下叙述中错误的是(A)算法正确的程序对于相同的输入一定有相同的结果(B)算法正确的程序可以有零个输入(C)算法正确的程序可以有零个输出(D)算法正确的程序最终一定会结束- -3-标准答案:C(A)C语言程序中的注释必须与语句写在同一行(B)简单C语句必须以分号结束(C)C语句必须在一行内写完(D)C程序中的每一行只能写一条语句标准答案:B30、以下选项中关于C语言常量的叙述错误的是(A)经常被使用的变量可以定义成常量(B)常量分为整型常量、实型常量、字符常量和字符串常量(C)所谓常量,是指在程序运行过程中,其值不能被改变的量(D)常量可分为数值型常量和非数值型常量标准答案:A31、以下选项中,不合法的C语言用户标示符是(A)AaBc (B)a_b (C)_1 (D)a--b标准答案:D32、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)x=y==5; (B)x=5=4+1; (C)x+n=i; (D)x=n%2.5;标准答案:A33、以下选项中关于程序模块化的叙述错误的是(A)把程序分成若干相对独立的模块,可便于编码和测试(B)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序(C)把采用分成若干相对独立、功能单一的模块,可便于重复使用这些模块D)可采用自顶向上、逐步细化的设计方法把若干独立模块组装成所要求的程序标准答案:D34、以下叙述中正确的是(A)C程序中的注释只能出现在程序的开始位置和语句的后面(B)C程序书写格式严格,要求一行内只能写一个语句(C)用C语言编写的程序只能放在一个程序文件中(D)C程序书写格式自由,一个语句可以写在多行上标准答案:D35、以下不合法的数值常量是(A)1e1 (B)0xabcd (C)8.0E0.5 (D)011标准答案:C36、以下关于C语言数据类型使用的叙述中错误的是(A)若只处理―真‖和―假‖两种逻辑值,应使用逻辑类型(B)若要保存带有多位小数的数据,可使用双精度类型(C)整数类型表示的自然数是准确无误差的(D)若要处理―人员信息‖等含有不同类型的相关数据,应自定义结构体类型标准答案:A37、设有定义intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是A)++k (B)k++ (C)k+1 (D)k+=1标准答案:B38、以下叙述中错误的是(A)C程序在运行过程中所有计算都以二进制方式进行(B)C程序在运行过程中所有计算都以十进制方式进行(C)C程序中字符变量存放的是字符的ASCII值(D)所有C程序都需要编译链接无误后才能运行标准答案:B39、以下关于C语言的叙述中正确的是(A)C语言中的注释不可以夹在变量名或关键字的中间(B)C语言中的变量可以再使用之前的任何位置定义(C)在C语言算数表达式的书写中,运算符两侧的运算数类型必须一致- -4-(D)C语言的数值常量中夹带空格不影响常量值的正确表示标准答案:A40、以下不合法的字符常量是(A)?\018‘ (B)?\‖‘ (C)?\\‘ (D)?\xcc‘标准答案:A41、以下选项中正确的定义语句是(A)double a=7,b=7; (B)doublea;b; (C)double,a,b; (D)double a=b=7;标准答案:A42、若有定义语句inta=3,b=2,c=1;以下选项中错误的赋值表达式是(A)a=(b=4)=3; (B)a=1+(b=c=4); (C)a=(b=4)+c; (D)a=b=c+1;标准答案:A43、下列叙述中错误的是(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成标准答案:A44、C语言源程序名的后缀是(A).c (B).cp (C).obj (D).exe标准答案:A45、以下选项中不能用作C程序合法常量的是(A)123 (B)?\123‘ (C)―\x7D‖ (D)1,234标准答案:D46、表达式a+=a-=a=9的值是(A)0 (B)-9 (C)18 (D)9标准答案:A47、若有定义语句:intx=12,y=8,z;在其后执行语句Z=0.9+x/y;则z的值为(A)2.4 (B)2 (C)1.9 (D)1标准答案:D48、以下选项中合法的标识符是(A)1-1 (B)1__(C)1_1 (D)_11标准答案:D49、表达式3.6-5/2+1.2+5%2的值是(A)4.8 (B)4.3 (C)3.8 (D)3.3标准答案:C50、有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是(A)a=x<>y (B)a%(int)(x-y) (C)y=x+y=x (D)(a*y)%b 标准答案:B51、有以下程序#includeMain() - -5-{inta=0,b=0; /*给a赋值b=20; /*给b赋值*/printf(―a+b=%d\n‖,a+b); /*输出计算结果*/}程序运行后的输出结果(A)出错(B)a+b=0 (C)a+b=30 (D)a+b=10标准答案:D52、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令,关于转换以下说法错误的是(A)一条C语句可能会被转换成零条机器指令(B)某种类型和格式的C语句被转换成机器指令的条数是固定的(C)一条C语句可能会被转换成多条机器指令(D)一条C语句对应转换成一条机器指令标准答案:D53、关于C语言的符号常量,以下叙述中正确的是(A)符号常量在整个程序中其中都不会被重新定义(B)符号常量的符号名是标识符,但必须大写(C)符号常量的符号名必须是常量(D)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量标准答案:D54、若有以下程序#includemain(){intb=10,a=-11;a%=b%=4;printf(―%d%d\n‖,a,b);}则程序的输出结果是(A)12 (B)-12 (C)1-2 (D)-1-2标准答案:B55、若有以下程序#includemain(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf(―%d,%d,%d\n‖,a,b,c);}则程序的输出结果是(A)0,4,0 (B)0,4,4 (C)1,4,4 (D)1,4,1标准答案:A56、若有以下程序#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a); /*第4行*/d=c;; /*第5行*/; /*第6行*/ - -6-printf(―%d,%d,%d\n‖,a,b,c); /*第7行*/}编译时出现错误,你认为出错的是(A)第6行(B)第5行(C)第7行(D)第4行标准答案:D57、关于算法,以下叙述中错误的是(A)一个算法对于某个输入的循环次数是可以事先估计出来的(B)同一个算法对于相同的输入必须得出相同的结果(C)某个算法可能会没有输入(D)任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕标准答案:D58、关于C语言的变量,以下叙述中错误的是(A)由三条下划线构成的符号名是合法的变量名(B)所谓变量是指在程序运行过程中其值可以被改变的量(C)程序中用到的所有变量都必须先定义后才能使用(D)变量所占的存储单元地址可以随时改变标准答案:D59、若有以下程序#includemain(){inta=-11,b=10;a/=b/=4;printf(―%d %d\n‖,a,b);}(A)4 -3 (B)5 -3 (C)-1-2 (D)5-2标准答案:D60、#includemain(){inta=0,b=0,c=0;c=(a+=++b,b+=4);printf(―%d,%d,%d\n‖,a,b,c);}则程序的输出结果是(A)1,5,1 (B)-1,4,-1 (C)-1,4,4 (D)1,5,5标准答案:D61、以下选项中不属于C语言标识符的是(A)关键字(B)预定义标识符(C)用户标识符(D)常量标准答案:D62、以下选项中不属于C语言程序运算符的是(A)&&(B)()(C)sizeof (D)<>标准答案:D63、若变量已正确定义并赋值,以下不能构成C语句的选项是(A)A=a+b; (B)B++; (C)A?a:b; (D)a=a+b标准答案:D64、若有以下程序段doublex=5.16894;printf(―%f\n―,(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是(A)5.169000 (B)5.175000 (C)5.170000 (D)5.168000 - -7- 标准答案:A65、以下不能用于描述算法的是(A)文字叙述(B)伪代码和流程图(C)程序语句(D)E-R图标准答案:D66、以下叙述中合法的实型常量是(A)2.0*10 (B).914 (C)0 (D)3.13e-2.1标准答案:B67、以下叙述中正确的是(A)若有int 4,b=9;执行了a=b;b=a;之后,a的值为9,b的值为4(B)在赋值表达式中,赋值号的右边可以是变量,也可以是表达式(C)若有int 4,b=9;执行了a=b后,a的值已由原值改变为b的值,b的值变为0(D)a是实型变量,a=10在C语言中是允许的,因此可以说:实型变量中可以存放整型数标准答案:B68、以下选项中合法的常量是(A)sizeof (B)A% (C)5a (D)_10_标准答案:D69、不能正确表示数学式的表达式是(A)a*b/c (B)a*(b/c) (C)a/c*b (D)a/b*c标准答案:D70、#includemain(){int a=3;printf(―%d\n‖,a+=a-=a*a);}程序运行后的输出结果是(A)9 (B)-12 (C)0 (D)3标准答案:B71、以下叙述中正确的是(A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构(B)N-S流程图只能描述简单的顺序结构的程序(C)计算机可以直接处理C语言程序,不必进行任何转换(D)程序的算法只能使用流程图来描述标准答案:A71、以下叙述中正确的是(A)书写源程序时,必须注意缩进格式,否则程序会有编译错误(B)程序的主函数名除了main外,也可以使用Main或_main (C)程序可以包含多个主函数,但总是从第一个主函数处开始执行(D)在C程序中,模块化主要是通过函数来实现的标准答案:D72、C语言中double类型数据占字节数为(A)12 (B)8 (C)4 (D)16标准答案:B73、以下叙述中正确的是(A)用户自定义标识符必须―见名知意‖,如果随意定义,则会出编译错误(B)语言中的关键字不能作变量名,但可以作为函数名(C)标识符的长度不能任意长,最多只能包含16个字符(D)标识符总是有字母、数字和下划线组成,且第一个字符不得是数字- -8-标准答案:D74、以下叙述中正确的是(A)空语句就是指程序中的空行(B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的(C)复合语句在语法上包含多条语句,其中不能定义局部变量(D)当用scanf从键盘输入数据时,每行数据在没有按下回车键(Enter键)前,可以任意修改标准答案:D75、以下叙述中正确的是(A)程序必须包含所有三种基本结构才能成为一种算法(B)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达(C)只有简单算法才能在有限的操作步骤之后结束(D)我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令标准答案:D76、以下叙述中正确的是(A)在C语言程序设计中,所有函数必须保存在一个源文件中(B)结构化程序必须包含所有的三种基本结构,缺一不可(C)只要包含了三种基本结构的算法就是结构化程序(D)在算法设计时,可以把复杂任务分解成一些简单的子任务标准答案:D77、以下叙述中正确的是(A)预定义的标识符是C语言关键字的一种,不能另作他用(B)只能在函数体内定义函数,其他地方不允许定义变量(C)常量的类型不能从字面形式上区分,需要根据类型名来决定(D)整型常量和实型常量都是数值型常量标准答案:D78、以下叙述中正确的是(A)八进制数的开头要使用英文字母o,否则不能与十进制区分开(B)英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符(C)在C程序中的八进制和十进制,可以是否点数(D)整型变量可以分为int型、short型、long型、unsigned型四种标准答案:D79、以下叙述中正确的是(A)C语言程序总是从main函数开始执行(B)C语言程序所调用的函数必须放在main函数的前面(C)C语言程序中main函数必须放在程序开始位置(D)C语言程序总是从最前面的函数开始执行标准答案:A80、C语言程序中,运算对象必须是整型数的运算符是(A)% (B)/ (C)* (D)&&标准答案:A81、#includemain(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf(―%d\n‖,pad);}程序的输出结果是(A)7 (B)5 (C)8 (D)6标准答案:D - -9-82、以下四个程序中,完全正确的是(A)#includemain();{/*/ programming /*/printf("programming!\n"); }(B)#includemain(){/* programming */printf("programming!\n"); }(C)#includemain(){/*/* programming */*/printf("programming!\n"); }(D)includemain(){/* programming */printf("programming!\n"); }标准答案:B83、有以下程序#includemain(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是(A)1,0 (B)0,0 (C)1,2 (D)3,2标准答案:C84、有以下程序#includemain(){ char a,b,c,d;scanf("%c%c",&a, &b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)12则输出结果是(A)12(B)123(C)1234(D)1234标准答案:B85、有以下程序#includemain(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf( "%c,%d\n",c1,c2);}已知字母A的ASCII 码为65,程序运行后的输出结果是(A)输出无定值(B)E,D (C)D,69 (D)E,68 10标准答案:D86、有以下程序#includemain(){ int a1,a2; charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是(以下ㄩ代表空格,代表回车)(A)12a34b(B)12ㄩa34ㄩb(C)12,a,34,b(D)12ㄩaㄩ34ㄩb标准答案:A87、若变量已正确定义为int型,要通过语句Scanf(―%d,%d,%d‖,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中语法错误的是(注:□代表一个空格符)(A)□□□1,2,3<回车>(B)1□2□3<回车>(C)1,2,3<回车>(D)1,□□□2,□□□3<回车>标准答案:B88、设变量均已正确定义,若通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c和c2赋字符X和Y,以下所示的输入形式正确的是(A)10□X<回车>20□Y<回车>(B)10□X□20□Y<回车>(C)10X<回车>20Y<回车>(D)10□X20□Y<回车>标准答案:C89、设有定义inta; floatb;执行scanf(―%2d%f‖,&a,&b);语句时,若从键盘输入876 543.0<回车>则a和b的值分别是(A)76和543.0 (B)87和543.0 (C)876和543.0 (D)87和6.0标准答案:D90、有如下程序段:intx=12;doubley=3.141593;printf(―%d%8.6f‖,x,y)其输出结果是(A)123.141593 (B)123.141593 (C)123.1415930 (D)12,3.141593 标准答案:A91、若有定义:inta,b; 11通过语句scanf(―%d;%d‖,&a,&b);能把整数3赋值给变量a,5赋值给变量b的输入数据是(A)35 (B)3 5 (C)3,5 (D)3;5标准答案:D92、阅读以下程序#includemain(){ int case;float printF;printf(―请输入2个数:‖);scanf(―%d %f‖,&case,&printF);printf(―%d %f\n‖,case,printF);}该程序在编译时产生错误,其出错原因是(A)定义语句出错,case是关键字,不能用作用户自定义标识符(B)定义语句出错,scanf不能作为输入函数使用(C)定义语句出错,printf不能输出擦色的值(D)定义语句出错,printF不能用作用户自定义标识符标准答案:A93、若有定义int a;float b;double c;程序运行时输入:34 5<回车>能把3输入给变量a、4输入给变量b、5输入给变量c的语句是(A)scanf(―%d%f%f‖,&a,&b,&c);(B)sca nf(―%d%lf%lf‖,&a,&b,&c);(C)scanf(―%lf%lf%lf‖,&a,&b,&c);(D)scanf(―%d%f%lf‖,&a,&b,&c);标准答案:D94、设有定义double a,b,c;若要求通过分别给a、b、c输入1、2、3,输入形式如下(注:此处□代表一个空格)则能进行正确输入的语句是(A)scanf(―%f%f%f‖,&a,&b,&c); (B)scanf(―%lf%lf%lf‖,a,b,c);(C)scanf(―%5.11lf%5.11lf%5.11lf‖,&a,&b,&c); (D)scanf(―%lf%lf%lf‖,&a,&b,&c);标准答案:D95、以下叙述中正确的是(A)scanf和printf是C语言提供的输入和输出语句(B)由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定(C)由printf输出的数据都隐含左对齐(D)赋值语句是一种执行语句,必须放在函数的可执行部分标准答案:D96、以下叙述中正确的是(A)在使用scanf函数输入整型或实数时,输入数据之间只能用空格来分隔12(B)在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上(C)使用printf函数无法输入百分号%(D)在printf函数中,各个输出项只能是变量标准答案:B97、以下叙述中正确的是(A)复合语句也被称为语句块,它至少要包含两条语句(B)在scanf函数的格式中,必须有与输出项一一对应的格式转换说明(C)scanf函数中的字符串,是提示程序员的。
全国计算机等级考试二级C语言公共基础知识复习与配套练习题第一章数据结构与算法算法是一组严谨的定义运算顺序的规则,是指令的有限序列。
计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列。
基本运算:算术运算、逻辑运算、关系运算、数据传输。
控制结构:算法中各操作之间的执行顺序。
算法设计的基本方法:列举法、归纳法、递推、递归、减半递推、回溯法。
算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求。
算法的时间复杂度,是指执行算法所需要的计算工作量。
取决于问题的规模与待处理的数据的初态。
平均性态:是指用各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。
数据结构:指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。
提高数据处理效率:1提高数据处理的速度2节省存储空间数据的逻辑结构:集合、线性结构、树形结构、图形结构。
两个要素:数据元素的集合D,数据元素之间的前后关系R。
数据的存储结构:数据的逻辑结构在计算机存储空间中的存放形式。
(物理结构)常用的存储结构有顺序、链接、索引等。
空的数据结构:在一个数据结构中一个数据元素都没有。
根据前后关系的复杂程度(从逻辑上),可将数据结构分为两大类型:线性结构(线性表)、非线性结构。
线性结构与非线性结构都可以是空的数据结构。
线性表是n个属于同一数据类型的数据元素构成的有限序列。
若干数据项组成的数据元素称为记录,多个记录构成的线性表称为文件。
I为数据元素ai再线性表中的位序。
线性表的顺序表:用一组地址连续的存储单元依次存储线性表的数据元素。
线性表的顺序存储结构是一种随机存取的存储结构(一维空间)。
栈:实际也是线性表。
是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
没有元素时为空栈。
栈顶元素总是后被插入的元素,也是最先被删除的元素。
称为“先进后出”“后进先出”表。
栈的顺序存储及其运算:1、入栈运算:在栈顶位置插入一个新元素。
计算机二级考试试题二级公共基础复习题(命中率95%)一、选择题(1) 下面叙述正确的是(C)A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对(2) 以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈(3) 在一棵二叉树上第5层的结点数最多是(B) 注:由公式2k-1得A. 8B. 16C. 32D. 15(4) 下面描述中,符合结构化程序设计风格的是(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句(5) 下面概念中,不属于面向对象方法的是 (D) 注:P55-58A. 对象B. 继承C. 类D. 过程调用(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码(7) 在软件开发中,下面任务不属于设计阶段的是(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型(8) 数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库(9) 下列叙述中正确的是(C)A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A) 注:P108A. 内模式B. 外模式C. 概念模式D. 逻辑模式(11) 算法的时间复杂度是指(C)A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数(12) 算法的空间复杂度是指(D)A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间(13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(B) 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出A. 349B. 350C. 255D. 351(14) 结构化程序设计主要强调的是(B)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性(15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D) 注:即第一个阶段A. 概要设计B. 详细设计C. 可行性分析D. 需求分析(16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
二级C公共基础知识及练习题库二级C公共基础知识及例题1.1数据结构与算法1.1.1算法1.算法的概念(1)概念:算法是指一系列解决问题的清晰指令.(2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时间顺序)(4)设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。
2.算法的复杂度(1)算法的时间复杂度:执行算法所需要的计算工作量。
(2)算法的空间复杂度:执行算法所需的内存空间。
1.1.2数据结构的基本概念数据结构指相互有关联的的数据元素的集合,即数据的组织形式。
其中逻辑结构反映数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序存储、链式存储、索引存储和散列存储4种方式。
数据结构按各种元素之间的前后件的关系的复杂度可划分为:(1)线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。
(2)非线性结构:不满足线性结构的数据结构。
1.1.3线性表及其顺序存储结构1.线性表的基本概念线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2.线性表的顺序存储结构●元素所占的存储空间必须连续。
●元素在存储空间的位置是按逻辑顺序存放的。
3.线性表的插入运算在第i个元素之前插入一个新元素的步骤如下:步骤一:把原来第n个节点至第i个节点依次往后移一个元素位置。
步骤二:把新节点放在第i个位置上。
步骤三:修正线性表的节点个数。
4.线性表的删除运算删除第i个位置的元素的步骤如下:步骤一:把第i个元素之后的不包括第i个元素的n-i个元素依次前移一个位置;步骤二:修正线性表的结点个数。
1.1.4栈和队列1.栈及其基本运算(1)基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。
●栈顶:允许插入与删除的一端。
大学生二级c语言考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B2. 在C语言中,以下哪个选项是正确的整型常量?A. 0x1AB. 0x1aC. 0X1AD. 0x1A.答案:C3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ||D. &&答案:A4. C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A5. 在C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:B6. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][4];B. int array[3,4];C. int array(3)(4);D. int array[3][4][];答案:A7. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student {int id;char name[20];};B. struct Student: {int id;char name[20];};C. struct Student {int id;string name;};D. struct Student {int id;char name;};答案:A8. C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr[];C. int (*ptr)[];D. int *ptr[10];答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D10. C语言中,以下哪个选项是正确的递归函数声明?A. void factorial(int n) {if (n == 0) return 1;return n * factorial(n-1);}B. void factorial(int n) {if (n == 0) return 1;return n * factorial(n++);}C. void factorial(int n) {if (n == 0) return 1;return n * factorial(n-1);}D. All of the above答案:A二、填空题(每空2分,共20分)1. 在C语言中,使用________关键字可以定义一个枚举类型。
全国计算机二级考试c语言题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. int_答案:A3. 在C语言中,一个整型变量占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C4. 下列哪个函数用于计算两个数的和?A. max()B. pow()C. sqrt()D. sum()答案:D5. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. |答案:A6. C语言中,以下哪个选项用于定义一个整型数组?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B7. 在C语言中,以下哪个选项用于声明一个指向整型的指针?A. int *p;B. int *p[];C. int (*p)[];D. int *p[5];答案:A8. 下列哪个选项是C语言中的字符串字面量?A. "Hello"B. 'Hello'C. "Hello'"D. 'Hello'答案:A9. 在C语言中,以下哪个选项用于定义一个结构体?A. struct Student {int id;char name[20];};B. struct Student student;C. Student student;D. int Student;答案:A10. 在C语言中,以下哪个选项用于声明一个函数?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个无限循环。
国家c语言二级机试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是正确的C语言函数声明?A. int function(int a, int b);B. int function(int, int);C. int function(int a; int b);D. int function(int a, int b)答案:A3. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列哪个选项是C语言中合法的数组声明?A. int a[10];B. int b[2,3];C. int c[2][3];D. int d[];答案:C5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[5] = "Hello";D. char str[] = "Hello", "World";答案:A6. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A7. C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h" <stdio.h>D. #include <stdio.h> "stdio.h"答案:B8. 在C语言中,以下哪个选项是正确的循环语句?A. do-whileB. do...whileC. do { ... } while (condition);D. do { ... } while;答案:C9. 下列哪个选项是C语言中合法的函数原型?A. int function();B. int function(int);C. int function(int a, int b);D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int *ptr = NULL;D. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针变量。
c语言二级考试试题与答案doc一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:B2. 若有定义int a=5;,则表达式a++的值是多少?A. 4B. 5C. 6D. 0答案:B3. C语言中,用于表示逻辑“与”操作的运算符是什么?A. &&B. ||C. !D. &答案:A4. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. coutD. getchar()答案:C5. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. 若有定义float x=3.14;,则表达式sizeof(x)的值是多少?A. 2B. 4C. 8D. 10答案:B7. C语言中,哪个关键字用于声明一个指针变量?A. *B. &C. %D. #答案:A8. 下列哪个选项是正确的C语言数组声明?A. int a[];B. int b[5];C. int c[5]={0};D. All of the above答案:D9. 在C语言中,哪个关键字用于声明一个无限循环?A. forB. whileC. do...whileD. switch答案:B10. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10,可以使用语句:________。
答案:int a = 10;2. 若有定义int a=5;,则执行语句a=a+1;后,变量a的值是________。
答案:63. 在C语言中,使用________运算符可以实现逻辑“或”操作。
计算机二级证c语言试题及答案一、选择题(每题2分,共40分)1. 下列哪个是C语言的关键字?A. mainB. ifC. forD. print2. C语言中,用于定义常量的关键字是:A. constB. staticC. finalD. volatile3. 在C语言中,定义整型变量的关键字是:A. floatB. intC. doubleD. char4. 下面哪个是C语言的赋值运算符?A. =B. ==C. +D. *5. 下列哪个运算符具有最高的优先级?A. +B. *C. =D. /二、填空题(每题4分,共40分)1. C语言中,用于输入函数的是______函数。
2. C语言中,用于输出函数的是______函数。
3. 声明函数的返回类型为整型时,应使用关键字______。
4. 下面代码的运行结果是:______。
int a = 5;int b = 2;double result = a / b;5. C语言中,用于定义宏的关键字是______。
三、编程题(共20分)请编写一个C语言程序,接受用户输入的四个整数,计算它们的和并输出结果。
```c#include <stdio.h>int main() {int num1, num2, num3, num4;printf("请输入四个整数:\n");scanf("%d %d %d %d", &num1, &num2, &num3, &num4);int sum = num1 + num2 + num3 + num4;printf("四个整数的和为:%d\n", sum);return 0;}```四、简答题(每题10分,共20分)1. 什么是C语言?C语言是一种广泛应用于系统编程和应用程序开发的程序设计语言,由Dennis Ritchie在20世纪70年代早期在贝尔实验室开发。
国家二级C语言(公共基础知识、C语言概述)机试模拟试卷1(题后含答案及解析)题型有:1. 选择题选择题1.数据库设计中反映用户对数据要求的模式是( )。
A.内模式B.概念模式C.外模式D.设计模式正确答案:C解析:数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C选项。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
知识模块:公共基础知识2.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是( )。
A.1:1联系B.m:1联系C.1:m联系D.m:n联系正确答案:C解析:两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系(1:1)、一对多联系(1:m)、多对一联系(m:1)、多对多联系(m:n)。
对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系(1:m),答案为C 选项。
知识模块:公共基础知识3.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一B.一对多C.多对一D.多对多正确答案:B解析:因为一间宿舍可以住多个学生,即多个学生住在一间宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。
知识模块:公共基础知识4.一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系正确答案:D解析:因为一个教师可讲授多门课程,而一门课程又能由多个教师讲授,所以它们之间是多对多的关系,可以表示为m:n。
知识模块:公共基础知识5.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
A.一对一B.一对多C.多对多D.多对一正确答案:C解析:因为一个人可以操作多台计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的联系。
国家二级C语言机试(公共基础知识)模拟试卷2(题后含答案及解析)题型有:1. 选择题选择题1.下列关于栈的描述中错误的是A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针正确答案:B解析:栈是限定在一端进行插入与删除的线性表。
栈顶(top):插入数据(即入栈)的一端;栈底(bottom):不能入栈也不能出栈的一端。
栈存储数据的原则:“先进后出”或“后进先出”。
栈的特性是具有记忆作用。
知识模块:公共基础知识2.按照“后进先出”原则组织数据的数据结构是A.队列B.栈C.双向链表D.二叉树正确答案:B解析:栈是限定在一端进行插入与删除的线性表。
在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。
即栈是按照“后进先出”(LastIn First Out,简称LIFO)或“先进后出”(First In Last Out,简称FILO)的原则组织数据的。
因此,栈也称为“后进先出表”或“先进后出”表。
知识模块:公共基础知识3.下列对队列的描述中正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据正确答案:D解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。
允许插入的一端称为队尾:允许删除的一端称为队头。
在队列这种数据结构中,最先插入的元素将最先能够被删除:反之,最后插入的元素将最后才能被删除。
因此,队列又称“先进先出”或“后进后出”的线性表。
知识模块:公共基础知识4.下列叙述中正确的是A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对正确答案:D解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。
全国c语言二级考试题库C语言作为一种广泛应用于计算机编程领域的编程语言,具有重要的地位和作用。
为了帮助广大考生更好地备考C语言二级考试,本文将提供一个全国C语言二级考试题库,供考生参考和练习。
一、基础知识题1. 下列选项中,哪个不是C语言的基本数据类型?A. intB. floatC. charD. boolean2. 在C语言中,以下哪个运算符用于将两个值相加?A. /B. *C. +D. -3. 下列哪个循环结构可以保证循环体内的代码至少被执行一次?A. if语句B. while语句C. for语句D. switch语句4. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. charD. main5. 下列选项中,哪个函数用于从标准输入流读取整数?A. printf()B. scanf()C. gets()D. puts()二、程序设计题1. 编写一个程序,输出1到100之间所有能够被7整除的数字。
2. 编写一个程序,输入一个整数n(0 < n < 10),输出n的阶乘。
3. 编写一个程序,输入一个正整数n,计算并输出n的所有因子。
4. 编写一个程序,实现两个整数的交换。
5. 编写一个程序,输入一个英文句子,将句子中的每个单词首字母变为大写,并输出结果。
三、综合应用题1. 编写一个程序,输入一个字符串,统计并输出字符串中每个字符出现的次数。
2. 编写一个程序,输入一个日期(年、月、日),判断该日期是否为闰年。
3. 编写一个程序,实现简单的计算器功能,可以进行加、减、乘、除运算。
4. 编写一个程序,输入一个整数n,输出n行倒序的星号图案。
5. 编写一个程序,输入一个正整数n,输出n行的强化训练图案。
以上题目仅为示例,实际考试题目以考试指南为准。
考生可以根据自己的实际情况选择适当的时间进行练习,提高自己的解题能力和编程水平。
希望以上提供的C语言二级考试题库能够对考生备考有所帮助。
c语言二级考试选择题及答案1. 在C语言中,以下哪个关键字用于声明函数?A. intB. returnC. voidD. function答案:C2. C语言中,哪个运算符用于计算两个整数的除法,并向下取整?A. %B. /C. //D. 无此运算符答案:C3. 下列哪个选项是C语言中的正确注释方式?A. // 这是一个注释B. /* 这是一个注释 */C. <!-- 这是一个注释 -->D. 以上都是答案:D4. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. $variableD. none-of-these答案:B5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. length()C. size()D. lengthOf()答案:A6. 在C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A7. C语言中,以下哪个选项不是控制语句?A. ifB. switchC. forD. define答案:D8. 在C语言中,以下哪个选项是正确的二维数组声明方式?A. int array[2][3];B. int [2][3] array;C. int array[][];D. int 2array[3];答案:A9. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. open()C. fileopen()D. file()答案:A结束语:以上是C语言二级考试选择题及答案,希望能够帮助考生复习和准备考试。
c语言二级考试试题答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable2!答案:B2. 在C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A、B和C都是答案:D4. C语言中,用于计算两个整数的乘积的运算符是?A. /B. *C. %D. ^5. 下列哪个选项是C语言中正确的字符串定义方式?A. char str[10] = "Hello";B. char str = "Hello";C. char str[10] = 'Hello';D. char str = 'Hello';答案:A6. 在C语言中,哪个函数用于计算数组中元素的数量?A. sizeofB. countC. lengthD. size答案:A7. 下列哪个选项是C语言中的条件语句?A. ifB. whenC. switchD. case答案:A8. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 下列哪个选项是C语言中用于循环的关键字?B. whileC. do-whileD. A、B和C都是答案:D10. 在C语言中,哪个函数用于输出字符串到控制台?A. printfB. scanfC. coutD. endl答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型数组的语句是:int array[10];2. C语言中,用于声明一个字符数组的语句是:char array[10];3. C语言中,用于声明一个浮点型变量的语句是:float variable;4. C语言中,用于声明一个双精度浮点型变量的语句是:double variable;5. C语言中,用于声明一个字符型变量的语句是:char variable;6. C语言中,用于声明一个指针变量的语句是:int *pointer;7. C语言中,用于声明一个结构体的语句是:struct struct_name { ... };8. C语言中,用于声明一个联合体的语句是:union union_name { ... };9. C语言中,用于声明一个枚举类型的语句是:enum enum_name { ... };10. C语言中,用于声明一个函数的语句是:返回类型函数名(参数列表) { ... };三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有奇数的和。
全国计算机等级考试二级C语言公共基础知识复习与配套练习题第一章数据结构与算法算法是一组严谨的定义运算顺序的规则,是指令的有限序列。
计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列。
基本运算:算术运算、逻辑运算、关系运算、数据传输。
控制结构:算法中各操作之间的执行顺序。
算法设计的基本方法:列举法、归纳法、递推、递归、减半递推、回溯法。
算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求。
算法的时间复杂度,是指执行算法所需要的计算工作量。
取决于问题的规模与待处理的数据的初态。
平均性态:是指用各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。
数据结构:指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。
提高数据处理效率:1提高数据处理的速度2节省存储空间数据的逻辑结构:集合、线性结构、树形结构、图形结构。
两个要素:数据元素的集合D,数据元素之间的前后关系R。
数据的存储结构:数据的逻辑结构在计算机存储空间中的存放形式。
(物理结构)常用的存储结构有顺序、链接、索引等。
空的数据结构:在一个数据结构中一个数据元素都没有。
根据前后关系的复杂程度(从逻辑上),可将数据结构分为两大类型:线性结构(线性表)、非线性结构。
线性结构与非线性结构都可以是空的数据结构。
线性表是n个属于同一数据类型的数据元素构成的有限序列。
若干数据项组成的数据元素称为记录,多个记录构成的线性表称为文件。
I为数据元素ai再线性表中的位序。
线性表的顺序表:用一组地址连续的存储单元依次存储线性表的数据元素。
线性表的顺序存储结构是一种随机存取的存储结构(一维空间)。
栈:实际也是线性表。
是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
没有元素时为空栈。
栈顶元素总是后被插入的元素,也是最先被删除的元素。
称为“先进后出”“后进先出”表。
栈的顺序存储及其运算:1、入栈运算:在栈顶位置插入一个新元素。
先将栈顶指针加1,然后将新元素插入到栈顶指针指向的位置。
2、退栈运算:取出栈顶元素并赋给一个指定的变量。
首先将栈顶元素赋给一个指定的变量,然后将栈顶指针减1。
3、读栈顶元素:将栈顶元素赋给一个指定的变量。
不删除栈顶元素,栈顶指针不会改变。
队列:是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
“先进先出”“后进后出”表。
往尾部插入一个元素称为入队运算。
从排头删除一个元素称为退队运算。
循环队列及其运算:队列的顺序存储结构一般采用循环队列的形式。
将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。
1、入队运算:在循环队列的队尾加入一个新元素。
2、退队运算:在队头位置推出一个元素并赋给指定的变量。
线性链表:只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
链表中结点的逻辑次序和物理次序不一定相同。
树:由n个结点组成的有限集合。
若不为空树,则:1、由一个特定的称为根的结点,只有直接后件,没有直接前件。
2、出根以外的其他结点可以划分为m个互不相交的有限集合,每个集合又是一棵树,称为根的子树,每棵子树的根结点有且仅有一个直接前件,但可以有0或多个直接后件。
一个结点所拥有的后件个数称为结点的度。
树的最大层次称为树的深度。
二叉树:是由n个结点的有限集合构成,集合为空集或由一个根结点及两棵相互不相交的左右子树组成,左右子树都是二叉树。
二叉树不是树的特殊情况,是两个概念。
特点:非空二叉树只有一个根结点;在而二叉树中不存在度大于二的结点,是有序树(树为无序树),子树的顺序不能颠倒。
叶子结点总是比度为2的结点多一个。
完全二叉树结点的排列顺序为:从上到下,从左到右。
若左边空一个位置不能将结点放入右边。
完全二叉树除最后一排都是满的。
在计算机中,二叉树通常采用链式存储结构。
遍历二叉树:1.前序遍历:根结点-左子树-右子树(在遍历左右子树时,仍然先访问根结点)2、中序遍历:左子树-根结点-右子树(左大树都遍历了再右大树)3、后序遍历:左子程序设计经历的阶段:结构化程序设计阶段、面向对象的程序设计阶段。
*程序注释:1、序言性注释:开头部分,给出程序的整体说明。
2、功能性注释:嵌在源程序体中,描述语句或程序的主要功能,不包括模块的功能。
注意:*编写程序要做到清晰第一,效率第二;*即在正确的基础上再要求提高效率。
模块化,使模块功能尽可能单一化(eg.函数实现);模块的独立性,利用信息隐蔽,确保每一个模块的独立性(eg.局部变量)。
对所有输入要检验输入数据的合法性;输入成批数据时,应有输入结束标志;*结构化程序设计四条原则:自顶向下、逐步求精、模块化、限制使用goto语句。
三种基本控制结构:顺序、选择和循环结构化程序设计的优缺点优点:易读、易理解、易维护、结构良好;缺点:面向过程、可重用性差面向对象的方法:系统中的对象以及对象之间的关系能够如实地反映问题域中固有事物及其关系。
一个对象应包括数据和需要进行的操作。
对象就是一个包含数据以及与这些数据有关的操作的集合。
面向对象优点:稳定性好、易修改、易理解、易于测试和调试。
最大区别是:数据与操作结合。
*对象:由一组表示其静态特征的属性和它可执行的一组操作(对象的动态特征)组成。
*对象特征:对象标识唯一;分类性;多态性;封装性;模块独立性好。
消息:对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明,它统一了数据流与控制流。
种类:共有消息、私有消息。
消息的使用类似函数的调用,消息中指定了某一实例,一个操作名和一个参数表。
*继承:是指能够直接获得已有的性质和特征。
而不必重复定义他们。
分为单继承和多重继承。
继承性是类所具有的性质,对象没有继承性。
多态性:是指同样的消息被不同的对象接受时可导致完全不同的行动。
消息是指对类的成员函数的调用。
不同的行为是指不同的实现,即调用不同的函数。
第三章软件工程基础软件定义:与计算机系统的操作有关的计算机程序、规程、规律,以及可能有的文件、文档及数据。
包括程序、数据及相关文档的完整集合。
特点:不是物理实体,有抽象性;常受计算机系统的限制;复杂性高,成本昂贵。
分类(按功能):系统软件、工具软件、应用软件。
*软件危机主要表现在成本、质量、生产率等问题。
*软件工程包括三要素:方法、工具和过程。
软件生命周期:将软件从提出、实现、使用维护到停止使用退役的过程称为软件周期。
(定义、开发、维护三大阶段)软件工程研究的内容主要包括:软件开发技术、软件工程管理。
*软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
需求分析阶段:需求获取、需求分析、编写规格说明书、需求评审。
*结构化分析方法:使用数据流图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的称为结构化规格说明书的目标文档。
实质:着眼于软件内部数据流,自顶向下,逐层分解。
*数据流图和数据词典共同组成系统的逻辑模型。
结构化分析方法的开发过程:计划期、开发期、运行期。
从技术观点看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
从工程管理角度看,软件设计分为两步:概要设计和详细设计。
*模块划分的原则是模块独立性。
*衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。
耦合:是模块间互相连接的紧密程度的度量。
内聚:是一个模块内部各个元素彼此结合的紧密程度的度量。
*划分模块尽量做到高内聚、低耦合,保持模块相对独立性。
软件测试方法:静态测试、动态测试测试用例的设计方法:白盒测试方法、黑盒测试方法。
白:有逻辑覆盖、基本路径测试。
黑:也称功能测试或数据驱动测试。
单元测试:是针对软件设计的最小单位——模块,进行正确性检验的测试工作。
目的在于发现各模块内部可能存在的各种错误。
集成测试:是在单元测试的基础上,把所有模块按照设计要求组装成为系统,同时进行测试。
目的:发现与接口有关的错误。
测试方式:非增量方式和增量方式组装。
验收测试:用黑盒测试法。
系统测试:目的在真实的工作环境下检验软件是否与系统正确连接。
*程序调试的目的是诊断和改正程序中的错误,主要在开发阶段进行。
步骤:错误定位——修改设计和代码——进行回归测试,软件调试分为静态和动态调试。
方法:1强行排错法 2回溯法3原因排除法第四章数据库基础数据库DB 数据库管理系统DBMS 数据库系统DBS(数据库、数据库管理系统、人员、系统硬件平台、系统软件平台)关系数据模型的基本结构是关系。
关系数据模型中数据的逻辑结构是二维表。
(以下略)公共基础知识练习题公共基础120题<一>.选择题(共80个)(1) 下面叙述正确的是______。
(C)A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对(2) 以下数据结构中不属于线性数据结构的是______。
(C)A. 队列B. 线性表C. 二叉树D. 栈(3) 在一棵二叉树上第5层的结点数最多是______。
(B)A. 8B. 16C. 32D. 15(4) 下面描述中,符合结构化程序设计风格的是______。
(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句(5) 下面概念中,不属于面向对象方法的是______。
(D)A. 对象B. 继承C. 类D. 过程调用(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码(7) 在软件开发中,下面任务不属于设计阶段的是______。
(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型(8) 数据库系统的核心是______。
(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库(9) 下列叙述中正确的是______。
(C)A. 数据库是一个独立的系统,不需要操作系统的支持B. 数据库设计是指设计数据库管理系统C. 数据库技术的根本目标是要解决数据共享的问题D. 数据库系统中,数据的物理结构必须与逻辑结构一致(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
(A)A. 内模式B. 外模式C. 概念模式D. 逻辑模式(11) 算法的时间复杂度是指______。
(C)A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数(12) 下列叙述中正确的是______。