精选医学模拟c语言高职附答案docWord文件下载.docx
《精选医学模拟c语言高职附答案docWord文件下载.docx》由会员分享,可在线阅读,更多相关《精选医学模拟c语言高职附答案docWord文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
![精选医学模拟c语言高职附答案docWord文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/24/552a88ef-0436-4c66-91fc-b5931aaa7ddd/552a88ef-0436-4c66-91fc-b5931aaa7ddd1.gif)
if(___________________)
{
x=0;
break;
}
printf("
%s\n"
x?
"
是"
:
"
否"
);
答案:
buf[i]!
=buf[strlen(buf)-1-i]
附测试程序:
#include<
stdio.h>
string.h>
main()
{inti;
abc2de11edcba"
for(i=0;
if(buf[i]!
=buf[strlen(buf)-1-i])
}
}
2.代码填空(满分3分)
下列代码把一个二进制的串转换为整数。
请填写缺少的语句;
char*p="
1010110001100"
intn=0;
i<
strlen(p);
{
n=__________________;
}
%d\n"
n);
n*2+(*(p+i)-'
0'
)
char*p="
1001"
intn=0;
n=n*2+(*(p+i)-'
3.代码填空(满分3分)
假设a,b,c是3个互不相等的整数。
下列代码取出它们中居中的数值,记录在m中。
其中的swap()函数可以交换两个变量的值。
请完善代码。
if(a>
b)swap(&
a,&
b);
//将较大数推向b
if(b>
c)swap(&
b,&
c);
//将较大数推向c,c即为三个数中的最大值
______________________;
//再将a、b中的较大数推向b,b即为中间数
intm=b;
if(a>
voidswap(int*p,int*q)
{intt;
t=*p;
*p=*q;
*q=t;
{inta,b,c,m;
Inputa,b,c:
scanf("
%d,%d,%d"
&
a,&
b,&
//将较大数推向b
//将较大数推向c,c即为三个数中的最大值
//再将a、b中的较大数推向b,b即为中间数
m=b;
min=%d,m=%d,max=%d\n"
a,m,c);
4.代码填空(满分6分)
下面函数的目的是求出某个日期是该年度的第几天。
试完善之。
如果传入:
year=1980,month=1,day=1
则返回1
year=1980,month=2,day=1
则返回32
intgetDayOfYear(intyear,intmonth,intday)
{
intdays_____________________;
intflag=(year%4==0&
&
year%100!
=0)||year%400==0?
1:
0;
intsum=day;
for(inti=0;
month;
i++){
sum+=days[flag][i];
}
returnsum;
[2][12]={{0,31,28,31,30,31,30,31,31,30,31,30},{0,31,29,31,30,31,30,31,31,30,31,30}}
inti,days[2][12]={{0,31,28,31,30,31,30,31,31,30,31,30},{0,31,29,31,30,31,30,31,31,30,31,30}};
intflag=(year%4==0&
intsum=day;
sum+=days[flag][i];
}
returnsum;
intyear,month,day;
Ipnutyear,month,day:
year,&
month,&
day);
getDayOfYear(year,month,day));
5.代码填空(满分7分)
计算3个A,2个B可以组成多少种排列的问题(如:
AAABB,AABBA)是《组合数学》的研究领域。
但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。
下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。
请完善它。
intf(intm,intn)
if(m==0||n==0)return1;
return_______________________;
f(m-1,n)+f(m,n-1)
returnf(m-1,n)+f(m,n-1);
inti,j;
Inputm,n:
%d,%d"
i,&
j);
kinds=%d\n"
f(i,j));
6.代码填空(满分10分)
(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:
121,1331,14641。
这些系数构成了著名的杨辉三角形:
1
11
121
1331
14641
15101051
下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。
intf(intm,intn)
if(m==0)return1;
if(n==0||n==m)return1;
return__________________________;
f(m-1,n-1)+f(m-1,n)
{if(m==0)return1;
if(n==0||n==m)return1;
returnf(m-1,n-1)+f(m-1,n);
{inti,j;
10;
i++)
{for(j=0;
j<
=i;
j++)
%4d"
\n"
7.程序设计(满分15分)
从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n的数字按照顺时针螺旋的形式填入其中。
例如:
输入数字2,则程序输出:
12
43
输入数字3,则程序输出:
123
894
765
输入数字4,则程序输出:
1234
1213145
1116156
10987
程序源代码:
intval=0;
//设置全局变量val,以使每次调用f()时,所填写的值是接着上次的顺序
voidf(inti,intk,int(*farr)[20])//每调用一次函数将打印以(i,i)为正方形的左上角,k为边长的正方形框
{intc;
for(c=0;
c<
k;
c++)//写入正方形上边沿的值
farr[i][i+c]=++val;
for(c=1;
c++)//写入正方形右边沿的值
farr[i+c][i+k-1]=++val;
for(c=k-2;
c>
=0;
c--)//写入正方形下边沿的值
farr[i+k-1][i+c]=++val;
=1;
c--)//写入正方形左边沿的值
farr[i+c][i]=++val;
intn,count,arr[20][20],a,b;
Inputn:
%d"
n);
for(count=0;
count<
n/2+n%2;
count++)//n为偶数时,循环n/2次;
n为奇数时,循环1+n/2次
f(count,n-count*2,arr);
//(count,count)为每个正方形的左上角的坐标,正方形的边长为(n-count*2)
for(a=0;
a<
n;
a++)//输出已填入数据的二维数组arr[][]
{for(b=0;
b<
b++)
printf("
%-5d"
arr[a][b]);
8.程序设计(满分9分)
从键盘输入一个日期,格式为yyyy-M-d
要求计算该日期与1949年10月1日距离多少天
用户输入了:
1949-10-2
程序输出:
1
1949-11-1
31
voidmain()
intyear,month,day,y,total=0,flag=0;
intyue[2][12]={{0,31,28,31,30,31,30,31,31,30,31,30},{0,31,29,3