就业数据资源平台
当前位置:首页 > C语言程序设计
2012年3月计算机等考二级C语言冲刺题及答案(3)

一.单项选择题

  1. 设int x=1,y=1;表达式(!x++ || y--)的值是_________


  A.0


  B. 1


  C. 2


  D.-1


  2.main( )


  { int n;


  ( n=6*4,n+6),n*2;


  printf(“n=%d\n”,n);


  } 此程序的输出结果是______________.


  A.30


  B. 24


  C. 60


  D. 48


  3.若有如下定义,则__________是对数组元素的正确的引用。


  int a[10] , *p ;


  p=a ; p=a ; p=a ; p=a ;


  A. *&a[10]


  B. a[11]


  C. *(p+10)


  D. *p


  4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________


  A. 0


  B. 4


  C. - 4


  D. 2


  5.以下不能正确定义二维数组的语句是___________


  A . int a[2][2]={{1},{2}};


  B. int a[][2]={1,2,3,4};


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


  D. int a[2][]={{1,2},{3,4}};


  6. 程序段___________的功能是将变量 u 、s中的最大值赋给变量t 。


  A. if(u>s) t=u;t=s;


  B. t=u; if(t ) t=s;


  C. if(u>s) t=s;else t=u;


  D . t=s; if(u ) t=u;


  7.下列程序段的输出结果是___________。


  void main()


  { int k;


  for (k=1;k<5;k++〉


  { if(k%2!=0)


  printf("#");


  else


  printf(“*”) ; }


  }


  A. #*#*


  B . *#*#


  C. ##


  D. 以上都不对


  8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是 (35) 。


  A. &a[2]


  B. 4


  C. 7


  D. 1


  9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。


  A.a>=0||b>=0)&&(a<0 ||b<0)


  B.(a>=0 && b>=0)&&(a<0 && b<0)


  C.(a+b>0) &&(a+b<=0)


  D. a*b>0


  10.C语言中,合法的字符型常数是_________。


  A.‘A’


  B.“A”


  C. 65


  D. A


  11.设有数组定义:char array[]=”China”; 则数组所占的空间是________。


  A.4个字节


  B.5个字节


  C.6个字节


  D.7个字节


  12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。


  A.’a’<=c<=’z’


  B. (c>=’a’) || (c<=’z’)


  C.(‘a’<=c) and (‘z’>=c)


  D. (c>=’a’) && (c<=’z’)


  13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。


  A.printf(“x=%d\n”,x)


  B.printf(“x=%ld\n”,x)


  C.printf(“x=l\n”,x)


  D.printf(“x=%LD\n”,x);


  14.下列关于指针定义的描述,___________是错误的。


  A.指针是一种变量,该变量用来存放某个变量的地址值的。


  B.指针变量的类型与它所指向的变量类型一致。


  C.指针变量的命名规则与标识符相同。


  D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。


  15.已知:int x; int y[10]; 下列______是合法的。


  A.&x


  B.&(x+3)


  C.&5


  D .&y


16.指出下面正确的输入语句__________。

  A. scanf(“a=b=%d”,&a,&b) ;


  B. scanf(“%d,%d”,&a,&b) ;


  C. scanf(“%c”,c) ;


  D. scanf(“% f%d\n”,&f) ;


  17.C语言中以追加方式打开一个文件应选择_______________参数。


  A.“r”


  B.“w”


  C.“rb”


  D.“a”


  18.Break语句的正确的用法是( )。


  A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。


  B. 在多重循环中,只能退出最靠近的那一层循环语句。


  C. 跳出多重循环。


  D. 只能修改控制变量。


  19. 为表示关系x≥y≥z,应使用C语言表达式


  A.(x>=y)&&(y>=z)


  B. (x>=y) AND (y>=z)


  C.(x>=y>=z)


  D. (x>=z)&(y>=z)


  20.以下可以作为C语言合法整数的是________。


  A.1010B


  B. 0368


  C.0Xffa


  D. x2a2


  21.在函数中默认存储类型说明符的变量应该是________存储类型。


  A.内部静态


  B. 外部


  C.自动


  D. 寄存器


  二.判断题


  1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )


  2. 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )


  3. 在 C 程序中, APH 和 aph 代表不同的变量。( )


  4. 表达式 0195 是一个八进制整数。( )


  5. 表达式 _ya是不合法的C语言标识符。( )


  6. C程序总是从main( ) 函数的第一条语句开始执行的。 ( )


  7. A-=7等价于a=a-7。 ( )


  8. 利用fclose函数关闭已打开的文件。( )


  9. 数组名可以作为参数进行传递。( )


  10. 执行printf("%x",12345);, 输出 12345 。( )


  三、填空


  1.C语言的预处理语句以__________开头。


  2.表达式7+8>2 && 25 %5的结果是_______________________。


  3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。


  int n=0, ch;


  ch=getchar( );


  while( __________________ )


  { if ( ________________ ) n++;


  c=getchar( ); }


  4.C语言中putchar(c ) 函数的功能是_________________________________。


  5.int *p 的含义是___________________________________________。


  6.定义fp为文件型指针变量的定义方法为_______________________。


  7.数组 int a[3][4];共定义了____________个数组元素。


四、读出程序。

  1. 改正下列程序中不正确的语句。


  main()


  { int a=8 , b=1;


  a=a+b;


  b=a*b;


  printf("%d, %d",a,b); }


  2.写出下列程序的运行结果。


  fun(int a, int b)


  { if(a>b) return (a);


  Else return (b); }


  main()


  { int x=3,y=8,z=6,r;


  r=fun(fun(x,y),2*z);


  printf(“%d\n”,r); }


  3. 改正下列程序中不正确的语句。


  main()


  { int n ;


  float s=1.0;


  for(n=10;n>1;n- -)


  s=s+1/n;


  printf(“%6.1f\n”,s); }


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


  main()


  { int n;


  For(n=3; n<=10; n++)


  { if(n%5= =0) break;


  Printf(“%d”,n); } }


  5.写出下列程序的运行结果。


  #include “stdio.h”


  main()


  { int a[]={1,2,3,-4,5};


  int m,n,*p;


  p=&a[0]; p=&a[0];


  m=*(p+2);


  n=*(p+4);


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


  五.编程序


  1. 编程计算下列表达式:s=1!+2!+3!+4!+……+10!


  2.从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+……(共n项)的和。例a=2, n=4, 则sum=2+22+222+2222。


  3.求3X3矩阵的主对角线元素之和。


  4.从键盘上输入10个数存入一维数组中,求这10数中的最大值与最小值并输出。


  5.从键盘上输入若干个字符存入文件write.txt中,遇到回车键输入结束。(用“\n”表示回车键)


 参考答案


  一.单项选择题


  1 B 2B 3D 4C 5D


  6C 7A 8C 9D 10A


  11C 12D 13B 14D 15A


  16B 17D 18B 19A 20C 21C


  二.判断题


  1√ 2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ


  三、填空


  1 #号


  2 0


  3 ch!=’\n’ ch>=’0’ && ch<=’9’


  4 将变量c中的字符显示到屏幕上。


  5 指针变量p为整型


  6 FILE *fp


  7 12


  四、读出程序。


  1 printf("%d, %d",&a,&b); 2 12


  3 s=s+1.0/n


  4. 3 4


  5 1 3 5


  五.编程序


  1.


  #include "stdio.h"


  main()


  { long s=0,t=1;


  int i;


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


  { t=t*i;


  s=s+t;


  }


  printf("%ld",s); }


  2


  #include "stdio.h"


  main()


  { int a,n count=1,sn=0,tn=0;


  scanf("%d %d",&a,&n);


  while(count<=n)


  { tn=tn+a;


  sn=sn+tn;


  a=a*10;


  ++count; }


  printf("%d",sn); }


  3.


  #include "stdio.h"


  main()


  { int a[3][3],i,j,s=0;


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


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


  scanf("%d",&a[i][j]);


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


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


  if(i==j)


  s=s+a[i][j];


  printf("%d",s); }


  4.


  #include "stdio.h"


  main()


  { int a[10],max,min;


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


  scanf("%d",&a[i]);


  max=a[0];


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


  if(a[i]>max)


  max=a[i];


  min=a[0];


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


  if(a[i]


  min=a[i];


  printf("%d %d",max,min); }


  5.


  #include "stdio.h"


  main()


  { int c;


  FILE *fp;


  fp=open("write.txt","w");


  c=getchar();


  while(c!=’\n’)


  { fputc(c,fp);


  c=getchar();


  }


  fclose(); }

就业数据资源平台