自考首页
   
自考介绍
   
自考动态
   
报考指南
  专业索引
答疑解惑
通联纵览
 
试题荟萃
  公共科目
专业科目
 
自考书斋
   
辅导园地

2000年下半年程序设计基础[机](上海卷)

   

[机械自动化专业]
[本卷考试时间150分钟]

一、改错题(每题中只有一个错误,在错误处下划一条线,并改正之。每小题2分,共20分)

1.main()
{
 x=8;
 printf("x=%d",x);
}

2.#define N 2;
main()
{float x,y;
 x=5;
 y=x*N+5*N+2;
 printf("y=%f\n",y);
}

3.main()
{double x,y,z;
 x=5;
 y=6.8;
 x+y=z;
 printf("%lf",z);
}

4.main()
{int n1,n2;
 scanf("%d%d",&n1,&n2);
 switch(n1-n2);
  {case  1: printf("n1-n2=1"); break;
   case -1: printf("n1-n2=-1"); break;
   default: printf("n1-n2=0");
  }
}

5.main()
{int i=1,s=0;
 do{s=s+i;
    i++;
   }while(i<10)
 printf("s=%d\n",s);
}

6.#include "stdio.h"
main()
{char a[80];
 scanf("%s",a);
 putchar(a);
}

7.main()
{float x;
 scanf("%f",&x);
 x=sqrt(x);
 printf("x=%f*%f\n",x,x);
}

8.main()
{char p[2]={"First","Second"};
 int i;
 for(i=0;i<2;i++)
  printf("%s\n",p[i]);
}

9.struct wk
    {int num;
     char name[20];
    };
    main()
    {struct wk w1[2]={21,"LI",32,"ZHANG"};
     int i;
     for(i=0;i<2;i++)
     printf("%d %s\n",w1[i]);
     }

10.#include "stdio.h"
main()
{file *fp;
 char ch;
 fp=fopen("a:test.txt","r");
 ch=fgetc(fp);
 fclose(fp);
 printf("%c\n",ch);
}

二、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题1分,共20分)

1.main()
{int x=125;
 printf("%x \n",x);
}
A.7d
B.x
C.0125
D.%x
(    )

2.整型量-6的补码为:
A.0000
B.8006
C.fffa
D.fff9
(    )

3.以下哪一个不是结构化程序的基本结构
A.顺序结构
B.选择结构
C.单一结构
D.循环结构
(    )

4.#define S1 6
#define S2 8
main()
{printf("%d\n",S1+S2);}
A.S1+S2
B.14
C.8
D.6
(    )

5.main()
{char c1='A';
printf("%d\n",c1);
}
A.65
B.c1
C.'A'
D.%d
(    )

6.main()
{int t=3,h;
 h=t++;
 printf("%d %d",t,h);
}
A.3  3
B.3  4
C.4  3
D.4  4
(    )

7.表达式 7*(int)(3/5+7/(float)2) 的值为:
A.28.7
B.28
C.24.5
D.21
(    )

8.main()
{int a,b,c;
 a=(b=4)+(c=6);
 printf("%d\n",a);
}
A.0
B.(b=4)+(c=6)
C.a
D.10
(    )

9.main()
{int a=35;
 printf("%04o\n",a);
}
A.35
B.0035
C.043
D.0043
(    )

10.假定a=2,b=3,c=3
表达式 a<=b<=c的值为:
A.0
B.1
C.2
D.3
(    )

11.假定a=-1,b=0,c=1,d=2
表达式 b>=a&&d>=c的值为:
A.-1
B.0
C.1
D.2
(    )

12.main()
{int s=0,i;
 for(i=1;i<6;i++)
{if(i==4) continue;
  s+=i;
  }
 printf("%d\n",s);
}
A.0
B.4
C.11
D.15
(    )

13.main()
{float x[5]={1.1,2.2,3.3,4.4,5.5};
 printf("%3.1f %3.1f\n",x[2],x[3]);
}
A.1.1  2.2
B.2.2  3.3
C.3.3  4.4
D.4.4  5.5
(    )

14.main()
{char a[3][5]={"THIS","BLUE","BOOK"};
 printf("%c %c\n",a[1][2],a[2][3]);
}
A.U  K
B.H  U
C.I  E
D.L  O
(    )

15.int f(int n)
{if(n>0) return n+f(n-1);
 else return 0;
}
main()
{printf("%d",f(10));
}
A.55
B.45
C.10
D.0
(    )

16.main()
{int x=1,*p=&x;
 printf("%d\n",*p);
}
A.1
B.*p
C.&x
D.无输出
(    )

17.main()
{int a[5]={1,2,3,4,5},*p;
 p=a+2;
 printf("%d %d\n",*(a+2),*(p+2));
}
A.2  2
B.3  3
C.3  5
D.5  5
(    )

18.main()
{char *c[3]={"ABC","DEF","GHI"};
 char **p;
 p=c+1;
 printf("%c\n",*(*p+1));
}
A.B
B.C
C.D
D.E
(    )

19.Union
{unsigned long a;
 unsigned int b[2];
}u;
main()
{u.a=0x22224444l;
 printf("%x %x\n",u.b[0],u.b[1]);
}
A.2222  4444
B.4444  2222
C.2244  4422
D.4422  2244
(    )

20.已知文本文件中依次存放A到Z 26个字母。
#include "stdio.h"
main()
{FILE *fp;
 char c1;
 fp=fopen("file1.dat","r");
 fseek(fp,2,0);
 c1=fgetc(fp);
 fclose(fp);
 printf("%c\n",c1);
}
执行上述程序后输出结果为:
A.Z
B.A
C.B
D.C
(    )

三、读程题(每小题6分,共24分)

1.main()
{char a[26],c;
 int i;
 for(i=0;i<26;i++)
  a[i]='A'+i;
for(i=0;i<26;i++)
{if(i>12) break;
   if(i%5==0) printf("\n");
   printf("%2c",*(a+i));
  }
}
运行结果:

2.main()
{char c[20]="I AM A CHINESE.";
 int i=0;
 while(c[i]!='')
i++; 
printf("%d\n",i);
}
运行结果:

3.#include "stdlib.h"
main()
{int i;
 char c,*b1,*b2;
 b1=(char *)malloc(10);
 b2=b1;
for(i=0;i<10;i++)
*b1++='a'+i;
 b1=b2;
 for(i=0;i<10;i++)
  printf("%c ",*(b1+i));
}
运行结果:

4.main()
{int b[7],i,*pb;
 char c[8],*pc;
 pb=b;
 pc=c;
 for(i=0;i<7;i++)
  {*(pb+i)=i;
   *(pc+i)='A'+i;
}
 for(i=0;i<3;i++)
  pb++;
 pc++;
 printf("%d %c\n",*--pb,*++pc);
}
运行结果:

四、完善程序题(在程序指定处只准写入一个表达式或语句。1、2题各3分,3、4、5题各4分,共18分)

1.分段函数为
  ì x2+2      x>=5
y=? 6x-2    5>x>=0
  ?  -2        x<0
键盘输入X值,屏幕显示Y值。
main()
{float x,y;
 scanf("%f",&x);
if(x>=5) y=x*x+2;
 else if(     1     ) y=6*x-2;
else      2       
 printf("y=%f\n",y);
}
1:
2:

2.用公式p/4=1-1/3+1/5-1/7+...求p的近似值,直到最末一项的绝对值小于10-5为止。
main()
{float t=1,sum=0;
 int n=1,f=1;
 while(     1     )
  {t=1.0/(2*n-1);
n++;
   sum=sum+f*t;
        2       
  }
 printf("sum=%f\n",4*sum);
}
1:
2:

3.打印杨辉三角形的前8行。
main()
{int a[8][8],i,j;
 for(i=0;i<8;i++)
  {a[i][i]=1;
        1       
  }
 for(i=2;i<8;i++)
  for(j=1;j

推荐给我的朋友

 

[关闭窗口]

zikao@service.netbig.com 回去网大主页