西 安 建 筑 科 技 大 学 2018 年攻读硕士学位研究生招生考试试题 3、(本 题 6 分)写出下面程序的运行结果 #include
一、按照要求回答问题(共 6 题,每题分值见各题前的标注,共计 50 分) 1、(本 题 12 分)写出下面程序的运行结果 #include char grade='A'; switch(grade){ case 'A': printf(\case 'B': printf(\case 'C': printf(\case 'D': printf(\case 'E': printf(\default : printf(\} } 4、(本 题 6 分)写出下面程序的运行结果 #include 西 安 建 筑 科 技 大 学 2018 年攻读硕士学位研究生招生考试试题 二、在横线空白处填写代码,补充完整程序(共 6 题,25 处横线空白,每空 2 分,共 50 分) 1、(本题 8 分)输入一个字符,判断该字符是数字、字母、空格还是其他字符。 void main( ) { char ch=getchar(); if( (1) ) printf(\(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页 考试科目: (869)C/C++程序设计 适用专业: 计算机技术、计算机科学与技术 6、(本 题 12 分)写出下面程序的运行结果 #include B1(int i) {cout<<\ ~B1() {cout<<\ }; class B2 //基类 B2 声明 {public: B2(int j) {cout<<\2 \< ~B2() {cout<<\ }; class B3 //基类 B3 声明 {public: B3(){cout<<\~B3() {cout<<\}; class C: public B2, public B1, public B3 {public: C(int a, int b, int c, int d):B1(a),memberB2(d),memberB1(c),B2(b){} private: B1 memberB1; B2 memberB2; B3 memberB3; }; void main(){ C obj(11,12,13,14);} 第 3 页 else if( (2) ) printf(\character\\n\else if( (3) ) printf(\ (4) printf(\} 2、(本题 12 分)输入正整数 n (1 西 安 建 筑 科 技 大 学 2018 年攻读硕士学位研究生招生考试试题 6、(本 题 10 分)已知单链表的类型说明为: typedef struct LNode{int data; struct LNode *next; }LNode,*LinkList; 阅读以下程序,填充空格,使其成为完整算法。其功能是将两个已排序的带头结点的单链表合并成 一个链表而不改变其排序性(升序),这里两个链表头指针分别为 p 和 q。 (答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页 考试科目: (869)C/C++程序设计 LinkList mergelink(LinkList p,LinkList q){ LinkList r,h; 适用专业: 计算机技术、计算机科学与技术 4、(本题 8 分)如下为二分查找的非递归算法,试将其填写完整。 int Binarysearch(int A[ ],int n, int K){ int low=0, high= (13) ; while (low<=high){ int mid= (14) ; if (K == A[mid]) return mid; //查找成功,返回元素的下标 else if (K < [mid]) (15) ; else (16) ; } return -1; //查找失败,返回-1 } 5、(本 题 8 分)求 1!+2!+3!+……+n!的和。 void main(){ long int f,s;int i,j,n; (17) ; scanf(\ for(i=1;i<=n; (18) ) { f=1; for(j=1; (19) ;j++) (20) ; s=s+f; } printf(\} 第 5 页 (21) ; h->next=NULL; r=h; p=p->next; q=q->next; while (p&&q){ if(p->data<=q->data){ (22) ; r=p; (23) ;} else { (24) ;r=q;q=q->next;} } if(!p)r->next=q; (25) ; return h; } 三、用 C 或 C++编写程序(共 5 题,每题 10 分,共 50 分) 1、(本题 10 分)编程实现输入一行字符,统计其中有多少个单词,其中单词之间用空格分隔开。 2、(本题 10 分)有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 5 报数),凡是报到 5 的人退出圈子,试编写程序输出最后退出圈子的人员编号。 3、(本题 10 分)编写函数 char * myStrcat (char * str1,char *str2)实现字符串连接(要求不能使用 strcat 函数)。 4、(本题 10 分)有 n 个整数,使前面各数顺序向后移动 m 个位置,最后 m 个数变成最前面 m 个 数,如下图所示。写一个函数实现上述功能,在主函数中输入 n 个整数和输出调整后的 n 个数。 n-m m 5、(本题 10 分)编程计算[m,n]之间既不能被 3 整除也不能被 5 整除的整数之和,m 和 n 的值由 键盘输入。例如,如果 m 和 n 的值分别为 1 和 10,则计算结果为 22。 第 6 页