东北大学考研真题(部分)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
cout<<endl;
}
//找出行中最大的数,列中最小的数,即鞍点
for(i=0;i<m;i++)
{ max=a[i][0];
for(j=0;j<n;j++)
{
if(max<a[i][j])
{
max=a[i][j];li=i;lj=j;
}
}
for(day=1;day<=len_of_month;day=day+1)/*打印当月日期*/
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) /*打满一星期应换行*/
{weekday = 0;printf("\n");}
}
printf("\n"); /*打完一月应换行*/
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
printf("\n\n\n %d年\n",year); /*打印年份*/
for(month=1; month<=12;month=month+1) /*打印12个月的月历*/
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
}
return (a);
}
4\\20分,每小题5分,写出下列程序的运行结果(答案写在答卷上)
1.
void main()
{ union {char c;int i;} t;
t.c=’A’; t.i=1;
printf("t.c=%d t.i=%d\n",t.c,t.i);
}
2.
int f(int *x,int *y,int z)
char *delstr(char*a,char*b)
{
char*st=a,*s2,*s1;
while (*st&&*b)
{
s1=st;
s2=b;
while (*s1&&*s2&&!(*s1-*s2))
s1++,s2++;
if (!*s2)
{
while (*st++=*s1++);
st=a;
}
st++;
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/
/*weekday = week_of_newyears_day(year);求元旦是星期几*/
{
if(str1[i]>str2[i])
{
b=1;break;
}
else if(str1[i]<str2[i])
{
b=-1;break;
}
i++;
}
return b;
};
3.
int *big(int*x, int*y)
{ int *p;
return p=x>y?x:y;
}
void main()
{int a,b;
scanf(“%d,%d”,&a,&b);
printf(“%d”, *big(&a,&b));
}
4.
#define r 2
#define PI 3.14
void main()
{ int i,r=2;
for (i=0;i<5;i++)
printf(“%f\n”,2*PI*r++);
}
三、int f(int *a)
int strcmp(char *str1, char *str2){
int i=0;
int b=0;
while(str1[i]&&str2[i])
{
if(str1[i]>str2[i])
{
b=1;break;
}
else if(str1[i]<str2[i])
{
b=-1;break;
}
i++;
}
return b;
char ***pp=p;
printf("%s\n",**p);
printf("%s\n",*(*p-3));
printf("%s\n",**pp);
printf("%s\n",*--*pp+3);
printf("%s\n",(*pp)[-2]+3);
}
2007
20分,每小题5分(答案写在答卷上)
1.下面程序中是否存在错误?如果有错误,请改正过来:
}
return 0;
}
2\\将一个数的数码倒过来所得到的新数,叫作原数的反序数,如果一个数等于它的反序数,则称它为对称数。例如十进制数121就是一个十进制的对称数。编写程序,采用递归算法求不超过1993的最大的二进制的对称数。
#include <stdio.h>
#include <conio.h>
main()
struct num{
int a[10];
};
void main()
{ struct num *ptr;
int i;
for (i=0;i<10;i++)
ptr->a[i] = i;
}
2.下面函数的功能是比较str1和str2大小。当str1<str2时返回-1,当str1>str2时返回1,当str1=str2时返回0。函数设计中是否存在错误?如果有错误,请改正过来:
if (buf1==buf2)
printf("equal!");
else printf("not equal!");
}
4.
void main()
{ char *str[]={"You are a student.","computer","The end.","Hello World!"};
char **p[]={str+3,str+2,str+1,str+0};
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char *argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("\n请输入某年年份: ");
{
int leap = NO;
if((year%4==0&&year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/*函数week_of_newyears_day():求元旦是星期几*/
int week_of_newyears_day(int year)
{ return (*a)++;
}
void main()
{ int a=2;
int s=0;
{ int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
四、void f(int a[],int i,int j)
{ int t;
if(i<j)
{ t=a[i]; a[i]=a[j];a[j]=t;
1\\"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历"
#include<stdio.h>
#define YES 1 /*定义符号常数“是” */
#define NO 0 /*定义符号常数“否” */
/*函数isleap():判断某年是否闰年*/
int isleap(int year)
f(a,i+1,j-1);
}
}
void main()
{ int i,a[5]={1,2,3,4,5};
f(a,0,4);
for(i=0;i<5;i++)
printf("%d,",a[i]);
printf("\n");
}
2011
#include <iostream>
using namespace std;
x=getchar();
printf("\nThe count is:%d",v(s,x));
fflush(stdin);
printf("\ncontinue(Y/N?):");
p=getchar();
}
}
int v(char *str,char xch)
{
int z=0,i=0;
for(;str[i]!='0';i++)
for(i=0;i<m;i++)
{
a[i]=new int[n];
for(j=0;j<n;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cin>>a[i][j];
}
}
//按矩阵输出数据
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
int main()
{
int **a,m,n,i,j,k,li,lj,min,max;
bool flag;
cout<<"请输入行数:";
cin>>m;
cout<<"请输入列数:";
cin>>n;
cout<<"您输入的是"<<m<<"*"<<n<<"数组"<<endl;
a=new int*[m];
//输入数据
if(str[i]==xch)
{
printf("\nthe location is:%d",i+1);
z++;
}
return(z);
}
3\\编写一函数delstring(char *pstr1,char*pstr2)功能是删除在字符串pstr1中出现的所有字符串pstr2.(不允许有字符串标准库函数)
}
4.下面程序中是否存在错误?如果有错误,请改正过来:
#define r 2
#define PI 3.14
void main()
{ int i;
for (i=0;i<5;i++)
printf(“%f\n”,2*PI*r++);
}
(17分)试编来自百度文库程序:
编写一个递归函数,将一个十进制整数转换成一个四进制数。
printf("星期日星期一星期二星期三星期四星期五星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) /*找当月1日的打印位置*/
printf(" ");
{
int v(char *str,char xch);
char s[100],x,p;
p='Y';
while (p=='Y')
{
clrscr();
fflush(stdin);
printf("\nenter the str:");
gets(s);
printf("\nenter the the char:");
};
3.下面程序的功能是求两个整数中较大者,并输出结果。程序设计中是否存在错误?如果有错误,请改正过来:
int *big(int x, int y)
{ int *p;
return p=x>y?&x:&y;
}
void main()
{int a,b;
scanf(“%d,%d”,&a,&b);
printf(“%d”, *big(a,b));
int a[10];
};
void main()
{ struct num *ptr,a;
int i;
ptr=&a;
for (i=0;i<10;i++)
ptr->a[i] = i;
}
2.
int strcmp(char *str1, char *str2)
{
int i=0;
int b=0;
while(str1[i]||str2[i])
提示:统计结果显示,26个英文字母中,字母”e”出现在英文文本中的频率最大。
答案:
一、1.t.c=1 t.i=1
2.4,4,5,6
3.not equal!
4.Hello World!
You are a student.
Hello World!
end.
are a student.
二、1.
struct num{
输入2个十进制整数n和m,分别将其转换成四进制数,然后对这2个四进制数进行四进制的求和运算,输出结果。
(18分)破译密码问题。为使电文保密,往往按一定的规律将其转换成密码,例如,将字母变换成其后的第m个字母(如,密钥m=4时,字母A变成字母E,字母B变成F,……),收报人再按规律将其译回原文。
现有一个经过加密的英文文本文件(文件足够大),但加密密钥m值未知。试编写一个程序,将文本解密后存入另外一个文件。
{
*x=*y++;
return(++z);
}
void main()
{ int a=3,b=4,c=5,d;
d=f(&a,&b,c);
printf("%d,%d,%d,%d\n",a,b,c,d);
}
3.
void main()
{ char buf1[10]="hello";
char buf2[10]="hello";
cout<<endl;
}
//找出行中最大的数,列中最小的数,即鞍点
for(i=0;i<m;i++)
{ max=a[i][0];
for(j=0;j<n;j++)
{
if(max<a[i][j])
{
max=a[i][j];li=i;lj=j;
}
}
for(day=1;day<=len_of_month;day=day+1)/*打印当月日期*/
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) /*打满一星期应换行*/
{weekday = 0;printf("\n");}
}
printf("\n"); /*打完一月应换行*/
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
printf("\n\n\n %d年\n",year); /*打印年份*/
for(month=1; month<=12;month=month+1) /*打印12个月的月历*/
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
}
return (a);
}
4\\20分,每小题5分,写出下列程序的运行结果(答案写在答卷上)
1.
void main()
{ union {char c;int i;} t;
t.c=’A’; t.i=1;
printf("t.c=%d t.i=%d\n",t.c,t.i);
}
2.
int f(int *x,int *y,int z)
char *delstr(char*a,char*b)
{
char*st=a,*s2,*s1;
while (*st&&*b)
{
s1=st;
s2=b;
while (*s1&&*s2&&!(*s1-*s2))
s1++,s2++;
if (!*s2)
{
while (*st++=*s1++);
st=a;
}
st++;
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/
/*weekday = week_of_newyears_day(year);求元旦是星期几*/
{
if(str1[i]>str2[i])
{
b=1;break;
}
else if(str1[i]<str2[i])
{
b=-1;break;
}
i++;
}
return b;
};
3.
int *big(int*x, int*y)
{ int *p;
return p=x>y?x:y;
}
void main()
{int a,b;
scanf(“%d,%d”,&a,&b);
printf(“%d”, *big(&a,&b));
}
4.
#define r 2
#define PI 3.14
void main()
{ int i,r=2;
for (i=0;i<5;i++)
printf(“%f\n”,2*PI*r++);
}
三、int f(int *a)
int strcmp(char *str1, char *str2){
int i=0;
int b=0;
while(str1[i]&&str2[i])
{
if(str1[i]>str2[i])
{
b=1;break;
}
else if(str1[i]<str2[i])
{
b=-1;break;
}
i++;
}
return b;
char ***pp=p;
printf("%s\n",**p);
printf("%s\n",*(*p-3));
printf("%s\n",**pp);
printf("%s\n",*--*pp+3);
printf("%s\n",(*pp)[-2]+3);
}
2007
20分,每小题5分(答案写在答卷上)
1.下面程序中是否存在错误?如果有错误,请改正过来:
}
return 0;
}
2\\将一个数的数码倒过来所得到的新数,叫作原数的反序数,如果一个数等于它的反序数,则称它为对称数。例如十进制数121就是一个十进制的对称数。编写程序,采用递归算法求不超过1993的最大的二进制的对称数。
#include <stdio.h>
#include <conio.h>
main()
struct num{
int a[10];
};
void main()
{ struct num *ptr;
int i;
for (i=0;i<10;i++)
ptr->a[i] = i;
}
2.下面函数的功能是比较str1和str2大小。当str1<str2时返回-1,当str1>str2时返回1,当str1=str2时返回0。函数设计中是否存在错误?如果有错误,请改正过来:
if (buf1==buf2)
printf("equal!");
else printf("not equal!");
}
4.
void main()
{ char *str[]={"You are a student.","computer","The end.","Hello World!"};
char **p[]={str+3,str+2,str+1,str+0};
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char *argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("\n请输入某年年份: ");
{
int leap = NO;
if((year%4==0&&year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/*函数week_of_newyears_day():求元旦是星期几*/
int week_of_newyears_day(int year)
{ return (*a)++;
}
void main()
{ int a=2;
int s=0;
{ int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
四、void f(int a[],int i,int j)
{ int t;
if(i<j)
{ t=a[i]; a[i]=a[j];a[j]=t;
1\\"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历"
#include<stdio.h>
#define YES 1 /*定义符号常数“是” */
#define NO 0 /*定义符号常数“否” */
/*函数isleap():判断某年是否闰年*/
int isleap(int year)
f(a,i+1,j-1);
}
}
void main()
{ int i,a[5]={1,2,3,4,5};
f(a,0,4);
for(i=0;i<5;i++)
printf("%d,",a[i]);
printf("\n");
}
2011
#include <iostream>
using namespace std;
x=getchar();
printf("\nThe count is:%d",v(s,x));
fflush(stdin);
printf("\ncontinue(Y/N?):");
p=getchar();
}
}
int v(char *str,char xch)
{
int z=0,i=0;
for(;str[i]!='0';i++)
for(i=0;i<m;i++)
{
a[i]=new int[n];
for(j=0;j<n;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cin>>a[i][j];
}
}
//按矩阵输出数据
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
int main()
{
int **a,m,n,i,j,k,li,lj,min,max;
bool flag;
cout<<"请输入行数:";
cin>>m;
cout<<"请输入列数:";
cin>>n;
cout<<"您输入的是"<<m<<"*"<<n<<"数组"<<endl;
a=new int*[m];
//输入数据
if(str[i]==xch)
{
printf("\nthe location is:%d",i+1);
z++;
}
return(z);
}
3\\编写一函数delstring(char *pstr1,char*pstr2)功能是删除在字符串pstr1中出现的所有字符串pstr2.(不允许有字符串标准库函数)
}
4.下面程序中是否存在错误?如果有错误,请改正过来:
#define r 2
#define PI 3.14
void main()
{ int i;
for (i=0;i<5;i++)
printf(“%f\n”,2*PI*r++);
}
(17分)试编来自百度文库程序:
编写一个递归函数,将一个十进制整数转换成一个四进制数。
printf("星期日星期一星期二星期三星期四星期五星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) /*找当月1日的打印位置*/
printf(" ");
{
int v(char *str,char xch);
char s[100],x,p;
p='Y';
while (p=='Y')
{
clrscr();
fflush(stdin);
printf("\nenter the str:");
gets(s);
printf("\nenter the the char:");
};
3.下面程序的功能是求两个整数中较大者,并输出结果。程序设计中是否存在错误?如果有错误,请改正过来:
int *big(int x, int y)
{ int *p;
return p=x>y?&x:&y;
}
void main()
{int a,b;
scanf(“%d,%d”,&a,&b);
printf(“%d”, *big(a,b));
int a[10];
};
void main()
{ struct num *ptr,a;
int i;
ptr=&a;
for (i=0;i<10;i++)
ptr->a[i] = i;
}
2.
int strcmp(char *str1, char *str2)
{
int i=0;
int b=0;
while(str1[i]||str2[i])
提示:统计结果显示,26个英文字母中,字母”e”出现在英文文本中的频率最大。
答案:
一、1.t.c=1 t.i=1
2.4,4,5,6
3.not equal!
4.Hello World!
You are a student.
Hello World!
end.
are a student.
二、1.
struct num{
输入2个十进制整数n和m,分别将其转换成四进制数,然后对这2个四进制数进行四进制的求和运算,输出结果。
(18分)破译密码问题。为使电文保密,往往按一定的规律将其转换成密码,例如,将字母变换成其后的第m个字母(如,密钥m=4时,字母A变成字母E,字母B变成F,……),收报人再按规律将其译回原文。
现有一个经过加密的英文文本文件(文件足够大),但加密密钥m值未知。试编写一个程序,将文本解密后存入另外一个文件。
{
*x=*y++;
return(++z);
}
void main()
{ int a=3,b=4,c=5,d;
d=f(&a,&b,c);
printf("%d,%d,%d,%d\n",a,b,c,d);
}
3.
void main()
{ char buf1[10]="hello";
char buf2[10]="hello";