1、. .一、选择题1、以下表达中正确的选项是 A A、构成C程序的根本单位是函数B、可以在一个函数中定义另一个函数C、 main( )函数必须放在其它函数之前D、所有被调用的函数一定要在调用之前进展定义2、以下选项中合法的实型常数是 D A、5E2.0 B、E-3 C、.2E D、1.3E13、以下选项中合法的用户标识符是 B A、long B、_2Test C、3Dmax D、A.dat4、大写字母A的ASCII码是65,小写字母a的ASCII码是97,那么用八进制表示的字符常量101是 A A、字符A B、字符a C、字符e D、非法的常量5、以下非法的赋值语句是 C A、n=(i=2,+i
2、); B、j+; C、+(i+1); D、x=j0;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.0000007、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,&
3、i,&j,&k) ;8、与数学式子3乘以x的n次方/2x-1对应的C语言表达式是 C A、3*xn/ (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*=
4、k); printf (%d,%d ,m,i);执行后的输出结果是( C )A、8,6 B、8,3 C、6,4 D、7,411、已有定义:int x=3,y=4,z=5;,那么表达式 !(x+y)+z-1&y+z/2 的值是( D )A、6 B、0 C、2 D、112、有一函数y=以下程序段中不能根据x的值正确计算出y的值的是( C )A、if(x0) y=1;else if (x=0) y=0; else y=-1;B、y=0; if(x0) y=1; else if(x=0) if(x0) y=1;else y= -1;D、if(x=0) if(x0) y=1;else y= 0;else
5、 y=-1;13、以下选项中,与k=n+完全等价的表达式是 A A、k=n, n=n+1 B、n=n+1,k=n C、k= + n D、k+=n+114、以下程序的功能是:按顺序读入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);上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确,这
6、条语句是 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&n3);此处do-while循环的完毕条件是 D A、p的值不等于12345并且n的值小于3B、p的值等于12345并且n的值大于等于3C、p的值不等于12345或者n的值小于3D、p的值等于12345或者n的值大于等于316、有以下程序 ( A)main()int a=15,b=21,m=0;switch(a%3)case 0;m+;bre
7、ak; case 1;m+;switch(b%2)default:m+;case 0;m+;break; printf(“%d,m);A、1 B、2 C、3 D、417、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 B A、void B、int C、float D、double18、有以下程序int f(int n)if (n=1) return 1; else return f(n-1)+1;main()int i,j=0; for (i=1;i10或a=10 or a=10 | a=10 | a=024、设以下变量均为int类型,表达式的值不为7的是 C A、(x=y=6,x
8、+y,x+1) B、(x=y=6,x+y,y+1) C、(x=6,x+1,y=6,x+y) D、(y=6,y+1,x=y,x+1) 25、假设变量a是int类型,并执行了语句:a=A+1.6;,那么正确的表达是 D A、a的值是字符C B、a的值是浮点型 C、不允许字符型和浮点型相加 D、a的值是字符A 的ASCII值加上126、有如下程序main( )int x=23; do printf(“%dx-); while(!x);该程序的执行结果是 B A、321 B、23 C、不输出任何内容 D、陷入死循环 27、假设变量c为char类型,能正确判断出c为小写字母的表达式是 D A、a=c=a
9、) | (c=z)C、(a=c) D、(c=a) & (cb) c=1; else if (a=b) c=0; else c=-1; return c;A、-1 B、1 C、2 D、编译出错,无法运行 31、下面可以作为C语言程序中标识符的是 A A、_total3 B、num(10) C、2Date D、long32、字符A的ASCII值为65,那么103表示的字符是 C A、字符A B、字符B C、字符CD、非法常量33、每个C语言程序都必须有一个 B 函数,C程序总是从该函数开场执行。 A、include( ) B、main( ) C、scanf( ) D、printf( )34、下面说
10、法中,正确的选项是 D A、C语言是机器语言 B、C语言程序不用编译就可以直接运行 C、C语言程序总是从第一个函数开场执行 D、C语言程序可以由一个或多个函数构成35、设i ,j,k为int型变量,假设从键盘输入1#2#3,下面 A 输入语句可以使i的值为1,j的值为2,k的值为3。 A、scanf“%d#%d#%d,&i,&j,&k B、scanf“%d,%d,%d,&i,&j,&k C、scanf“%d%d%d,&i,&j,&k D、scanf“%d %d %d,&i,&j,&k36、下面能够正确表示字符串常量的表达式是 ( B ) 。 A、test B、test C、test D、tes
11、t037、在C语言中,运用对象必须是整型数的运算符是 A A、% B、 C、%和 D、* *38、有定义语句:int b,char c10;那么正确的输入语句是 B A、scanf(“%d%s,&b,&c); B、scanf(“%d%s,&b,c);C、scanf(“%d%s,b,c); D、scanf(“%d%s,b,&c);39、假设所有变量均为int型,那么执行语句a=(b=5, c=b+);后,a、b、c的值分别为 C A、6,6,5 B、5,5,6 C、5,6,5 D、5,6,640、设x,y,z为int型变量,执行下面的语句后,z的值为 D forx=0,y=10;x=y;x+,y
12、z=x+y; A、7 B、8 C、9 D、1041、设x、y均为整型变量,且x=y=5,那么下面语句的输出结果是 B printf%d,%dn,x+,+y; A、5,5 B、5,6 C、6,5 D、6,642、下面关于字符串的表达中,正确的选项是B A、C语言中有字符串变量 B、空串一定比空格打头的字符串小 C、可以用关系运算符对字符串的大小进展比拟 D、两个字符串中的字符个数一样时才能进展字符串大小的比拟43、以下数据中,B 是合法的实型数据。 A、0.123e B、123e3 C、1e3.5 D、.e144、设以下变量均为int类型,表达式的值不为3的是 D A、a=b=2,a+b,b+1
13、 B、a=b=2,b=a+b,a+1 C、b=2,b+1,a=b,a+1 D、a=2,a=a+1,b=1,a+b45、以下说法中,正确的选项是( C )int i,x;fori=0,x=0;i=5&x!=4;i+; A、循环体一次也不执行 B、是无限循环 C、最多执行6次 D、最多执行5次46、字符a的ASCII码值是97,字符变量c1的值是a,c2的值是e。执行语句printf%d,%d,c1,c22;后,输出的结果是( D ) A、a,c B、a,101 C、97,101 D、97,9947、下面程序的运行结果是是( D )#includevoid main( ) int i; fori=
14、0;ib?a:b_);3、把100200之间的能被5整除的数输出。void main () int n; for ( n=100; n=200; n+) if (_n%5!=0_) continue; printf(“ %d,n); 4、输出字符数组main() char a=h,e,l,0,l,o,0; printf(“%s, _a_ );5、大写字母转小写字母void main( )char ch1,ch2;ch1=A;ch2=B;ch1= _ch1+32_;ch2= _ch2+32_;printf(“%c,%c,ch1,ch2);6、把200300之间的不能被3整除的数输出。void main () int n; for ( n=200; n=300; n+) if (_n%3=0_) continue; printf(“ %d,n); 参考答案:1-5 A D B A C6-10 D C C B C11-15 D C A A D16-20 A B B C C21-25 C C D C D26-30 B D B B A31-35 A C B D A36-40 B A B C D41-45 B B B D C46-50 D D C D A. .word.