C语言程序设计》模拟试题208级)
1、下面程序的输出结果是____
    main()
    { int i,j,k=10;
     for(i=0;i<2;i++)
      { k++;
       { int k=0;
        for(j=0;j<=3;j++)
         { if(j%2) continue;
          k++;
         }
       }
       k++;
      }
     printf("k=%d\n",k);
    }
  A. k=18 
B. k=14 
  C. k=8 
  D. k=4 
2、以下选项中,对指针变量p不正确的操作是(      )
Aint a[6],*p;  p=&a;
Bint a[6],*p;  p=a;
Cint a[6];  int *p=a=1000;
Dint a[6];  int *p1,*p2=a;  *p1=*p2;
3、设P1P2是指向同一个int型一维数组的指针变量,kint型变量,则不能正确执行的语句是(    )
AP2=k;
BP1=P2;
Ck=*P1+*P2;
Dk=*P1*(*P2);
4、若“int a[4][10],*p,*q[4];”,且0<=i<4,则下面选项中(    )是错误的赋值。
Ap=a
B. q[i]=a[i]
Cp=a[i][0]
Dq[i]=&a[2][0]
5、以下关于函数调用的描述中错误的是(    )
A.实参可以是常量、表达式或有确定值的变量
B.实参和形参共用同一内存单元
C.实参和形参的类型、个数必须一致
D.只有发生函数调用时,系统才为形参分别存储空间
6fopen函数失败、以下正确的描述是(    )
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
7、已经有以下函数定义:
fun (char a)
{ printf((“a=%c\n”, a); }
该函数的返回值类型是(    )
Avoid
Bchar
Cint
D.不确定
8、以下叙述中正确的是(    )
A.在C语言中静态变量在未赋值时,其值为0
B.在C语言中任何变量在未赋值时,其值为0
C.外部变量在程序的任何函数中均有效
D.函数中任何一个局部变量均无法保留上一次调用时的运行结果
9、在对文件进行操作时,读文件的含义是(    )
A. 将内存中的信息存入磁盘
B. 将磁盘中的信息输入到内存
C. CPU中的信息存入磁盘
D. 将磁盘中的信息输入到CPU
10、调用fopen函数打开一个文件失败时,函数返回的值是(    ):
A. -1
B. EOF
C. NULL
D. 1
11feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是(  ):
A. 0
B. 1
C. NULL
D. 以上答案都不对
12、下述程序的正确运行结果是()。
#include <stdio.h>
int fun(int x)
{
int p;
if (x==0||x==1)
  return 3;
else
  p=x-fun(x-2);
return p;
}
void main()
{
printf(“\n%d”,fun(9));
A. 8 
  B. 7 
  C. 10 
  D. 9 
13、以下不正确的if语句是(    )
A. if (a<b) t=a ;
B. if (a !=b && b) ;
C. if (a=b) printf("equal" ) ;
D. if (a>b) && (b>c) printf("max=%d",a);
14、关于if后面一对圆括号中的表达式,叙述正确的是(    )
A. 只能用关系表达式
B. 只能用逻辑表达式
C. 只能用关系表达式或逻辑表达式
D. 可以使用任意合法的表达式
15C程序中,合法的关键字是(    )
A. int
B. integer
C. Int
D. Integer
16、在C程序中,不合法的浮点型常量是(    )
A3.4E2.5
B.456
C0.
D100.3e5
17、在引用数组元素时,其下标表达式的类型必须是(    )
A. 字符型
B. 整型
C. 整型或字符型
D. 整型常量
18、以下运算符中,优先级最高的是(    )
A.  !
B.  [ ]
C.  ++
D.  %
19、对定义"int  a[2]; "的正确描述是(    )
A. 定义一维数组a,包含a[1]a[2]两个元素
B. 定义一维数组a,包含a[0]a[1]两个元素
C. 定义一维数组a,包含a[0]a[1]a[2]三个元素
D. 定义一维数组a,包含a(0)a(1)a(2)三个元素
20C语言中whiledo-while循环的主要区别为(      )
A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的循环控制条件严格
C. do-while允许从外部转到循环体内
D. do-while的循环体不能是复合语句
21、有以下程序段:
    int t=0;
    while(t=1) t--;
    while循环执行的次数是(      )
A. 一次也不执行
B. 只执行一次
C. 无限次
D. 执行2
22While 语句中循环结束的条件是while后面表达式的值是(    )
A. 0
B. 1
C. -1
D. 0
23、执行循环语句"for (i=1; i<10; i++) a++;"后,变量i的值是(    )
A. 9
B. 10
C. 11
D. 不确定
24、若变量xy均为整型,且x=y=1,则表达式y+=x+1的值为(    )
A. 3
B. 2
C. 1
D.无正确结果
25、表示关系x<=y<=zc语言表达式为(    )
A. (X<=Y<=Z)
B. (X<=Y)AND(Y<=Z)
C. (X<=Y)&&(Y<=Z)
D. (X<=Y)&(Y<=Z)
26、下面程序的输出结果是( )
 #include <stdio.h>
 main( )
 { int n[3][3], i, j;
  for(i=0;i<3;i++ )
   for(j=0;j<3;j++ )
    n[i][j]=i+j;
  for(i=0;i<2;i++ )
   for(j=0;j<2;j++ )
    n[i+1][j+1]+=n[i][j];
  printf("%d\n", n[i][j]);
 }
  A. 14
  B. 0 
  C. 6 
  D. 不确定 
27、下面程序的输出结果是____
#include <stdio.h>
char *p = "abcdefghijklmnopq"
main( )
{ int i=0
while( *p++!='e' )
printf("%c\n", *p)
A.c
B.d
C.e
D.f
28、下面程序的输出结果是____
#include "stdio.h"
struct str1
{ char c[5]
char *s
}
main( )
{ struct str1 s1[2]={ {"ABCD","EFGH"}{"IJK","LMN"} }
struct str2
{ struct str1 sr
int d
}s2={"OPQ","RST",32767}
struct str1 *p[2]
p[0]=&s1[0]
p[1]=&s1[1]
printf("%s"++p[1]->s)
  A.LMN
  B.MN
  C.N
  D.IJK
29、设有以下宏定义: