《同济大学在职研究生考试试卷.pdf》由会员分享,可在线阅读,更多相关《同济大学在职研究生考试试卷.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程硕士专业学位入学考试模拟题答案软件工程硕士专业学位入学考试模拟题答案 C C 语言程序设计语言程序设计 30 30 分分 一填空题(每空一填空题(每空 2 2 分,共分,共 1212 分)分)1读程序,写出运行结果。void main()int m=12,n=34;printf(%d%d,m+,+n);printf(%d%dn,n+,+m);运行结果:123535143读程序,写出运行结果。void main()int p7=11,13,14,15,16,17,18;int i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);运行结果:245读程
2、序,写出运行结果。#define MIN(x,y)(x)b)if(b0)c=0;else c+;printf(%dn,c);运行结果:34读程序,写出运行结果。void main()char str=xyz,*ps=str;while(*ps)ps+;for(ps-;ps-str=0;ps-)printf(%s,ps);运行结果:zyzxyz6读程序,写出运行结果。void main()char*p1,*p2;char str50=ABCDEFG;p1=abcd;p2=efgh;strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf(%s,str);运行结果:
3、Afgd二程序设计(共二程序设计(共 1818 分)分)1(8 分)编程打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方5 的三次方3 的三次方。void main()if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%dn,n);for(n=100;n1000;n+)i=n/100;j=n/10%10;k=n%10;int i,j,k,n;2(10 分)文件操作是 C 语言中的重要操作之一,试编写程序,将C 盘根目录下的文件的内容输出到屏幕上并复制到C 盘根目录
4、下文件中。#include void main()while(!feof(fp1)putc(getc(fp1),fp2);fseek(fp1,0,SEEK_SET);FILE*fp1=fopen(c:,r);FILE*fp2=fopen(c:,w);while(!feof(fp1)putchar(getc(fp1);fclose(fp1);fclose(fp2);算法算法 30 30 分分 三三(10)链表是计算机中常用的一种数据结构,它可以方便的对离散数据进行组织。请用C 语言编写链表查找算法。设链表结点定义如下:typedef struct _listnodeint Value;_list
5、node*pNext;ListNode;请编写函数,把值为特定值的结点都删除。函数定义如下:int DeleteNode(ListNode*pHead,int Val)函数的输入参数为链表的头结点和要删除的值。返回值为删除的元素个数。int DeleteNode(ListNode*&pHead,int Val)return i;while(pHead&pHead-pNext)if(pHead-pNext-Value=Val)pHead=pHead-pNext;i+;ListNode*pThis=pHead-pNext;pHead-pNext=pThis-pNext;/free(pThis);i
6、nt i=0;四四(1010)字符串操作是计算机程序设计中经常需要面对的问题。请使用C 语言编写算法,有两个字符串由不同的字母组成,一长一短,长的为 A 短的为 B。设计一个算法,如果所有在 B 中出现的字符都在A 中出现,则返回 true,否则返回 false。例子:如下字符串:字符串 A:abddfdioegdddffsfagj字符串 B:dofsjadg字符串 B 中每个字符都在 A 中出现,返回 TRUE。如下字符串:字符串 A:aaaabbbbbbdddddd字符串 B:acc字符串 B 中有字符没在 A 中出现,返回 FALSE。设函数原型为 BOOL StrContain(cha
7、r*a,char*b)bool StrContain(char*a,char*b)while(*b)return true;char*p=a;while(*p)if(*p=0)return false;b+;if(*b=*p)break;p+;五五(1010)递归是算法中最常用的思想之一。利用递归往往可以把复杂问题简单化。请编写递归算法,把单链表逆序输出。单链表的定义与第三题一致。函数原型为:void ReverseLink(ListNode*pHead);其中pHead为指向链表第一个元素的指针。void ReverseLink(ListNode*pHead)if(pHead)Reverse
8、Link(pHead-pNext);printf(“%dn”,pHead-Value);离散数学离散数学 40 40 分分 六六(8(8 分分)用真值表判断下列公式是恒真?恒假?P(PQ)答案:PTTFFQTFTFPQTFTTPFFTTP(PQ)TTTT所以恒真七七(8(8 分分)证明下面的逻辑等价式:答案:八八(8(8 分分)将下面命题符号化:小王或小李中的一人是班长。答案:设:F(x)为 x 犯错误,M(x)为 x 是人。原语句化为(x(M(x)F(x)))九九(8(8 分分)设 R1,R2 都是整数集上的关系,且x R1 y x+y=10 x R2 y|x-y|=1判断 R1 与 R2 是否自反、反自反、对称、反对称、传递。R1R2R1R2自反自反nono反自反反自反noyes对称yesyes反对称nono传递nono对称反对称传递十十(8(8 分分)画出集合1,2,3,4,5,6,7,8,9关于整除关系的哈斯图,并指出它的极小元,最小元,极大元,最大元。答案:极小元、最小元是 1,极大元是 5,6,7,8,9,没有最大元素