2007年4月全国计算机等级考试二级笔试试卷 C语言程序设计

合集下载

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。

A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。

答案选择B选项。

[单选题]4.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。

制定软件集成测试计划属于概要设计阶段的任务。

答案选择D选项。

[单选题]5.结构化程序的三种基本控制结构是()。

A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。

答案选择A选项。

[单选题]6.构成计算机软件的是()。

A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

答案选择D选项。

[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。

A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。

根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

所以C文件就是一个字节流或一个二进制流。

2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。

A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。

3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。

2007—2008年全国计算机等级考试二级C语言真题及参考答案

2007—2008年全国计算机等级考试二级C语言真题及参考答案

2007年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)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c 中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

全国计算机等级考试二年级C语言笔试试卷含答案

全国计算机等级考试二年级C语言笔试试卷含答案

全国计算机等级考试二年级C语言笔试试卷含答案文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]2007年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)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(四)

全国计算机等级考试二级-基础知识和C语言程序设计  模拟考试试卷及答案(四)

全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(四)一、选择题(1)通常所说的主机主要包括A)CPU B)CPU和内存C)CPU、内存与外存 D)CPU、内存与硬盘(2)在微机系统中,最基本的输入输出模块BIOS存放在A)RAM中 B)ROM中 C)硬盘中 D)寄存器中(3)一个24*24点阵的汉字字形信息所占的字节数为A)2 B)24 C)32 D)72(4)bit的意思是A)字 B)字长 C)字节 D)二进制位(5)某学校的工资管理程序属于A)系统程序 B)应用程序C)工具软件 D)文字处理软件(6)与十六进制数BB等值的十进制数是A)187 B)188 C)185 D)186(7) 设一张软盘已染上病毒,能清除病毒的措施是A)删除该软盘上的所有文件 B)格式化该软盘C)删除该软盘上的所有可执行文件 C)删除该软盘上的所有批处理文件(8)一张3.5英寸双面高密度软盘片的容量为A)360KB B)720KB C)1.44MB D)1.2MB(9)与二进制小数0.1等值的十六进制小数为A)0.1 B)0.2 C)0.4 D)0.8(10)DOS系统的热启动与冷启动的不同之处为热启动时A)不检测键盘、处设接口与内存 B)不提示用户输入日期与时间C)不用装入文件 D)不能从软盘启动(11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令A)COPY K1+K2+K3 K4 B)COPY K1+K2+K3+K4C)COPY K1+K2+K3+K4 K4 D)COPY K4+K1+K2+K3(12)下列文件名中可以作为批处理文件名的是A)AUTOEXC.C B)AUTOEXECC)ATX.BAT D)AUTO.TXT(13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令A)DIR \ PRN B)TYPE \ PRNC)DIR PRN C)TYPE PRN(14)设可执行文件 ABC.EXE 所需要的本该由键盘输入的数据已经按格式存放在文件XYZ 中,并要求执行结果放在文件 XYZ 中输入数据的后面. 下列命令中正确的是A) ABC XYZ B) ABC XYZC) ABC <XYZ(15)设当前盘中某一目录路径为 \A\B\C,当前目录为\A.下列命令中肯定出错的是A)MD \A\C B) CD C) MD \A\B\A D) MD \A\B(16)设 A 盘的目录结构如下:根目录│┌─────┬┴──┬───┬───┬────┐│ │ │ │ │ │ABC D1子目录 DX.C Q.DAT D2子目录A.FOR│ │┌────┬─┴──┬───┐┌───┬───┐│ │ │ │ │ │ │B.PAS D3子目录 Y.BAS A.C A1.C D4子目录XYZ.C│┌────┬────┬────┐│ │ │ │QR.C NA.C A.TXT B.C如果当前盘为 C 盘,A 盘的当前目录为\D2,则下列对 A 盘上文件QR.C 的指定中,合法的是A)\D2\D4\QR.C B)D4\QR.CC)A:D4\QR.C D)A:D2\D4\QR.C(17)下列DOS命令中,有错误的是A)TYPE AAB.FORCON B)TYPE ?AB.FORC)COPY *.C CON D)COPY CON PRN(18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C 盘根目录下的文件XYZ.TXT的后面,正确的命令是A)COPY C:\XYZ.TXT+AB1.TXTB)COPY AB1.TXTC:\XYZ.TXTC)TYPE AB1.TXTC:\XYZ.TXTD)AB1.TXT+C:\XYZ.TXTC:\XYZ.TXT(19)下列命令中合法的是A)DISKCOPY A: A: B)DISKCOPY A: C:C)DISKCOPY C: A: D)DISKCOPY C: D:(20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A.要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令A)COPY \*.C *.FOR B)COPY *.C \A\*.FORC)COPY *.FOR \*.C D)COPY \A\*.C *.FOR(21)下列不正确的转义字符是A)'\\' B)'\" C)'074' D)'\0'(22)若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(23)表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)(24)设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为A) 4 B) 3 C) 2 D) 1(25)设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A) 10 B) 20 C) 40 D) 30(26)下列可作为C语言赋值语句的是A) x=3,y=5 B) a=b=6C) i--; D) y=int(x);(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A) 不定值 B) 2 C) 1 D) 0(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A) 100765.12 B) i=100,f=765.12C) 100765.12 D) x=100y=765.12(29)设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y<=50;y++){ if(x=10))break;if (x%2==1){ x+=5; continue;}x-=3;}A) 2 B) 4 C) 6 D) 8(30)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度(31)以下叙述中不正确的是A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(32)假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a; a++; }while (b--<0);A) 9 B) -2 C) -1 D) 8(33)设j为int型变量,则下面for循环语句的执行结果是for( j=10;j3;j--){ if(j%3)j--;--j; --j;printf("%d ",j);}A) 6 3 B) 7 4 C) 6 2 D) 7 3(34)设有以下宏定义:#define N 3#define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为A) 出错 B) 42 C) 48 D)54(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int 型变量,则不能正确执行的语句是A)k=*P1+*P2; B)p2=k;C)P1=P2; D)K=*P1 * (*P2);(36)设有如下定义:int arr[]={6,7,8,9,10};int * ptr;则下列程序段的输出结果为ptr=arr;* (ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));A)8,10 B)6,8 C)7,9 D)6,10(37)以下程序的输出结果是main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)23(38)执行以下程序段后,m的值为int a[2][3]={ {1,2,3},{4,5,6} };int m,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A) 15 B) 14 C) 13 D) 12(39)有以下程序段char arr[]="ABCDE";char *ptr;for(ptr=arr;ptr<arr+5;ptr++)printf("%s\n",ptr);输出结果是A) ABCD B) A C) E D)ABCDEB D BCDEC C CDED B DEE A E(40)有以下程序main(){ int x,i;for(i=1;i<=50;i++){ x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf("%d,i);}}输出结果是A) 28 B) 27 C) 42 D) 41(41)有下列程序#include<stdio.hmain(){ union{ int k;char i[2];} *s,a;s=&a;s-i[0]=0x39; s-i[1]=0x38;printf("%x\n",s-k);}输出结果是A) 3839 B) 3938 C) 380039 D) 390038(42)有以下程序#include <stdio.hmain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A) 2,1 B) 3,2 C) 4,3 D) 2,-1(43)设有如下定义:int (*ptr)*();则以下叙述中正确的是A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是一个函数名,该函数的返回值是指向int型数据的指针(44)有以下程序#include <stdio.hstruct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n",(*p).name); }main(){struct stu students[3]={ {9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18} };fun(students+2);}输出结果是A) Zhang B)Zhao C) Wang D) 18(45)设有以下说明和定义:typedef union{ long i; int k[5]; char c; }DATE; struct date{ int cat; DATE cow; double dog; } too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date ) +sizeof(max));A) 26 B) 30 C) 18 D) 8(46)有以下程序main(){ char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));}输出结果是A) gm B) rg C) or D) ga(47)有以下程序viod fun (int a,int b,int c){ a=456; b=567; c=678;}main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d\n",c,d);}输出结果是A)30,20,10 B)10,20,30C)456,567,678 D)678,567,456(48)有以下程序int fun(int x,int y,int *cp,int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是A)50,30 B)30,J50 C)80,-20 D)80,20(49)有以下程序main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i<j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11(50)有以下程序#include "atdio.h"int abc(int u,intv);main (){ int a=24,b=16,c;c=abc(a,b);printf('%d\n",c);}int abc(int u,int v){ int w;while(v){ w=u%v; u=v; v=w }return u;}输出结果是A) 6 B) 7 C) 8 D) 9二、填空题(1)自动批自理文件名为_______.(2)DOS命令分为内部命令与外部命令,COMP命令属于_______命令.(3)设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容.这一条DOS命令应为__ _ (4)要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为__ _(5)设DOS外部命令文件所在的路径均已用PATH命令打通.现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为___(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___ 1.0+x/y(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___for(i=0,j=10;i<=j;i++,j--) k=i+j;(8)设有以下定义的语句:int a[3][2]={10,20,30,40,50,60}, (*p)[2];p=a;则 *(*(p+2)+1)值为___(9)以下程序的输出结果是___#include <stdio.hint fun(int x,int y){ static int m=0,i=2;i+=m+1;m=i+x+y;return m}main(){ int j=4,m=1,k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}(10)函数fun的功能是:使一个字符串按逆序存放,请填空void fun (char str[]){ char m; int i,j;for(i=0,j=strlen(str);i<____;i++,j--){ m=str[i];str[i]=__ _;str[j-1]=m;}printf("%s\n",str);}(11)以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空.#include"ctype.h"#include"stdio.h"main(){ char str[81],*sptr;int i;for(i=0;i<80;i++){ str[i]=getchar();if(str[i]=='\n') break;}str[i]=____;sptr=str;while(*sptr) putchar(*sptr____(13));}(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1.请填空.#includemain(){ char str[100],str2[100],c;int i,s;printf("\n input string 1:\n"); gest(str1);printf("\n input string 2:\n"); gest(str2);i=0;while((strl[i]==str2[i]&&(str1[i]!=____))i++;s=____;printf("%d\n",s);}(13)以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请填空.#include<stdio.hmain(){ FILE *fp;char str[100]; int i=0;if((fp=fopen("text.txt",__ __))==NULL){ printf("can't open this file.\n");exit(0);}printf("input astring:\n"); gest(str);while (str[i]){ if(str[i]='a'&&str[i]<='z')str[i]=___ _;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("test.txt",____);fgets(str,100,fp);printf("%s\n",str);fclose(fp);}(14) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空.#include.<stdio.hmain(){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int c[64],d,i=0,base;long n;printf("enter a number:\n"); scanf("%ld",&n);printf("enter new base:\n"); scanf("%d",&base);do{ c[i]=____;i++; n=n/base;} while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c",b____;}}_答案一、选择题(1)B (2)B (3)D (4)D (5)B(6)A (7)B (8)C (9)D (10)A(11)D (12)C (13)A (14)B (15)D(16)C (17)B (18)A (19)A (20)A(21)C (22)D (23)A (24)D (25)B(26)C (27)C (28)B (29)C (30)C(31)D (32)D (33)B (34)C (35)B(36)D (37)B (38)A (39)D (40)D(41)A (42)A (43)C (44)B (45)B(46)D (47)A (48)C (49)B (50)C二、填空题(1)AUTOEXEC.BAT(2)外部(答外部命令不扣分)(3)COPY A:*.DAT PRN(在 COPY 后面与A:*.DAT后面都至少要有一个空格)(4)RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR(在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格) (5)ATTRIB+R WST.TXT(在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIBWST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)(6)1.0或1(7)10(8)60(9)8,17(10)strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1str[j-1]或*(str+j-1)(11)'\0' 或0++(12) '\0'或0strl[i]-str2[i](13) "w"或"w+"或"wt"或"w+t"或"""wt+"str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'"r"或"r+"或"r+t"或"rt+"(14)n%base[d]。

全国计算机等级考试二级C语言笔试试卷及标准解析

全国计算机等级考试二级C语言笔试试卷及标准解析

全国计算机等级考试二级C语言笔试试卷及标准解析全国计算机等级考试二级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)对如下二叉树 ABDECF 进行后序遍历的结果为A)ABCDEFB)DBEAFC C)ABDECFD)DEBFCA (7)在深度为7的满二叉树中叶子结点的个数为A)32B)31 C)64D)63 (8)“商品”与“顾客”两个实体集之间的联系一般是 A)一对一B)一对多 C)多对一D)多对多 (9)在E-R图中用来表示实体的图形是 A)矩形B)椭圆形 C)菱形D)三角形 (10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB 和DBMS D)没有任何关系 (11)以下不合法的用户标识符是A)j2_KEYB)Double C)4dD)_8_ (12)以下不合法的数值常量是 A)011B)1e1 C)8.0E0.5D)0xabcd (13)以下不合法的字符常量是A)′\018′B)′\"′ C)′\\′D)′\xcc′(14)表达式3.6-5/2+1.2+5%2的值是 A)4.3B)4.8C)3.3 D)3.8(15)以下能正确定义字符串的语句是 A)char str[]={′\064′};B)char str="kx43"; C)charstr="; D)char str[]="\0";(16)以下数组定义中错误的是 A)int x[][3]={0};B)int x[2][3]={{l2}{34}{56}}; C)int x[][3]={{l23}{456}}; D)int x[2][3]={l23456};(17)若要求从键盘读入含有空格字符的字符串应使用函数A)getcB)gets C)getcharD)scanf(18)以下四个程序中完全正确的是 A)#includeB)#include main;main {/_programming_/{/_/programming /_/ printf("programming!\n");}printf("programming!\n");}C) #include D) include mainmain{/_/_programming_/_/{/_programming_/printf("programming!\n");} printf("programming!\n");}(19)若有定义:float x=1.5;int a=1b=3c=2;则正确的switch语句是 A)switch(x)B)switch((int)x); {case1.0:printf("_\n"); {case 1:printf("_\n");case2.0:printf("__\n");} case 2:printf("__\n");} C)switch(a+b) D)switch(a+b) {case 1:printf("_\n");{case 1:printf("_\n"); case 2+1:printf("__\n");}case c:printf("__\n");} (20)若各选项中所用变量已正确定义函数fun中通过return语句返回一个函数值以下选项中错误的程序是 A)mainB)float fun(int aint b){……} {……x=fun(210);……}main float fun(int aintb){……}{……x=fun(i,j);……} C)floatfun(intint); D)main main {floatfun(int iint j);{……x=fun(210);……}……x=fun(i,j);……}float fun(int aint b){……}float fun(int aint b){……} (21)在以下给出的表达式中与while(E)中的(E)不等价的表达式是A)(!E==0)B)(E>0‖EB)while(ch=getchar!=′N′)printf("%c",ch);C)while(ch=getchar==′N′)printf("%c",ch);D)while((ch=getchar)==′N′)printf("%c",ch); (23)已定义以下函数int fun(int _p){return _p;)fun函数返回值是 A)不确定的值 B)一个整数 C)形参P中存放的值 D)形参P的地址值 (24)若有说明语句:double _pa;则能通过scanf语句正确给输入项读入数据的程序段是 A)_p=&a; scanf("%1f"p);B)_p=&a; scanf("%f"p); C)p=&a; scanf("%1f"_p); D)p=&a; scanf("%1f"p); (25)现有以下结构体说明和变量定义如图所示指针p、q、r分别指向一个链表中连续的三个结点。

2007年4月国家二级(JAVA)笔试真题试卷(题后含答案及解析)

2007年4月国家二级(JAVA)笔试真题试卷(题后含答案及解析)

2007年4月国家二级(JA V A)笔试真题试卷(题后含答案及解析) 题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.下列叙述中正确的是A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关正确答案:B解析:本题考查数据结构中有关算法的基本知识和概念。

数据的结构,直接影响算法的选择和效率。

而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。

因此,数据的逻辑结构和存储结构都影响算法的效率。

选项A的说法是错误的。

算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。

因此,选项B的说法是正确的。

数据之间的相互关系称为逻辑结构。

通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。

存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。

存储结构在计算机中有两种,即顺序存储结构和链式存储结构。

可见,逻辑结构和存储结构不是一一对应的。

因此,选项C的说法是错误的。

有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。

但是,这两者之间没有必然的联系。

因此,选项D的说法是错误的。

2.在结构化程序设计中,模块划分的原则是A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度正确答案:D解析:本题考查软件工程中软件设计的概念和原理。

人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。

《全国计算机等级考试二级教程C语言程序设计》

《全国计算机等级考试二级教程C语言程序设计》

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案第一章程序设计基本概念1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______.答案:.exe1。

2 C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是____ _.答案:。

c 。

obj 。

exe1.3 结构化程序由_____、_____、_____三种基本结构组成.答案:顺序、选择、循环第二章 C程序设计的初步知识一、选择题2。

1 以下选项中正确的整型常量是A)12. B)—20 C)1,000 D)4 5 6答案:B2.2 以下选项中正确的实型常量是A)0 B)3。

1415 C)0.329×10(2)(10的2次方) D)。

871答案:D2。

3 以下选项中不正确的实型常量是A)2。

607E-1 B)0。

8103e 2 C)—77。

77 D)456e-2答案:B2。

4 以下选项中不合法的用户标识符是A)abc。

c B)file C)Main D)PRINTF答案:A2.5 以下选项中不合法的用户标识符是A)_123 B)printf C)A$D)Dim答案:C2。

6 C语言中运算对象必需是整型的运算符是A)%B)/ C)!D)**答案:A2.7 可在C程序中用作用户标识符的一组标识符是A)void define WORDB)as_b3 _123 IfC)For -abc caseD)2c DO SIG答案:B2。

8 若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4)D)a=a+7=c+b答案:B2.9 以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值.B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式.C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b 的值由原值变为0.D)已有a=3,b=5。

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解

全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。

作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。

选择题部分只能进入一次,退出后不能再次进入。

选择题部分不单独计时。

)1.下列叙述中正确的是()。

A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。

所以没有根结点或没有叶子结点的数据结构一定是非线性结构。

AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。

答案选择D选项。

2.以下叙述中错误的是()。

A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。

C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。

答案选择A选项。

3.C语言主要是借助以下()功能来实现程序模块化的。

A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。

2007年4月全国计算机等级考试二级C语言笔试试题及答案

2007年4月全国计算机等级考试二级C语言笔试试题及答案

(33)有以下程序 typedef struct{int b,p;}A; void f(A c) {int j; c.b+=1; c.p+=2; } main() /*注意:c 是结构变量名 */
{int i; A a={1,2}; f(a); printf(“%d,%d\n”,a.b,a.p); } 程序运行后的输出结果是(D) A)2,3 B)2,4 C)1,4 D)1,2
(29)设已有定义:float x;则以下对指针变量 p 进行定义且赋初值的语句 中正确的是(D) A)float B)int C)float *p=1024; *p=(float x); p=&x;
D)float *P=&x;
(30)有以下程序 #include main() {int n,*p=NULL; *p=&n; printf(“Input n:”); p); } 该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下 语句正确的是(A) A)int n,*p=NULL; B)*p=&n; C)scanf(“%d”,&p) D)printf(“%d\n”,p);

/* x 的初值为十六进制数 */
else x++;
(21)以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式(D) A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0
(22)以下叙述中正确的是(C) A)break 语句只能用于 switch 语句体中 B)continue 语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和 switch 语句体内 D)在循环体内使用 break 语句和 continue 语句的作用相同

全国计算机等级考试(二级)---C语言程序设计考试大纲及习题

全国计算机等级考试(二级)---C语言程序设计考试大纲及习题

选择题
⑥ 以下说法中正确的是 A) C语言程序总是从第一个定义的函数开始 执行 B) 在C语言程序中,要调用的函数必须在 main()函数中定义 √C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序 的开始部分
选择题
⑦ 有以下程序段: int x=3; do { printf(“%3d”, x- =2 ) ; } while( ! (--x) ) ; 执行后的输出结果是 A) 1 B) 30 √C) 1 -2
2. 3. 4.
考试方式
1.
2.
笔试:90分钟,满分100分,其中含公 共基础知识部分的30分 上机:90分钟,满分100分
上机操作包括:
① 填空 ② 改错 ③ 编程
第二部分 样题及参考答案
第二部分 样题及参考答案 选择题 填空题 上机操作题
① 填空题 ② 改错题 ③ 编程题
选择题
1. 只要求缓冲文件系统(即高级磁盘 I/O系 统),对非缓冲文件系统(即低级磁盘 I/O 系统)不要求 文件类型指针( FILE类型指针) 文件的打开和关闭( fopen,fclose ) 文件的读写 (fputc,fgetc,fgets,fread,fwrite fprintf,fscanf 函数的应用),文件的定位 ( rewind,fseek 函数的应用)
选择题
⑩ 有以下程序: #include “stdio.h” #include “stdlib.h” fut(int **s,int p[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf(“%d\n”,*p); } 程序的运行结果是 A) 1 B) 7 C) 9

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

计算机等级考试二级C语言试题及答案
{return (*a)++;} main( ) { int s=0;
{ int a=5; s+=f(&a);
}
s+=f(&a); printf(“%d\nC)7 D)8
38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2);
15、 若以下选项中的变量已正确定义,则正确的赋值语句 是
(C) A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
//%为模式运算,又称为求余运算,二侧均为整形数据 16、 设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是(D) A)a++; B)b++ C)c++; D)d++;
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是(D)
A)自然数1~9的累加和
B)自然数1~10的累加和
C)自然数1~9中的奇数之和 D)自然数1~10中的偶数 之和
25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是(D) A)n=5 B)n=2 C)n=3 D) n=4

全国计算机等级考试二级VISUALBASIC真题2007年4月_真题-无答案

全国计算机等级考试二级VISUALBASIC真题2007年4月_真题-无答案

全国计算机等级考试二级VISUAL BASIC真题2007年4月(总分88,考试时间90分钟)一、选择题下列各题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. DYBEAFCZXB. YDEBFZXCAC. ABDYECFXZD. ABCDEFXYZ7. 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为______。

A. n+1B. n-1C. 2nD. n/28. 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是______。

A. 并B. 交C. 投影D. 笛卡尔乘积9. 在E-R图中,用来表示实体之间联系的图形是______。

A. 矩形B. 椭圆形C. 菱形D. 平行四边形10. 下列叙述中错误的是______。

全国计算机等级二级考试C语言试题及答案

全国计算机等级二级考试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)isal pha(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>{ 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=x^y<<2;则z的二进制值是BA) B) C) D)(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是AA)auto和register B)extern和register C)auto和static D)static和register (40)设有定义语句则以下叙述正确的是BA)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

2007-2011计算机二级C语言考试真题及答案

2007-2011计算机二级C语言考试真题及答案

2007年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((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)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储的,因此,利用数组只能处理线性结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述正确的是A)数据系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用作用户标识符的一组标识符是A)and B)Date C)Hi D)case2007 y-m-d Dr. Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12 C)177 D)0x8A.5e-3 OXa23 4c1.5 10,000(14)以下叙述正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用min作为主函数名,程序将从开始执行,在此结束D)min可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf(“%d”,a,b,c);B)scanf(“%d%d%d”,a,b,c);C)scanf(“%d”,p);D)scanf(“%d”,&p)(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节表C)由用户自己定义D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y=5;B)x=n%2.5;C)x+n=l;D)x=5=4+1(18)有以下程序段int j;float y;char name[50];scanf(“%2d%f%s”,&j,&y,name)当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55560.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf(“%d,”i);while(i++);printf(“%d\n”,i);其输出结果是A )0,0B )0,1C )1,1D )程序进入无限循环(20)有以下计算公式y = (0)(0)x x ≥<若程序前面已在命令行中包含math.h 文件,不能够正确计算上述公式的程序段是A )if(x >=0) y =sprt(x);B )y =sqrt(x);else y =sqrt(-x); if(x <0)y =sqrt(x)C )if(x >=0)y =sqrt(x);D )y =sqrt(x >0?x;-x)If(x <0)y =sqrt(-x);(21)设有条件表达式:(EXP)? i++ ; j —,则以下表达式中与(EXP )完全等价的是A )(EXP=0)B )(EXP!=0)C )(EXP=1)D )(EXP!=1)(22)有以下程序#include <stdio,h>main()﹛inf y=9;for( ; y >0; y--)if(y%3=0) printf(“%d”, ‥y﹜程序的运行结果是A )741B )963C )852D )875421(23)已有定义:char c ;,程序前面已在命令行中包含ctype. h 文件。

全国计算机等级考试二级C语言笔试试题及答案

全国计算机等级考试二级C语言笔试试题及答案

全国计算机等级考试二级C语言笔试试题及答案一、选择题(每小题2分,共70分)(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是 A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)对C++编译器区分重载函数无任何意义的信息是A)参数类型B)参数个数C)返回值类型D)常成员函数关键字coast(12)有如下类定义和变量定义:class A{publie:A(){data=0;}~A(){}int GetData () coast { return data;}void SetData(int n) {data=n;}private:int data;};ccnst A a;A b;下列函数调用中错误的是A)a .GetData();B)a .SetData(10);C)b .GetData();D)b .SetData(10);(13)有如下类定义和变量定义:class Parents{public:int publicuata;private:int privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a;ChildBb;下列语句中正确的是A)cout<<a.publicData <<endl ;B)cout<<a.privateData <<endl ;C)cout<<b.publicData <<endl ;D)cout<<b.privateData <<endl ;(14)运算符重载时不需要保持的性质是A)操作数个数B)操作数类型C)优先级D)结合性(15)下列关于函数模板的描述中,错误的是A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D)模板参数表不能为空(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”);B)ifstream*fir.=new ifstream(“file.dat”);C)ifstream fin; fin.open(“file.dat”);D)ifstream *fin=new ifstream();fin一>open(“file.dat”);(17)下列描述中,不属于面向对象思想主要特征的是A)封装性B)跨平台性C)继承性D)多态性(18)有如下程序段:Tnt i=4;int j=l;int main(){int i=8,j=i;cout<<i<<j<<endl;}运行时的输出结果是A)44B)41C)88D)81(19)有如下程序段:int i=5;while(int i=0){cout《'*';i--;}运行时输出“*”的个数是A)0B)1C)5D)无穷(20)己知有数组定义char a[3][4];下列表达式中错误的是A)a[2]=“WIN”B)strcpy(a[2],“WIN”)C)a [2][3]='W'D)a[0][1]=a[0][1](21)已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是A)char fun(int,int);B)double fun(int,int,double);C)int fun(int,char*);D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用A)析构函数B)构造函数C)静态函数D)友元函数(23)通过派生类的对象可直接访问其A)公有继承基类的公有成员C)私有继承基类的公有成员D)私有继承基类的私有成员(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为A)a .orerator++(1)B)operator++(a)C)operator++(a,l)D)a.operator++()(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是A)()B)[ ]C)< >D){ }(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base::inB)ios_base::in|ios_base::outC)ios_base::outD)ios_base::in&ios_base::out(27)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCD{char* a;int b;public:XCD(char* aa, int bb){a=new char[strlen(aa)+1];strcpty(a,aa);b=bb;}Char* Geta (){return a;)int Getb(){ return b;}};int main(){char *pl=“abcd”,*p2=“weirong”;int dl=6, d2=8;XCD x(pl,dl),Y(p2,d2);cout<<strien (x .Geta())+y. Getb()+endl;return 0;}运行时的输出结果是A)12B)16C)14D)11(28)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCF{int a;XCF(int aa=0):a (aa){cout<<“1”;}XCF(XCF& x){a=x .a; cout<<“2”;)~XCF(){cout<<a;}int Geta(){return a;}};int main(){XCF dl(5),d7 (dl);XCF *pd=new XCF(8);cout<<pd一>Geta();delete pd;return 0;}运行时的输出结果是A)121SS88B)12188SSC)12185D)128512(29)已知类MyClass声明如下:class MyClass{int n;public;MyClass(int k):n(k){}int getValue()const{return n;}};在下列数组定义中正确的是A)MyClass x1[2];B)MyClass x2[2]={new MyClass(1),new MyClass(2)};C)MyClass *x3[2];D)MyClass *x4[2]={MyClass(1),MyClass(2)};(30)有如下程序:#include<iostream>using namespace std;class AA{lilt k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public }{/*类体略*/};int main(){BB x_ ; //1x .n=1; //2x.setN (2); //3x.k=3; //4x .setK(4);return 0;}在标注号码的四条语句中正确的是A)1B)2C)3D)4(31)有如下类定义:class XX{int xx;public:XX():xx(0){cout<<' A';}XX(int n):xx ( n){tout<<' B';}};Class YY:public XX{Int yy;public:YY():yy ( 0){cout+yy;}YY(int n):XX(n+1),yy(n){cout<<yy;}YY (int m, int n):XX (m),yy(n){cout<<yy;} };下列选项中,输出结果为A0的语句是A)YY y1(0,0);B)YY y2(1);C)YY y3(0);D)YY y4;(32)有如下程序:#include<iostream>Using namespace std;class A{public:virtual void f(){cout+1;}void g(){cout<<2;}};class B:public A{public:virtual void f(){cout<<3;}void g(){ecut<<4;}};void show(A &a){a.f();a.g();}int main(){B b;show(b);return 0;}运行时的输出结果是A)12B)34C)14D)32(33)有如下程序:#include<iostream>using namespace std;class Pair{int m;int n;public:boot operator >(pair p)const; //须在类体外给出定义};int main(){Pair Al(3,4),p2(4,3);p3(4,5);Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2);return 0;}运算符函数。

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

2007年4月全国计算机等级考试二级笔试试卷C 语言程序设计(考试时间120分钟,满分100分)一、选择题(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)对下面二叉树,进行前序遍历的结果为( )AXZFCYBE DA )DYBEAFCZX B) YDEBFZXCA C )ABDYECFXZD )ABCDEFXYZ(7)某二叉树中有n 个度为2的结点,则该二叉树中的叶子结点为( )A)n+1 B)n-1 C)2n D)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()A)并B)交C)投影D)笛卡儿乘积(9)在E-R图中,用来表示实体之间联系的图形是()A)矩形B)椭圆形C)菱形D)平行四边形(10)下列叙述中错误的是()A)在数据库系统中,数据的物理结构必须与逻辑结构一致。

B)数据库技术的根本目标是要解决数据的共享问题。

C)数据库设计是指在已有数据库管理系统的基础上建立数据库。

D)数据库系统需要操作系统的支持。

(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的()A)正当性B)可行性C)确定性D)有穷性(12)下列叙述中错误的是()A)计算机不能直接执行用C语言编写的源程序。

B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件。

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件。

D)后缀为.obj和.exe的二进制文件都可以直接运行。

(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()A)大写字母B)连接符C)数字字符D)下划线(14)以下叙述中错误的是()A)C语言是一种结构化程序设计语言。

B)结构化程序有顺序、分支、循环3种基本结构组成。

C)使用3种基本结构构成的程序只能解决简单问题。

D)结构化程序设计提倡模块化的设计方法。

(15)对于一个正常运行的C程序,以下叙述中正确的是()A)程序的执行总是从main函数开始,在main函数结束。

B)程序的执行总是从程序的第一个函数开始,在main函数结束。

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束。

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束。

(16)设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

以下所示的输入形式正确的是(□代表空格字符)()A)10□X□20□Y〈回车〉B)10□X20□Y〈回车〉C)10□X〈回车〉D)10X〈回车〉20□Y〈回车〉20Y〈回车〉(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()A)sqrt(abs(n^x+e^x)) B)sqrt(fabs(pow(n,x)+pow(x,e)))C)sqrt(fabs(pow(n,x)+exp(x,e))) D)sqrt(fabs(pow(x,n)+exp(x)))(18)设有定义:int k=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是()A)k++ B)k+=1 C)++k D)k+1(19)有以下程序,其中%u表示按无符号整数输出main(){unsigned short x=0xFFFF;/* x的初值为十六进制数 */printf("%u\n", x);}程序运行后的输出结果是()A)-1 B)65535 C)32767 D)0XFFFF(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是()A)if(x++) ; B)if(x>y&y!=0);C)if(x>y)x-- D)if(y<0) {;}else y++: else x++;(21)以下选项中,当x为大于1的奇数时,值为0的表达式()A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0(22)以下叙述中正确的是()A)break语句只能用于switch语句题中。

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环。

C)break 语句只能用在循环体内和switch语句体内。

D)在循环体内使用break语句和continue语句的作用相同。

(23)有以下程序main(){int k=5,n=0;do{switch(k){case1: case3:n+=1; break;default;n=0;k--;case2: case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序运行后的输出结果是()A)235 B)0235 C)02356 D)2356(24)有以下程序main(){int i,j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是()A)1*1=1 1*2=2 1*3=3 B)1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C)1*1=1 D)1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9(25)以下合法的字符型常量是()A)'\x13' B)'\018'C)'65'D)'\n' (26)在C语言中,函数返回值的类型最终取决于()A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型(27)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是()A)c=(c-'A')%26+'a' B)c=c+32C)c=c-'A'+'a' D)c=('A'+c)%26-'a'(28)有以下函数int fun(char *s){char *t=s;while(*t++);return(t-s);}该函数的功能是()A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中(29)设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是()A)float *p=1024; B)int *p=(float x);C)float p=&x; D)float *p=&x;(30)有以下程序#include <stdio.h>main(){int n,*p=NULL;*p=&n;printf("input n: "); scanf("%d",&p);printf("output n: "); printf("%d\n",p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A)int n,*p=NULL; B)*p=&n;C)scanf("%d",&p) D)printf("%d\n",p);(31)以下程序中函数f的功能是:当flag为4时,进行由小到大排序;当flag为0时,进行由大到小排序。

void f(int b[],int n,int flag){int i,j,t;for(i=0;i<n-1;i++)for (j=i+1;j<n;j++)if(flag?b[ i ]>b[j]:b[ i ]<b[j]){t=b[i];b[i]=b[j];b[j]=t;} }main(){int a[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0); f(a,5,1);for(i=0;i<10;i++) printf("%d", a[ i ]);}程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,(32)有以下程序void f(int b[]){int i;for(i=2;i<6;i++) b[ i ]*=2;}main(){int a[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++) printf("%d, ",a[ i ]);}程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10,B)1,2,6,8,10,12,7,8,9,10C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,9,10 (33)有以下程序typedef struct{int b,p;}A;void f(A c) /*注意:c是结构变量名 */{int j;c.b+=1; c.p+=2;}main(){int i;A a={1,2};f(a);printf("%d,%d\n", a.b, a.p);}程序运行后的输出结果是()A)2,3 B)2,4 C)1,4 D)1,2(34)有以下程序main(){int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[j][ i]>a[k][ i]){t=a[j][ i];a[j][ i ]=a[k][ i ];a[k][ i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d, ",a[ i ][j]);}程序运行后的输出结果是()A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,(35)有以下程序main(){int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;for(i=0;i<3;i++)for(k=i+1;k<4;k++)if(a[ i ][ i ]<a[k][k]){ t=a[i][ i];a[i][ i ]=a[k][k ];a[k][ k]=t;}for(i=0;i<4;i++)printf(“%d,”,a[0][ i ]);}程序运行后的输出结果是()A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, D)2,3,4,6,(36)有以下程序void f(int *q){int i=0;for( ;i<5;i++) (*q)++;}main(){int a[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d, ", a[ i ]);}程序运行后的输出结果是()A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D)2,3,4,5,6, (37)有以下程序#include <string.h>main(){char p[20]={'a', 'b', 'c', 'd'},q[]="abc", r[]="abcde";strcpy(p+strlen(q),r); strcat(p,q);printf("%d%d\n", sizeof(p),strlen(p));}程序运行后的输出结果是()A)20 9 B)9 9 C)20 11 D)11 11(38)有以下程序#include <string.h>main(){ char p[20]={'a', 'b', 'c', 'd'},q[]="abc", r[]="abcde";strcat(p,r); Strcpy(p+strlen(q),q);printf("%d \n",sizeof(p));}程序运行后的输出结果是()A)9 B)6 C)11 D)7(39)有以下程序#include <string.h>void f(char p[][10], int n )/*字符串从小到大排序 */{ char t[10]; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t);}}main(){char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序运行后的输出结果是()A)2 B)4 C)6 D)3(40)有以下程序void f(int n, int *r){int r1=0;if(n%3==0) r1=n/3;else if(n%5==0) r1=n/5;else f(--n,&r1);*r=r1;}main(){int m=7,r;f(m,&r);printf("%d\n,r");}程序运行后的输出结果是()A)2 B)1 C)3 D)0(41)有以下程序main(int argc,char *argv[]){ int n=0,i;for(i=1;i<argc;i++) n=n*10+*argv[i]-'0';printf("%d\n",n);}编译连接后生成可执行文件tt.exe,若运行时输入以下命令行tt 12 345 678程序运行后的输出结果是()A)12 B)12345 C)12345678 D)136 (42)有以下程序int a=4;int f(int n){int t=0; static int a=5;if(n%2) {int a=6; t+=a++;}else {int a=7 ;t+=a++;}return t+a++;}main(){int s=a,i=0;for(;i<2;i++) s+=f(i);printf ("%d\n",s);}程序运行后的输出结果是()A)24 B)28 C)32 D)36(43)有一个名为init.txt的文件,内容如下:#define HDY(A,B) A/B# define PRINT(Y) printf("y=%d\n",Y)有以下程序#include "init.txt"main(){int a=1,b=2,c=3,d=4,k;K=HDY(a+c,b+d);PRINT(K);}下面针对该程序的叙述正确的是()A)编译有错B)运行出错C)运行结果为y=0 D)运行结果为 y=6 (44)有以下程序main(){ char ch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序运行后的输出结果是()A)z B)0C)元素ch[5]地址D)字符y的地址(45)有以下程序struct S {int n; int a[20];};void f(struct S *p){ int i,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }}main(){ int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++) printf("%d",s.a[i]);}程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9, D)10,9,8,7,6,1,2,3,4,5,(46)有以下程序struct S{ int n; int a[20]; };void f(int *a,int n){ int i;for(i=0;i<n-1;i++) a[i]+=i;}main(){ int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a, s.n);for(i=0;i<s.n;i++) printf("%d", s.a[i]);}程序运行后的输出结果是()A)2,4,3,9,12,12,11,11,18,9, B)3,4,2,7,9,8,6,5,11,10, C)2,3,1,6,8,7,5,4,10,9, D)1,2,3,6,8,7,5,4,10,9, (47)有以下程序段typedef struct node { int data; struct node *next; } *NODE;NODE p;以下叙述正确的是()A)p是指向struct node结构变量的指针的指针。

相关文档
最新文档