东北大学考研真题(部分)
}
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分)试编写程序:
编写一个递归函数,将一个十进制整数转换成一个四进制数。
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.下面程序中是否存在错误?如果有错误,请改正过来:
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。函数设计中是否存在错误?如果有错误,请改正过来:
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(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;
输入2个十进制整数n和m,分别将其转换成四进制数,然后对这2个四进制数进行四进制的求和运算,输出结果。
(18分)破译密码问题。为使电文保密,往往按一定的规律将其转换成密码,例如,将字母变换成其后的第m个字母(如,密钥m=4时,字母A变成字母E,字母B变成F,……),收报人再按规律将其译回原文。
现有一个经过加密的英文文本文件(文件足够大),但加密密钥m值未知。试编写一个程序,将文本解密后存入另外一个文件。
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/
/*weekday = week_of_newyears_day(year);求元旦是星期几*/
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,%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 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请输入某年年份: ");
printf("\n\n\n %d年\n",year); /*打印年份*/
for(month=1; month<=12;month=month+1) /*打印12个月的月历*/
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
printf("星期日星期一星期二星期三星期四星期五星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) /*找当月1日的打印位置*/
printf(" ");
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])
{
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:");
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];
//输入数据
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]<<" ";
};
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));
{