一、选择题
1.下列叙述中正确的是()。
B.一个算法的时间复杂度大,则其空间复杂度必定小
C.一个算法的空间复杂度大,则其时间复杂度必定小
D.一个算法的空间复杂度大,则其时间复杂度必定大
2.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
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.数据字典(DD) B.判定表
8.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
A.9 B.90 C.45 D.10
9.若实体A和B是一对多的关系,实体B和C是一对一的联系,则实体A和C的联系是()。
A.一对一 B.多对多 C.多对一 D.一对多
10.一棵二叉树中共有80个叶子与70个度为1的结点,则该二叉树中的总结点数为()。
A.230 B.231 C.229 D.219
11.以下叙述中正确的是()。
A.计算机可以直接处理C语言程序,不必进行任何转换
B.程序的算法只能使用流程图来描述
C.N-S流程图只能描述简单的顺序结构的程序
D.结构化程序的三种基本结构是循环结构、选择结构和顺序结构
12.以下叙述中正确的是()。
A.复合语句在语法上包含多条语句,其中不能定义局部变量
B.空语句就是指程序中的空行
C.花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
D.当用scanf从键盘输入数据时,每行数据在没按下回车键前,可任意修改
13.以下叙述中正确的是()。
A.标识符的长度不能任意长,最多只能包含16个字符
B.用户定义的标识符必须“见名知义”,如果随意定义,则会出编译错误
C.语言中的关键字不能作变量名,但可以作为函数名
D.标识符总是由字母、数字和下划线组成,且第一个字符不得为数字
14.C语言中double类型数据占字节数为()。
A.12 B.4 C.16 D.8
15.以下叙述中正确的是()。
A.赋值语句是一种执行语句,必须放在函数的可执行部分
B.由printf输出的数据的实际精度是由格式控制中的域和小数的域宽来完全决定的
C.由printf输出的数据都隐含左对齐
D.scanf和printf是C语言提供的输入和输出语句
16.以下叙述中正确的是()。
A.程序可以包含多个主函数,但总是从第一个主函数处开始执行
B.在C语言程序中,模块化主要是通过函数来实现的
C.书写源程序时,必须注意缩进格式,否则程序会有编译错误
D.程序的主函数除main外,也可以使用Main或_main
17.以下程序:
执行后的输出结果是()。
A.32 B.40 C.5 D.24
18.当变量C的值不为2、4、6时,值也为“真”的表达式是()。
A.(c>=2 && c<=6)&& (c%2 != 1)
B.(c==2)|| (c==4)|| (c==6)
C.(c>=2 && c<=6)&& !(c%2)
D.(c>=2 && c<=6)|| (c != 3)|| (c != 5)
19.有以下定义语句,编译时会出现编译错误的是()。
A.char a = "aa"; B.char a = 'a';
C.char a = '\x2d'; D.char a = '\n';
20.有以下公式:
若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是()。
21.若有以下程序:
程序执行后输出结果是()。
A.y=0 B.while构成无限循环 C.y=1 D.y=-1
22.有以下程序:
若输入1 2 3 4 5 0 <回车>,则输出结果是()。
A.6666656 B.66656 C.66666 D.6566456
23.以下叙述中正确的是()。
A.语句char a[2] = {"A", "B"};是合法的,定义了一个包含两个字符的数组
B.语句int a[8] = {0}; 是合法的
C.语句int a[ ] = {0}; 是不合法的,遗漏了数组的大小
D.语句char a[3]; a = "AB"; 是合法的,因为数组有三个字符空间的容量,可以保存两个字符
24.以下叙述中正确的是()。
A.语句p = NULL;与p=\0; 是等价的语句
C.int *p1; int ** p2; int *p3;都是合法定义指针变量的语句
D.语句p=NULL;执行后,指针p指向地址为0的存储单元
25.以下叙述中正确的是()。
A.数组的下限是1(www.xing528.com)
B.char c1, c2, *c3, c4[40];是合法的变量定义语句
C.数组下标的下限由数组中第一个被赋值元素的位置决定
D.数组下标的下限由数组中第一个非零元素的位置决定
26.以下叙述中正确的是()。
A.实用的C语言源程序总是由一个或多个函数组成
B.在C语言的函数内部,可以定义嵌套函数
C.不同函数的形式参数不能使用相同名称的标识符
D.用户自己定义的函数只能调用库函数
27.以下叙述中正确的是()。
A.一条语句只能定义一个数组
B.数组说明符的一对方括号中只能使用整型变量,而不能使用表达式
C.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元
D.在引用数组元素时,下标表达式可以使用浮点数
28.以下叙述中正确的是()。
A.即使不进行强制类型转换,在进行指针赋值运算时指针变量的基本类型也可以不同
B.指针变量间不能用关系运算符进行比较
C.设变量p是一个指针变量,则语句p=0;是非法的,应用使用p=NULL;
D.如果企图通过一个空指针来访问一个内存单元,将会得到一个出错信息
29.有以下程序:
程序运行后的输出结果是()。
A.4 B.9 C.5 D.7
30.以下函数的功能是将形参s所指字符串内容颠倒过来:
在横线处应填入的内容是()。
A.-1 B.,k=0 C.+0 D.+1
31.以下选项中,能正确进行字符串赋值的是
A.char s[4][5] = {"ABCDE"}; B.char s[5] = {'A', 'B', 'C', 'D', 'E'};
C.char *s = "ABCDE"; D.char *s ; gets(s);
(32)有以下程序:
程序运行后的输出结果是()。
A.8,17 B.7,16 C.7,17 D.8,8
33.有以下程序:
程序运行后的输出结果是()。
A.ABCDEFGHIJKL B.ABCDEFGHIJKLMNOP
C.ABCD D.AEIM
34.有以下程序:
程序运行后的输出结果是()。
A.EDCBA B.abcde C.edcba D.ABCDE
35.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新名字来代表
C.用typedef可以为各种类型起别名,但不能为变量起别名
D.用typedef定义新的类型名后,原有类型名仍有效
36.有以下程序:
程序运行后的输出结果是()。
A.Zhao, f, 95, 92 B.Qian, f, 95, 92
C.Qian, m, 85, 90 D.Zhao, m, 85, 90
37.有以下定义和语句:
能给w中year成员赋1980的语句是()。
A.w.year = 1980; B.w.s.year = 1980;
C.pw->year = 1980 D.*pw->year = 1980
38.有以下程序:
程序运行后的输出结果是()。
A.20,15 B.30,17 C.20,30 D.15,30,
39.有以下程序:
若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为()。
A.abchello B.helloabc C.abclo D.abc
40.以下叙述中错误的是()。
A.预处理命令行的最后不能以分号表示结束
B.C语言对预处理命令行的处理是在程序执行的过程中进行的
C.在程序中凡是以“#”开始的语句行都是预处理命令行
D.#define MAX是合法的宏定义命令行
二、程序填空题
下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。
例如:从主函数输入一个整数27638496,则函数返回值为26846。
请在下划线处填入正确的内容并将下划线删除,不得增删行,也不得更改程序的结构!
注意:/********found********/的下一行为需要修改的行,其他地方不要修改。
提示与分析:
根据题意,要将一个整数的偶数数字取出来,组成一个新的整数。最直接的方法是通过循环,从个位开始依次判断是否为偶数满足条件的位,乘以该位对应的权值,累加起来就得到了所要求的值。读程序的过程中,要理解每个变量的具体作用。
在本程序中:x被返回,显然用于存放结果;s初始化为参数n,在while循环中不断地作t=s%10及s=s/10运算,s是当前用来处理的数据、控制while循环;t用于取最低位;i用于存储位对应于结果中的权值,i的取值为1、10、100、…。
三、程序修改题
下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:/********found********/的下一行为需要修改的行,其他地方不要修改!
提示与分析:
第一处错误应考虑调用函数fun(M, aa)时,第一个参数表示方阵的大小,数据类型为整型;第二个参数是一个二维数组名。而二维数组名作函数的参数时,必须指明每一行有多少个元素。
第二处错误在于,printf()调用中格式化说明串中,用%f输出整数值xx[i][j],
四、程序设计题
编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个新的整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次在c数的个位和百位上。
例如:当a=45,b=12,调用该函数后c=4251。
注意:先创建D:\yt\in.dat数据文件,该文件数据如下图所示。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
提示与分析:
本题主要考查指针作函数参数,以及整除和模除运算。main()函数中,由用户输入两个两位正整数,如“45,12”,调用自定义函数fun()后,输出结果,这样就可以测试函数实现,是否可满足要求。然后调用NONO()函数,从一个数据文件in.dat中读入数据,调用fun()后,把结果写入另一个文件out.dat中。
分别取a和b的十位和个位,按要求生成一个新数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。