中国研招信息网客服:010-51654495 首页 | 招生简章 | 考生须知 | 调剂信息 | 网报公告 | 在线咨询 | 院校信息 | 专业目录 | 考研资讯 | 信息公告 | 留言
 
 教育新闻 | 考研资讯 | 招生信息 | 08年研究生调剂信息 | 2009年研究生报考招生单位
复试 | 复习指导 | 常识 | 考研故事 | 试题大纲 | 专业硕士 | 考研心路 | 考研与工作 | 考研与爱情 | 考研与家庭 | 在职读硕 | 分数 | 同等学历 | 报考 | 政策
您当前的位置:中国研招信息网 -> 实用信息 -> 试题大纲 -> 文章内容 退出登录 用户管理
南京林业大学2003年攻读硕士学位研究生入学考试——C程序设计试题
作者:不详  来源:本站整理

减小字体 增大字体

一.      选择题(40分)
 
1..当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______
A  c=b=a;        B  (a=c)‖(b=c);
C  (a=c)&&(b=c); D  a=c=b;
 
2.在C语言中,不正
 
确的int类型的常数是________
A  32768    B  0     C  037     D  0xAF
 
3.以下程序的输出结果是________
main( )
{ int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);}
A  -1 1   B  0 1   C  1 0   D  0 0
 
4.在C语言类型中,int ,char, short等类型的长度是_________
   A.固定的   B.由用户自己定义     C.任意的     D.与机器字长有关
 
5.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为___________
A  4    B  3    C  2     D  1
 
6.  下列说法错误的是______________
A.结构体变量可以被整体赋值.     
B.  可以取结构体变量的地址
C.  可以取结构体变量成员的地址    
D.        结构体类型的成员可以定义成该结构体类型的指针类型
 
7.设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是____
A  1    B  0    C  -1     D  2
 
8. .  设有程序段: t=6;a=7;b=8; if(a=b)t=a;,这段程序执行后,t的结果是______
A. 6     B.7    C.8       D.0
 
9.下列描述中不正确的是________
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
 
10.若a为二维数组,它有m列,则a[i][j]在数组中的位置是_________
A. i*m+j     B. j*m+i     C. i*m+j-1   D. i*m+j+1
 
11. 下列语句中符合C语言语法的赋值语句是__________
A  a=7+b+c=a+7;   B  a=7+b++=a+7;
C ) a=7+b,b++,a+7   D  a=7+b,c=a+7;
 
12. 若a为二维数组,则a[1][3]等价于_________
A.  *((a+1)+3)   B. *(a[1]+3)     C. (*(a+1)+3)      D.  &a[1]+3
 
13.下面程序段不是死循环的是_____________
A.               int  j=100;
while(1){j=j%100+1;if(j>100)break;}
B.                for( ; ; );
C.               int k=0; do{ ++k;}while(k>=0);
D.               int s=36; while(s);--s;
 
14.下列表达式中,错误的是______.
  A.2>1 ? a:b         B.i+++j        C.4.0%2.0       D.x*=y+8
 
15.a,b为整数且b!=0,则表达式(a/b)*b+a%b的值为______的值.
  A.a   B.b   C.a被b除的余数部分      Da被b除商的整数部分
 
16.若以数组元素作为函数的实参,则实参向形参传送的是______.
  A.数组元素的地址   B.数组元素的值   C.数组的首地址  B.数组名
 
17.设有如下的共用体定义:
      union data
      {int i;
       long b;
       float f;}a;
      则a所占的内存单元为______个字节.
  A.4            B.6            C.8             D.10
 
 18.语句:printf("%d",(a=2)&&(b= -2);的输出结果是________
A  无输出    B 结果不确定    C  -1    D  1
 
19.下列选项中不是C语言main函数正确表达形式的是________?
A.main(int argc,char *argv[]);
B.main(ac,av) int ac;char **av;
B.main(c,v) int c;char *v[];
D.main(argc,argv) int argc;char argv[];
 
20.执行for(j=1;j++<4;);语句后变量j的值是_________
  A. 3           B. 4          C. 5            D.不定
 
 
二.填充(20分)
 
1.      C语言的数据类型中,构造类型包括:数组,__________和__________.
 
2.设x,y,z,t均为int型变量,则执行以下语句后,t的值为_________
x=y=z=1;
t=++x||++y&&++z;
 
3.C语言的运算符要确定的两个方面分别是__________和__________.
 
4.  在函数内使用static是_________,在函数外使用static是________。
 
5.对于语句:scanf("%3d%3d",&a,&b);,若输入123456,则a和b的值分别为_______和_______.
 
6.设有二维数组 inta[2][2],*p;,则a[I][j]三种其他表示是______________,
 ____________,___________。
 
7.字符串的长度是_________________,它的存储空间大小是_______。
 
8.静态变量赋初值是________赋值,动态变量赋初值是___________赋值。
 
9.链表中每个结点至少应包括二个部分,它们是__________和__________.
 
10.用数组名作函数参数时,形参和实参的结合是采用__________,因为数组名是
数组的__________.
 
 
三.程序分析题(20分)
 
1.  阅读下面程序,给出输出结果。
 
   main( )
   { int i, j, k;
    for(i=1; i<10; i++)
    { printf(“\n”);
       if(i<=5)
{for(j=1; j<=i; j++)
         { for(k=1;k<=5-i;k++)
            printf(“ ”);
           printf(“* “); }
        else
        for (j=1; j<=10-i;j++)
        {for(k=1;k<=i-5;k++)
         printf(“ ”);
           printf(“* ”);}}}
 
2.  阅读下面程序,指出函数所实现的功能。
 void  ins(char s[ ], int start, char t[ ])
    { int m, n,i,k;
     n=0;m=0;
     for(i=0;s[i]!=’\0’;i++)  m++;
     for(i=0;t[i]!=’\0’;i++)  n++;
     for(k=1 ; k<m-start; k++) s[m+n-k]=s[m -k];
     for(k=start;k<start+n;k++)
      s[k]=t[k-start];
     s[m+n]=’\0’;
     }
 
 
 
3.  阅读下面程序,指出下面程序所完成的功能
 void st(char *a [ ],int n )
    { int i,j,k;
     char *m;
     for(i=1; i<n; i++)
     { m=a[i]; k=i;
      for (j=i+1; j<=n; j++)
      if (strcmp(a[k],a[j])>0), k=j;)
      m=a[i]; a[i]=a[k]; a[k]=m; }
      for(i=1; i<=n; i++)
      printf(“%s”, a[i]);}
 
4.分析以下程序:
     #include “string.h”;
 main()
     {char c,string[81];
     int i,a=0,b=0;
     gets(string);
     for(i=0;(c=string[i])!='\0';i++)
        if (c==' ')a=0;
       else if (a==0)
            {a=1;b++;}
     printf("%d\n",b);
     }
该程序的作用是_________________.若输入:a b c,则程序运行后,输出结果为______,
且c的值为______,a的值为______.
 
5.  阅读下面程序,指出函数所实现的功能。
void  lnsort(int L[ ],int n)
     {int i,j;
     for( i=2;i<=n;i++)
     {L[0]=L[i];
j=i-1;
while(L[0]<L[i])
{L[j+1]=L[j];
j--;
}
L[j+1]=L[0];
}
}
 
 
四.完成下列程序(20分)
 
1. 下面程序是查找学生的成绩,完成该程序。
 main( )
{  void search (float (*p) [3], int i );
   float score [4][3]={{75,78,82},{66,72,77},{85,90,81},{74,89,68}};
   while (1)
  {  scanf (“%d” &i );
     if(___1____)break;
     search(_____2_______);}}
void search (float (*p)[3],int i )
    { int k;
      print (“The score of No %d are \n”,i );
      for(_____3_______)
      printf( “%5.2f”,_____4_________);}
 
2. 已知两个线性表的元素按非递减排列,合并两表得到一新表,仍然是按
非递减排列,两个线性表以-1为结束标志。以函数来完成该操作,函数如下,
完成所缺语句。
   void  LL(int la[ ], int lb[ ], int lc[ ] )  // la,lb是已知二表//
            { int pa, pb, pc;
              pa=0 ; pb=0;pc=0;
              if (la[pa]<lb[pb]{___5_____}
              else {________6__________}
             while(_______7___________)
            { if (la[pa]<=lb[pb])
            { lc[pc]=la[pa]; __8___; __9___;}
else {____10_________}}
while (_____11________)
____12___;
while (____13________)
____14______;
 }
 
3.在一数组里装数取数,从数组中所装的数的最后一项的下一个空单元装数,
从数组中所装的数的最後一个取数,取数后该单元成空单元,如果取数已到数
组空,-1表示未取到,以下是对数组的一次取数操作,函数值是所取的值,完成该
函数。
define MAX 100
int pop ( int s[ ] ,int top )
   { if (___15______) return (-1);
     top = ___16________;
     return (____17_______) ;}
 
4.在 n 行 n 列的矩阵中,每行都有最大的数,本程序求这 n 个最大数中的最小一个
[程序1.2]
#include〈stdio.h〉
#define N 100
int a[N][N];
void main()
{ int row ,col ,max ,min ,n;
    /*输入合法 n (〈100 〉,和输入 n×n 个整数到数组 a 的代码略*/
    for ( row = 0;row < n;row++) {
        for ( max = a[row][0],col = l ;col < n;col++)
            if (__18_) max = a[row][col];
        if (__19__) min = max;
        else if(__20__) min = max;
    }
    printf ("The min of max numbers is %d\n",min);
}
 
 
五. 编程题(50分)
 
1.  有函数f(x)=cos(x)可展开成:f(0)+f’(0)x/1!+f”(0)x /2!+…
   编写函数程序求cos(x),使误差小于0.0000001。
 
2.   有一个链表,输出所有结点的数值,确定该链表的长度,并将链表的头结点
与尾结点连接.编写完成这样操作的函数。这里的结点定义为
typedef struct node {int data ;
                 struct node * next ; } Node ;
 
3.将一个整数a左循环移位n次,求位移后的这个数.写出子函数
 
4.写函数,将一个十进制数转换成一个十六进制数,并输出.
 
5. 如果有n个棋子,甲、乙两方轮流取棋子,每方至少取一个棋子,最多取m个棋子
 谁最后取剩下的一个棋子,谁就输,如果甲方先取,请给出甲方赢的算法.(写出函数)
[返回上一页] [打 印] [收 藏]
特别说明 :由于各方面情况的不断调整与变化,本网站所提供的所有信息为非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性,仅供参考,相关信息敬请以权威部门公布的正式信息为准。
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 名校推荐
 考研资讯
关于本站 - 网站帮助 - 广告合作 - 网站声明 - 友情连接 - 网站地图
欢迎您的咨询、留言、建议和意见   服务电话:010-51654495  
© 版权所有  研招网信息管理中心  京ICP证05075689号    
建议使用:1024*768分辨率,16位以上颜色   北京网通提供网络宽带   
  不良信息
举报中心
北京网络
行业协会