05年9月等级考试二级C语言考前密卷3
2005年9月等级考试二级C语言考前密卷(四)
2005年9月等级考试二级C语言考前密卷(四)一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)算法的空间复杂度是指________。
A)算法程序的长度B)算法程序中的指令条数c)算法程序所占的存储空间D)算法执行过程中所需要的存储空间答案:D评析:一个算法的空间复杂度,一般是指执行这个算法所需的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
(2)下列关于栈的叙述中正确的是________。
A)在栈中只能插入数据B)在栈中只能删除数据C)栈是先进先出的线性表D)栈是先进后出的线性表答案:D评析:栈是限定在一端进行插入与删除的线性表。
栈是按照"先进后出"的或"后进先出"的原则组织数据的,因此,栈也被称为"先进后出"表或"后进先出"表。
(3)在深度为5的满二叉树中,叶子结点的个数为________。
A)32B)31C)16D)15答案:C评析:所谓满二叉树是指除最后一层外,每层上的所有结点都有两个子结点。
也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m个结点。
在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为5,故叶子结点数为25-1=24=16。
(4)对建立良好的程序设计风格,下面描述正确的是________。
A)程序应简单、清晰、可读性好B)符号名的命名要符合语法c)充分考虑程序的执行效率D)程序的注释可有可无答案:A评析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷二级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.数组指定部分逆序重放将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。
时间限制:1000内存限制:65536输入:有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。
第二行是n个整数,每两个整数之间用空格分隔。
输出:只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。
样例输入:5386541样例输出:56841参考答案:#include<bits/stdc++.h>using namespace std;int a[1000],b[1000];int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}for(int i=k-1;i>=0;i--){cout<<b[i]<<';';}for(int i=k;i<n;i++){cout<<a[i]<<';';}}第2题.谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,求考第k名学生的学.号和成绩。
时间限制:1000内存限制:65536输入:第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出:输出第k名学生的学.号和成绩,中间用空格分隔。
(注:请用%g输出成绩)。
样例输入:539078800167.89078800290.390788003619078800468.49078800573.9样例输出:9078800468.4参考答案:#include<bits/stdc++.h>using namespace std;int sum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;}int main(){int i,j,t,n,a[1000],b[1000];cin>>n;for(i=0;i<n;i++){cin>>a[i];b[i]=sum(a[i]);}for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if((b[j]<b[j+1])||((b[j]==b[j+1])&&(a[j]<a[j+1]))){t=b[j];b[j]=b[j+1];b[j+1]=t;t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n;i++){cout<<a[i]<<"";}return0;}第3题.内部元素之和输入一个整数矩阵,计算位于矩阵内部的元素之和。
二级C密卷答案解析
二级C密卷答案解析第一套1. 程序填空题【解析】填空1:向文件指针fp所指向的文件中写数据。
填空2:此语句是文件的关闭操作。
填空3:fname为所要打开的文件名。
【答案】1) fp2) fclose(fp);3) fname2. 程序修改题【解析】声明变量时,关键字与变量之间应该只空一格,程序中的else If应该小写。
【答案】1) fun(int a[],int m)2) else if(m>a[mid])3. 程序设计题【解析】题目中的子字符串的长度为2,故本题设计要点是将主字符串中相邻两个字符与输入的字符串相比较,统计子字符串在主字符串中出现的次数即可。
【答案】int fun(char *str,char *substr){int i,cnt = 0 ;for(i=0 ; str[i] ; i++)if(str[i]==substr[0] && str[i+1]==substr[1])cnt++;return cnt ;}第二套1. 程序填空题【解析】填空1:"r"是文件的使用方式之一,其含义是为输入打开一个文件用于输入填空2:判断是否到文件末尾填空3:fputc函数的一般调用形式为:fputc(ch,fp);其中,ch是要输出的字符,fp是文件指针变量。
【答案】1)”r”2) fs3)ft2. 程序修改题【解析】程序中判断是否等于某个值是应用==,除号应用/。
【答案】1) if (d%2==0)2) s /= 10;3. 程序设计题【解析】在Fibonacci数列中,每一项的值都是前两项之和。
设置一个中间变量f2,用来置放推出的最小数,所以可以用递推法求出大于s的最小的一个数。
采用函数的嵌套调用来完成,但若用嵌套调用方式会较难理解。
它要求求出比s大的最小一个数。
在本题的编程中采用的是while(f2<=s)当它的条件这假时,即得到了第一个比s大的数。
9月计算机二级《C语言》冲刺试题及答案
9月计算机二级《C语言》冲刺试题及答案2016年9月计算机二级《C语言》冲刺试题及答案一、程序填空题给定程序中,函数fun的功能是:判断形参s所指字符串是否是”回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。
”回文”是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是”回文”,而LEVLEV不是”回文”。
请在程序的下画线处填人正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!二、程序修改题下列给定程序中,函数fun的功能是:求出如下分数列的前n项之和。
三、程序设计题请编写—个函数void fun(int m,intk,int XX[ ]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的.数组中。
例如,若输入17,5,则应输出19、23、29、31、37。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:参考答案一、程序填空题【参考答案】【解题思路】填空1:根据函数体fun中,对变量lp和rp的使用可知,lp应指向形参S的起始地址,rp指向s的结尾地址,所以应填S。
填空2:rp是指向字符串的尾指针,当每做一次循环rp向前移动一个位置,所以应填:一一。
填空3:当lp和rp相等时,表示字符串是回文并返回1,否则就返回0,所以应填return 0。
二、程序修改题三、程序设计题【解题思路】本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。
本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存人数组XX中。
2023年9月青少年软件编程C语言等级考试试卷三级真题(含答案)
2023年9月青少年软件编程C语言等级考试试卷三级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.谁是你的潜在朋友“臭味相投”——这是我们描述朋友时喜欢用的词汇。
两个人是朋友通常意味着他们存在着许多共同的兴趣。
然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。
幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。
首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。
同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。
你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
时间限制:1000内存限制:65536输入第一行两个整数N,M,2<=N,M<=200。
接下来有N行,第i(i=1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)输出包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。
如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^^)样例输入452321样例输出1BeiJu1BeiJu参考答案:#include<iostream>using namespace std;int a[10000],ans,c;int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i]==a[j]){ans++;}}if(ans>1){cout<<ans-1<<endl;}else{cout<<"BeiJu"<<endl;}ans=0;}return0;}第2题.课程冲突小A修了n门课程,第i门课程是从第ai天一直上到第bi天。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
2005年9月全国计算机等级考试二级C语言笔试试题(含答案)
2005年9月全国计算机等级考试二级C语言笔试试题(含答案)一、选择题((1)—(10)每题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上答在试卷上不得分。
(1)下列叙述中正确的是A)程序设计就是编制程序B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试D)程序经调试改错后不必进行再测试(2)下列数据结构中,能用二分法进行查找的是A)顺序存储的有序线性表B)线性链表C)二叉链表D)有序线性链表(3)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(4)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(5)下列描述中正确的是A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题(6)在软件设计中,不属于过程设计工具的是A)PDL(过程设计语言) B)PAD图C)N-S图D)DFD图(7)下列叙述中正确的是A)软件交付使用后还需要进行维护B)软件一旦交付使用就不需要再进行维护C)软件交付使用后其生命周期就结束D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题B)数据安全问题C)大量数据存储问题D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3则下列操作中正确的是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型B)数据库管理系统C)数据库D)数据库管理员(11)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下叙述中正确的是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)若有语句:char *line[5];,以下叙述中正确的是A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下叙述中正确的是A)以上的说明形式非法B)NODE是一个结构体类型C)OLD是一个结构体类型D)OLD是一个结构体变量(17)以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
2005年9月国家二级(C语言)笔试真题试卷(题后含答案及解析)
2005年9月国家二级(C语言)笔试真题试卷(题后含答案及解析) 题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.下列叙述中正确的是______。
A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试正确答案:C解析:程序调试的任务是诊断和改正程序中的错误,改正以后还需要再测试。
2.下列数据结构中,能用二分法进行查找的是______。
A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表正确答案:A解析:二分法查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,(即从小到大,但允许相邻元素值相等)。
3.下列关于栈的描述正确的是______。
A.在栈中能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素正确答案:C解析:栈实际上也是线性表,只不过是一种特殊的线性表。
在这种特殊的线性表中,其插入和删除只在线性表的一端进行。
4.下列叙述中正确的是______。
A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响正确答案:D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
5.下列描述中正确的是______。
A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题正确答案:C解析:软件工程是计算机软件开发和维护的工程学科,它采用工程的概念原理、技术和方法来开发和维护软件,它把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来。
2005年秋浙江省高等学校计算机等级考试试卷(二级C)
2005年秋浙江省高等学校计算机等级考试试卷(二级C)说明:(1)考生应将试题一至试题四的答案涂在答题卡上,将试题五的答案填写在答卷上,否则作无效处理;(2)请将你的准考证号的后四位填写在答卷右下角的指定位置内;(3)考试时间为120分钟。
试题一、判断题(每题1分,共10分)说明:在以下提供的若干个陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。
(1)不同类型的变量在内存中占用存储空间的大小都是一样的。
(2)程序调试就是找出并改正C源程序中的语法错误。
(3)表示数学式3<x<5的C表达式也是3<x<5。
(4)程序设计语言必须具备数据表达和流程控制的功能。
(5)结构化程序设计语言的三种基本控制结构是顺序、选择和循环。
(6)‘\n’不是一个字符常量。
(7)表达式(1.23<<2)符合C语言语法。
(8)与float型数据相比,double型数据的精度高,取值范围大。
(9)在C语言中,表达式(010+2)的值是10。
(10)do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。
试题二、单选题(每题2分,共20分)(11) 若x是double型变量,n是int型变量,执行 (11) ,并输入3 1.25后,x=l.25, n=3.A、scanf(“%d%l f”,&n,&x);B、scanf(“%lf%d”,&x,&n);C、scanf(“%lf%d”,&n,&x);D、scanf(“%d%,l f”,&n,&x);(12) 若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C表达式是 (12) 。
A、(x%3!=0)||(y%3!=0)B、(x%3!=0)&&(y%3!=0)C、(x%3==0)||(y%3==0)D、(x%3==0)&&(y%3==O)(13)while( (13) )等价于while(x)。
A、x==0B、x!=0C、x==1D、x!=1(14) 下列程序段的输出结果是 (14) 。
2005年计算机二级c语言试题含答案
2005年全国计算机等级考试二级C语言真题3
2005年全国计算机等级考试二级C语言真题3 第3页(45)有以下程序point(char *p){p+=3;}main(){ char b[4]={'a','b','c','d'},*p=b;point(p); printf("%c\n",*p);}程序运行后的输出结果是 AA)aB)bC)cD)d(46)程序中若有如下的说明和定义语句char fun(char *);main(){char *s="one",a[5]={0},(*f1)()=fun,ch;……}以下选项中对函数fun的正确调用语句是 AA)(*f1)(a);B)*f1(*s);C)fun(&a);D)ch=*f1(s)(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct node{int data;struct node *next;} *p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 DA)p->next=q->next;B)p->next=p->next->next;C)p->next=r;D)p=q->next;(48)以下对结构体类型变量td的定义中,错误的是 CA)typedef struct aa{int n;float m;}AA;AA td;B)struct aa{int n;float m;} td;struct aa td;C)struct{int n;float m;}aa;struct aa td;D)struct{int n;float m;}td;(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 DA)feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)(50)有以下程序#include "stdio.h"void WriteStr(char *fn,char *str){FILE *fp;fp=fopen(fn,"W");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是 BA)startB)endC)startendD)endrt待续……2005年4月2日C笔试试卷及答案,快来对答案(三)!!!!!!!填空题(每空2分,共40分)(1)某二*树中,度为2的结点有18个,则该二*树中有 19 个叶子结点。
等级考试二级C语言考前密卷(十一)
2005年9月等级考试二级C语言考前密卷(十一)一、选择题(1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指________。
A)存储在外存中的数据B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示答案:D评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。
(2)下列关于栈的描述中错误的是________。
A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针答案:B评析:栈是一种特殊的线性表,又称先进后出表(FILO---First In Last Out)。
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是________。
A)冒泡排序为n2B)冒泡排序为nC)快速排序为n D)快速排序为n(n一1)/2答案:D评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。
快速排序法的最坏情况比较次数也是n(n-1)/2。
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。
A)log2n B)n/2C)n D)n+l答案:C评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。
对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
(5)下列对于线性链表的描述中正确的是________。
A)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的答案:A评析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
05年9月等级考试二级C语言考前密卷1(三)作者:不详来源:天新网 2006年1月6日一、选择题((1)~(10)每小题2分,(11)-(50)每小题1分,共60分)下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)算法的时间复杂度是指_______。
A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数答案:C评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
(2)下列叙述中正确的是________。
A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构答案:A评析:一般将数据结构分为两大类型:线性结构与非线性结构。
线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(3)下面关于完全二叉树的叙述中,错误的是_________。
A)除了最后一层外,每一层上的结点数均达到最大值B)可能缺少若干个左右叶子结点C)完全二叉树一般不是满二叉树D)具有结点的完全二叉树的深度为[log2n]+1答案:B评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。
完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。
(4)结构化程序设计主要强调的是_________。
A)程序的规模B)程序的易读性c)程序的执行效率D)程序的可移植性答案:B评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
(5)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计B)详细设计C)可行性分析D)需求分析答案:D评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。
编写软件规格说明书及初步的用户手册,提交评审。
(6)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是_________。
A)控制流B)加工C)数据存储D)源和潭答案:A评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
(7)软件需求分析一般应确定的是用户对软件的__________。
A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求答案:D评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。
因此,需求分析应确定用户对软件的功能需求和非功能需求。
(8)下述关于数据库系统的叙述中正确的是________。
A)数据库系统减少了数据冗余B)数据库系统避免了一切冗余C)数据库系统中数据的一致性是指数据类型的一致D)数据库系统比文件系统能管理更多的数据答案:A评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。
所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(9)关系表中的每一横行称为一个________。
A)元组B)字段C)属性D)码答案:A评析:在关系数据库中,关系模型采用二维表来表示,简称"表"。
二维表是由表框架及表元组组成。
在表框架中,按行可以存放数据,每行数据称为元组。
(10)数据库设计包括两个方面的设计内容,它们是________。
A)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计答案:A评析:数据库设计可分为概念设计与逻辑设计。
概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
(11)请读程序:#include<stdio.h>main(){int a;float b,c;scanf("%2d%3P%4f',&a,&b,&c);printf("\na=%d,b=%ec。
%f\n",a,b,c);}若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。
A)a=98,b=765,c=432 1B)a=1 0,b=432,c=8765C)a=98,b=765.000000,c=432 1.000000D)a=98,b=765.0,c=432 1.0答案:C评析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。
这时变量a、b、c的值分别为:98、765.000000、4321.000000。
(12)一个良好的算法由下面的基本结构组成,但不包括__________。
A)顺序结构B)选择结构c)循环结构 )跳转结构答案:D评析:1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
(13)请选出以下程序的输出结果________。
#include<stdio.h>sub(x,y,z)int x,y,*z:{*z=y-x;}main(){int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7答案:B评析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a /I,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。
(14)下面程序在屏幕上的输出是________。
main(){printf("ab\b\b c");}A)ab\b\b c B)a c C)abc D)ab c答案:B评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个"\"开头的字符序列,这样的字符称为"转义字符"。
常用的转义字符有:\n,换行;\t,水平制表;\b,退格;\r,回车。
(15)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。
A)pb=&x;B)pb=x;C)*pb=&x;D)*pb=*x答案:A评析:选项A将变量x的地址赋给指针变量pb,使pb指向x'选项B是将x的值当作地址赋给指针pb,Db指向一个地址等于x值的内存单元;选项c将x的地址赋给指针pb指向的地址等于x 的内存单元。
(16)设整型数i=5,则printf("%d",i+++++i);的输出为________。
A)10B)1l C)12D)语法错误答案:D评析:c语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、--),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。
(17)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*p;p=___________malloc(sizeof(im));则应填入__________。
A)int B)int C)(*int)D)(int*)答案:D评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。
(18)下面程序输出的结果是__________。
main(){int i=5,J=9,x;x=(I==j?i:(j=7));printf("\n%d,%d",I,J);}A)5,7B)5,5C)语法错误D)7,5答案:A评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。
本题中先判断i==j,不等,执行j=7;然后执行x=7。
故本题为A。
(19)若执行下面程序时从键盘上输入5,main(){int x:scanf("%d",&x);if(x++>5)printf("%d\n",x);else printf("%d\n",x--);}则输出是________。
A)7B)6C)5D)4答案:B评析:根据c语言的语法,x++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。
(20)若有以下定义和语句:int a[]={l,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是_________。
A)p+=2,*(p++)B)p+=2,*++pC)p+=3,*p++D)p+=2,++*p答案:A评析:引用一个数组元素,可以用:(1)下标法,如a[i]形式;(2)指针法,如*(a+i)或*(p+i)。
数组的下标从0开始,值为3的数组元素是a[2]。
B、c的内容为a[3],D将a[2]前自加,结果为4。
(21)设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是___________。
A)'a'&&'b'B)a<=b c)a‖+c&&b-c D)!((a<b)&&!c‖1)答案:D评析z选项A:'a'&&'b'是字符a与b的相与,不为0;选项B:a<=b,由题中变量赋值可知,结果为1。
选项c:a‖+c&&b-c,结果为1;选项D:!((a<b)&&!c‖1),运算结果为O。