当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年全国计算机等级二级C语言模拟试题及答案(5)
发布时间:2010/11/4 10:32:21 来源:城市学习网 编辑:ziteng
  一、填空
  1.实型变量的类型说明符有:__________、____________。
  2.表达式7+8>2 && 25 %5的结果是_______________________。
  3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
  Int  n=0, ch;
  Ch=getchar( );
  While( __________________ ) ) ) )
  {  if ( ________________ )  n++;
  4.putchar(c ) 函数的功能是是是_____________________________________。
  5int *p 的含义是是是是___________________________________________。
  6.C语言中数组的下标下限为___________________________。
  7.定义fp为文件型指针变量的定义方法为_______________________。
  8.数组 int  a[3][4];共定义了____________个数组元素。
  二、单项选择题
  1、下列属于整型常量的是________。
  A、12
  B、12.0
  C、-12.0
  D、10E10
  2、不属于字符型常量的是_________。
  A.‘A’
  B、'a'
  C、“A”
  D、'b'
  3、下列表达式为关系表达式的为_________。(其中a为一整型变量)
  A.3+4*5
  B、a==10
  C、a>0?a:-a
  D、a=1
  4、下面不正确的赋值语句是_____________。
  A.a=a+1
  B、a= =b
  C、a+=b
  D、a=1
  5、下列对数组定义不正确的语句是______________。
  A.int m[5];
  B、char b[]={‘h’,’e’};
  C、int a[10]={1,6,8,4};
  D、char  p[];
  6、若有以下定义,则______和______是对数组元素的正确引用。
  int  a[5],*p=a
  A. *&a[6]
  B、*p+8
  C、*(a+2)
  D、*p
  7、执行下列语句后,a的值是______。
  int  a=8;
  a+=a-=a*a;
  A.-240
  B、64
  C、112
  D、-112
  8. 指出下面正确的输入语句(      )。
  A.  scanf(“a=b=%d”,&a,&b) ;
  B. scanf(“%d,%d”,&a,&b) ;
  C.  scanf(“%c”,c) ;
  D. scanf(“%f\n”,&f) ;
  9.下面的变量说明中正确的是____________。
  A.int:a, b, c;
  B.int  a; b; c;
  C.int  a, b, c
  D.int  a, b, c;
  10. C语言用(     )表示逻辑“真”值。
  A.True
  B.  t 或  y
  C.  非零整型值
  D.  整型值0
  11.若x=5,y=4 则y*=x+5; y的值为(   ).
  A.  40
  B.  20
  C.  15
  D.  30 [NextPage]  13.C语言中以追加方式打开一个文件应选择_______________参数。
  A.“r”
  B.“w”
  C.“rb”
  D.“a”
  14.Break语句的正确的用法是(    )。
  A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。
  B. 在多重循环中,只能退出最靠近的那一层循环语句。
  C. 跳出多重循环。
  D. 只能修改控制变量。
  15.两个指针变量的值相等时,表明两个指针变量是________________。
  A. 占据同一内存单元。
  B. 指向同一内存单元地址或者都为空。
  C. 是两个空指针。
  D. 都没有指向。
  16.字符串指针变量中存入的是________________。
  A.字符串的首地址。
  B.  字符串
  C.第一个字符
  D.  字符串变量。
  17.以_______________个是不正确的描述。
  A. 不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。
  B. 在定义函数时,必须指定形参的类型。
  C. 形参和实参之间可以是值传递。
  D. 数组名可以作为参数进行传递。
  18  表达式“1?(0?3:2):(10?1:0)”的值为_____________________。
  A.3
  B.  2
  C.  1
  D.  0
  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. 以下说法中正确的是_______________。
  A.   C语言程序总是从第一个定义的函数开始执行。
  B.     在C语言程序中,要调用的函数必须有main( ) 函数中定义。
  C.    C语言程序总是从main( ) 函数开始执行。
  D.   C语言程序中的main( ) 函数必须放在程序的开始部分。
  21.设有数组定义:char array[]=”China”;则数组所占的存贮空间为__________。
  A.4个字节
  B. 5个字节
  C. 6个字节
  D. 7个字节
  22.根据C语言的语法规则,下列________个是不合法标识符。
  A.While
  B. Name
  C. Rern5
  D. _exam
  [NextPage]   三、读出下列程序,写出程序的运行结果。
  1. main()
  { int a=8 , b=1;
  a=a+b;
  b=a*b;
  printf("a=%d,b=%d",a,b);    }
  该程序的运行结果是___________________________________。
  2. main()
  { int i,num[5];
  for(i=0;i<5;i++)
  num[i]=i*10 - 2;
  printf("%d",num[3]);   }
  该程序的运行结果是___________________________________。
  3. main()
  { float c,f;
  c=30.0;
  f=(6*c)/5+32;
  printf("f=%f",f);   }
  该程序的运行结果是___________________________________。
  4. main()
  { int a=6095 , b ;
  b=a00 ;
  printf("%d", b) ;     }
  该程序的运行结果是___________________________________。
  5. # include  “stdio.h”
  main( )
  { int a[]={8,2,9,4,1}, *p;
  p=a;
  *(p+2)+=2;
  printf(“%d, %d ”, *p, *(p+2));}
  该程序的运行结果是___________________________________。
  四、将下列程序中不正确的语句改正。
  1.   main( )
  {  int k ;
  k=35555 ;
  printf ( “%d “, k) ;      }
  2.  main ( )
  {  int  a , b ;
  scanf ( “input a ,b:”,a , b );
  printf (“a=%d, b=%d”,a,b);          }
  3.    main( )
  { int sum , k ;
  sum=0 ;
  k= 1 ;
  while (k < =100 )
  sum = sum+k ;
  k + + ;
  p  rintf (“ sum=%d\n”, sum) ;          }
  4.    main( )
  {  int  k , a( 8 ) ;
  for( k=0; k<10 ; k++)
  scanf(“%d”, &a(k));
  ......   }
  5.        main( )
  scanf(“%d”, a);
  if (a = 1)
  printf(“One\n”) ;                    }
  五.编程题
  1.    用程序计算下列表达式:s=1!+2!+3!+4!
  2、从键盘上输入三个数,求出其中最大的一个数。
  3.     输入两个整数,调用函数stu( )求两个数差的平方,返回主函数显示结果。。
  4.从键盘上输入10个评委的分数,去掉一个最高分,去掉一个最低分,求出其余8个人的平均分,输出平均分,最高分,最低分。
  5.write.txt中,遇到回车键输入结束。。(用“\n”表示回车键)
 [NextPage]   参考答案
  一、填空
  1.float double
  2. 0
  3.ch!=‘\0’ (ch>=‘a’ && ch<=‘z’) || (ch>=‘A’ && ch<=‘Z’)
  4.将字符c所包含的值输出到标准的输出设备上。
  5.定义一个整型的指针变量p
  6.0
  7.FILE *fp
  8. 12
  二、单项选择题
  1、 A 2、 C 3、 B 4、 B 5、 D 6、C D 7、 D
  8、 B 9、 D 10、 C 11、 A. 13、 D 14、B
  15、 A. 16、 A 17、 A. 18、 B 19、 A 20、 C 21、C 22、A
  三、读出下列程序,写出程序的运行结果。
  1. a=9,b=9 2. 28 3. f=68 4. 95 5. 8,11
  四、将下列程序中不正确的语句改正。
  1. long int k ; printf ( “%ld “, k) ; }
  2. scanf ( “%d,%d”,a , b );
  3. while (k < =100 )
  { sum = sum+k ;
  k + + ; }
  4. int k , a[8] ;
  scanf(“%d”, &a[k]);
  5. if (a = = 1)
  五.编程题
  1. main()
  { long int a,b,sum=0,p;
  for(a=1;a<=4;a++)
  { p=1;
  for(b=1;b<=a;b++)
  p*=b;
  sum+=p; }
  printf(“%ld”,sum); }
  2、main()
  { int a,b,c,max;
  scanf(“%d,%d,%d”,&a,&b,&c);
  if (a>b)
  max=a;
  else
  max=b;
  if (maxmax=c;
  printf(“max=%d”,max); }
  3. int stu(int a,int b)
  { int c;
  c=a*a+b*b;
  return c; }
  main()
  { int x,y,z;
  scanf(“%d,%d”,&x,&y);
  z=stu(x,y);
  printf(“%d”,z); }
  4.main()
  { float a[10],b,max,min,sum=0,aver;
  for(b=0;b<10;b++)
  scanf(“%f”,&a[b]);
  max=min=a[0];
  for(b=1;b<10;b++)
  { if(a[b]>max)
  max=a[b];
  if(a[b]min=a[b];
  sum+=a[b]; }
  sum=sum-max-min;
  aver=sum/8;
  printf(“%f,%f,%f”,aver,max,min); }
  5. main()
  { FILE *fp;
  Char ch;
  fp=fopen(“write.txt”,“w”);
  ch=getchar();
  while(ch!= ‘\n’)
  { fputc(ch,fp);
  ch=getchar(); }
  fclose(fp);
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved