2016年南京师范大学考研真题答案--c语言
1、选择题(上机检验即可)
1、D
2、B
3、D
4、B
5、B
2、程序分析题(上机检验即可)
1、i=16,j=23
只使p,q指针指向的地址发生变化,而地址没变,地址内存的值没变。
2、6 8 11 15 20
3、1 2 6 9 11 注意:printf放的位置是每循环一次就输出
3、程序填空题
1、产生随机的三位数,并拆分个位、十位、百位
rand()函数:产生随机整数。需加上头文件#include
#include
#include
#include
void main(void){
int n,a,b,c;
do{n=rand()%1000;}while(n<100);//rand()%1000:获取随机数的最后三位数
a=n/100; b=(n/10)%10; c=n%10;
printf("个位:%d,十位:%d,百位:%d\n",c,b,a);
}
2、打印杨辉三角
#include
void triangle(int n){
int i,j;
int data[15][15];
data[0][0]=1;
for(i=1;i
data[i][0]=1;//每行第一个数
for(j=1;j
data[i][j]=data[i-1][j-1]+data[i-1][j];
}
data[i][j]=1;//每行最后一个数
}
for(i=0;i
for(j=0;j<=i;++j){
printf("%4d",data[i][j]);
}
printf("\n");
}//打印
}
void main(){
triangle(8);//调用函数
}
4、编程题
1、打印九九乘法表(右上三角)
#include
void main(){
int i,j,n;
printf(" ");
putchar('|');
for(i=9;i>0;--i)printf("%4d",i);
printf("\n\n--+------------------------------------\n\n");
for(i=9;i>0;--i){
printf("%2d",i);putchar('|');
for(n=1;n<=9-i;++n)printf(" ");
for(j=i;j>0;--j)printf("%4d",j*i);
printf("\n\n");
}
}
2、计算数列和
#include
#include
double a(i){
int j;
float fenmu=1.0;
double an;
for(j=1;j<=i;j++)fenmu*=j;
an=sin(1/fenmu);
return an;
}
void main(){
int i;
double sn=0;
for(i=1;fabs(a(i+1)-a(i))>=0.0001;i++){
sn+=a(i);
}
printf("%lf",sn);
}
3、复制文件内容(c语言中没有bool类型)
#include
#include
int copyme(char *file1,char *file2) //形参
{
FILE *sfp,*dfp; int flag=0;char ch;
if((sfp=fopen("file1.txt","r"))==NULL)
{
printf("can't find\n");
exit(0);
}
if((dfp=fopen("file2.txt","w"))==NULL)
{
printf("cannot find\n");
exit(0);
}
while(!feof(sfp))
{
ch=fgetc(sfp);
fputc(ch,dfp);
}
flag=1;
return flag;
fclose(sfp);
fclose(dfp);
}
int main()
{ int flag;
flag=copyme("file1.txt","file2.txt"); //实参
if(flag==1)printf("复制成功");
else printf("复制失败");
}
¥29.8
¥9.9
¥59.8