2018年首都师范大学C语言程序设计复试仿真模拟三套题

发布时间:2024-11-02

考研专业课资料、辅导、答疑一站式服务平台

第 1 页,共 26 页

目录

2018年首都师范大学C 语言程序设计复试仿真模拟三套题(一) (2)

2018年首都师范大学C 语言程序设计复试仿真模拟三套题(二) (11)

2018年首都师范大学C 语言程序设计复试仿真模拟三套题(三) (18)

考研专业课资料、辅导、答疑一站式服务平台

第 2 页,共 26 页 2018年首都师范大学C 语言程序设计复试仿真模拟三套题(一)

特别说明:

1-本资料为2018复试学员内部使用,严格按照2018复试常考题型及难度全真模拟预测。

2-资料仅供复试复习参考,与目标学校及研究生院官方无关,如有侵权、请联系我们立即处理。 ————————————————————————————————————————

一、编程题

1. 编写一函数

.,其功能是把字符串s 中的所有字符左移n 个位置,字符串

中的前n 个字符移到最后。

【答案】

将字符串S 循环左移n 个字符

将字符串的第一个字符保存在变量ch 中

将第二个字符开始的len-1个字符左移

将原先第一个字符置于字符串的末尾

程序运行结果:

【解析】要实现将字符串s 循环左移n 个字符,可通过n 次循环,首先将字符串的第一个字符s[0]保存到临时字符变量ch 中,然后利用strncpy 函数将字符串s 中第二个字符开始共strlen(s)一1个字符复制到s 的第一个字符的位置,最后将ch 放到s 的最后一个字符的位置。整个n 次循环结束就实现了字符串循环左移n 位的操作。

考研专业课资料、辅导、答疑一站式服务平台

第 3 页,共 26 页 2. 输入n 值,输出如图所示回型方阵。

图回形方阵线

【答案】

#definemax(x ,y)((x)>(y)?(x):(y))

main ( )

{inti ,j ,n ;

printf("\nPleaseEntern :");

scanf("%d",&n);

for(i=1;i<=n ;i++)

{for(j=1;j<=n ;j++)

if(i<=(n+1)/2)

if(j<=(n+1)/2)

printf("%4d",max((n+1)/2-i+1,(n+1)/2-j+1));

else

printf("%4d",max((n+1)/2-i+1,j-n/2));

elseif(j<=(n+1)/2)

printf("%4d",max(i-n/2,(n+1)/2-j+1));

else

printf("%4d",max(i-n/2,j-n/2));

printf("\n");

}

}

【解析】此题的关键还是要找到输出数字aij 和行列数i 、j 的关系。为此将图形分为四个区域如下图:

33333

32223

32123

32223

33333(此图n 为5)

在左上区域,即i<=(n+1)/2、j<=(n+1)/2时,输出数字为(n+1)/2-i+1和(n+1)/2-j+1中的大者,记为max{(n+1)/2-i+1,(n+1)/2-j+1};在右上区,即i<=(n+1)/2、j>(n+1)/2时,输出数字为max{(n+1)/2-i+1,j-n/2};在左下区,即i>(n+1)/2、j<=(n+1)/2时,输出数字为max{i-n/2,(n+1)/2-j+1};在右下区,即i>(n+1)/2、j>(n+1)/2时,输出数字为max{i-n/2,j-n/2}。

3. 编程计算

(n 个a)的值,n 和a 的值由键盘输入。 【答案】

考研专业课资料、辅导、答疑一站式服务平台

第 4 页,共 26 页

输入a , n 的值

求出累加项

进行累加

程序运行结果(假如a 和n 的值输入为

)

【解析】用累加和算法,累加项为

初值为0。 4. 在屏幕上显示一张如下所示的时间表:

操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示Good morning ,选择2时显示Good afternoon ,选择3时显不Good night ,对于其他的选择显示Selection error!,用switch 语句编程实现。

【答案】

程序运行结果:

考研专业课资料、辅导、答疑一站式服务平台

第 5 页,共 26 页

【解析】使用printf 函数输出一个简单的菜单,通过switch 语句进行选择。需要注意的是,输入选项是字符型的,所以在case 后的数字要加单引号。

5. 输入任意三个数numl 、num2、num3,按从小到大的顺序排序输出。

【答案】

程序运行结果(假设输入为):

【解析】使用if-else 结构将三个数两两之间进行比较。

6. 从键盘输入十个整数,用合并排序法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。

【答案】

#defineN16

#include"stdio.h"

merge(a ,b ,c ,m)/*数组合并函数:将长度为m 的*/

inta[],b[],c[],m ;/*数组a 、b 合并到c*/

{inti=0,j=0,k=0;

while(i<m&&j<m)

if(a[i]>b[j])

2018年首都师范大学C语言程序设计复试仿真模拟三套题.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219