C语言复习题 带答案
一、选择题
1、以下叙述中正确的是( A )
A、构成C程序的基本单位是函数
B、可以在一个函数中定义另一个函数
C、 main( )函数必须放在其它函数之前
D、所有被调用的函数一定要在调用之前进行定义
2、以下选项中合法的实型常数是( D )
A、5E2.0 B、E-3 C、.2E D、1.3E1
3、以下选项中合法的用户标识符是( B )
A、long B、_2Test C、3Dmax D、A.dat
4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(
A )
A、字符A B、字符a C、字符e D、非法的常量
5、以下非法的赋值语句是( C )
A、n=(i=2,++i); B、j++; C、++(i+1); D、x=j>0;
6、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )
A、6.500000 B、6 C、5.500000 D、6.000000
7、已知i、j、k为int型变量,若从键盘输入:1,2,3,使i 的值为1、j的值为2、k的值为3,以
下选项中正确的输入语句是( C )
A、scanf(“%2d%2d %2d”,&i,&j,&k) ; B、scanf(“%d %d %d”,&i,&j,&k) ;
C、scanf(“%d, %d, %d”,&i,&j,&k) ; D、scanf(“i=%d, j=%d, k=%d”,&i,&j,&k) ;
8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是( C )
A、3*x^n/ (2*x-1) B、3*x**n/ (2*x-1)
C、3*pow(x,n)*(1/ (2*x-1)) D、3*pow(n,x)/ (2*x-1)
9、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是( B )
A、printf (“x=%d “,x); B、printf (“x=%ld “,x);
C、printf (“x=%8dL “,x); D、printf (“x=%LD “,x);
10、若有以下程序:
main( )
{int k=2,i=2,m;
m=(k+=i*=k); printf (”%d,%d ”,m,i);
}
执行后的输出结果是( C )
A、8,6 B、8,3 C、6,4 D、7,4
11、已有定义:int x=3,y=4,z=5;,则表达式 !(x+y)+z-1&&y+z/2 的值是( D )
A、6 B、0 C、2 D、1
12、有一函数y=
以下程序段中不能根据x的值正确计算出y的值的是( C )
A、if(x>0) y=1;else if (x==0) y=0; else y=-1;
B、y=0; if(x>0) y=1; else if(x<0) y=-1;
C、y=0; if(x>=0) if(x>0) y=1;else y= -1;
D、if(x>=0) if(x>0) y=1;else y= 0;else y=-1;
13、以下选项中,与k=n++完全等价的表达式是( A )
A、k=n, n=n+1 B、n=n+1,k=n C、k= ++ n D、k+=n+1
14、以下程序的功能是:按顺序读入10名学生4
门课程的成绩,计算出每位学生的平均分并输出,程序如
下:
main()
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4,k++)
{scanf(“%f”,&score);sum+=score;}
ave=sum/4.0;
printf(“NO%d:%f “,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语
句出现在程序的位置不正确,这条语句是( A )
A、sum=0.0; B、sum+=score;
C、ave=sum/4.0; D、printf(“NO%d:%f “,n,ave);
15、有以下程序段
int n=0,p;
do {scanf(“%d”,&p);n++} while(p!=12345&&n<3);
此处do-while循环的结束条件是( D )
A、p的值不等于12345并且n的值小于3
B、p的值