就业数据资源平台
当前位置:首页 > C语言程序设计
2011年全国计算机等级二级C语言模拟试题及答案(15)

一、填空与选择
1.   C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2.   C语言的表达式与语句的区别在于___________________________________。
3.   C语句_____________ (有、没有)输入、输出语句。
4.   结构化程序的编写有_______________________________三种程序结构。
5.   C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
6.   表达式10/3*9%10/2的值是___________________。
7.   设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
8.   设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
9.   变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________


10.C语言调用函数中,参数的虚实结合是_________________
A. 传值 
B. 传址
C. 不分


11. 逻辑运算符“&&、||、          !”中是短路运算符号是____________________


12. C语言是由________________基本单位组成的。
A.过程 
B.语句   
C.函数 
D.程序


13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式 
B.逻辑表达式  
C.关系表达式 
D.字符表达式


14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?
A.File\Change 
B. File\Directory          
C. Option\Directories  
D.TC系统出故障了,应重新安装TC环境。


15.下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。


16.定义结构体的关键字是_______________
A. union              
B. enum               
C.struct               
D.typedef


17.定义联合体的关键字是___________________


18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?
A.当然可以
B.不可以
C.无所谓 
D.最好不要移动首指针


19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____
A. <类型标识符>  (*a)[3]   
B. <类型标识符>  *a[2]
C. <类型标识符>  *a[3]  
D.以上写法都不对。


20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____
A.11  
B.12     
C.14        
D.15


21.设整型变量a为5,使b不为2的表达式是___________
A. b=a/2   
B. b=6-(--a)    
C. b=a%2 
D.b=a>3?2:1


22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0        
B.2           
C.-4       
D. 4


23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________
A. A=b+3,b+5,--b  
B. A=4*5;  
C. A=++A-B    
D.a=b=5


24.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A. 3, 3, 2    
B. 3,2,2   
C.3,2,3   
D.2,3,2


25.下列对数组操作不正确的语句是_________
A. int a[5];                    
B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5};    
D. char b[3 ][ ]={1,2,3,4,5,6};


26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________
A. P+I*2  
B. P+(I-1)*2     
C. P+(I-1)           
D. P+I


27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100  
B. 400     
C. 450          
D. 900


28.下列常量中哪个是不合法的_________________
A.2e32.6         
B. 0.2e-5             
C. “basic”            
D. 0x4b00


29.下列标识符错误的是_______
A. x1y       
B._123                
C. 2ab                  
D. _ab


30. c语言中int型数-8在内存中的存储形式为_____
A.1111111111111000           
B. 1000000000001000
C. 0000000000001000          
D. 1111111111110111


二、读程序
1.写出下列程序段的输出结果:
main()
{int x=5;
 int y=10;
 printf("%d\n",x++);
 printf("%d\n",++y); }


2.写出下列程序的输出结果:
main()
{int x,y,z;
x=y=z=-1;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
++y&&++x||++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||y++&&z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);}


3.下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
  switch(x)
   { case 1:
     case 2:printf("x<3\n");
     case 3:printf("x=3\n");
     case 4:
     case 5:printf("x>3\n");
     default:printf("x unknow\n");   }   }


4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
     int p=1,q=5;
     float f1(int a)
     {int b,c;
       char ch;
   …                 局部变量ch在此范围内有效
   }
      char c1;
      char f2(int x,int y)
      {int i,j;


5.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{int x,y;
 scanf(“%d”,&x);
 if (x<0) y= -1;
 else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y);   }


6.分析下列程序所完成的功能。
main()
{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
scanf("%d,%d,%d",pa,pb,pc);
if (*pa>*pb)
 p=pa,pa=pb,pb=p;
if (*pa>*pc)
 p=pa,pa=pc,pc=p;
if (*pb>*pc)
 p=pb,pb=pc,pc=p;
printf("%d<=%d<=%d",*pa,*pb,*pc);    }


三、  程序填空:(根据题意,将空缺的语句补上。)
1.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
      #include "stdio.h"
main()
{    ________________
i=1,sum=0;
 for(; i<=10;)
 {sum+=i;
_________ }
 printf("%d\n",sum);   }


2.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float av(float a[],int n)
{int i;float s;
  for (i=0,s=0;i<n;i++) s=s+a[i];
  return (s/n);                          }
main()
{float a[10];
_______________
for (i=0;_________)
  scanf("%f"______);
 printf("%f",av(a,10));          }


3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。请将空缺地方补充完善。
      #include "stdio.h"
main()
{FILE *fp;
 char ch;
 if ((fp=fopen("test.txt","w"))==NULL)
  {printf("cannot open file\n");
                  ;
  }
                  ;
 while(ch!=’$’)
  { fputc(ch,fp);putchar(ch);
    ch=getchar();                       }
_______________________;    }


四、编程:
1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位      置(行、列),并输出计算结果。
2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。


 

就业数据资源平台