扬州大学试题纸
系        课程 C语言程序设计 (A)卷2002—2003学年第2学期
班级_________学号________姓名__________得分___________
一、选择题(每题分,30):
1、已知:char a; int b; float c; double d;
  则执行语句:c=a+b+c+d; 后,变量c的类型为         
  A. char          B. int            C. float            D. double
2、已有定义int x; float  y;  且执行scanf(“%2d%f”,&x,&y);语句时,
  从第一列开始输入数据12345 67<回车>,则y的值是       
  A. 无定值        B. 345.00000      C.        D.
3、设有以下程序段
      int  x=0; s=0;
      while (!x!=0) s+=++x;
      printf(“%d”,s);
                                   
  A. 运行程序段后输出0                B. 运行程序段后输出1
  C. 程序段中的控制表达式是非法的      D. 程序段执行无限次
4、若i为整型变量,则以下循环执行次数是             
      for(i=2; i==0;) printf(“%d”, i--);
  A. 无限次          B. 2次          C. 1次            次
5、假设char  ch=’a’, *p=&ch; ,以下语句中,有语法错误的是            .
    A. (*p)++;        B. ch+=‘a’+’A’;      C.  toupper(ch)=ch;        D. ch++;
6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}
    language[2]的值是         
    A. 一个字符    B. 一个地址      C. 一个字符串      D. 一个不定值
7、C语言程序中,当调用函数时        
    A. 实参和虚参可以共用存储单元
    B. 实参和虚参各占一个独立的存储单元
    C. 可以由用户指定是否共用存储单元
    D. 由计算机系统自动确定是否共用存储单元
8、在程序中要使用语句:printf(“%s\n”, STRING);
    输出提示信息: “OK! ”(包括双引号),则应使用宏定义语句         
    A. #define  STRING “OK!”          B. #define STRING “”OK!””
    C. #define  STRING \”OK!\”          D.以上三个答案都是错误的
9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________
  A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域
  B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配
  C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取
  D. 数组的长度是固定的,链表的长度是不固定的。
10、已知语句FILE  *fp; char ch= ‘c’;fp=fopen(“”,”w”); 如果需要将ch的值保存到一个磁盘文件中,则以下函数调用形式中,正确的是_____________
  A. fprintf(“%c”,ch);                    B. fprintf(“%c”,ch, fp);
  C. fprintf(fp,”%c”,ch);                D. fprintf(“”,”%c”,x);
11、以下标识符中,不能作为合法的C用户定义标识符的是             
  A. For          B. printf      C. getchar          D. sizeof
12、设p为指向结构体变量的指针,num为该结构体中的一个整型成员,y为一整
    型变量,则y=++p->num;与            等价。
  A. ++p;y=p->num;                  B. y=(++p)->num;
  C. ++(p->num); y=p->num;            D. y=p->num;++y;
13、若要对a进行++运算,则a应具有下面说明           
  A. int a[3][2]                    B. char  *a[ ]={“12”,”ab”}; 
  C. char  (*a)( );                    D. int b[10], *a=b;
14、以下程序段运行后,ab的值是           
      int  a,b,d=241;
        a= d/100%9;
        b=(-1)&&(-1);
  A. 6,1              B. 2,1          C. 6,0            D. 2,0
15、以下正确的说明语句是                   
    A. int *b[ ]={1,2,3};                  B. int a[3]={1,2,3},*b[3]={a[0],a[1],a[2]};
    C. int a[3],*b[3]={&a[0],&a[1],&a[2]};  D. int a[3][2],(*b)[3];b[0]=&a[2][1];
16、下面语句,合法是                 
    A. scanf(“%7.2f”,&x);                B. b=getchar(a);
    C. if((a=b;)>0) t=a;                    D. printf(“%”,”CHINA”);
17、下述程序段中,无语法错误的是               
    A. int  a=2,b=0;                    B. char  a=’A’,b=0;
  switch(a)                          switch(a)
  {  case  b+1:a--;break;              { case  ‘A’:b++;break;
    case  b+3:a++;break;                case  -1 : b=3;
  }                                    }
C. int a=2,b=5;                    D. #define N 10
  switch(b)                          int a=2,b=0;
      { case  b>0: a=1;break;                switch(a)
        case  b= =0:a=0;break;              { case  N-9: b++;break;
      }                                    case  1: b=1;break; }
18、以下说法不正确的是               
    A. 在不同函数中可以使用同名变量
    B. 形式参数是局部变量
    C. 在函数内定义的变量只在本函数范围内有效
    D. 在函数内的复合语句中定义的变量只在本函数范围内有效
19、在程序的执行过程中,该程序的某一个函数f中说明的static型变量x有这样的特性                    。
    A. x存在于函数f被调用期间且仅能被函数f所用
    B. x存在于整个程序执行过程中且仅能被函数f所用
    C. x存在于函数f被调用期间且可被所有函数所用
    D. x存在于整个程序执行过程中且可被所有函数所用
20、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执
    行的赋值语句是                   
  . c=*p1+*p2;                  . p2c   
  . p1p2;                       . c=*p1*(*p2);
二、基本概念题(每题2分,共10分)
1、一个C语言的语句至少应包含一个         。一个C源程序至少应包含一个
           
2、当程序读写数据文件时,需要有声明语句FILE *fp; 在该声明语句之前必须包含头文件                 
3、 char *p()说明的含义是                                       
4、只能在循环体中出现的语句是________________
5、C语言可以处理的文件类型是________文件和________文件。
三、阅读程序写出程序结果(每空2分,共20):
1、若有int a=1;  printf(“%d\n”,a*=a/=-a);
  则输出结果为               
2、下面程序的运行结果是         
    main()
    { int i, j=1;
      for(i=j==2; i<=2*j; i++)
        switch (i/j+1)
          { case 0:
            case 1:  printf(“**”);break ;
            case 2:  printf("##");
          }
    }
3、设有以下的宏定义MAX,程序的运行结果为           
    #define MAX(a,b)  (a>ba+1:b)+1
    main()
    { int i=16,j=8,k;
      printf("%d\n”,MAX(i,j)); 
    }
4以下程序输出结果是__________
  enum week{SUN=7,MON=1,WED,TUS,THS,FRI,SAT};
数组和链表
  main()
  {  printf(“%d”,hour(FRI,SUN)); }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。