计算机二级C++(机试)95

[模拟] 计算机二级C++(机试)95一、改错题第1题:改错题_________使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为Number=7Number=12注意:错误的语句在//******error******的下面,修改该语句即可。

试题程序:#include<iostream.h>class TC{public://******error******TC(int i):Number=i{//******error******return Number;}void set(int i){Number=i;}void display(){cout<<"Number="<<Number<<end1;}private:int Number;};void main(){//******error******TC *p=new TC;p—>display();p—>set(12);p—>display();return;}参考答案:1、应改为“TC(int i):Number(i)”。

2、应删除“return Number;”。

3、应改为“TC *p=new TC(7);”。

详细解答:本题第1处是声明构造函数,并使用初始化列表完成成员变量的初始化,可知第1处的初始化列表错误,正确的应该是“TC(im i):Number(i)”。

构造函数不能有返回值,不能用return来返回值,故第2处应将“return Number;”删除。

类实例在不指定构造函数的情况下,调用的是默认无参数的构造函数,此时成员变量Number是不确定的,在定义对象时,应使用已定义的构造函数,根据输出结果可知,P指向的对象的Number初始化值为7,故第3处应改为“TC *p=new TC(7);”。

二、简单应用题第2题:简单应用题_________使用VC++6.0打开考生文件夹下的源程序文件2.cpp。

阅读下列函数说明和代码,补充空出的代码。

函数sum(int n)用于计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。

注意:不能修改程序的其他部分,只能补充sum函数。

试题程序:#include<iostream.h>double sum(int n){}void main(){cout<<sum(80)<<end1;cout<<sum(500)<<end1;cout<<sum(1000)<<end1;return;}参考答案:int result=0; for(int i=11;i<=n;i++) { if((i%7==0)&&(i%11==0)) { result+=i; } } return result;详细解答:本题利用循环查找所有小于等于n的能被7和11整除的数,循环变量i从最小值11开始,到n结束,即11<=i<=n。

在函数中定义累加变量result用来保存求和结果,在循环体内,逐个判断每个i是否能被7和11整除,即(i%7==0)和(i%11==O)都满足的话,说明i能同时被7和11整除,将该值加到result上,循环结束返回result。

三、综合应用题第3题:综合应用题___________使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape 类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle 类继承CMyShape,并实现求面积、周长的两个函数。

在main函数中测试得到下面的结果:在CMyShape类构函数造内在CCircle类构造函数内在CMyShape类构造函数内在CRectangle类构造函数内myCircle:Area=314.159 Girth=62.8319myRectangle:Area=900 Girth=120具体要求如下:(1)定义求面积的纯虚函数,请在注释1后添加适当的语句。

(2)定义求周长的纯虚函数,请在注释2后添加适当的语句。

(3)请在注释3和注释4后添加适当的语句。

注意:除在指定位置添加语句之外,不要改动程序中的其他内容。

试题程序:#include<iostream.h>#include<math.h>#define PI 3.1415926class CMyPoint{public:int x,y;CMyPoint(int tx,int ty):x(tx),y(ty){}};class CMyShape{public:CMyShape(){cout<<"在CMyShape类构造函数内"<<end1;}//********1********//********2********protected:};class CCircle:public CMyShape{public:CCircle(CMyPoint i,double j):CMyShape(),arcCenter(i),radius(j){cout<<"在CCircle类构造函数内"<<end1;}double GetArea(){return PI *radius *radius;}double GetGirth(){return 2*PI*radius;}private:CMyPoint arcCenter;double radius;};class CRectangle:public CMyShape{public:CRectangle(CMyPoint lt,CMyPoint rb):leftTop(lt),rightBottom(rb),CMyShape(){cout<<"在CRectangle类构造函数内"<<end1;}double GetArea(){int width=abs(rightBottom.x-leftTop.x);int height=abs(rightBottom.y-leftTop.y);return width *height;}double GetGirth(){int width=abs(rightBottom.x-leftTop.x);int height=abs(rightBottom.y-leftTop.y);return 2*(width+height);}private:CMyPoint leftTop,rightBottom;};void main(){CMyShape *myShape=NULL;CCircle *myCircle=new CCircle(CMyPoint(5,5),10);CRectangle *myRectangle=new CRectangle(CMyPoint(0,0),CMyPoint(30,30));//********3********cout<<"myCircle:"<<"Area="<<myShape—>GetArea()<<"\t"<<"Girth="<<myShape—>GetGirth()<<end1;//********4********cout<<"myRectangle:"<<"Area="<<myShape—>GetArea()<<"\t"<<"Girth="<<myShape—>GetGirth()<<end1;}参考答案:1、应添加“virtual double GetAtea()=0;”。

2、应添加“virtual double GetGirth()=0;”。

3、应添加“myShape=myCircle;”。

4、应添加“myShape=myRectangle;”。

详细解答:本题在第1处声明纯虚函数,纯虚函数的定义格式为“virtual<函数类型><函数名>(<参数表>)=0”,由程序后面的函数体实现可知求面积纯虚函数的函数名称为GetArea,因此第1处应添加“virtual double GetArea()=0;”。

声明格式和1)相同,由求周长的函数具体实现可知该函数的名称为GetGirth,因此第2处应添加“virtual double GetGirth()=0;”。

主函数中定义了CMyShape 类对象指针myShape,CCircle类对象指针myCirele,CRectangle类对象指针myRectangle。

由类继承关系知,在调用子类的构造函数时,编译器会自动调用父类的默认构造函数来初始化父类,因此在实例化类CRectangle和类CCircle 的实例时,抽象父类CMyShape的默认构造函数会先被调用,因此在屏幕上先输出“在CMyShape类构函数造内”,然后输出“在CCirck类构造函数内”,实例化CRectangle对象的过程也是如此。

同时由纯虚函数的性质知,抽象基类不需要实现纯虚函数,它的实现是在子类中完成的,但通过用子类实例隐式转换成基类实例,可以使得基类实例具有子类实例的特性,因此可以访问子类的成员函数,myShape是基类指针,其虚函数GetArea和GetGirth没有实现,要求程序输出的面积值和周长值,只可能是myShape指向子类对象,调用子类的函数GetArea 和GetGirth打印输出,显然在第3处是myShape指向子类CCircle对象,即“myShape=myCircle;”。

同理第4处myShape指向子类CRectangle对象,即第4处应添加“myShape=myRectangle;”。

合集下载

计算机二级c考试真题及答案解析

计算机二级c考试真题及答案解析

计算机二级c考试真题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 3D. 'ab'答案:A解析:在C语言中,字符常量需要用单引号括起来,因此'a'是合法的字符常量。

选项B是字符串常量,选项C是整数常量,选项D是两个字符的序列,不是单个字符常量。

2. 若有以下定义:```cint a = 3, b = 4;```则表达式`a + b`的值是:A. 7B. 3C. 4D. 0答案:A解析:根据题目中给出的变量定义,a的值为3,b的值为4。

因此,表达式`a + b`的值是3 + 4,即7。

3. 在C语言中,以下哪个选项是正确的整型变量声明?A. int a;B. float b;C. double c;D. All of the above答案:D解析:在C语言中,int、float和double都是合法的整型和浮点型变量声明。

因此,选项A、B和C都是正确的整型变量声明。

4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D解析:在C语言中,&&代表逻辑与,||代表逻辑或,!代表逻辑非,它们都是C语言中的逻辑运算符。

5. 若有以下定义:```cint x = 10;```则表达式`x % 3`的值是:A. 1B. 2C. 3D. 0答案:A解析:表达式`x % 3`表示x除以3的余数。

10除以3的商是3,余数是1,因此`x % 3`的值是1。

6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. Both A and BD. None of the above答案:C解析:在C语言中,选项A和B都是正确的字符串声明方式。

二级C语言笔试95

二级C语言笔试95

二级C语言笔试95(总分:94.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:50,分数:60.00)1.若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k); print f("%d,%d/n",m,i); } 执行后的输出结果是( )。

(分数:1.00)A.8,6B.8,3C.6,4 √D.7,4解析:在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=kk得i=2*2为4,k=k+i,即k值为6,m=k故m=6。

所以4个选项中C正确。

2.数据库设计的4个阶段是:需求分析、概念设计、逻辑设计和( )。

(分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计√解析:数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。

数据库的设计阶段又分为如下4个子阶段:即需求分析、概念设计、逻辑设计和物理设计。

3.有以下程序段: typedef struct NODE {int num; struct NODE * next; }OLD;以下叙述中正确的是( )。

(分数:1.00)A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一个结构体类犁√D.OLD是一个结构体变量解析:将题目中的定义语句去掉前面的typedef和后面的OLD(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,NODE是结构体名,大括号里面的是结构体成员的定义。

此时要声明该结构体变量时需要使用struct加结构体名.起来声明,struct NODE一起构成一个结构体类型,就好像字符类型char。

若只去掉前面的typedcf,就是一条结构体定义同时声明一个结构体变量OLD的语句,因为OLD的前面部分是struct NODE的完整写法,可以看作是struct NODE。

C语言允许用typedef说明一种新类型名,其语法格式为: typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。

3月全国计算机二级c语言考题试卷及答案

3月全国计算机二级c语言考题试卷及答案

3月全国计算机二级C语言考题试卷及答案一、选择题(1)下列关于栈叙述正确的是A)栈顶元素先能被删除B)栈顶元素后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求解析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是A)1:1联系 B)1:m联系C)m:1联系 D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234 B)'123'C)123 D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)LiliB)name=LiliC)Lili num=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A)BY B)BT C)YT D) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

计算机二级c语言得分分布

计算机二级c语言得分分布

计算机二级c语言得分分布我们来看一下计算机二级c语言考试的总体分布情况。

根据往年的数据统计,考试成绩一般呈现正态分布,即大部分学生的得分集中在中间分数段,少部分学生的得分偏高或偏低。

这是因为c语言作为一门基础课程,需要学生具备一定的编程能力和逻辑思维能力,而这些能力的培养需要一定的时间和经验。

因此,大部分学生在考试中的得分会相对稳定。

接下来,我们来分析一下不同得分段的学生情况。

一般来说,得分在90分以上的学生属于优秀水平,他们对c语言的语法和常用函数掌握得很好,并且能够独立完成一些较为复杂的编程任务。

得分在80-90分之间的学生属于良好水平,他们对c语言掌握较好,能够熟练运用常用语法和函数进行编程。

得分在70-80分之间的学生属于中等水平,他们对c语言的掌握程度还有待提高,需要更多的练习和实践。

得分在60-70分之间的学生属于及格水平,他们对c 语言的掌握较为薄弱,需要加强基础知识的学习和理解。

而得分在60分以下的学生属于不及格水平,他们对c语言的掌握非常有限,需要加倍努力提高自己的编程能力。

除了总体分布和不同得分段的学生情况,我们还需要关注考试中的常见错误和易错点。

在c语言考试中,常见的错误包括语法错误、逻辑错误和运行错误。

语法错误主要是指对于c语言的基本语法规则掌握不牢固,比如缺少分号、括号不匹配等。

逻辑错误主要是指对于编程逻辑的理解有误,导致程序运行结果不符合预期。

运行错误主要是指程序在运行过程中出现了错误,比如数组越界、空指针引用等。

为了避免这些错误,学生需要加强对于c语言的学习和理解,多进行编程实践,提高自己的错误排查和调试能力。

除了错误和易错点,我们还需要关注学生在编程能力上的提升。

在c语言的学习过程中,学生不仅需要掌握基本的语法规则和常用函数,还需要培养自己的编程思维和解决问题的能力。

编程思维主要包括问题分析、算法设计和程序实现等方面,而解决问题的能力则需要学生具备良好的逻辑思维和创新能力。

江苏省计算机二级c语言机考试题及答案

江苏省计算机二级c语言机考试题及答案

江苏省计算机二级c语言机考试题及答案一、选择题1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言是一种面向过程的语言C. C语言源于B语言D. C语言是一种解释型语言答案:D. C语言是一种解释型语言2. 在C语言中,可以用于定义宏的命令是:A. #ifB. #defineC. #includeD. #endif答案:B. #define3. 在C语言中,标识符的命名规则中,不允许使用的符号是:A. 下划线(_)B. 感叹号(!)C. 加号(+)D. 美元符号($)答案:B. 感叹号(!)4. C语言中的运算符中,以下优先级最高的是:A. 关系运算符B. 逻辑运算符C. 赋值运算符D. 算术运算符答案:C. 赋值运算符5. 下列程序中,有语法错误的是:A.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```B.```c#include <stdio.h>int main() {printf("Hello, World!\n") return 0;}```C.```c#include <stdio.h>int main() {printf("Hello, World!\n"); return;}```D.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;```答案:B.```c#include <stdio.h>int main() {printf("Hello, World!\n")return 0;}```二、填空题1. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 5;printf("%d", a++);printf("%d", ++a);return 0;}```答案:562. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 2;int b = 3;int c = a | b;int d = a & b;printf("%d\n", c);printf("%d\n", d);return 0;}```答案:3, 2三、编程题编写一个程序,输出1~100之间所有能同时被3和5整除的数,并计算这些数的平均值。

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1(总分:68.00,做题时间:90分钟)一、选择题(总题数:34,分数:68.00)1.结构化程序设计的基本原则不包括()。

(分数:2.00)A.多态性√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

2.在面向对象方法中,不属于"对象"基本特点的是()。

(分数:2.00)A.一致性√B.分类性C.多态性D.标识唯一性解析:解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。

所以选择A)。

3.面向对象方法中,继承是指()。

(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制√解析:解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。

广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

4.结构化程序所要求的基本结构不包括()。

(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:解析:只有B)选项369可以用无符号整数来表示和存储。

A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。

选项D)是一个整数集合得用数组来存储。

6.下列选项中不属于结构化程序设计原则的是()。

(分数:2.00)A.可封装√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

2023年计算机等级二级考试C语言试题及答案

一、选择题在下列各题旳A)、B)、C)、D)四个选项中,只有一种选项是对旳旳,请将对旳旳选项涂写在答题卡对应位置上,答在试卷上不得分。

(1)程序流程图中带有箭头旳线段体现旳是CA)图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则旳是 CA)抽象B)模块化C)自底向上D)信息隐蔽(3)下列选项中,不属于模块间耦合旳是 CA)数据耦合B)标识耦合C)异构耦合D)公共耦合(4)下列论述中,不属于软件需求规格阐明书旳作用旳是DA)便于顾客、开发人员进行理解和交流B)反应出顾客问题旳构造,可以作为软件开发工作旳基础和根据C)作为确认测试和验收旳根据D)便于开发人员进行需求分析(5)算法旳时间复杂度是指CA)执行算法程序所需要旳时间B)算法程序旳长度C)算法执行过程中所需要旳基本运算次数D)算法程序中旳指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用旳算法是BA)堆排序B)直接插入排序C)迅速排序D)B)和C) (7)栈底至栈顶依次寄存元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列也许是BA)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面旳设计内容,它们是AA)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)构造特性设计和行为特性设计(9)关系表中旳每一横行称为一种AA)元组B)字段C)属性D)码(10)设有体现学生选课旳三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC旳关键字(键或码)为 CA)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)如下不对旳旳论述是DA)在C程序中,逗号运算符旳优先级最低B)在C程序中,APH和aph是两个不同样旳变量C)若a和b类型相似,在计算了赋值体现式a=b后b中旳值将放入a中,而b中旳值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言顾客标识符旳是BA)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,CaseD)2a,Do,Sizeof(13)如下选项中,不能作为合法常量旳是BA)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 (14)在C语言中,运算对象必须是整型数旳运算符是AA)% B)\ C)%和\D)**(15)若变量均已对旳定义并赋值,如下合法旳C语言赋值语句是AA)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;(16)有如下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a旳ASCII码值为97,则执行上述程序段后输出成果是DA)因变量类型与格式描述符旳类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A旳ASCII代码值为65,若变量kk为char型,如下不能对旳判断出kk中旳值为大写字母旳体现式是BA)kk>=′A′&&kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isa lpha(kk)&&(kk<91)(18)当变量c旳值不为2、4、6时,值也为"真"旳体现式是BA)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若有条件体现式(exp)?a++:b--,则如下体现式中能完全等价于体现式(exp)旳是BA)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)(20)如下不对旳旳定义语句是BA)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\x10′, ′xa′, ′\x8′};(21)下列程序执行后旳输出成果是Bmain(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1;printf("%d\n",a[1][2];)A)3 B)6 C)9 D)随机数(22)设有如下程序段Bint x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中旳控制体现式是非法旳D)程序段执行无限次(23)下面程序段旳运行成果是Cchar *s="abcde";s+=2;printf("%d",s);A)cde B)字符′c′ C)字符′c′旳地址D)无确定旳输出成果(24)阅读下列程序,则执行后旳成果为A#include "stdio.h"main(){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}A)3e,6 B)62,5 C)56,5 D)3E,6(25)下面判断对旳旳是CA)char *a="china";等价于char *a;*a="china"; B)char str[5]={"china"};等价于char str[]={"china"};C)char *s="china";等价于char *s;s="china"; D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";(26)若有定义:int a[2][3];,如下选项中对a数组元素对旳引用旳是DA)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误旳输入语句是DA)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]); (28)有如下程序(29)#include <stdio.h>#define N 5#define M N+1#define f(x) (x*M)main(){ int i1,i2;i1=f(2);i2=f(1+1);printf("%d %d\n",i1,i2);}程序旳运行成果是BA)12 12 B)11 7 C)11 11 D)12 7(29)若有如下阐明和定义union dt{ int a; char b; double c;}data;如下论述中错误旳是DA)data旳每个组员起始地址都相似B)变量data所占内存字节数与组员c所占字节数相等C)程序段:data.a=5;printf("%f\n",data.c);输出成果为5. D)data可以作为函数旳实参(30)有如下程序#include<stdio.h>main(){FILE *fp;int k,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后旳输出成果是DA)1 2 B)1 4 C)123 4 D)123 456 (31)若已定义int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中则对a数组元素不对旳旳引用是DA)a[p-a] B)*(&a[i]) C)p[i] D)a[10](32)有如下程序#include <stdio.h>void fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");}程序旳运行成果是CA) B) C) D)(33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为A#include <stdio.h>#include <ctype.h>#include <string.h>int fun (char *str){ int i,j=0;for(i=0;str[i]!=′ \0′;i++)if(str[i]!=′ ′)str[j++]=str[i];str[j]= ′\0′;}main(){char str[81];int n;printf("Input a string : ");gets(str);puts(str);fun(str);printf("%s\n",str);}A)asdafaaz67 B)asd af aa z67 C)asd D)z67(34)有如下程序int fun(int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf("%d",&x); x=fun(x);printf("%d\n",x)}执行程序时,给变量x输入10,程序旳输出成果是AA)55 B)54 C)65 D)45(35)下面程序段中,输出*旳个数是 Cchar *s="\ta\018bc";for(;*s!='\0';s++)printf("*");A)9 B)5 C)6 D)7(36)C语言构造体类型变量在程序运行期间BA)TC环境在内存中仅仅开辟一种寄存构造体变量地址旳单元B)所有旳组员一直驻留在内存中C)只有最开始旳组员驻留在内存中D)部提组员驻留在内存中(37)已知函数旳调用形式为fread(buf,size,count,fp),参数buf旳含义是CA)一种整型变量,代表要读入旳数据项总数B)一种文献指针,指向要读旳文献C)一种指针,指向要读入数据旳寄存地址D)一种存储区,寄存要读旳数据项(38)设有如下语句char x=3,y=6,z;则z旳二进制值是BA) B) C) D)(39)在C语言中,只有在使用时才占用内存单元旳变量,其存储类型是AA)auto和register B)extern和register C)auto和static D)static和register (40)设有定义语句int (*f)(int);,则如下论述对旳旳是BA)f是基类型为int旳指针变量B)f是指向函数旳指针变量,该函数具有一种int类型旳形参C)f是指向int类型一维数组旳指针变量D)f是函数名,该函数旳返回值是基类型为int类型旳地址二、填空题请将每一种空旳对旳答案写在答题卡序号旳横线上,答在试卷上不给分。

全国计算机等级考试二级C语言【附详解】


是对顺序队列的改进,故循环队列是队列的一种顺序存储结正确的是
A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈和队列都是非线性结构 D、以上三种说法都不对
栈是一种后进先出的线性表
队列是一种先进先出的线性表,二者均是线性结构,
答案为选项D。
ppt课件
4
一棵二叉树共有25个节点,其中5个是子节点,那么度为1的节
一个C程序有且只有一个主函数 main()。
一个C 程序可以包含多个不同名字的子函数
C程序在书写时没有严格的缩进要求。
ppt课件
16
设有以下语句 Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2); 若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是 A、A和B之间用逗号间隔 B、A和B之间不能有任何间隔符 C、A和B之间可以用回车间隔 D、A和B之间用空格间隔
软件详细设计- - 程序流程图(PDF)和PAD(问题分析图)是过程设计的常 用工具 数据流图(DFD图 ) 是 软 件 定 义 阶 段 结 构 化 分 析 方 法 常 用 的 工 具 。
ppt课件
12
针对简单程序设计,以下叙述的实施步骤正确的是 A、确定算法和数据结构、编码、调试、整理文档 B、编码、确定算法和数据结构、调试、整理文档 C、整理文档、确定算法和数据结构、编码、调试 D、确定算法和数据结构、调试、编码、整理文档
在输入格式中定义好了”%c%c”,其中没有任何符号,所以中间不能加任何字符,包 含不能加逗号、回车和空格,因为这些也算是字符。
ppt课件
17
以下选项中非法的字符常量是 A、’\102’ B、’\65’ C、’\xff’

全国计算机等级考试二级C语言题型分析

《全国计算机等级考试二级C语言》资格考试题型分析二级C考试分笔试和机试两部分,两部分总分均为100分,两部分考试均需60分以上才能合格发放证书。

若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补考合格发放证书。

若二科均在85分以上,在合格证书上将加印“优秀”字样,若二科均在70分以上,在合格证书上将加印“良好”字样。

(一)笔试笔试内容分两部分。

公共基础知识考核内容:30分;C语言基础知识考核内容:70分。

题型分析如下:1、单向选择题40道题,共70分。

分值分布如下:其中(1)-(10)、(21)-(40)小题,每題2分,(11)-(20)小题,每题1分。

考核内容分布如下:(1)-(10)小题为公共基础知识考核内容,共计20分;(11)-(40)小题为C语言知识考核内容,共计50分。

2、填空题15个空,每空2分,共30分。

考核内容分布如下:(1)-(5)空为公共基础知识考核内容,共计10分;(6)-(15)空为C语言知识考核内容,共计20分。

(二)机试机试三道题:程序填空题,30分;程序修改题,30分;程序设计题,40分。

1、程序填空题通常会给出一段源代码,设计三个空需要你来填写。

每空10分。

例如:#include#include#define M 5#define N 20void fun(char (*ss)[N]){ int i, j, k=0, n, m, len;for(i=0; i{ len=strlen(ss[i]);if(i==0) n=len;if(len>n) {/**********found**********/n=len; ___1___=i;}}for(i=0; iif (i!=k){ m=n;len=strlen(ss[i]);/**********found**********/for(j=___2___; j>=0; j--)ss[i][m--]=ss[i][j];for(j=0; j/**********found**********/___3___='*';}}main(){ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};int i;printf("\nThe original strings are :\n");for(i=0; iprintf("\n");fun(ss);printf("\nThe result:\n");for(i=0; i}2、程序修改题通常会给出一段源代码,设计2-3个错误需要你来修改。

全国计算机二级机试满分答案.doc

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h) {int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档