1、西 安 建 筑 科 技 大 学
2018 年攻读硕士学位研究生招生考试试题
(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页
第 2 页
第 1 页
考试科目: 适用专业:
(869)C/C++程序设计
计算机技术、计算机科学与技术
3、(本 题 6 分)写出下面程序的运行结果
#include
2、0-90\n");
case 'C': printf("70-80\n"); break;
case 'D': printf("60-70\n"); break;
case 'E': printf("<60\n"); default : printf("error!\n");
}
}
4、(本 题 6 分)写出下面程序的运行结果
#include
3、)
printf("%d ",f(a));
}
5、(本 题 6 分)写出下面程序的运行结果
#include
4、<3;j++)
for(k=j;k<4;k++) x[j][k]=j+k;
for(j=0;j<3;j++)
for(k=j;k<4;k++) y[k][j]=x[j][k];
for(j=0;j<4;j++)
for(k=0;k<3;k++) printf("%d,",y[j][k]);
}
2、(本 题 8 分)写出下面程序的运行结果
#include 5、科 技 大 学
2018 年攻读硕士学位研究生招生考试试题
(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页 考试科目: (869)C/C++程序设计 适用专业: 计算机技术、计算机科学与技术
二、在横线空白处填写代码,补充完整程序(共 6 题,25 处横线空白,每空 2 分,共 50 分)
1、(本题 8 分)输入一个字符,判断该字符是数字、字母、空格还是其他字符。
void main( ) {
char ch=getchar();
if( (1) ) printf("It is an English character\n" 6、); else if( (2) ) printf("It is a digit character\n");
else if( (3) ) printf("It is a space character\n");
第 4 页
第 3 页
6、(本 题 12 分)写出下面程序的运行结果
#include 7、ng B1 "< 8、lic 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);}
(4)
}
printf("It is other character\n");
2、(本题 12 分)输入正整数 n (1 9、id){
int i, index, k, n, temp;
(5) ;/* 定义 1 个数组a,它有 10 个整型元素*/ printf("Enter n: ");
(6) ;
printf("Enter %d integers: ", n);
for(i = 0; i < n; i++) scanf("%d", &a[i]); for(k = 0; k < n-1; k++){/* 对 n 个数排序 */
index = k;
for( (7) )
if( (8) ) index = i;
(9) ;
}
printf("After sorted 10、 ");
for(i = 0; i < n; i++)/* 输出 n 个数组元素的值 */
(10) ;
}
3、(本题 4 分)列出所有的个位数为 8,且能被 4 整除的 2 位数。
void main(){ int i;
for( (11) ; i<=99; i++) if( (12) &&i%4==0) printf("%3d\n",i); }
西 安 建 筑 科 技 大 学
2018 年攻读硕士学位研究生招生考试试题
(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页 考试科目: (869)C/C++程序设计 11、 适用专业: 计算机技术、计算机科学与技术
6、(本 题 10 分)已知单链表的类型说明为:
typedef struct LNode{int data; struct LNode *next; }LNode,*LinkList; 阅读以下程序,填充空格,使其成为完整算法。其功能是将两个已排序的带头结点的单链表合并成 一个链表而不改变其排序性(升序),这里两个链表头指针分别为 p 和 q。
LinkList mergelink(LinkList p,LinkList q){ LinkList r,h;
(21) ; h->next=NULL; r=h;
4、( 12、本题 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 13、 main(){
long int f,s;int i,j,n;
(17) ; scanf("%d",&n);
for(i=1;i<=n; (18) )
{ f=1;
for(j=1; (19) ;j++)
(20) ; s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
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;}
第 6 页
第 5 页
14、
}
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。






