您的当前位置:首页正文

基础知识

2021-01-29 来源:要发发教育
基础知识

一. 选择

1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。 A、„{„ 和‟}‟ B、„[„和‟]‟ C、“/*”和”*/” D、“*/”和”/*” 2. 下列运算符中,优先级最低的是_____。

A、* B、!= C、+ D、= 3. 若变量已正确定义,表达式 (j=3, j++) 的值是_____ 。

A、3 B、 4 C、5 D、0 4. 已知字符 „a‟ 的ASCII码为 97 ,执行下列语句的输出是_____。 printf (\"%d, %c\

A、98, b B、语句不合法 C、98, 99 D、 98, c 5. 表达式strcmp(“box”, “boss”) 的值是一个_______。

A、 正数 B、 负数 C、 0 D、 不确定的数 6. 要调用数学函数时,在#include命令行中应包含_____。

A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h” 7. 判断i和j至少有一个值为非0的表达式是_____。

A、 i!=0 && j!=0 B、i*j!=0 C、!(i==0 || j==0) D、i&&j 8. 若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。 A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c);

C、 scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);

9. C语言源程序文件经过编译连接之后生成一个后缀为______的文件。

A.”.c” B.“.obj” C.“.exe” D. “.bas” 10. 以下选项中不正确的整型常量是_____。

A. 12L B. -10 C. 1,900 D. 123U 11. 表达式______的值是0。

A.3%5 B.3/5.0 C.3/5 D. 3<5 12. 表达式 !(x>0||y>0) 等价于_____。

A.!x>0||!y>0 B.!(x>0)||!(y>0) C.!x>0&&!y>0 D. !(x>0)&&!(y>

0)

13. 若变量已正确定义并赋值,表达式______不符合C语言语法。

A.4&&3 B.+a C.a=b=5 D. int(3.14)

14. 若变量已正确定义,执行语句scanf(\"%d%d%d \;时,______是正确的输入。

A.203040 B.20 30 40 C.20, 30 40 D. 20, 30,40 15. 执行语句 printf(\" ______\ 2); 将得到出错信息。

A.%d B.%o C.%x D. %f 16. 若x是整型变量,表达式 (x=10.0/4.0) 的值是_____ 。

A.2.5 B.2.0 C.3 D. 2 17. 若变量已正确定义并赋值,表达式 -k++ 等价于______。

A.-(k++) B.(-k)++ C.-(k+1) D. -(++k) 18. 在C 语言程序中,在函数内部定义的变量称为______。

A.全局变量 B.外部变量 C.局部变量 D. 内部变量 19. 下列运算符中,优先级从高到低依次排列为_____。

A.!,&&,|| B.||,&&,! C.&&,||,! C.&& C.10

D. &&,!,|| D. = D. 1.0

D. !(x>0)||!(y>0) D. NULL D. 2 D.a, b D.double d; D.‟\\n‟

20. 下列操作符优先级最低的是( ) A.<< B.!= 21. 下列选项哪个不能作为整常数( ) A.0xa B.010L

22. 下列选项与表达式!(x>0||y>0)等价的是( ) A.!(x>0)&&!(y>0) B.!x>0&&!y>0 C.!x>0||!y>0 23. 下列选项哪个表达式的值不为零( ) A.1/2 B.!‟\\0‟

C.!EOF

24. 若x为浮点型,则表达式x=10/4为( ) A.2.5 B.2.0 C.3 25. 下列表达式,错误的是( ) A.a&b B.a^b

C.&&x

26. 下列哪个声明可以放置最大的整数( ) A.int a; B.char b; C.float c; 27. 下列那个选项不能作为字符常量( ) A.”1” B.‟1‟ C.1

28. 若c是一个字符变量,下列表达式经计算后哪个选项c的值是1或者0( ) A.c=getchar()!=EOF B.(c=getchar())!=EOF C.c = ‟0‟ D.c = c ^ ~c 29. 下列操作符优先级最高的是( ) A.+= B.[ ]

C.? :

D.++ D.16 D.-132 D.20

D.expression error

30. 根据声明int x=23;表达式(x++*1/3)的值为( ) A.7 B.8 C.15 31. 根据声明int a=12;表达式a+=a- =a*=a的值为( ) A.-120 B.144 C.0 32. 根据声明int a=10, b=20;表达式!a34. 下列代码段的输出为( ) for(a=1,i=-1;-1<=i<1;i++) { a++; printf(“%2d”,a); } printf(“%2d”,i);

A.2 B.-1 C.0 D.3 35. 下列操作符优先级最低的是( )

A.? : B.== C.+= D.& 36. 下列字符哪个可以作为字符常量( )

A.‟\\‟ B.'\\080' C.'%d' D.0xa 37. 根据声明char c1=92,c2=92;下列哪个表达式的值为0( )

A. c1^c2 B.c1&c2 C.~c2 D.c1|c2 38. 根据声明int x=11;表达式(x++*1/3)的值为( )

A.3 B.4 C.0 D.3.667 39. 表达式sizeof(\"\\num=%d\\")的值为( )

A.7 B.8 C.9 D.10

40. 下列选项中用于判断ch是否是字符的表达式是( )

A.( 'a' <= ch <= 'z') || ( 'A' <= ch <= 'Z')

B.(ch >= 'a' && ch <= 'z') && ( ch >= 'A' && ch <= 'Z') C.(ch >= 'a' && ch <= 'z') || ( ch >= 'A' && ch <= 'Z') D.( 'a' <= ch <= 'z') && ( 'A' <= ch <= 'Z')

41. 如果执行printf(\" \下列哪种表达是错误的( ) A.%u B.%s C.%d D. %e 42. c是字符,下列哪个表达式使c的值为0后者1( )

A.c=getchar()!='\\n' B.(c=getchar())!='\\n' C.c = '1' D.c = EOF 43. 下列操作符那个优先级最高( )

A.! B .[ ] C .? : 44. 下列代码段的输出为( )

#include void main( ) { int y;

double d=3.4, x; x=(y=d/2.0)/2;

printf(\" (%0.2f, %d) \ }

A.(0.00, 1) B .(0.85, 1.7) C.(0.50, 1) 45. 下列代码段执行结束后,变量s的值为( )

int i=5, s=0; while(i-->0) { if (i%2) s+=i; else s+=i--;}

A.15 B.11 C.10 46. 下列运算符中优先级最低的是_____。

A.|| B .>= C .!= A.a=2++

B.a=3,5

C.a=a+1=3

D.~ D. 12.3%4

47. 若变量已正确定义并赋值,符合C语言语法的表达式是 。 48. 表达式____不能用于判断“x和y不同时为零”。 A.x!=0 || y!=0 B.x || y C.!( x==0 || y==0) D.!( x==0 && y==0) 48. 表达式5>3>1值是_____。 A.0 B.1

C.3

D.表达式语法错 D.++

D.none of above

D. 6

49. 下列程序段执行后s值为_____。 int i=5, s=0; while(i--) if (i%2) continue; else s+=i;

A.15 B.10 C.9 D.6 50. 已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch=„A‟+„6‟-„3‟;

后,ch中的值为_____。 A.D B.68 C.C D.不确定

二. 填空题

1. 写出计算y的条件表达式( )

1 x>0 y= 0 x=0 -1 x<0

2. 写出下列程序段的输出结果。

float x1, x2; x1=3/2; x2=x1/2;

printf(\"%d, %.1f\

3. 表达式 (7<<1>>2^2 ) 的值是_______。 4. 写出下列程序段的输出结果。

#define A 10

#define B (A5. 写出判断字符变量c是英文字母的表达式 。 6. 写出下列程序段的输出结果。 int k, x;

for (k=0, x=0; k<=9&&x!=10; k++) x+=2;

printf (\"%d, %d\

7. 写出下列程序段的输出结果。

printf(“%d, %d”, NULL, EOF);

8. 设ch是字符型变量,判断ch为英文字母的表达式是______。 9. 计算下列分段函数的 if 语句是______。

1 x>0 y= 0 x=0 -1 x<0

10. 表达式 !!5的值是______。

11. 下列程序段的输出结果是______。

printf(\"%x\\n\ 12. 下列程序段的输出结果是_____。

int k, s; for(k=0, s=0; k<10; k++) if (s>k) break; else s += k;

printf(\"k=%d s=%d\

13. 若输入 -6+15*3/5=<回车> , 则以下程序的输出结果是_______。 #include void main() {

int m=0, sum=0; char c, oldc='+';

do {

c=getchar(); if(c<='9'&&c>='0') m=10*m+c - '0';

else {

if(oldc=='+') sum += m; else sum -= m; m=0; oldc=c;

printf(\"%d, \ }

} while(c!='='); }

14. 表达式1<10<5的值为( ) 15. 表达式~(10<<1)&4的值为( ) 16. 表达式sizeof(“hello”)的值为( ) 17. 下列代码段的输出为( )

int k, s;

for(k=1, s=0; k<10; k++){ if (k%2==0) continue; s += k; }

printf(\"k=%d s=%d\

18. 下列代码段的输出为( )

#define MM(x,y) (x*y) printf(\"%d\

19. 下列代码段的输出为( )

int k=1, s=0; switch (k) {

case 1: s+=10;

case 2: s+=20; break; default: s+=3; }

printf(\"k=%d s=%d\

20. 下列代码段的输出为( )

# include

int f( ) { static int k; return ++k; }

void main( ) { int k;

for(k=0;k<3;k++) printf(\"%d#\}

8. 下列程序的输出为( ) #include

void main( )

{ int k, x, s, t;

x=3; s=0; t=x;

for(k=1; k<=3; k++){ t=t*10+x;

s=s+t;

printf(\"%d#\ }

}

21. 若输入为how are you? ,则输出为(#include void main( ) { int word; char ch; word=0; while((ch=getchar())!='?'){ if(ch==' ') word=0; else if(word==0){ word=1; if(ch<='z'&&ch>='a') ch=ch-'a'+'A'; } putchar(ch); } }

22. 写出一个条件表达式来计算x和y的最大值(23. 表达式7 * 7 / 9 * 4 % 3 的值为( ) 24. 表达式10==10==10 的值为( ) 25. 表达式255 & 128的值为( ) 26. 下列代码段将会打印出( )

int a = 3, b; if ( a > 5 ) b = 7;

else if ( a < 2 ) b = 6; else b = 5;

printf(\"%d\

27. 下列代码段将会打印出( )

int a = 13; int b = 3; float x; x = a / b;

) printf (\"%.1f\

28. 下列代码段将会打印出( )

int j = 1, k = 2;

printf (\"%d, %d#\ printf (\"%d, %d\

29. 下列代码段将会打印出( )

int x, y; x = y = 3; switch (y) { case 1: x = 0; break; case 2: x = 17; break; case 4: x = 9; break; }

printf (“%d”, x);

30. 下列代码段将会打印出( )

#include \"stdio.h\" void main() { int j, k;

for (j=0; j<3; j++){ for (k=0; k<3; k++)

printf(\"%2d\ printf(\"#\"); } }

31. 下列代码段的输出为( )

#include void main() {

int i,j,k=19; while (i=k-1) { k-=3;

if(k%5==0) { i++; continue; } else if(k<5) break; i++; }

printf(“i=%d,k=%d\\n”,i,k); }

32. 下列代码段的输出为( )

char x='\\0',y='1'; switch(!x) {

case 0: printf(\"*0*#\");break; case 1:

switch(y) {

case '0': printf(\"*1*#\");break;

case '1': printf(\"*2*#\");break; } default: printf(\"*3*#\"); }

33. 下列代码段将会打印出( )

printf(\"%#o\\n\34. 表达式!!2007的值为( ) 35. 表达式10>5>1的值为( )

36. 表达式sizeof(“%%hello\\nworld\\n”) 的值为( )

37. 假定a=0,b=3,c=0,d=26.下列代码段中d的值为为( ) if(!b) d=d-10; else if(a) if(!c) x=15; else x=25;

38. 表达式strlen(“RATE=%d%%\\n”)的值为( ) 39. 下列代码段的输出为( )

char a=010,b=0x10; printf(\"%d\\n\40.

若有定义:int x=2, y=5; 则表达式x*=y-3的值为_____。

41. 若有定义:int a=3, b=6; 则表达式(a^b)<<2的值为_____。 42. 输入abcde#<回车>,下列程序段的输出结果是_____。 char c; for(c=getchar(); getchar()!=‟#‟; c=getchar()) putchar(c);

43. 下列程序段的输出结果是_____。

int k=3, s=0; switch (k) {

case 3: s++; k++; case 4: s+=1; switch(s){

case 1:s+=2;

default:k++;break; }

default: s+=3; break; }

printf(\"%d#%d#\

44. 若输入 -6+15*3/5=<回车> , 以下程序的输出结果是_______。

#include main() {

int m=0, sum=0; char c, oldc='+';

do {

c=getchar(); if(c<='9'&&c>='0')

m=10*m+c - '0';

else {

if(oldc=='+')

sum += m;

else

sum -= m;

m=0; oldc=c;

printf(\"%d#\ }

} while(c!='='); }

因篇幅问题不能全部显示,请点此查看更多更全内容