第一章
1.以下叙述中错误的是(    )B.C语言编写的每个函数都可以进行独立编译并执行
2. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(  )
A.C语言程序仅可以编译执行
3. C语言规定:在一个源程序中,main的位置(  ) A.可以任意
4. 一个C语言程序是由(    ) C.函数组成
5. 以下关于结构化程序设计的叙述中正确的是(  ) B.c语言中,程序的模块化是利用函数实现的
6. 以下叙述正确的是(    ) C.c语言本身没有输入和输出语句
7. 以下叙述中错误的是(    ) A.C语言编写的每个函数都可以进行独立编译并执行
8. 以下叙述正确的是(      )B.c程序中注释部分可以单独占一行
9. 以下叙述正确的是(  )
D.c语言函数可以嵌套调用,如fun(fun(x))
10. 一个C程序的执行是从(    )
D.本程序main函数开始,到main函数结束
11. 以下叙述不正确的是(  )
A.在c程序中,注释说明只能位于一条语句后面
第二章
单项选择
1以下选项中非法的字符常量是(  )
(B  /019
2设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(   
(C  double)
3判断字符型变量c1是否为数字字符的正确表达式为( )
(A  (C1>=0)&&(C1<=9))
4若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2c语言库函数)&&(k2=k2>k1)后,k1k2的值分别为
(B  0和20)
5下面四个选项中,均是不合法的用户标识符的选项是(    )。
(B  b-a  goto  int)
6判断字符型变量c1是否为小写字母的正确表达式为(    )。
(B  (c1>=a)&&(c1<=z))
7表达式18/4*sqrt(4.0)/8值的数据类型为(    )。
(B  double)
8下面四个选项中,均是合法的用户标识符的选项是(    )。
(A  -123  temp  INT)
9a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(  )
(D  1)
10假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(    )。
(B  8)
11以下选项中关于C语言常量的叙述错误的是:(  )
(D  经常被使用的变量可定义为常量)
12x,i,jk都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为(    )。
(B  32)
13下面正确的字符常量是(   
(B  w)
14C语言中,要求运算数必须是整型的运算符是(  )
(A  %)
15以下关于C语言数据类型使用的叙述中错误的是(  )
(B  若只处理两种逻辑值,应使用逻辑类型)
16以下选项中,能表示逻辑值""的是(  )
(B  0)
17C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(  )
(D  必须为字母或下划线)
18C语言中,char型数据在内存中的存储形式是(    )。
(C  ASCLL码)
19下列表达式中,不满足"x的值为偶数时值为真,为奇数时值为假"的要求的是(
(C  !(x%==0))
20设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)n的值为(    )。
(C  2)
21若有数学式,则不正确的C语言表达式是(   
(A  3*a*e/b*c)
                      第三章
程序改错
1/*下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)++f(0)+f(1)+f(2)+f(n)的值。
例如,n5,函数值应为10.407143f(x)函数定义如下:
f(x)=   
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include  <stdlib.h>
#include  <stdio.h>
#include  <math.h>
/**********ERROR**********/
f(double x)
{
if(x==0.0||x==2.0)
    return 0.0;
else if(x<0.0)
    return(x-1)/(x-2);
else
    return(x+1)/(x-2);
}
double fun(int n)
{
  int i;  double s=0.0,y;
  for(i=-n; i<=n;i++)
    { y=f(1.0*i); s+=y;}
/**********ERROR**********/
  return s
}
void main()
{
  printf("%lf\n", fun(5));
}
参考答案double f(double x)  return s;
2./*下列给定程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1x2x3分别输入15112,则输出结果应当是330
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include <stdio.h>
int fun(int x,int y,int z)
{ int j,t,n,m;
/**********ERROR**********/
  j=1;
  t=m=n=1;
/**********ERROR**********/
  while (t!=0 && m!=0 && n!=0)
  {
    j=j+1;
    t=j%x;
    m=j%y;
    n=j%z;
  }
  return j;
}
void main()
{
  int x1,x2,x3,j;
  printf("Input x1 x2 x3: ");
  scanf("%d%d%d",&x1,&x2,&x3);
  printf("x1=%d,x2=%d,x3=%d \n",x1,x2,x3);
  j=fun(x1,x2,x3);
  printf("The minimal common multiple is: %d\n",j);
}
参考答案 j=0;  while (t!=0 || m!=0 || n!=0)
3/*下列程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:*/
#include <stdio.h>
#include <conio.h>
long fun(long num)
{
/**********ERROR**********/
long k;
do
{
    k *=num%10;
/**********ERROR**********/
    num \=10;
}while(num);
return(k);
}
void main()
{
int  n;
printf("\Please enter a number: ");
scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
参考答案  long k=1;  num/=10;
4/*下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值:
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include <stdlib.h>
#include <stdio.h>

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