您的位置:考研教育网> >历年试题>考研专业课> 正文

对外经济贸易大学2002年考研C语言程序设计试题

考研教育网   2008-11-19 18:41 【 】【我要纠错

  一、选择题

  1.在C语言中,如果下面的变量都是int类型,则输出的结果是()

  sum=pad=5;

  pad=sum++,pad++,++pad;printf(“%d/n”,pad);

  a.7       b.6      c.5     d.4

  2.以下程序的输出结果是()

  main()

  {int i=010,j=10;

  printf(“%d,%d/n”,++i,j——);}

  a.11,10     b.9,10     c.010,9      d.10,9

  3.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是()

  main()

  { char c1=‘A’,c2=‘Y’;

  printf(“%d,%d/n”,c1,c2);}

  a.输出错误信息    b.65,90    c.A,Y     d……65,89

  4.执行以下语句,则c的二进制值是()

  char a=3,b=6,,c;

  c=a^b<<2;

  a.00011011    b.00010100    c.00011100   d.00011000

  5.已知:int a=5;执行下列语句后输出结果是()

  if (a=0)  printf(“%d”,a)

  else   printf(“%d”,2*a);

  a.10      b.5c.0       d.语法错误

  6.语句while(!E) 中的条件!E等价于()

  a.E==0    b.E!=1     c.E!=0     d.~E

  7.执行语句for(X=0,Y=0;(Y!=123)&&(X<4);X++);()

  a.无限循环  b.循环次数不变   c.执行4次     d.执行3次

  8.sizeof(double)是()

  a.一种函数调用  b一个双精度型表达式  c.一个整形表达式  d.一个不合法的表达式

  9.以下程序的输出结果是()

  main()

  { char str[12]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘/0’}

  printf(“%d/n”,strlen(str));

  }

  a.12     b.11     c.7    d.6

  10. 以下程序的输出结果是()

  main()

  { int a,b,d=241;

  a=d/100%9;

  b=(-1)&&(-1);

  printf(“%d,%d/n”,a,b);

  }

  a.6,1    b.2,1     c.6,0    d.2,0

  11.C语言的运算符以运算对象的数目可以分为()

  a.单目算符    b.单目算符和双目算符

  c.单目,双目和三目算符       d. 单目,双目,三目和四目运算符

  12.使用以下对二维数组的定义语句中,不正确的定义是()

  a. int m[2][3]={{1},{2,3}};   b.int m[2][3]={1,2,3};

  c. int m[2][3]={{1},{2},{3}};   d. int m[2][3]={1,{2,3}};

  13.若定义a,b为整型变量,用scanf{“%d%d”,&a,&b};语句输入a,b的值时,不可以()作为输入的分割符。

  a.,b.空格      c. 回车键      d.TAB键

  14.若定义char *s=“car”; 则以下表达式的值不等于‘a’的是()

  a.*++s;    b.*(s+1)     c.*s+1      d.s[1]

  15.C语言程序中,若对函数的类型没有说明,则函数的默认类型是()

  a.void    b.int    c.char   d.single

  16设有以下语句,则()不是对a数组元素的正确引用,其中0<=i<10

  int *p,a[10]={0,1,2,3,4,5,6,7,8,9};

  *p=a;

  a.a[p-a]    b.*(&a)    c.p    d.*(*(a+i))

  17. 以下程序的输出结果是()

  union  pw

  { int ji;

  char ch[2];

  }a;

  main()

  {  a.ch[0]=13;

  a.ch[1]=0;

  printf(“%d/n”,a.i);

  }

  a.13     b.14      c.208      d.209

  18.以下程序执行时,从第一列开始输入2374<CR>,<CR>代表一个回车符。程序的输出结果是()

  main()

  {    int c;

  while((c=getchar())!=‘/n’){

  switch(c-‘2’){

  case 0:

  case 1:putchar(c+4);

  case 2: putchar(c+4);break;

  case 3: putchar(c+3);

  default: putchar(c+2);break;

  }

  printf(“/n”);

  }

  a.668977    b.668966     c.66778777    d.6688766

  19.以下程序的输出结果是()

  #define  FUDGE(y)  2.84+y

  #define  PR(a)   printf(“%d”,(int)(a))

  #define  PRINT1(a)    PR(a); putchar(‘/n’)

  main()

  {   int x=2;

  PRINT1(FUDGE(5)*x)

  }

  a.11      b.12       c.13      d.15

  20.根据以下语句 ,则()不是对库函数strcpy的正确调用

  char str1[]=“string,str2[8],*str3,*str4=”string“;

  a.strcpy(str1,“HELLO”);    b. strcpy(str2,“HELLO”);

  c. strcpy(str3,“HELLO”)    d. strcpy(str4,“HELLO”)

  二、阅读程序段,填写运行结果

  1.下面程序段的运行结果是()

  main()

  { int a=10,b=5,c=5,d=5;

  int m=0,n=0,p=0;

  for(;a<b;++b)  m++;

  while(a>++c)  n++;

  do p++;while(a>d++);

  printf(“m=%d n=%d p=%d”,m,n,p);

  }

  2.下面程序段的运行结果是()

  main()

  { int k=4,m=1,p;

  p=func(k,m);

  printf(“%d,”,p);

  p=func(k,m);

  printf(“%d,”,p);

  }

  func(a,b)

  int a,b;

  {  static  int m=0,i=2;

  i+=m+1;

  m=i+a+b;

  return(m);

  }

  3.以下程序的输出结果是()

  main()

  { int i;

  for(i=1;i<=5;i++){

  if(i%2)   printf(“*”);

  else      continue;

  printf(“#”);

  }

  printf(“$/n”);

  }

  4.下面程序的运行结果是()

  main()

  {  int x,a=1,b=2,c=0;

  x=——a||b&&++c;

  printf(“%d/n”,x);

  }

  5.下面程序的运行结果是()

  #include<stdio.h>

  struct s

  { int a;

  int b:

  }d[4]={1,20,3,40,5,60,7,80};

  main()

  { struct s *p=d;

  printf(“%d/n”,++p->a);

  printf(“%d/n”,++p->b);

  }

  三、程序选择填空

  以下程序名为cat.c,其功能是将命令行中所列的文件依次在屏幕上显示,每显示完一个文件内容后,用户按任意键,则显示下一个文件,如果命令行中所列的文件不能打开或没有给出文件名,则显示相应的信息,命令的格式为:cat filename1 filename2…

  1) a.char   b.int   c.file   d.FILE

  2) a.fgetc(fptr)    b.getchar(fptr)    c.fgetc(fp)    d.getchar(fp)

  3) argc=1   b.argc==1   c.argc<1    d.argc==1

  4) a.&pf    b.*fp    c.argv     d.fp

  5) a.fclose(argv)    b.rewind(argv)    c.fclose(fp)    d.rewind(fp)

  #include  “stdio.h”

  void cat (「1」 *fptr)

  {  int c;

  while((c=「2」)!=EOF)

  putchar?;

  }

  main(argc,argv)

  int argc;

  char *argv[];

  {FILE *fp;

  int i;

  if(「3」)

  {  printf(“缺少参数/n”); exit(0);}

  for(i=1;i<argc;i++)

  {  if((fp=fopen(argv,“r”))==NULL)

  printf(“%s 无法打开 /n”,argv);

  else{

  printf(“/*文件:%s*//n”,argv);

  cat(「4」);}

  「5」;

  printf(“按任意键显示下一个文件/n”);

  getchar();

  }

  }

  四、程序填空

  1.函数fun(char *s,int a)的功能是采用递归的方法将16进制的字符串s转换成10进制整数作为函数的返回值,若字符串s不是16进制的字符串,则函数的返回值是-1,a的初值是0.

  fun(char *s,int a)

  { int i;

  if(「1」)

  i=*s-‘0’;

  else

  if(*s>=‘A’&&*s<=‘F’)

  「2」;

  else

  if(*s>=‘a’&&*s<=‘f’)

  「3」;

  else

  「4」;

  a=a*16+I;

  if(*(s+1)!=‘/0’)

  fun(「5」);

  else

  return(a);

  }

  2.以下程序找出二维数组a中每行的最大值,并按一一对应的顺序放入一维数组s中。即:第零行中最大值,放入s[0]中,第一行中最大值,放入s[1]中……。然后输出每行行号和最大值,请填空。

  #define   「6」   10

  main()

  {

  int a[M][M],s[M],i,j,k;

  for(i=0;i<M;i++)

  for(j=0;j<M;j++)

  scanf(“%d”,*(a+i)+j);

  for(i=0;i<M;i++)

  { *(s+i)= 「7」;

  for(j=1;j<M;j++)

  if(*(s+i) 「8」*(*(a+i)+j))

  *(s+i)= 「9」;

  }

  for(i=0;i<M;i++)

  { printf(“Row=%2d Max=%5d”, 「10」);

  printf(“/n”);

  }

  }

  3. 函数htmtotxt的功能是将html文件中的htm标记过滤掉,即过滤掉在<…。> 之间的内容,将其他内容形成一个纯文本文件。函数的参数f1为现有的html文件名,参数f2为形成的纯文本文件名。注意,在html文件中出现<br>,<BR>标记时,应向文本文件中添加一个回车符。

  void htmtotxt(char *f1,char *f2)

  {

  FILE *fin,*fout;

  char sc,*s1,*p1;

  int flag;

  s1=(char *)malloc(MAX);

  p1=s1;

  /*打开输入输出文件*/

  if((fin=fopen(f1,“r”))==NULL)

  {

  printf(“File %s open  error!/n”,f1);

  return;

  }

  if((fout=fopen(f2, 「11」)==NULL)

  {

  printf(“File %s open  error!/n”,f2);

  return;

  }

  /*从htm文件中读取内容,过滤htm标记中的内容,然后将其他内容写入文本文件中*/

  flag=0;

  while(!feof(fin))

  {

  sc=「12」;

  if(sc==‘<’)

  {

  s1=p1;

  *s1++=sc;

  while((sc=fgetc(fin))!=‘>’&&!feof(fin))

  { *s1=「13」; s1++;}

  flag=1;

  }

  if(flag==1)

  {

  *s1++=sc;

  *s1=‘/0’;

  if(「14」)

  {

  fputc(‘/n’,fout);

  flag=0;

  continue;

  }

  }

  flag=0;

  fputc(sc,fout);}

  「15」;

  fclose(fout);

  }

  五、编写程序

  1.请编写函数huiwen(char *s),它的功能是检查字符串s是否是回文,所谓回文即正向,反向的拼写都一样。如a,eye,ABBA等,当字符串s是回文时,函数的返回值是1,否则返回值是0.

  void huiwen(char *s)

  {    /*答案开始*/

  …

  /*答案结束*/

  }

  2.请编写函数void fun(int *a,int y,int n),它的功能是:把y值插入到a数组中,a数组中的数由主函数按由小到大的次序从键盘读入,y是要插入的数,其值也从键盘读入。n是a中数字的个数(n<S)。要求插入后,数组中的数仍然有序。下面的主函数部分的程序略,不需要编写,考生只需要完成函数fun的编程。

  #define S 50

  main()

  {

  int a[S],b,c;

  ……

  fun(a,b,c)

  ……

  }

  void fun(int *a,int y,int n)

  { /*答案开始*/

  ……

  ……

  /*答案结束*/

  }

  请点击查看更多对外经济贸易大学考研相关信息>>>

  相关链接:对外经济贸易大学历年考研专业课试题汇总

◇ 编辑推荐
·2015年考研复习:政治 英语 数学  专业课 · 2014年考研真题及答案汇总   历年考研真题
· 考研网上辅导热招!  ·2015年考研报考指南   ·历年考研国家分数线汇总   复试信息
考研网上辅导课程 特色班 精品班 实验班
学费 购买 学费 购买 学费 购买
公共课 政 治 800元 购买 1500元 购买 3500元 购买
英 语 800元 购买 1500元 购买 3500元 购买
数 学 800元 购买 1500元 购买 3500元 购买

专业课

视频

《管理类联考综合》、《会计学》、《中医综合》、《西医综合》、《法硕联考综合(法学)》、
《法硕联考综合(法学)》、《法硕联考专业基础(法学)》、《法硕联考专业基础(非法学)》

专业课

资料

952所考研院校、57300个招生专业、245000份考研辅导课件、核心纲要、考研笔记、内部题库现正热卖!

说明 专业课请到考研开放平台上注册及缴费----帮助