C语言练习题之二
1.在一个C语言源程序中,必不可少的是___________
2.下列叙述中正确的是__________  
A.main函数必须出现在其他函数之前        B.main函数中至少必须有一条语句
C.C程序总是从main函数的第一条语句开始执行
D.C程序总是在执行完main函数的最后一条语句后结束
3.以下标识符中不能用做变量名或自定义函数名的是_______
A.main          B._123          C._float          D.sizeof
4.下列表示中,不可作为常数的是_______ A.020    B.1UL      C. '0x41'    D.0xfe
5.设有声明“int value='5';”,则执行下列选项的赋值语句后,value的值不等于5的是___ 
A. value=value-'0';  B. value=value-0x30;C. value=value-49; D. value=value-'\060';
6.设有定义和声明如下:       
      #define d  2   
      int x=5;float y=3.83;char c='d';
以下表达式中有语法错误的是____
A.x++            B.y++          C.c++          D.d++
7.若有声明和初始化“int x=32767;”,则x+1的值为___________
8.若有声明和初始化“long x=32767;”,则x+1的值为___________ 
9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是________
A. !a && !b && c    B.!a ||!b ||c      C.a==b &&b>=c      D.a>=b&& b>c
10.若有声明“int x=4,y=3;”,则表达式“x<y?x++:y++”的值是________
A.2                B.3              C.4                D.5
11.设有声明“int a=3,b=4;float x=4.5,y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是___      
12.若有声明“int i=7;float x=3.1416;double y=3;”,表达式i+'a'*x+i/y值的类型是_________ 型。       
13.设有声明“float a=l.23456;int i;”,欲将a中的数值保留小数点后两位, 第三位进行四舍五入运算,能实现该功能的表达式是_________
A. i=a*100+0.5,a=i/100.0  B.a=(a*100+0.5)/l00.0C. a=((int)a*i00+0.5)/100.0 D.a=(a/100+0.5)/100.0
14.若有声明“int a=15,b=20,c=25,e;”,则执行语句“e=a>b?--c:++c;”后变量e的值是_____
15.以下C语言的运算符中,其中优先级最高的运算符是________
A. =            B.&(位与)        C.==          D.&&     
16.数学公式在程序中正确的表示形式为______
A. sqrt(a)/2*b      B. sqrt(a)/2/b      C. sqrt(a)/2b    D.sqrt a/(2*b)
17.与数学式  等价的C语言的表达式是______________
18.若有声明“float f=123.45678;”,则执行语句“printf("%.3f",f);”后,输出结果是_____
A. 1.23e+02        B.123.457      C.123.456780      D.1.234e+02
19.已知程序中有声明“int a; long  b;”,若需要接收从键盘输入的电话号码字符串(010)64782656(其中010为区号,64782656是电话号码),并将其中的区号、电话号码分别存储到变量ab中,则实现该功能的输入语句为“scanf("______",&a,&b);” 
20.以下关于C语言输入输出函数的叙述中错误的是_________  
A.printf函数输出字符串时与puts函数一样,以‘\0’结束  B.scanf函数可以输入空格
C.gets函数可以输入空格                    D.getchar函数没有参数,scanfgets都有参数
21.int类型数据占2个字节,则以下语句的输出为令数组全部的值为0________
int  k=-1;
    printf(“%d,%u\n”,k,k);
22.关键字casedefault只能在__________ 语句中出现。
23.以下程序运行时输出结果的最后一行是__________
void main()
{  int a=1,b=1,i;
      for(i=1;i<=2;i++)
{  a=a+b;  printf("%d/%d,",b,a);
        b=a+b;  printf("%d/%d\n",a,b);  }
      printf("\n");
}
24.以下程序运行后,输出结果的第一行为______________,第二行为_________
void main()
{  int w=0,i;
      for(i=0;i<3;i++)
      switch(w++)
    {  case 0:  case 1:
          case 2:
          case 3:printf("%d\n",w++);  }
}
25.以下程序运行时输出结果是______________
void main()
{  int i,sum=0;
  for(i=0;i<5;i++)
  {  switch(i)
      {  case 0:
        case 1:sum++;
        case 3:sum++; break;
        case 4:sum--;  }
    }
    printf("%d\n",sum);
}
26.若有数组AB的声明“static char A[]="ABCDEF",B[]={'A','B','C','D','E','F'};”,则数组A和数组B的长度分别是_________ A. 76        B.67        C. 66        D.77
27.设有声明“int p[10]={1,2},i=0;”,以下语句中与“p[i]=p[i+1],i++;”等价的是______
A.p[i]=p[i++];    B.p[++i]=p[i];    C.p[++i]=p[i+1];  D.i++,p[i-1]=p[i];
28.执行以下程序段后,number的值是________ 
char str[]="Hello!";  int number;
        number=sizeof(str);
29.若有说明“int a [][4]={1,2,3,4,5,6,7,8,9};”,则数组a第一维的大小是______
30.以下程序运行时,输出结果的第一行为________,第三行为______,第五行为______
#define N 8
void main()
{  int i,j,pa[N]={1};
  printf("%5d\n",pa[0]);
    for(i=1;i<N;i++)
    {  pa[i]=1;
        for(j=i-1;j>0;j--) pa[j]=pa[j]+pa[j-1];
        for(j=0;j<=i;j++) printf("%5d",pa[j]);
        printf("\n");}
      }
31.以下程序运行时输出结果的第一行是______________,第三行是_________
void main()
{  int i,j,a[3][3];
  for (i=0;i<3;i++)
    for(j=0;j<3;j++)
        if(i<j) a[i][j]=1;
        else a[i][j]=i-j+1;
  for (i=0;i<3;i++)
    { for(j=0;j<3;j++)  printf("%4d",a[i][j]);
      printf("\n");  }
}
32.以下程序执行时,输出结果的第一行是_____,第二行是______,第三行是______
#define N 20
main()
{  int i,j,k,n,arr[N][N];
  k=1; i=0; n=3;
  while (i<n/2)
  {  for(j=i;j<n-i;j++) arr[j][n-i-1]= k++;
      for(j=n-i-2; j>=i; j--) arr[n-i-1][j]= k++;
      for(j=n-i-2; j>=i;j--)  arr[j][i]= k++;
      for(j=i+1;j<=n-i-2;j++) arr[i][j]= k++;
      i++;    }
  if(n%2) arr[i][i]=k;
  for(i=0;i<n;i++)
      {  for(j=0;j<n;j++ ) printf("%4d",arr[i][j]);

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