中央财经大学C语言试题.docx

上传人:b****5 文档编号:28534188 上传时间:2023-07-18 格式:DOCX 页数:47 大小:43.23KB
下载 相关 举报
中央财经大学C语言试题.docx_第1页
第1页 / 共47页
中央财经大学C语言试题.docx_第2页
第2页 / 共47页
中央财经大学C语言试题.docx_第3页
第3页 / 共47页
中央财经大学C语言试题.docx_第4页
第4页 / 共47页
中央财经大学C语言试题.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

中央财经大学C语言试题.docx

《中央财经大学C语言试题.docx》由会员分享,可在线阅读,更多相关《中央财经大学C语言试题.docx(47页珍藏版)》请在冰豆网上搜索。

中央财经大学C语言试题.docx

中央财经大学C语言试题

中央财经大学硕士研究生入学考试试题

  招生专业:

产业经济学

  考试科目:

C语言程序设计

  注意:

本试题所有答案应按试题顺序写在答题纸上,只写试题顺序号,

  不必抄题,写在试题纸上不得分。

一、选择题:

下列每题选择一个合适的答案(每题2分,共16分)

  1.以下函数调用语句中含有(  )个实参。

  Sub1(f1,(f2,f3),f4,(f5,f6,f7))

  A)6  B)4  C)3  D)以上答案都不对。

  2.已知:

  union{intx;

              struct

                {  charc1,c2;}b;

                }a;

  执行语句:

a.x=0x3412之后,a,b,c1的值为(  )

  A)0x34  B)0x3412  C)0x12  D)以上答案都不对

  3.已知函数原形为:

  structtree*f(x1,x2,x3,x4)

  intx1,int*x2;

  struct  treex3,*x4

  其中tree为已定义过的结构,且有下列变量定义:

  strcuttreept,*p;inti;

  请选择正确的函数调用语句(  )。

  A)&pt=f(10,&i,pt,p);

  B)p=f(i++,(int*)p,pt,&pt);

  C)p=f(i+1,&(i+2),*p,p);

  D)f(i+1,&i,p,p);

4.若有以下程序片段:

    charstr[]="ac\b\0x56\078\\0";

    printf("%d",strler,(str));

  A)3      B)6    C)4  D)8

5.若fp为文件指针,且文件已正确打开,以下语句的输出结果为本(  )

    fseek(fp,0,2);

    i=ftell(fp);

    printf("i=%d",i);

    A)fp所指文件的记录长度

    B)fp所指文件的当前位置,以字节为单位

    C)fp所指文件的当前位置,以字节为单位

    D)fp所指文件的长度,以字节为单位

6.若有以下说明,则有()不是对strcpy库函数的正确调用。

  char  *str1="abcd",str2[12]

  char*str3="efghkl",*str4,  *str5="mnopq";

  A)strcpy(str2,str1);    B)strcpy(str3,str1)

  C)strcpy(str4,str1)      D)strcpy(sir5,str1);

7.若有如下说明,且0<=k<4,则(  )是错误的赋值

  inta[4][6],*p,*q[4]

  A)p=a            B)q[k]=a[k]

  C)p=a[k]          D)q[k]=&a[0][0]

8.以下语句段中,()不是无限循环。

  A)k=50;                B)for(;  ;  )

    while

(1)

    {k=k%50;k++;

      if(k>50)break;

    }

    C)k=32760;              D)k=32760;

    do                    while((k++%2)||(k%2))k++;

        {k+=2;}

    while(k>0);

  二、度程序:

给出程序执行后的输出结果。

(第1、2题各5分,第3、4、

  5、6题各6分,共34分)

    假设有可运行程序的各文件名为test.exe。

使用命令行参数,运行该程序

    的格式如下:

                                            

          test  ynop  azcbrwza<回车>

    请写出下面程序的输出结果。

    #include  "stdio.h"

    #include  "string.h"

    main(argc,argv)

    intargc;

    char  *argv[];

    {  char  **p;

    sub1(argv+1;argc-1);

    for(p=argv+1;--argc;p++)

      printf("%s\n",*p);

    }

  sub1(char*s[],intn)

    {int  k,j;

    char  word[20];

      for(k=0;k

      for(j=k+1;j

        if(strcmp(s[k],s[j])>0)

        {strcpy(word,s[k]);

          strcpy(s[k],s[j]);

          strcpy(s[j],word);

        }

    }

  2.写出以下程序运行后的输出结果。

    #include  "stdio.h"

    #define  N  6

    #define  M  21

  main()

    {  int  a[M],*p[N],k,j,q;

      for(k=0;k

      for(k=0;k

      for(k=2;k

        for(j=1;j

        *(*(p+k)+j)=*(*(p+k-1)+j-1)+*(*(p+k-1)+j);

      for(k=0;k

        {for(j=0;j<=k;j++)printf("%4d",*(*(p+k)+j));

        printf("\n");

      }

    }

  3.写出以下输出结果。

    #include"stdio.h"

    charstr[]="PPPQWLTECH1\1\11Q\1QALLMS1";

    main()

      int  k;  charch;

      for(k=2;(ch=str[k])!

='\0';k++)

        {switch(ch)

          {case'A':

  putchar('a');continue;

            case'1':

break;

            case1:

  while((ch=str[++k])!

='\1'&&ch!

='\0');

            case9:

  putchar('#');

            case'E':

            case'L':

continue;

            default:

  putchar(ch);continue;

          }          

        putchar('*');

        }

      printf("\n");

    }

  4.写出下列程序的输出结果。

    #include  "stdio.h"

    main()

    {char*s[6]=["BGCD","OFEH","IJKV""ALMN","QXYZ","PRST"};

      char  **p;

      int  k;

      p=s;

      for(k=1;k<4;k++)printf("%c",(*p)[k]);

  5.写出程序运行结果。

  #include  "stdio.h"

  #include  "string.h"

  void  fun(char*w,  intm)

      chars,*p1,*p2;

      p1=w;

      p2=w+m-1;

      while(p1

          s=p1++;p1=p2--;*p2=s;

          }

  main()

    {    staticchara[]="ABCDEFG";

        fun(a,strlen(a));

        puts(a)

    }

  6.下列程序由两个文件组成,请写出运行结果

    /*文件1*/

    #include"stdio.h"

    intj=4;

    main()

    {int,k,m,j;

      externintn;

      extern  intf2();

      k=4;m=3;j=0;

      printf("p1=%d\n",f1(n,m));

      printf("p2=%d\n",f2(k,m));

      printf("p3=%d\n",f1(n,j));

      printf("p4=%d\n",f2(n,j));

      printf("n=%d\n",n);

      printf("j=%d\n",j);

      }

      f1(intm,intk)

        {int  f;

        if(n)  n=k*n;

          j=m+j;f=n%j;

          return(f);}

    /*文件2*/

        intn=2;

        f2(inta,intb)

        {static  intm;

          extern  int  j;

          n=n*j+1;  j=j+m+1;  m=n+j+a+b;

          return(m);

        }

  三、填空题(每空2分,共22分)

  1.以下程序功能:

输入100本书的名称和单价,按照单价进行排序后输

    出。

  #include"stdio.h"

  #define  NUM  100

  structbook

    {char  name[20];

      float  price;

    }

  main()

    {  structbookterm,books[NUM];

    intcount;

    for(count=0;count

      {  printf("Input  book  nameandprice\n");

      scanf("%s%f",[

(1)]);

      sortbook(term,books,count++);

    printf("------------------BOOKLIST-----------------\n");

    for(count=0;count

      printbook([

(2)]);

    }

  sortbook(term,pbook,count)

    struct  book  term;

    struct  book  *pbook;

    int  count;

        intk;

        struct  book  *q,[(3)];

        for(k=0;k

        for(;pbook

          if(pbook->price>term.price)break;

        for(q=pend-1;q>=pbook;q--)

        [(4)];

        [(5)];

    }

    printbook(pbook)

      struct  book  *pbook;

      {printf("%-20s%6.2f\n",pbook->name,pbook->price);

      }

  2.以下程序显示指定文件,在显示文件内容的同时加上行号。

  #include"stdio.h"

  #include"string.h"

  main()

    {chars[20],filename[20];

    int  flag=1,[(6)];

    FILE*fp;

    printf("Enter  filename");

    gets(filename);

    if((fp=fopen(filename,"r"))[(7)])

      {printf("Fileopenerror!

\n");

      exit(0);

    }

    while([(8)])

    {

      while(fgets(s,20,fp)[(9)])

        {if([(10)])printf("%3d:

%s",++i,s);

        else  printf("%s",s);

        if([(11)])  flag=1;

        else  flag=0;

        }

        }    fclose(fp);

      }

四、编程序(第1题8分,第2题9分,第3题11分,共28分)

  1.某人有10张3分的邮票和10张5分的邮票,问使用这些邮票可以组

  合出多少种不同面值的邮资。

(例如:

1张3分邮票加1张5分邮票可

  以组成8分的邮资;5张3分的邮票或3张5分的邮票都可以组成同样

  面值的邮资。

  2.已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下

  列规则生成:

  

(1)  若乘积为一位数,则该乘积即为数列的后继项;

  

(2)  若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的

  两个后继项。

  请编程序生成该数列的前N项,并求前N项的和。

要求:

生成该数列

  后继项及求和过程用函数实现,在主函数中调用该函数。

  3.小刚假期同妈妈一起去书店,他选中了N本书,每本书的单价分别为:

  p1,p2,p3....,pn元(均为整数),不巧的是:

妈妈只带了S(为整数)元钱,

  不够买这N本书(即:

S

为了让小刚过一个愉快的假

  期,妈妈同意将这S元钱全部用来买书。

也就是小刚要从所选的N本

  书中选出M本,使得这M本的价格和刚好等于S。

即:

pi1+pi2+

  pi3+…+pim=S,请你编程序将所有满足这一条件的i1,i2,i3…im依次打

  印出来。

01年c真题参考答案

1.d      2.c      3.b      4.a      5.d          6.c      7.a      8.c      

1.azcb

  rwza

  ynop(这道题我没有调试出来,不知道怎么搞得,我的tc对这道题有意见,大家一起确认一下吧)

2.

          1

        1  1

      1  2  1

    1  3  3  1

  1  4  6  4  1

1  51010  5  1

3.  PQWTCH*#Q#

4.      GCD

5.      ABCDEAG

6.      p1=0      

      p2=51      

      p3=0

      p4=97

      n=1

      j=0

1.term.name,&term.price          2.&books[count]          3.*pend=pbook      4.*(q+1)=q      5.*(q+1)=term

6.i=0      7.==NULL      8.!

feof(fp)      9.!

=0      10.flag==1      11.strlen(s)<19

最后一道题,没有搞定,大家帮忙!

!

!

1.

#defineN101*101

main()

{inti,j,k,n,s,a[N];

n=1;a[0]=0;

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

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

{s=3*j+5*i;

for(k=0;k

if(k==n){a[k]=s;n++;}}

printf("have%dtypes\n",n);}

2.

#defineN10

main()

{inti,s,a[N+1];

voidcreat(inta[],intn);

a[0]=2;a[1]=3;

creat(a,N);

s=sum(a,N);

printf("thea'sprimerpartN:

\n");

for(i=0;i

printf("%4d",a);

printf("thesumofais:

\n");

printf("\nsum=%d",s);}

voidcreat(inta[],intn)

{inti,t;

for(i=2;i

{t=a[i-1]*a[i-2];

if(t/10==0)a=t;

else{a=t/10;a[++i]=t%10;}}  }

sum(int*a,intn)

{inti,s;

s=0;

for(i=0;i

3.

 

中央财经大学  二OO三年硕士研究生入学考试试题

  招生专业:

产业经济学(信息经济、宏观经济与产业经济模型方向)

  考试科目:

C语言程序设计

  注意:

本试题所有答案,应按试题顺序写在答题纸上,不必抄题,写清

  题号。

写在试卷上不得分。

  

  一、选择题:

下列每题选择一个合适的答案(每题2分,共18分)

  

  1.在C语言中,数组名作为参数传递给函数,作为实在参数的数组

  名被处理为(  )。

  A)该数组的长度;  B)该数组中各元素的值;

  C)该数组的首地址;  D)以上答案均不对。

  2.变量定义:

chars[3]="aB",*p;在执行语句p=s之后,*(p-2)的

  值是(  )。

  ’  ’

  A)'B'  B)'\0'  C)字符'B'的地址  D)不确定

  3.第一个主要采用C语言编写的操作系统是(  )。

    

  A)MS-DOS  B)Widows  C)UNIX  D)以上答案都不对

  4.在C语言的函数voidf(){staticinti=O;...}说明中,静态变

  量i的生命期是(  )。

  

  A)整个程序            B)函数f()所在的文件

  C)函数f()内部          D)以上答案都不对  

  5.没有提供指针类型的语言,无法构造链表结构,该说法(  )。

  A)正确    B)错误

  6.以下正确的程序段是(  )。

  

  A)charstr[20];      B)char*p;  

    scanf("%s",&str):

  scanf("%s",p)

  C)charstr[20];    D)charstr[20],*p=str;

    scanf("%s",&str[2]);  scanf("%s",p[2]);

  7.若有说明语句:

chara[]="Itismine",char*p="Itismine";

  则以下不正确的叙述是(  )。

  

  A)a+1表示的是字符t的地址;

  B)p指向的字符串与a数组中存放的字符串是同一个串;

  C)p变量中存放的地址值可以改变;

  D)a中只能存放11个字符号。

  8.若有说明:

char*l[]={"C","MATH","JAVA","BASIC"};则表达式

  *l[2]>*l[3]比较的是(  )。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1