专升本C语言程序设计模拟试卷_第1页
已阅读1页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机科学与技术专业基础知识模拟试卷计算机科学与技术专业基础知识模拟试卷(考试时间(考试时间 150150 分钟,满分钟,满 分分 300300 分,共三部分)分,共三部分) 第一部分第一部分 C C 语言程序设计(共语言程序设计(共 100100 分)分) 一、一、单项选择题(本大题共单项选择题(本大题共 3030 小题,每小题小题,每小题 2 2 分,共分,共 6060 分)分) 1.下列各选项中,均是合法有效的标识符的是【】 A.3day B.lower C.day_3 D.ab Sum _days abcde student_name _of lotus_1_2_3 default M

2、.D.john 2. 若希望当的值为奇数时,表达式的值为“真” ,的值为偶数时,表达式的值为“假” 。 则以下不能满足要求的表达式是 A.A2=1 B.!(A%2=0) C.!(A%2) D.A%2 3. 下列程序的输出结果是【】 #include void main( ) int x=1,y=0,a=0,b=0; switch(x) A.1,1 B.2,1C.1,0 D.2,2 4. 以下关于 switch 语句和 break 语句的描述中,只有正确的是【】 A.在 switch 语句中必须使用 break 语句 B.在 switch 语句中,可以根据需要使用或不使用 break 语句 C.

3、break 语句只能用于 switch 语句中 case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; break; printf(“%d,%dn”,a,b); D.break 语句是 switch 语句的一部分 5. 下面程序的输出是【】。 main() int x=0 x23; printf(“%dn”,- -x); A.18B.19C.34D.35 6. 下列函数的输出结果是【】 #include int f1(int xb) extern int xa; r

4、eturn (xa * xb); void main(void) extern int xb; int xa=5; printf(“xa=%d,xb=%d,result=%d”,xa,xb,f1(xa); return 0; int xa=3,xb=4; A. 3,4,12B. 5,4,20C. 5,4,15D. 3,4,15 7. c 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A. 地址传递 B. 由实参传给形参,再由形参传回给实参 C. 单向值传递 D. 由用户指定传递方式 8. 以下程序中调用scanf函数给变量a输入数值的方法是错误的, 其原因是 【 void ma

5、in() int *p,a; p= int a3 3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d ,a2-i i ); A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1 12. 下面函数的功能是 char *fun(char *str1,char*str2) while( (*str1) return str2; 。】 A)求字符串的长度 B)比较两个字符串的大小 C)将字符串 str1 复制到字符串 str2 中 D)将字符串 str1 接续到字符串 str2 中 13. 下面函数调用语句含有实参的个数为 func( (exp1,ex

6、p2),(exp3,exp4,exp5) ); A)1B)2C)4D)5 13. 下面程序段的运行结果是 char *s=abcde; s+=2;printf(%d,s); A)cde B)字符c C)字符c的地址 D)无确定的输出结果 14. 已有变量定义和函数调用语句:int a=25;print_value(下面函数的正确输出结果 是 void print_value(int *x) printf(%dn,+*x); A)23 B)24 C)25 D)26 15. 当顺利执行了文件关闭操作时,fclose 函数的返回值是 A)-1 B)TRUE C)0 D)1 16. 设有如下定义 ch

7、ar *s2= abcd,ABCD; 则下列说法错误的是 A)s 数组元素的值分别是abcd和ABCD两个字符串的首地址 B)s 是指针数组名,它含有两个元素分别指向字符型一维数组 C)s 数组的两个元素分别存放的是含有 4 个字符的一维字符数组中的元素 D)s 数组的两个元素中分别存放了字符a和A的地址 17. 以下不能对二维数组 a 进行正确初始化的语句是 A)int a2 3=0; B)int a 3=1,2,0; C)int a2 3=1,2,3,4,5,6; D)int a 3=1,2,3,4,5,6; 18. 有以下程序 struct STU char num10; float s

8、core3; ; main() struct STU s3=20021,90,95,85, 20022,95,80,75, 20023,100,95,90, ,*p=s; int i; float sum=0; for(i=0;iscorei; printf(%6.2fn,sum); 程序运行后的输出结果是 A)260.00 B)270.00 C)280.00 D)285.00 19. 若有说明:int a10 ;则对 a 数组元素的正确引用是 A)a10 B)a3,5 C)a(5) D)a10-10 20. 下面程序段中,输出*的个数是 char *s=ta018bc; for(;*s!=0

9、;s+)printf(*); A)9 B)5 C)6 D)7 21.设有如下函数 fun (float x) printf(n%d,x*x); 则函数的类型是 A)与参数 x 的类型相同 B)是 void C)是 int 型 D)无法确定 22. 有如下定义 #define D 2 int x=5;float y=3.83; char c=D; 则下面选项中错误的是 A)x+; B)y+; C)c+; D)D+; 23. 以下程序段的执行结果为 #define PLUS(X,Y)X+Y main() int x=1,y=2,z=3,sum; sum=PLUS(x+y,z)*PLUS(y,z);

10、 printf(SUM=%d,sum); A)SUM=9 B)SUM=12 C)SUM=18 D)SUM=28 24. C 语言规定,函数返回值的类型是由 A)return 语句中的表达式类型所决定 B)调用该函数时的主调函数类型所决定 C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定 25. 下列程序的运行结果是 void fun(int *a,int *b) int *k; k=a;a=b;b=k; main() int a=2004, b=9,*x= fun(x,y); printf(%d%d,a,b); A)2004 9 B)9 2004 C)0 0 D)编译时出

11、错 26. 下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数: 876 675 896 101 301 401 980 431 451 777 #include #include int fun(int *s, int t, int *k) int i; *k=0; for(i=0;iif(s*kreturn s*k; main() int a10= 876,675,896,101,301,401,980,431,451,777,k; clrscr(); fun(a, 10, printf(%d, %dn , k, ak ); 则输出结果为 A)7,431 B)6 C)980 D)

12、6,980 27.下面程序应能对两个整型变量的值进行交换。以下正确的说法是 main() int a=10,b=20; printf(1)a=%d,b=%dn,a,b); s); printf(2)a=%d,b=%dn,a,b); s p,int q) int t; t=p;p=q;q=t; A)该程序完全正确 B)该程序有错,只要将语句 s);中的参数改为 a,b 即可 C)该程序有错,只要将 swap()函数中的形参 p 和 q 以及 t 均定义为指针(执行语句 不变)即可 D)以上说法都不对 28. 有以下程序 #include main() char *p,*q; p=(char *)

13、malloc(sizeof(char)*20); q=p; scanf(%s%s,p,q); printf(%s %sn,p,q); 若从键盘输入:abc def,则输出结果是 A)def def B)abc def C)abc d D)d d 29.以下程序的输出结果是 int f() static int i=0; int s=1; s+=i; i+; return s; main() int i,a=0; for(i=0;inum=10; q-num=20; r-num=30; p-next=q;q-next=r; printf(%dn ,p-num+q-next-num); 程序运行后

14、的输出结果是 A)10 B)20 C)30 D)40 二、程序阅读题(本大题共二、程序阅读题(本大题共 4 4 小题,每小题小题,每小题 5 5 分,共分,共 2020 分)分) 阅读下列程序,将输出结果写到答题纸的相应位置。阅读下列程序,将输出结果写到答题纸的相应位置。 31下列程序的输出结果为。 main () int x=3,y=5; printf (d,x=(x-)*(-y) ); 32.以下程序的输出结果是。 fun (int x,int y,int z) z =x*x+y*y; main () int a=31; fun (6,3,a) printf (d, a) 33.执行下面程

15、序段后,k 值是。 k=1; n=1234; do k+n%10; n/=10 ; while(n); 34.下列程序的输出的结果是 ,,。 main() int i,j row,colum,m; static int array33=100,200,300,28,72,-30-850,2,6; m=array0 0 ;for(i=0;i3;i+) for(j=0;j3;j+) if(arrayi jm) m=arrayi j ;colum=j;row=i; printf(%d,%d,%dn,m,row,colum); 三、完善下列程序(本大题共3 小题,每空 2 分,共 20 分) 请在答题

16、纸相应的位置填上正确答案。请在答题纸相应的位置填上正确答案。 35. 打印所有的“水仙花数”。所谓的水仙花数是指一个三位数,其各位数字的立方和等于 该数本身。比如 153=1*1*1+5*5*5+3*3*3。 (注:变量 i,j,k 分别代表三位数的各个位数。) main( ) int i,j,k,n; printf(“水仙花数是:”); for(n=100;n1000;n+) i=n/100; 【1】; k=n%10; if(【2】)/*如果是水仙花数,则输出*/ printf(“%4d”,n); printf(“n”); 36. 以下程序段的功能: 从键盘输入的字符, 用变量n来统计数字字

17、符的个数,用换行符 (n) 作为循环结束的条件。 #include main() int n=0 ,c; c=getchar( ) ; while(【1】) 【3】; c=getchar( ) ; 37. 以下函数的功能是求出能整除 x 且不是偶数的各整数, 并按从小到大的顺序放在 pp 所指 的数组中,这些除数的个数通过形参 n 返回。 例如,若 x 中的值为 30,则有 4 个数符合要求,它们是 1,3,5,15。 请按题意,完成填空。 试题程序: #include #include void fun (int x, int pp, int *n) int i,j=0; 【1】 if(x%

18、i=0)pp【2】=i; 【3】; main () int x,aa1000, n, i ; clrscr(); printf(nPlease enter an integer number : n ); scanf (%d , fun (x, 【4】, for (i=0 ; 【5】) printf (%d , aa i); printf (n ); if(【2】) 专升本 C 语言程序设计模拟试卷 第二部分第二部分 数据结构(共数据结构(共 100100 分)分) 一、一、单项选择题(本大题共单项选择题(本大题共 1212 小题,每小题小题,每小题 2 2 分,共分,共 2424 分)分)

19、1、向顺序栈中压入新元素时,应当() 。 A先移动栈顶指针,再存入元素B先存入元素,再移动栈顶指针 C先后次序无关紧要D同时进行 2、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进 行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是() A选择排序 B希尔排序C归并排序 D快速排序 3、 在一个长度为 n 的顺序表的表尾插入一个新元素的渐进时间复杂度为 () AO (n)BO (1)CO (n2

20、)DO (log2n) 4、设单链表中结点的结构为( data , link) 。已知指针 q 所指结点是指针 p 所指结 事业的直接前驱,若在 *q 与*p 之间插入结点*s,则应执行下列哪一个操作? () As -link= p-link ; p-link=sBq-link=s ;s-link=p C。p-link=s-link;s-link=pDp-link=s ;s-link=q 5、若让元素 1,2,3 依次进栈,则出栈次序不可能出现()种情况。 A3,2,1B2,1,3C3,1,2D1,3,2 6、一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运 行时间来看,通常

21、递归过程比非递归过程() A较快B较慢C相同 7、树中所有结点的度等于所有结点数加() A0B1C-1D2 8、在一棵具有 n 个结点的二叉树中,所有结点的空子树个数等于() AnBn-1Cn+1D2*n 9、对长度为 n 的有序单链表,若搜索每个元素的概率相等,则顺序搜索到表中 任一元素的平均搜索长度为() An/2B(n+1)/2C(n 1)/2Dn/4 10、在无向图中定义顶点 V i与 Vj之间的路径为从 V i到达 Vj的一个() A顶点序列B边序列C权值总和D边的条数 11、 如果只想得到 1024 个元素组成的序列中的前 5 个最小元素, 那么用 () 专升本 C 语言程序设计模

22、拟试卷 方法最快。 A起泡排序B快速排序C堆排序D直接选择排序 12、设有一个含 200 个表项的散列表,用线性探查法解决冲突,按关键码查询时 找到一个表项的平均探查次数不超过 1.5, 则散列表项应能够至少容纳 () 个表项。 (设搜索成功的平均搜索长度为 Snl=1+1/(1-)/2 其中 为装填因子) A400B526C624D676 二、填空题(每空二、填空题(每空 2 2 分,共分,共 2222 分分, ,其中第其中第 1717,1919,2020 每空每空 1 1 分)分) 13.数据的逻辑结构是从逻辑关系上描述数据,它与数据的无关,是独立 于计算机的。 14在一个带头结点的单循环

23、链表中,p 指向尾结点的直接前驱,则指向头结点 的指针 head 可用 p 表示为 head=。 15栈顶的位置是随着操作而变化的。 16已知一棵完全二叉树中共有 768 结点,则该树中共有个叶子结 点。 17在单链表上难以实现的排序方法有和。 18在有序表(12,24,36,48,60,72,84)中二分查找关键字 72 时所需进 行的关键字比较次数为。 19.在用于表示有向图的邻接矩阵中, 对第 i 行的元素进行累加,可得到第 i 个顶点 的度,而对第 j 列的元素进行累加, 可得到第 j 个顶点的度。 20.一个连通图的生成树是该图的连通子图。若这个连通图有n 个顶 点,则它的生成树有条

24、边。 21. 在进行直接插入排序时,其数据比较次数与数据的初始排列关;而 在进行直接选择排序时,其数据比较次数与数据的初始排列关。 22.利用关键码分别为 10,20,30,40 的四个结点,能构造出种不 同的二叉搜索树。 三、应用题(每小题三、应用题(每小题 8 8 分,共分,共 3232 分)分) 23、以知一组元素为(46,25,78,62,12,37,70,29) ,试画出按元素排列 次序插入生成的一棵二叉搜索树。 专升本 C 语言程序设计模拟试卷 24、已知一棵树二叉如下,请分别写出按箭序、中序、后序和层次遍历时得到的 结点序列。 A BC DEF GH 前序: 中序: 后序: 层次: 25、设散列表的长度为 13,散列函数为 H(k)=k%13,给定的关键码序列为 19, 14,23,01,68,20,84,27。试画出用线性探查法解决冲突时所构成的散列表。 0123456789101112 26、已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一 维数组 a12中,根据折半搜索过程填写成功搜索下表中所给元素 34, 56, 58,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论