2018年西安建筑科技大学考研专业课真题869 C C 程序设计.docx
第 2 页第 1 页西 安 建 筑 科 技 大 学2018 年攻读硕士学位研究生招生考试试题(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页考试科目: 适用专业:(8 69)C /C+程序设计 计算机技术、计算机科学与技术 一、按 照 要求 回答 问题 (共 6 题 , 每题 分值 见各 题前 的 标 注 ,共 计 50 分)1、 ( 本 题 12 分 ) 写出 下面 程 序的 运行 结果#include void main() int j,k;int x34=0,y43=0;for(j=0;j char s=“1234“; void main() char *p; for(p=s;p void main()char grade=A; switch(grade)case A: printf(“90-100n“);case B: printf(“80-90n“);case C: printf(“70-80n“); break;case D: printf(“60-70n“); break;case E: printf(“ int f(int a)int b=0; static int c; b+;c+;return(a+b+c);void main()int a=5,i; for(i=0;i void main()int a1=5,a2=5; printf(“a1=%d,a2=%d,a1=%d“,+a1,a2+,a1-);第 4 页第 3 页西 安 建 筑 科 技 大 学2018 年攻读硕士学位研究生招生考试试题(答案书写在本试题纸上无效。考试结束后本试题纸须附在答题纸内交回) 共 6 页 考试科目: (869)C/C+程序设计 适 用 专 业 : 计算机技术、计算机科学与技术 二、在横线空白处填写代码,补充完整程序(共 6 题,25 处横线空白,每空 2 分,共 50 分)1、 ( 本 题 8 分)输入一个字符,判断该字符是数字、字母、空格还是其他字符。void main( ) char ch=getchar();if( ( 1) ) printf(“It is an English charactern“); else if( ( 2) ) printf(“It is a digit charactern“);else if( (3) ) printf(“It is a space charactern“);( 4) printf(“It is other charactern“);2、 ( 本 题 12 分)输入正整数 n (1 using namespace std; class B1 /基类 B1 声明 public:B1(int i) coutnext=NULL; r=h;p=p-next; q=q-next; while (p 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 m5、 ( 本 题 10 分)编程计算m,n之间既不能被 3 整除也不能被 5 整除的整数之和,m 和 n 的值由 键盘输入。例如,如果 m 和 n 的值分别为 1 和 10,则计算结果为 22。4、 ( 本题 8 分) 如下 为二 分查 找 的非 递归 算法 ,试 将其填 写完 整。int Binarysearch(int A ,int n, int K) int low=0, high= (13 ) ; while (low=high)int mid= (1 4) ;if (K = Amid) return mid; /查 找成 功, 返回 元素 的 下标 else if (K mid) (15) ;else (16 ) ;return -1; /查找失败 ,返 回 -15、 ( 本 题 8 分 )求 1!+2!+3!+n!的 和。 void main()long int f,s;int i,j,n;( 17) ; scanf(“%d“,for(i=1;i=n; (18 ) ) f=1;for(j=1; ( 19) ;j+)(20 ) ; s=s+f;printf(“n=%d,s=%ldn“,n,s);