全国高校计算机等级考试(二级C)模拟一试题
一、选择题
1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D  )。
A、k=p    B、k=&p    C、P=K      D、p=&k
2、以下运算符中优先级最高的运算符是(  A  )。
A、!    B、&&    C、||      D、<
3、求字符串长度的函数是( D  )。
A、strcat    B、strcpy    C、strcmp    D、strlen
4、下面程序段的运行结果是(  A  )。
char x[5]=“ab\0c\0”;
printf("%s",x);
说明:“\0”中的“0”是数字零。
A、ab    B、abc    C、ab\0    D、ab\0c\0
5、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是(  D  )。
A、a[2]    B、a[4]    C、a[2][4]      D、a[1][3]
6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(  B  )。
A、float型  B、int型    C、long型    D、double型
7、用数组名作为函数调用的实参时,传递给虚参的是(  A  )。
A、数组的首地址  B、数组第一个元素的值  C、数组中全部元素的值    D、数组元素的个数
8、以下程序的输出结果是( D  )。
  #include<stdio.h>
    #define F(y) 8-y
    void main(void)printf是不是c语句
      {
        int x,y;
          y=F(2);
          printf(“y=%d”,y);
      }
A、2    B、y=2    C、6      D、y=6
9、以下程序的输出结果是(  A  )。
#include<stdio.h>
    struct
      {
        int x,y;
      } a;
    void main(void)
      {
        int x,y=50,z;
          a.x=10;
          a.y=20;
          z=a.x+y;
          printf(“%d”,z);
      }
A 、60    B 、10    C、0    D、20
10、语句 fopen(“file.dat”,”r”); 的功能是(  A  )。
A、按照“读”方式打开文件      B、按照“写”方式打开文件
C、按照“读写”方式打开文件    D、按照“追加”方式打开文件
11、关闭文件的语句是( D  )。
A、fread      B、fwrite      C、fprintf      D、fclose
12、下面求余数的运算符是( C  )。
A、 /      B、^      C、%      D、~
13、下面对字符数组的描述中错误的描述是(  C  )。
A、字符数组可以存放字符串    B、字符数组的字符可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D、可以用关系运算符对字符数组中的字符进行比较
14、下面正确的字符常量是( C  )。
A、300    B、'ab'      C、'!'      D、"a"
15、下面关于main函数与其它子函数之间的位置关系的叙述中正确的是(  C  )。
A、main函数必须是程序中的第一个函数
B、main函数如果程序中有多个函数,则不能位于最前面
C、main函数可以在任何位置
D、main函数必须是程序中最后一个函数
16、设float x=12.8,y=8.6;则(int)(x+y)的结果为(  B )。
A、20    B、21    C、21.4    D、22
17、一个C程序的执行是从( A  )。
A、本程序的main函数开始,到main函数结束
B、本程序的第一个函数开始,到本程序的最后一个函数结束
C、本程序的main函数开始,到本程序的最后一个函数结束
D、本程序的第一个函数开始,到本程序main函数结束
18、以下关于函数的实参与虚参(又称形参)的叙述中不正确的说法是(  B  )。
A、实参可以是常量、变量或表达式        B、虚参可以是常量、变量或表达式
C、虚参应与其对应的实参类型应当尽量一致
D、虚参为指针时,与其对应的实参只能是表示地址的表达式
19、下面关于注释语句的叙述中正确的叙述是(  C  )。
A、注释语句必须单独占用一行          B、注释语句必须在语句行的末尾
C、注释语句可以跨行使用              D、注释语句不能单独占用一行
20、以下表达式不等价的一组是(  A  )。
A、a!=b 与 a=a!b    B、a|=b 与 a=a|b  C、a+=b 与 a=a+b  D、a-=b 与 a=a-b
21、若有以下类型说明语句:
char a; int b; float c;  double d; 则表达式a*b+d-c的运算结果的类型为(  D  )。
A、float      B、char      C、int    D、double
22、设C语言中,unsigned int型数据的取值范围为(  A  )。
A、0~65535      B、0~32767        C、1~65535      D、1~32767
23、在任何时候,都能正确计算两个数之差的宏定义是(  D  )。
A、#define SUB(x,y) (x-y)  B、#define SUB(x,y) (x)-(y) 
C、#define SUB(x,y) x-y D、#define SUB(x,y)  ((x)-(y))
24、以下不正确的说法为(  C  )。
A、在不同函数中可以使用相同名字的变量      B、虚参视同函数的局部变量
C、在函数内的复合语句中定义的变量在本函数范围内有效
D、在函数内定义的变量只在本函数范围内有效
25、!E 等价于(  B  )。
A、E!=0        B、E==0      C、E!=1          D、E==1
26、字符串比较大小的函数是(  C  )。
A、strcpy      B、strlen        C、strcmp          D、strcat
27、若有说明语句: int a[ ][4]={1,2,3,4,5,6};,则数组的行数为(  C  )行。
A、6          B、4        C、2          D、1.5
28、C语言规定,函数返回值的类型由(  B  )。
A、return语句中的表达式类型所决定      B、在定义该函数时函数头所指定的函数类型所决定
C、调用该函数时的主调函数类型所决定  D、调用函数时由系统临时决定
29、非指针型变量做实参时,它和对应虚参之间的数据传递方式是(  B  )。
A、地址传递B、单向值传递C、双向值传递D、由用户指定传递方式
*30、建立子函数的主要目的之一是(  B  )。
A、提高程序的执行效 B、提高程序的可读性
C、减少程序所占磁盘空间 D、减少程序所占内存空间
二、填空题
31、下面程序段用来打印出正整数n以内能被3整除的所有正奇数。
scanf("%d",&n);
if (n<0) n= -n;
for(i=1 ; i<n; i++)
if (  i%2!=0 && i%3  (      ==0      )  ) printf("%d  ",  (        i       )  );
32、下面程序的功能是输出数组中相邻两个数的和能被10整除的所有“数对”以及“数对”的个数。如:对于下面的数组:d[]={1,3,7,23,3,6,14,8,10}
将输出:(3,7)  (7,23)  (6,14)  3 对
#include<stdio.h>
void main(void)
  {
    int d[]={1,3,7,23,3,6,14,8,10,57,13,90};
    int i,count,s
      count=  (        0        )  ;  /* count为“数对”的个数计数器 */
      for(i=0; i<11; i++)
        {
          s=d[i]+  (        d[i+1]        )  ;  /* 计算相邻两个数的和 */
          if (s%10= =0) 
            {
              printf(“(%d,%d)  ”, d[i],d[i+1]);
              count=count +  (        1      )  ;
              }
        }
    printf(“%d 对”,count);
33、下面程序的功能是将字符串s中所有的字符c删除。
#include<stdio.h>
void main(void)
  {
    char s[80];
    int i,j;
      gets( (        s        ) );  /* 输入字符串 */
      j=  (        0       )  ;  /* 计数器初始化 */
      for(i=0;s[i]!='\0';i++)
        if (s[i]!='c')
            {
              s[j]=s[i]
              j++;
            }
      s[j]=’\0’ ;    /*  写入字符串结束标志 */

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