1、模拟试题2一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中带有箭头的线段表示的是 A)图元关系 B)数据流 C)控制流 D)调用关系(2)下面不属于软件设计原则的是 A)抽象 B)模块化 C)自底向上 D)信息隐蔽(3)下列选项中,不属于模块间耦合的是 A)数据耦合 B)标记耦合 C)异构耦合 D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是 A)便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 C)作为确认测试和验收的依据 D)便
2、于开发人员进行需求分析(5)算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是 A)堆排序 B)直接插入排序 C)快速排序 D)B)和C)(7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是 A)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面的设计内容,它们是 A)概念设计和逻辑设计 B)模式设计和内模式设计 C)内模式设计和物理设计 D)结构特性设计
3、和行为特性设计(9)关系表中的每一横行称为一个 A)元组 B)字段 C)属性 D)码(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字 (键或码)为 A)课号,成绩 B)学号,成绩 C)学号,课号 D)学号,姓名,成绩(11)以下不正确的叙述是 A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(1
4、2)以下可用作C语言用户标识符的是 A)void,define,WORD B)a3_b3,_123,IF C)FOR,-abc,Case D)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是 A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0(14)在C语言中,运算对象必须是整型数的运算符是 A)% B) C)%和 D)*(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 A)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; pr
5、intf(%c,%d,ch,ch,k); printf(k=%d n,k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是 A)kk=A& kk=A|kk=a&(kk+32)=Z D)isalpha(kk)&(kk=2& c=2&c=2& c=6)&(c%2!=1)(19)若有条件表达式 (exp)?a+:b-,
6、则以下表达式中能完全等价于表达式(exp)的是 A)(exp=0) B)(exp!=0) C)(exp=1) D)(exp!=1)(20)以下不正确的定义语句是 A)double x5=2.0,4.0,6.0,8.0,10.0; B)int y5=0,1,3,5,7,9; C)char c1=1,2,3,4,5; D)char c2=x10, xa, x8;(21)下列程序执行后的输出结果是 main() int a33, *p,i; p=&a00; for(i=1; i2!1 (27)有定义语句:char s10;,若要从终端给s输入5个字符,错误的输入语句是 A)gets(&s0); B)
7、scanf(%s,s+1); C)gets(s); D)scanf(%s,s1);(28)有以下程序 #include #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 %dn,i1,i2); 程序的运行结果是 A)12 12 B)11 7 C)11 11 D)12 7(29)若有以下说明和定义 union dt int a; char b; double c;data; 以下叙述中错误的是 A)data的每个成员起始地址都相同 B)变量data所占内存字节数
8、与成员c所占字节数相等 C)程序段:data.a=5;printf(%fn,data.c);输出结果为5.000000 D)data可以作为函数的实参 (30)有以下程序 #include main() FILE *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(d2.dat,w); fprintf(fp,%d%d%dn,a0,a1,a2); fprintf(fp,%d%d%dn,a3,a4,a5); fclose(fp); fp=fopen(d2.dat,r); fscanf(fp,%d%d,&k,&n);printf(%d%dn,k,n);fclose(fp); 程
9、序运行后的输出结果是 A)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数组元素不正确的引用是 A)ap-a B)*(&ai) C)pi D)a10(32)有以下程序 #include void fun(int *s,int n1,int n2) int i,j,t; i=n1; j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a
10、,0,9); for(k=0;kl0;k+)printf(%d,ak); printf(n); 程序的运行结果是 A)0987654321 B)4321098765 C)5678901234 D)0987651234 (33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include #include #include int fun (char *str) int i,j=0; for(i=0;stri!= 0;i+) if(stri!= )strj+=stri; strj= 0; main() char str81; int n; printf(Input a
11、string : ); gets(str); puts(str); fun(str); printf(%sn,str); A)asdafaaz67 B)asd af aa z67 C)asd D)z67(34)有以下程序 int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(%d,&x); x=fun(x);printf(%dn,x) 执行程序时,给变量x输入10,程序的输出结果是 A)55 B)54 C)65 D)45(35)下面程序段中,输出*的个数是 char *s=ta018bc; for
12、(;*s!=0;s+)printf(*); A)9 B)5 C)6 D)7 (36)C语言结构体类型变量在程序运行期间 A)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 B)所有的成员一直驻留在内存中 C)只有最开始的成员驻留在内存中 D)部分成员驻留在内存中(37)已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是 A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件 C)一个指针,指向要读入数据的存放地址 D)一个存储区,存放要读的数据项(38)设有以下语句 char x=3,y=6,z; z=xy2; 则z的二进制值是
13、A)00010100 B)00011011 C)00011100 D)00011000(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是 A)auto和register B)extern和register C)auto和static D)static和register(40)设有定义语句int ( *f)(int);,则以下叙述正确的是 A)f是基类型为int的指针变量 B)f是指向函数的指针变量,该函数具有一个int类型的形参 C)f是指向int类型一维数组的指针变量 D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线
14、上,答在试卷上不给分。(1)测试用例包括输入值集和 【1】 值集。(2)在树形结构中,树根结点没有 【2】 。(3)数据结构分为逻辑结构与存储结构,线性链表属于 【3】 。(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体项目主管与实体项目的联系属于 【4】 的联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6)阅读下面程序段,执行后输出的结果是 【6】 。 #include stdio.h main() char fun(char,int); char a=A; int b=13; a=fun(a,
15、b); putchar(a); char fun(char a,int b) char k; k=a+b; return k;(7)函数fun的返回值是 【7】 fun(char *a,char *b) int num=0,n=0; while(*(a+num)!=0)mm+; while(bn)*(a+num)=bn;num+;n+; return num; (8)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 1
16、0 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 请填空。 #include #define N 80 int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1 【8】 ai) aj+=ai; 【9】 ; main() int aN= 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10, i, n=19; printf(The original data : n); for(i=0; in; i+)printf(%3d,ai); n=fun(a,n); printf(nThe da
17、ta after deleted: n); for(i=0; in; i+)printf(%3d,ai); printf(nn); (9)以下程序的运行结果是 【10】 。 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+; break; case 1: b+; break; case 2:a+; b+; break; case 3:a+; b+; printf(a=%d,b=%dn,a,b); (10)以下程序的输出结果是 【11】 。 fun (int x,int y,int z) z =x
18、*x+y*y; main () int a=31; fun (6,3,a) printf (%d, a) (11)函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即st时返回正值,st时返回负值。请填空。My_cmp(char*s,char*t) while (*s = *t) if (*s = 0)return0; +s; +t; return 【12】 ; (12)以下程序的输出结果是 【13】 。 void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;
19、ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi; printf( %dn,s); (13)以下说明语句中, 【14】 是结构体类型名。 typedef struct int n; char ch8; PER;(14)以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include main() FILE *fp; char ch; fp=fopen( 【15】 ); ch=fgetc(fp);
20、while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(n);fclose(fp);一、选择题(1)C 【解析】 程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。(2)C 【解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设
21、计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。(3)C 【解析】 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。(4)D 【解析】 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用: 便于用户、开发人员进行理解和交流; 反映出用户问题的结构,可以作为软件开发工作的基础和依据; 作
22、为确认测试和验收的依据。(5)C 【解析】 算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。(6)B 【解析】 堆排序的比较次数为nlog2n;直接插入排序的比较次数为n(n-1)/2;快速排序的比较次数为nlog2n。(7)B 【解析】 栈操作原则上后进先出,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈,所以出栈时一定是先出D,再出C,最后出A。(8)A 【解析】 数据库设计包括数据库概念设计和
23、数据库逻辑设计两个方面的内容。(9)A 【解析】 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。(10)C 【解析】 选课SC 表是 学生S 表和 课程C 表的映射表,主键是两个表主键的组合。(11)D 【解析】 在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量
24、可以输入实型数值和整型数值等。(12)B 【解析】 C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。(13)B 【解析】 C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项B)中,e(E)后面的指数是小数,所以不合法。(14)A 【解析】 在C语言中,%运算符两侧的运算数必须是整型。(15)A 【解析】 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C)和D)错误。%运算符两侧都应当是整型数据,选项B
25、)错误。(16)D 【解析】 输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。(17)B 【解析】 C语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在A和Z之间就可以了,选项A)和C)符合要求。函数isalpha用来确定一个字符是否为字母,大写字母的ASCII码值的范围为65到90,所以如果一个字母的ASCII码小于91,那么就能确定它是大写字母。(18)B 【解析】 满足表达式(c=2&c=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1