文档库 最新最全的文档下载
当前位置:文档库 › 浙江大学C语言总复习题--综合

浙江大学C语言总复习题--综合

浙江大学C语言总复习题--综合
浙江大学C语言总复习题--综合

综合练习

一、判断题

1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。

3.在程序的运行过程中,整型常量的值是可以改变的。

4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。

6. do_while语句构成的循环不能用其它循环语句来代替。

7.不能用scanf 函数输入字符。

8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。

9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。

10.C 语言的一个编译预处理命令用 # 开始,最后加分号。

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

12. C语言中以 %o开头的数是八进制整数。

13.在程序的运行过程中,符号常量的值是可以改变的。

14.在 C 程序中,APH 和 aph 代表不同的变量。

15.一个复合语句在语法上被认为是一条语句。

16. 只能用while语句构成循环。

17.不能用printf函数输出字符。

18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。

19. 在函数外部定义的变量称为全局变量。

20.宏定义的命令行可以看作是一条C 语句。

21. C语言源程序是可以用来直接运行的程序。

22. C语言中以 %x 开头的数是十六进制整数。

23. C程序中定义的变量,代表内存中的一个存储单元。

24.在 C 程序中,9ab是非法的用户标识符。

25. C语句必须用一个分号作为结束。

26. do_while语句构成的循环不能用break语句退出。

27. scanf 函数是 c 语言的标准输入函数。

28. C程序的main函数不能有参数。

29. 在函数内部定义的变量称为局部变量。

30.用#include包含的头文件的后缀必须是.h。

31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。

32.在C语言中整数只能表示为十进制数的形式。

33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。

34. Turbo-C 语言中,字符类型数据占1个字节。

35.空语句是合法的C语句。

36. while语句的循环体不能是复合语句。

37. printf 函数是 c 语言的标准输出函数。

38. C程序的main函数可以有参数,但参数不能是指针类型。

39.在 main函数中定义的变量称为全局变量。

40.#include 和 #define 不是 C 语句。

41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。

42. C语言中 018是合法的八进制整数。

43. C程序中所要用到的变量应该先定义,后使用。

44.十六进制数0x11的十进制数是17。

45.赋值语句是一种可执行语句。

46. for语句的循环体不能是空语句。

47.可以调用putchar 函数输出字符。

48. C程序的main函数可以有参数,但参数不能是整型。

49. 在一个C程序中,全局变量和局部变量是不能同名的。

50.C 编译中的预处理是在编译之前进行的。

51.C 语言程序的三种基本结构是顺序结构、转移结构和循环结构。

52.C语言中 0xe 是合法的十六进制整数。

53.在程序的运行过程中,其值可以改变的量是变量。

54.八进制数0x11的十进制数是9。

55.在赋值表达式的尾部加上一个分号,就构成了赋值语句。

56. C语言不允许循环嵌套。

57.可以调用getchar 函数输入字符。

58. C程序中各函数之间允许直接递归调用不允许间接递归调用。

59. 局部变量不能在复合语句内部定义。

60. 宏定义是可以带参数的。

二、选择题

1. C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A.循环 B.递归 C.转移 D.嵌套

2.以下选项中正确的整型常量是_____。

A. 12. B. -10 C. 1,900 D. 123x

3.在C 语言程序中,用关键字______定义基本整型变量。

A. int B. float C. double D. char

4. Turbo-C 语言中,字符类型数据占_____字节。

A. 1 个 B. 2 个 C. 4 个 D. 8 个

5.若a、b、c、d都是int类型变量且初值为0, ______不是正确的赋值语句。

A.a=b=c=0; B.a=b; C.c+b; D.d=(c=22)-(b++);

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

A. a=a±1 B. int(12.0%2) C. a=a+1; D.a=a

7.若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。

A.scanf(‖%d,%f‖,&a,&c); B.scanf(‖%d%f‖,a,c);

C.scanf(‖%d%f‖,&a,&c); D.scanf(‖d=%d,c=%f‖,&a,&c);

8.对C程序在作逻辑运算时判断操作数真、假的表述,______是正确的。

A.0为假非0为真 B.只有1为真 C.-1为假1为真 D.0为真非0为假

9. C 语言中的简单数据类型有____。

A.整型、实型、逻辑型 B.整型、实型、字符型

C.整型、字符型、逻辑型 D.整型、实型、字符型、逻辑型

10. C 语言程序规定必须用main作为______。

A.主函数名 B.子函数名 C.程序名 D.变量名

11.下列语句定义pf为指向float类型变量f的指针,_____是正确的。

A.float f,*pf=f; B.float f,*pf=&f; C.float *pf=&f,f; D.float f,pf=f;

12.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。

A.p2=p1; B.p2=**p1; C.p2=&p1; D.p2=*p1;

13.定义一个4个元素的一维整型数组,_____是正确的。

A.float a[4]; B.int a[ ]={1,2,3,4,5}; C.int a[ ]={1,2,3}; D.int a[4]={1};

14. 数组定义为 int a[3][2],数组a中有_____个元素。

A.2 B. 3 C.5 D.6

15. 以下能正确进行字符串赋值或赋初值的语句组是______。

1

A.char str[3]="key";

B.char str[3]={'k','e','y'};

C.char str[4];str="key";

D.char *s; s="key";

16.C语言中,形参的缺省的存储类说明是______。

A. auto B.static C. register D.extern

17. 若变量已正确定义,表达式 (j=3,j++) 的值是_____ 。

A.3 B. 4 C.5 D.0

18. 若x是整型变量,表达式 (x=10.0/4.0) 的值是_____ 。

A.2.5 B. 2.0 C. 3 D.2

19. 为读而打开文本文件 aa.dat,的正确写法是_____。

A.fopen(‖aa.dat‖,‖rb‖); B.fopen(‖aa.dat‖,‖w‖)

C.fopen(‖aa.dat‖,‖wb‖); D.fopen(‖aa.dat‖,‖r‖)

20. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为_____。

A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算

C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算

21.C 语言程序的三种基本结构是顺序结构、______结构和循环结构。

A.选择 B.递归 C.转移 D.嵌套

22.以下选项中不正确的整型常量是_____。

A.0 B.–10u C.20L D.-1234

23.在C 语言程序中,用关键字______定义短整型变量。

A.short B.float C.double D.char

24.十进制数 16 的十六进制数是_____。

A.11 B.12 C.13 D.10

25.若变量已正确定义,______是合法的 C 语句。

A.a=1,b=2 B.a=1=b; C.a=b=5; D.y=;

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

A.a=3,5; B.a+=1 C.a=a+1=3 D.12.3%4

27.若a是单精度实型变量,c是基本整型变量,以下正确的输入语句是______。

A. scanf ("%f%d", a, c) ; B. scanf ("%f%d", &a, &c) ;

C. scanf ("%f%f", &a, &c) ; D. scanf ("%d%f", &a, &c) ;

28.在 C 程序中,用_____表示逻辑值“真”。

A.true B.非 0 的数 C.非 0 整数 D.大于 0 的数

29. 设有说明语句char a=‘\n‘;,则变量a_____。

A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法30. C 语言程序由组成。

A.子程序 B.过程 C.函数 D.主程序和子程序

31.下列语句定义pd为指向int类型变量d的指针,_____是正确的。

A.int d,*pd=&d; B.int *pd=&d,d; C.float d,*pd=&d; D.float *pd=&d,d;

32. 若变量已正确定义并且指针p已经指向变量x,则&*p相当于_____。

A.x B.*p C.p D.*&x

33.定义一个4个元素的一维整型数组,_____是不正确的。

A.int a[4]; B.int a[4]={1,2,3,4,5}; C.int a[4]={1,2,3}; D.int a[4]={1};

34. 数组定义为 int a[3][2]={1,2,3,4,5,6},数组元素_____的值为6。

A.a[3][2] B.a[2][1] C.a[1][2] D.a[2][3]

35. 不正确的字符串赋值或赋初值的方式是______。

A.char str[]="string";

2

B.char str[7]={'s','t','r','i','n','g'};

C.char str[10];str="string";

D.char str[7]={'s','t','r','i','n','g',‘\0‘};

36. 要调用数学函数时,在#include命令行中应包含_____。[13]

A.‖stdio.h‖ B.‖string.h‖ C.‖math.h‖ D.‖ctype.h‖

37. 若变量已正确定义,表达式 (j=1,++j) 的值是_____ 。

A.1 B. 2 C.3 D.0

38. 若x是单精度实型变量,表达式 (x=10/4) 的值是_____ 。

A.2.5 B. 2.0 C. 3 D. 2

39. 为写而打开文本文件 aa.dat,的正确写法是_____。

A.fopen(‖aa.dat‖,‖rb‖) B.fp=fopen(‖aa.dat‖,‖w‖)

C.fopen(‖aa.dat‖,‖wb‖) D.fp=fopen(‖aa.dat‖,‖r‖)

40. 下列运算符中优先级最低的是_____。

A.“>=”和“<=” B.“>”和“<” C.“==”和“!=” D.“<=”和“<”

41.C 语言程序的三种基本结构是______结构、选择结构和循环结构。

A.顺序 B.递归 C.转移 D.嵌套

42.以下选项中正确的实型常量是_____。

A.0 B.-10 C.0.19 D.1.9*102

43.在C 语言程序中,用关键字______定义长整型变量。

A.long B.float C.double D.char

44.十进制数 8 的八进制数是_____。

A.11 B.010 C.8 D.08

45.______不是合法的C语句。

A.{int j; j++;} B.{int j;j++;;} C.{int j;;j++;} D.{ j++;int j; }

46.若变量a,b已正确定义并赋值,符合C语言语法的表达式是______。

A. a,b B. a≤b C. a≥b D.a≠b

47.对以下的 scanf 语句,正确的输入方式是______。

int k1,k2,k3,k4;

scanf("%d%d%d%d ",&k1,&k2,&k3,&k4);

A.1020 30,40 B.10 20 30 40 C.10,20 3040 D.10 20 30,40

48.表达式!x等效于_____。

A.x==1 B.x==0 C.x!=1 D.x!=0

49.要定义字符型变量a并赋初值,_____是正确的。

A.char a=‘3‘; B.char a=‖3‖; C.char a=%; D.char a=*;

50.以下函数调用语句中,含有的实参个数是_____。

calc(exp1,(exp3,exp4,exp5));

A.1 B. 2 C. 3 D. 4

51.下列语句定义整型指针p1、p2,_____是正确的。

A.int p1,p2; B.int *p1,*p2; C.int *p1,p2; D.int** p1,p2;

52.若变量已正确定义并且指针p已经指向变量x,则*&x相当于_____ 。

A.x B.*p C.&x D.&*p

53.数组定义为“int a[4];”,表达式_____是错误的。

A.*a B.a[0] C.a D.a++

54. 数组定义为 int a[2][3]={1,2,3,4,5,6},数组元素_____的值为1。

A.a[1][2] B.a[1][1] C.a[2][3] D.a[0][0]

55. 表达式 strlen(‖hello‖) 的值是_______。

A. 4 B. 5 C. 6 D. 7

56. 要调用字符串函数时,在#include命令行中应包含_____。

A.‖stdio.h‖ B.‖string.h‖ C.‖math.h‖ D.‖ctype.h‖

3

57. 若变量已正确定义且k的值是4,计算表达式 (j=k++) 后,_____ 是正确的。

A.j=4,k=5 B. j=4,k=4 C.j=5,k=4 D.j=5,k=5

58. C语言中运算对象必须是整型的运算符是______。

A. % B. / C. ! D.**

59. 若有 char fname[]="infile.dat"; ,则为读而打开文本文件 infile.dat 的正确写法是_____。

A.fopen(infile.dat,"r") B.fopen(infile.dat,"r")

C.fopen(fname,"r") D. fopen("fname","r")

60. 下列运算符中,优先级从高到低依次为_____。

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

61.在Trubo_C中,C语言源程序文件的后缀是______。

A.‖.c‖ B.―.obj‖ C.―.exe‖ D.―.bas‖

62.以下选项中不正确的实型常量是_____。

A.0.23E1 B.2.3e-1 C.1E3.6 D.2.3e0

63.在C 语言程序中,用关键字______定义无符号型变量。

A. unsigned

B. float

C. double

D. char

64.C 语言程序中可以对程序进行注释,注释部分必须用符号______括起来。

A. ?{?和‘}‘

B. ?[?和‘]‘

C. ―/*‖和‖*/‖

D. ―*/‖和‖/*‖

65.若a、b都是int类型变量, ______不是正确的赋值语句。

A.a=b=60 B.a=3.0; C.a=1,3; D.b=0;

66.若变量a,b,c已正确定义并赋值,符合C语言语法的表达式是______。

A. ab/c; B. a/c×b C. a·b D.a*b/c

67.若 k 是基本整型变量,则以下程序段的输出是_____。

k=8567;

printf("|%-6d|\n",k);

A.输出格式描述符不正确 B.输出为|008567| C.输出为|8567 | D.输出为|-08567|

68. 为表示“a和b都大于0”,应使用的C语言表达式是_____。

A.(a>0)&&(b>0) B.a && b C. (a>0)|| (b>0) D.(a>0)|(b>0)

69. 已知字符?b‘的ASCII码为 98 ,执行下列语句后输出为_____。

printf ("%d,%c", ‘b‘,‘b‘+1 ) ;

A.98,b B.语句不合法 C.98,99 D. 98,c

70.以下函数调用语句中,含有的实参个数是_____。

exce( (v1,v2), (v3,v4,v5), v6);

A.6 B.5 C.4 D.3

71. 若变量已正确定义,表达式_____可以使指针px指向变量x。

A. px=&x B.px=x C.*px=&x D. *px=*x

72. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。

A.p++ B.x++ C.*(p++) D.&x++

73. 数组定义为 int a[6],数组a中有_____个元素。

A.4 B. 5 C.6 D.7

74. 下列各语句定义了数组,_____是不正确的。

A.int a[1][3]; B.int x[2][2]={1,2,3,4}; C.int x[2][]={1,2,4,6}; D.int m[][3]={1,2,3,4,5,6};

75.表达式strcmp(―box‖,‖boss‖) 的值是一个_______。

A.正数 B.负数 C. 0 D.不确定的数

76. 要调用字符函数时,在#include命令行中应包含_____。

A.‖stdio.h‖ B.‖string.h‖ C.‖math.h‖ D.‖ctype.h‖

77. 若变量已正确定义且k的值是4,计算表达式 (j=k--) 后,_____ 是正确的。

A.j=4,k=4 B. j=4,k=3 C.j=3,k=4 D.j=3,k=3

78.表达式 ((int)(3.0/2.0)) 的值是_____ 。

4

A.1.5 B. 1.0 C. 1 D. 0

79. 若有 char fname[]="outfile.dat"; ,则为写而打开文本文件 outfile.dat 正确写法是_____。

A.fopen(outfile.dat,"w") B.fopen(outfile.dat,"w")

C.fopen(fname,"w") D. fopen("fname","w")

80.在 C 语言中,优先级最低的运算符是_____。

A. * B.<< C.+ D. ,

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

A.‖.c‖ B.―.obj‖ C.―.exe‖ D.―.bas‖

82.常数的书写格式决定了常数的类型和值,10L是____。

A.基本整型常数 B.短整型常数 C.长整型常数 D.无符号型常数

83.在C 语言程序中,用关键字______定义单精度实型变量。

A.int B. float C.double D.char

84.以下各标识符组中,合法的用户标识符组为______。

A. b-b 和 abc B.CCP 和 float C.hiy 和 D. _isw 和 INT

85.若a是int类型变量,______不是合法的C语句。

A.{int j;j++;} B. ; C.{;} D.,

86.把x、y定义成float类型变量,并赋同一初值3.14的定义语句是______。

A.float x,y=3.14; B.float x,y=2*3.14; C.float x=3.14,y=3.14; D.float x=y=3.14; 87.若 a 、b 是基本整型变量,则以下程序段的输出是_____。

a=123; b=12345;

printf ("|%4d,%4d|\n", a, b) ;

A.|123 ,12345| B.|123 ,1234| C.| 123,12345| D.| 123,2345|

88. 为表示“x≥y≥z”,应使用的C语言表达式是_____。

A. (x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z)

89. 执行下列语句后输出为_____。

printf ("%d", ?a‘<‘b‘) ;

A.1 B.语法错 C.0 D.-1

90.在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。

A.void B.double C.int D.char

91. 若变量已正确定义并且指针p已经指向变量x,则*p相当于_____。

A.x B.*p C.p D.*&x

92. 若变量已正确定义,____不可以使指针p成为空指针。[8]

A. p=NULL B.p=0 C.p=‘\0‘ D. p!=0

93. 数组定义为 int a[3]={1,2,3},数组元素_____的值为3。

A.a[0] B.a[1] C.a[2] D.a[3]

94. 下列各语句定义了数组,_____是正确的。

A.int a[ ][ ]={1,2,3,4}; B.int x[2][2]={1,2,3,4,5}; C.int x[2][]={1,2,4,6}; D.int

m[][3]={1,2,3,4,5,6};

95. 若定义 char a[80]=‖windows‖, b[]=‖95‖; 语句 printf(‖%s‖, strcat(a,b)); 输出结果是___。

A. windows95 B. windows C. 95 D. 95windows

96. 要调用输入输出函数时,在#include命令行中应包含_____。

A.‖stdio.h‖ B.‖string.h‖ C.‖math.h‖ D.‖ctype.h‖

97. 若变量已正确定义且k的值是4,计算表达式 (j=++k) 后,_____ 是正确的。

A.j=4,k=5 B. j=4,k=4 C.j=5,k=4 D.j=5,k=5

98. 表达式 (5/2) 的值是_____ 。

A.0 B. 2 C.2.0 D.2.5

99. 读二进制文件应调用_____函数。

A.fread B.fwrite C.fgets D.fputs

100. 下列运算符中,_____是关系运算符。

5

A.= B.? : C.== D.<<

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

A.‖.c‖ B 、―.obj‖ C.―.exe‖ D.―.bas‖

102.常数的书写格式决定了常数的类型和值,10U是____。

A.基本整型常数 B.短整型常数 C.长整型常数 D.无符号型常数

103.在C 语言程序中,用关键字______定义双精度实型变量。

A.int B.float C.double D.char

104.以下各组标识符,选出合法的用户标识符组。

A. _PAD 和 P_D B. _scanf 和 *a C. int和 x_1 D. 2a 和 max

105.若变量已正确定义,______是合法的 C 语句。

A. a=1,b=2 B. i++; C. a=b=5 D. y=int(x);

106.把a、b定义成int类型变量,并赋同一初值3的定义语句是______。

A.int a,b=3; B.int a,b=3,3; C.int a=3,b=3; D.int a=b=3;

107.若 a 、b 是基本整型变量,则以下程序段的输出是_____。

a=1; b=2;

printf ("a=%%d,b=%d", a, b) ;

A.a=%1,b=2 B.a=%%d,b=1 C.a=%d,b=2 D.a=%d,b=1

108. 为表示“a=b或a

A.(a=b)||(a

109. 执行下列语句后输出为_____。

printf ("%d", ?a‘==‘A‘) ;

A.1 B.语法错 C.0 D.97

110.以下说法正确的是_____。

A.main 函数是 C 程序主函数, main 函数一定要写在最前面。

B.在 C 程序中,函数都必须先定义,后使用。

C.C语言程序总是从main 函数开始执行。

D.在 C 程序中,只能调用C提供的库函数,不能自己定义函数。

111. 若变量已正确定义并且指针p已经指向变量x,则&x相当于_____。

A.x B.*p C.p D.*&x

112.若p1、p2都是整型指针,表达式_____是不正确的。

A.p2==p1 B.p2>p1 C.p2-p1 D.p1*p2

113. 数组定义为 int a[3]={1,2,3},数组元素_____的值为1。

A.a[0] B.a[1] C.a[2] D.a[3]

114. 数组定义为“int a[4][5];”,表达式_____是错误的。

A.*a B.a[1][1] C.&a[2][3] D.++a

115.若定义 char a[80]=‖95‖, b[]=‖windows‖;,语句 printf(‖%s‖,strcpy(a,b)); 的输出结果为。 A. windows95 B. windows C. 95 D. 95windows

116. 求一个双精度实数的绝对值,应该调用函数_____。

A. sqrt B. pow C. abs D. fabs

117. 若变量已正确定义且k的值是4,计算表达式 (j=--k) 后,_____ 是正确的。

A.j=4,k=4 B. j=4,k=3 C.j=3,k=4 D.j=3,k=3

118. 表达式 (10%2) 的值是_____ 。

A.0 B. 1 C.5 D.5.0

119. 写二进制文件应调用_____函数。

A.fread B.fwrite C.fscanf D.fprintf

120. 下列运算符中,_____是赋值运算符。

A.+= B.+ C.== D.>>

三、写输出结果

6

1. 表达式 ( ?1‘<‘0‘<‘2‘ ) 的值为_______。

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

int k, a=4, b=3 ;

k = ( a==++ b) ?0 :1 ;

printf("%d",k);

3. 表达式 ((7<<1)&1 ) 的值为_______。

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

#define T 16

#define S (T+10)-7

printf("%d",S*2);

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

int n;

n = 3;

switch (n) {

case 1: n=1; break;

case 2: n=2;

case 3: n=3; break;

default: n=4;

}

printf("%d",n);

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

int k = -1 ;

if (! ( k<=0 ) ) printf ("***") ;

else printf ("###") ;

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

int x=0, y=-1;

if(x!=0) y=1;

if(x>0) y=1;

else y=0;

printf("%d",y);

8.以下程序段的输出结果是_____。

int k=0, sum=1;

do {

sum+=2;

k++;

} while (k<5);

printf(‖%d‖,sum);

9.对于以下递归函数f,调用 f (3) 的返回值是_____。

int f(int k)

{

return ((k<0) ? 1 : f(k-2)+2);

}

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

static char s[ ]="student";

printf("%c",*(s+2));

11. 表达式 ( 5==5==5 ) 的值为_______。

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

7

int k, a=3, b=2 ;

k = ( a--== b)?0: 1 ;

printf("%d",k);

13. 表达式 ((2<<1)|2 ) 的值为_______。

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

#define M(x,y) (x*y)

printf("%d", M(2, 3+4));

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

int n;

n = 6;

switch (n) {

case 1: n=1; break;

case 2: n=2; break;

case 3: n=3; break;

default: n=4;

}

printf("%d",n);

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

int k = 0 ;

if (! ( k==1 ) ) printf ("***") ;

else printf ("###") ;

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

int x=-10, y=1;

if(x>=0)

if(x>0) y=0;

else y=-1;

printf("%d",y);

18.以下程序段的输出结果是_____。

int k=1, sum=8;

while(k<6) {

sum++;

k++;

}

printf(‖%d‖,sum);

19.对于以下递归函数f,调用 f (3) 的返回值是_____。

f (int n)

{

return ( n<=0 ? 1 : f (n-1) + 1 );

}

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

int c[ ]={1, 7, 12};

int *k;

k=c; k++;

printf("%d",*k);

21. 表达式 (4/5*(float)3+(float)3*4/5) 的值为_______。22.下列程序段的输出结果是_____。

#include

8

printf("%d",NULL);

23. 表达式 ((4|1)&3 ) 的值为_______。

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

#define M(x,y) (x*y)

printf("%d", M(2, 3+4));

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

char c=‘a‘; int k=4;

switch(c){

case ?a‘: k=1;

case ?b‘: k=2;

case ?c‘: k=3;

}

printf("%d",k);

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

int k = 10 ;

if ( k<0 ) printf (―%d‖,k<0) ;

else printf (―%d‖,k>=0) ;

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

int x=0, y=0;

if(x>=0)

if(x>0) y=1;

else y=0;

else y=-1;;

printf("%d",y);

28.以下程序段的输出结果是_____。

int k, sum=0;

for(k=5;k<10;k++)

sum+=k;

printf(‖%d‖,sum);

29.对于以下递归函数f,调用 f (4) 的返回值是_____。

int f(int n)

{

if (n) return f(n-1)+n;

else return n;

}

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

static char s[ ]="window";

printf("%s",s+3);

31. 表达式 (5-1 && 3+5/2)的值是_____。

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

#include

printf("%d",EOF);

33. 表达式 (3&4|2 ) 的值为_______。

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

#define M(x,y) (x/y)

printf("%d", M(3+4, 6));

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

9

char c=‘x‘; int k=4;

switch(c){

case ?a‘: k=3;

case ?b‘: k=2;

case ?c‘: k=1;

}

printf("%d",k);

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

int a=1,b=2,c=0 ;

if(a

printf("%d",c);

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

int x=10, y=0;

if(x>=0)

if(x==0) y=1;

else y=-1;

printf("%d",y);

38.以下程序段的输出结果是_____。

int k=5, sum=10;

do {

sum++;

k--;

} while (k>0);

printf(‖%d‖,k);

39.对于以下递归函数f,调用 f (3) 的返回值是_____。

int f(int x)

{

return ((x>0)? f(x-1)+f(x-2):1);

}

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

int *p, *q, k = 5 , j = 6 ;

q = &k ; p = q ; q = &j ;

printf("%d",*p);

41. 表达式 (2-5 || (5>=4))的值是_____。

42.用八位二进制表示带符号的整数,则能表示数的范围是从____ 到127。

43. 表达式 (~3&7 ) 的值为_______。

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

#define MIN(x,y) (x)<(y)?(x) : (y)

printf("%d",10*MIN(10,15));

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

char c = 'b' ; int j = 0 ;

switch (c)

{ case 'a' : j=4 ; break ;

case 'b' : j=3 ;

case 'c' : j=2 ; break ;

case 'd' : j=1 ;

}

10

printf("%d",j);

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

int a=1,c=0 ;

if(a

printf("%d",c);

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

int x=7, y=0;

if(x<0) y=-1;

else if(x==0) y=0;

else y=-1;

printf("%d",y);

48. 以下程序段的输出结果是_____。

int k=6, sum=8;

while(k>0) {

sum++;

k--;

}

printf(‖%d‖,k);

49.对于以下递归函数f,调用 f (3) 的返回值是_____。

int f( int n )

{ if(n<=1) return n;

else return f(n-1)+f(n-2);

}

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

int *p, *q, k = 1, j=0 ;

p=&j; q = &k ; p = q ; (*p)++;

printf("%d",*q);

51.表达式 (a=b=4, a+1, b+=2, a+b) 的值为_______。

52.用八位二进制表示无符号的整数,则能表示数的范围是从0到____。

53. 表达式 (~7&4 ) 的值为_______。

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

#define DD(x,y) (x*x-y*y)

printf("%d", DD(2*3, 2+3));

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

int s=0, a=1;

switch (a) {

case 1: s += 1;

case 2: s += 2;

default: s += 3;

}

printf("%d",s);

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

int a=1,c=10 ;

if(a>c) c=a; else ;

printf("%d",c);

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

int x=0, y=0;

11

if(x>=0)

if(x<0) ;

else y=-1;

printf("%d",y);

58.以下程序段的输出结果是_____。

int k;

for(k=10;k>=0;k--);

printf(‖%d‖,k);

59.对于以下递归函数f,调用 f (3) 的返回值是_____。

int f( int n )

{

if(n<=1)

return n;

else

return f(n-1)+n;

}

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

int *p, k = 5 ;

p = &k ; ++(*p);

printf("%d",k);

四、阅读下列程序,写出输出结果。

1. # include

main()

{ int k = 2 ;

while (k == 0) printf ("%d", k) ; k++; printf ("%d#", k) ; }

2. int k;

for (k = 2 ; k < 5 ; k++)

if (4/k ==1) break;

printf ("%d#", k) ;

3. int k=10;

while (k=0) k=k –1;

printf ("%d#", k) ;

4. int k,x;

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

printf ("%d#", k) ;

5. int k,x=0;

for(k=1;k<=5;k++) {

if(k%2) x++; else continue; x++;

}

printf ("%d#", x) ;

6. int k;

for (k = 1 ; k < 4 ; k++)

if (k ==2) continue;

printf ("%d#", k) ;

7. # include

main()

12

{

f(f(2));

}

int f(int x)

{ static int k=0;

x+=k;

k++;

printf(‖%d,%d#‖,x,k);

return x;

}

8. #include

main()

{ int m=0;

m=f(2);

printf ("%d#", m);

m=f(3);

printf ("%d#", m);

}

int f(int x)

{ static int k = 1;

x += k;

k++;

printf(‖%d,‖,k);

return x;

}

9. #include

main()

{ int k;

for (k=4; k>=1; k--) fun();

}

fun()

{ static int m=0;

m++;

printf(‖%d#‖,m);

}

10.#include

main( )

{ int k=1, m=2;

m++;

{ int k=0;

k += m*2;

printf(―%d,%d#‖ ,k,m);

k++;

}

printf(―%d,%d#‖ ,k,m);

}

11.#include

13

main( )

{ int k=1, m=2;

m++; k++;

{ int m=0; k=10;

m++;k++;

printf(―%d,%d#‖ ,k,m); m++;k++;

}

printf(―%d,%d#‖ ,k,m);

}

12.#include

int m=10;

main( )

{ int k=1;

m++; k++;

{ int k= -5;

m++;k++;

printf(―%d,%d#‖ ,k,m); m++;k++;

}

printf(―%d,%d#‖ ,k,m);

}

13.#include

int x,y,z;

void p(int *x,int y)

{ int z;

++*x;

y--;

z=*x+y;

printf("%d,%d,%d#",*x,y,z); }

void main()

{ x=2; y=3; z=5;

p(&y,x);

printf("%d,%d,%d#",x,y,z); }

14.#include

int z;

void p(int *x,int y)

{ ++*x;

y--;

z=*x+y;

printf("%d,%d,%d#",*x,y,z);

}

void main()

{ int x=2, y=3, z=4;

p(&x,y);

printf("%d,%d,%d#",x,y,z);

14

}

15.#include

int c;

func(int *a,int b)

{ c=(*a)*b; *a=b-1; b++;

return(*a+b+1);

}

main()

{ int a=4, b=2, p=0;

p=func(&b, a);

printf("%d, %d, %d, %d#", a, b, c, p);

}

16.#include

void p(int x,int *y)

{ *y=x++;

}

void main()

{ int x=0, y=0;

p(10,&y);

printf("%d,%d#",x,y);

p(y,&x);

printf("%d,%d#",x,y);

}

17.#include

func(int a,int b,int *c,int *d)

{ *c=a+b; *d=a-b; a++; b++;

}

main()

{ int a=4, b=3, c=2,d=1;

func(d,c,&b,&a);

printf("%d, %d, %d, %d#", a, b, c, d);

}

18.#include

func(int *a,int n,int *b)

{ int k;

for(k=0;k

k=a[0];a[0]=a[2];a[2]=k;

}

main()

{ int a[6]={1,2,3}, b=0,k;

func(a, 3,&b);

for(k=0;k<3;k++) printf(―%d#‖,a[k]);

printf("%d#", b);

}

19.#include

void main()

{

long in, power, i;

15

int num;

scanf("%ld",&in);

for(power=1;in/power>0;power*=10);

power/=10;

while(power>0){

printf("%d#",in/power);

in%=power;

power/=10;

}

}

输入02345<回车>

20. #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;

}

} while(c!='=');

printf("%d#",sum);

}

输入 -12+3*10=<回车>

21. #include

void main()

{

int n;

char ch;

do{

ch=getchar();

}while(ch<'0'||ch>'7');

n=0;

do{

n=n*8+(ch-'0');

ch=getchar();

}while(ch>='0'&&ch<='7');

printf("%d#",n);

}

输入 afds2008b3c<回车>

22. #include

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

16

{ int s,k;

for(s=0,k=0; k<3; k++)

s+=a[k][k];

printf("%d#",s);

for(s=0,k=0; k<3; k++)

s+=a[k][3-k];

printf("%d#",s);

for(s=0,k=0; k<4; k++)

s+=*(a[1]+k);

printf("%d#",s);

}

23.#include

int cal( int a, int b, char op)

{ if (op==?*‘)

return (a*b);

else return (a+b);

}

main()

{ int x,y,z, result;

char op1, op2;

scanf(―%d%c%d%c%d‖, &x, &op1, &y, &op2, &z);

if (op2==?+‘ && op1 ==?*‘)

result = cal(x, cal(y,z,op2), op1);

else result = cal(cal(x,y,op1),z,op2);

printf(―%d#‖, result);

}

输入 2+3*5<回车>

24.#include

void main()

{ static char a[5]={'a','e','i','o','u'};

char str[80];

int k,j;

gets(str);

for(k=0;str[k]!='\0';k++)

for(j=0;j<5;j++)

if (str[k]==a[j]) str[k]=j+'0';

puts(str);

}

输入I am a student.<回车>

25.若head是node类型的全程量,以head为头指针的链表各节点的值如下图所示。

#include

struct node {

int num;

struct node *next;

};

struct node *head ;

int fun(struct node *h)

17

struct node *p=h;

}

return k;

}

main()

{ int m;

m=fun(head);

printf(―m=%d\n‖,m);

}

26.若head是node类型的全程量,以head为头指针的链表各节点的值如下图所示。 #include

struct node {

int num;

struct node *next;

};

struct node *head;

int fun(struct node *h)

{ int k=0;

struct node *p=h;

while(p!=NULL){

if(p->next!=NULL) k+=p->num;

p=p->next;

main()

{ int m;

m=fun(head);

printf(―m=%d\n‖,m);

}

27.若head是node类型的全程量,以head为头指针的链表各节点的值如下图所示。

#include

struct node {

int num;

struct node *next;

};

struct node *head;

int fun(struct node *p)

{ int k=0;

struct node *pp=p;

while (pp!=NULL) {

18

19

if ((pp->num)%2==0) k+=pp->num; pp= pp->next; }

} { int m;

m=fun(head);

printf(―m=%d\n ‖,m); }

28.若head 是node 类型的全程量,以head 为头指针的链表各节点的值如下图所示。 #include struct node { int num;

struct node *next; };

struct node *head; int fun(struct node *h) { int k=0;

struct node *p=h;

p = head->next ; p = p->next ; while (p!=NULL) {

k+=p->num; p= p->next;

main()

{ int m;

m=fun(head);

printf(―m=%d\n ‖,m); }

29.若head 是node 类型的全程量,以head 为头指针的链表各节点的值如下图所示。 #include struct node { char c;

struct node *next; };

struct node *head;

void fun(struct node *h) { struct node *p=h; while(p!=NULL) {

if(p->c>='A' && p->c<='Z') putchar((*p).c); p=p->next;}

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

精选-C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

C语言考试题库--综合

试卷编号:10183 所属语言:Turbo C 试卷方案:fny-13 试卷总分:110分 共有题型:7种 ━━━━━━━━━━━━━━ 一、填空共5题(共计15分) ━━━━━━━━━━━━━━ 第1题(3.0分) int x=4,y=z=2;z=x==(y=z); 则z的值为【1】。 答案: 1). 0 第2题(3.0分) 设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是【1】。 答案: 1). 9

第3题(3.0分) 设x=72,表达式x=(x>=60)的值为【1】。答案: 1). 1 第4题(3.0分) sqrt()函数的原型在头文件【1】中。 答案: 1). math.h 第5题(3.0分) int x=2;z=-x+++1; 则z的值为【1】。 答案: 1). -1 ━━━━━━━━━━━━━━ 二、判断共5题(共计10分) ━━━━━━━━━━━━━━

第1题(2.0分) 若有说明int c;则while(c=getchar());是正确的C语句。 答案:Y 第2题(2.0分) 结构体类型只有一种。 答案:N 第3题(2.0分) 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。 答案:N 第4题(2.0分) 参加位运算的数据可以是任何类型的数据。 答案:N 第5题(2.0分) 若有int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。 答案:N

━━━━━━━━━━━━━━━━━ 三、单项选择共10题(共计10分) ━━━━━━━━━━━━━━━━━ 第1题(1.0分) 若有下列定义,则对a数组元素地址的正确引用是()。int a[5],*p=a; A:*(p+5) B:*p+2 C:*(a+2) D:*&a[5] 答案:C 第2题(1.0分) 在C语言的函数中,下列正确的说法是()。 A:必须有形参 B:形参必须是变量名 C:可以有也可以没有形参 D:数组名不能作形参 答案:C

c语言期末测试题(附答案)

** 课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个 正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。A)’a’&&’b’ B)a<=b C)((a>b)||(b

【】 A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 计算机技术基础试题第2页(共11页)

c语言期末考试试题及答案

1. 一个C程序的组成部分可以是()。 A)一个主函数和一至若干个其他函数B)一至若干个主函数 C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序 2. 一个C程序的执行是从()。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。 A)必须为字母B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是()。 A)–1 B)0 C) 1 D) 2 5. 表达式11&10的结果用二进制表示为()。 A)11B)3C)1D)10 6. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是()。 (A)3(B)0(C)9(D)-12 7. 在下列选项中,不的赋值语句是()。 A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 8. 下列( )表达式不满足:当x的值为偶数时值为"真",为奇数时值"假"。 A)X%2==0B)!x%2!=0 C)(x/2*2-x)==0D)!(x%2) 9. 若有定义:int a=8,b= 5,c;执行语句c=a/b+0.4 后c的值为() A)1.4 B)1 C)2.0 D)2 10. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是()。 A)true B)false C)0D) 1 11. 若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。 A)3B)0C)4D)2 12. 以下哪个表达式的值为4()

计算机C语言期末考试试题及答案

1、 分别求100以内所有奇数之和、所有偶 数 之 积 。 /* Note:Your choice is C IDE */ #include "stdio.h" main() { int i,y,sum,s; sum =0;s =1; for (i =1;i <=100;i ++) { y =i %2; if (y ==0) s =s *i; else sum =sum +i; } printf("100以内所有奇数之和为:%d\n",sum); printf("100以内所有偶数之积为:%d\n",s); } 2、 输入 m,n ,求n m C (已知 )! (!! n m n m C n m -= ),要求用函数实现。 /* Note:Your choice is C IDE */ #include "stdio.h" int fac(int x); main() { int m,n,cmn; scanf("%d%d",&m,&n); cmn =fac(m)/(fac(n)*fac(m -n)); printf("cmn=%d",cmn); } int fac(int x) { int s,i; s =1; for (i =1;i <=x;i ++) s =s *i; return s; } 3、 求1!+3!+5!+7!(用函数实现) /* Note:Your choice is C IDE */ #include "stdio.h" int fac(int x); main() { int m; m =fac(1)+fac(3)+fac(5)+fac(7); printf("m=%d",m); } int fac(int x) { int s,i; s =1; for (i =1;i <=x;i ++) s =s *i; return s; } 4、输入一个数,判定其是否是素数(用函 数实现)。 /* Note:Your choice is C IDE */ #include "stdio.h" int sushu(int x); main() { int i; scanf("%d",&i); if (sushu(i)==1) printf("是素数"); else printf("不是素数"); } int sushu(int x) { int i,s; s =1; for (i =2;i <=x -1;i ++) if (x %i ==0)s =0; return s; }

C语言期末考试试题及详细答案

选择练习题 1、C 语言中最简单的数据类型包括( B )。 A 、整型,实型,逻辑型 B 、整型,实型,字符型 C 、整型,字符型,逻辑型 D 、整型,实型,逻辑型,字符型 2、C 语言中,运算对象必须是整型数的运算符是(A )。 A 、% B 、/ C 、%和/ D 、* 3、为表示关系x <y <z ,应使用C 语言表达式( A )。 A 、(x <y)&&(y <z ) B 、(x <y)AND (y <z) C 、(x <y <z) D 、(x <y) &(y <z) 4、C 语言程序的基本单位是( C )。 A 、程序行 B 、语句 C 、函数 D 、字符 5、C 语言的程序一行写不下时,可以( D )。 A 、用逗号换行 B 、用分号换行 C 、用回车符换行 D 、在任意一空格处换行 6、下述标识符中,( C )是合法的用户标识符。 A 、A& B B 、void C 、_student D 、 7、在C 语言中,字符型数据在内存中以( B A 、补码 B 、ASCII 码 C 、反码 D 、原码 8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B )。 A 、auto B 、extern C 、static D 、Register 9、以下关于switch 语句和break 语句的描述中,只有(B A 、在switch 语句中必须使用break 语句 B 、在switch 语句中,可以根据需要使用或不使用break 语句 C 、break 语句只能用于switch 语句中 D 、break 语句是switch 语句的一部分 10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。 A 、地址传递 B 、值传递 C 、由实参传给形参,并由形参传回给实参 D 、由用户指定传递方式 11、下述C 语言转义符中( D )是非法的。 A 、'\b' B 、'\037' C 、'\0xf ' D 、'\'' 12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是( D )。

(完整版)C语言期末考试试题[谭浩强版]

C语言期末考试试题 2008年04月12日星期六 00:22 一选择题(24分,每小题2分) 1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer 代表的是()。 A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针 C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数 2.以下程序的输出结果为()。 main( ) { int i=010,j=10; printf("%d,%d\n",i++,j--); } A 11,9 B 9,10 C 8,10 D 9,9 3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2;

A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20 4.设i和k都是int类型,则for循环语句()。for(i=0,k=-1;k=1;i++,k++) printf("****\n"); A 循环结束的条件不合法 B 循环体一次也不执行 C 循环体只执行一次 D 是无限循环 5.以下程序的输出结果为()。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case 'a': case 'b': case 'c':printf("%c,",c);break;

default:printf("end"); } } } A a,b,c,end B a,a,a,end C a,a,a, D a,b,c, 6.函数调用语句:fseek(fp,-10L,2);的含义是()。 A 将文件位置指针从文件末尾处向文件头的方向移动10个字节 B 将文件位置指针从当前位置向文件头的方向移动10个字节 C 将文件位置指针从当前位置向文件末尾方向移动10个字节 D 将文件位置指针移到距离文件头10个字节处 7.以下程序的输出结果为()。 main( ) { int i=0,j=0; while(s1[i]!='\0') i++; while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]=0; printf("%s\n",s1); }

C语言综合测试题(题目)

选择题(每题2分,共计100分) 1.分析下面的C程序, 输出结果是() #include void main() { int num=0; while(num<=2){ printf("%d ",num); num++; } } A. 1 2 3 B.0 1 2 C. 2 3 D. 1 2 2.以下对二维数组a的正确说明是()。 A、 int a[3][]; B、 floatf a(3,4); C、 double a[1][4]; D、 float a(3)(4); 3.要将20赋值到数组Num的第三个元素,正确的方法是() A.Num[3]=20 B.Num[2]=20 C.Num[4]=20 D.[3] Num=20 4.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为() A.不能确定 B.68 C. C D. D 5.以下描述中正确的是()。 A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作 D、do-while循环中,根据情况可以省略while 6.在C语言中,要求运算数必须是整型的运算符是() A、 / B、 ++ C、 != D、% 7.以下程序段() x= -1; do { x=x*x; }while(!x); A、是死循环 B、循环执行二次 C、循环执行-次 D、有语法错误 8.在C语言中,下列正确的字符型常量是() A."f" B.'9' C.# D.365 9.在C语言中,下面()是逻辑运算符中优先级最高的。 A.! B.&& C.|| D.| E.& 10.以下述叙不正确的是() A.一个C源程序可以由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数 D.在C程序中注释说明只能位于一条语句的后面 11.为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与()配对。 A、缩进位置相同的if B、其之前最近的if C、之后最近的if D、同一行上的if 12.下关于运算符优先顺序的描述中正确的是()。 A、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 13.分析如下C语言代码片段,输出结果为() int i=2,j; j=i++; printf(“%d,%d”,i,j); A.2,3 B.3,3 C.3,2 D.2,2 14.在C语言中, ()不是循环语句. A.while语句

C语言期末考试试卷及答案

C语言期末考试试卷(A) 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( A ) A、 C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、 C语言可以直接对硬件进行操作 D、 C语言移植性好 2、以下不正确的C语言标识符是( D ) A、 ABC B、 abc C、 a_bc D、 ab.c 3、一个C语言程序是由( B ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的 是( A ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( C ) A、 int B、 float C、 double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( C )

A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值 是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、 12345 B、 123 C、 45 D、 345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、 a=1,b=2 B、 b++; C、 a=b=5 D、 b=int(x); 9、以下程序的执行结果是( ) #include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、 11,10 B、 9,10 C、 11,9 D、 10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include

c语言期末考试题库

习题一 一、选择题 1.C语言是一种(C )。 A. 低级语言 B. 汇编语言 C. 高级语言 D. 机器语言2.以下不是C语言的特点的是( D )。 A. 语言简洁紧凑 B. 可以直接对硬件进行操作 C. 数据类型丰富 D. 是面向对象的程序设计语言 3.一个C程序的执行是从( A )。 A. 本程序的main函数开始,到main函数结束 B. 本函数的第一个数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本函数的第一个数开始,到本程序main函数结束 4.以下叙述正确的是(C )。 A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行只能写一条语句 C. C语言的本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 5.以下叙述不正确的是(D )。 A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包括一个main函数 C. C程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面 6.C语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 7.一个C语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 8.以下叙述中正确的是( C )。 A. C程序的基本组成单位是语句 B. C程序中的每一行只能写一条语句 C. C语句必须以分号结束 D. C语言必须在一行内写完 9.以下叙述中正确的是( C )。 A. C程序中的注释只能出现在程序的开始位置和语句的后面 B. C程序书写格式严格,要求一行内只能写一个语句

C语言数据结构 综合测试题及答案

第10章综合测试 [能力要求] (1)计算机基础知识:掌握图的概念以及图的基本操作。 (2)分析问题:针对具体的问题,要能够运用图去进行分析,逐步找到解决问题的方法。 (3)具有概念化和抽象化能力:针对具体的应用和实际的问题,能够运用图对问题进行抽象,提取它的逻辑结构和存储结构。 (4)发现问题和表述问题:在具体的工程中,能够发现工程中涉及到图的问题,并能够明确表述。 (5)建模:在具体的工程中,能够使用图进行建模,设计合理的数据结构和相应的算法。 (6)解决方法和建议:在具体工程应用中,发现了关于图的问题,要能够解决问题,并提出合理的建议。 (7)定义功能,概念和结构:使用图这种逻辑结构处理一些具体问题,实现系统的功能。 (8)设计过程的分段与方法:采取不同的阶段去设计(概念设计、详细设计)一个具体的图的应用项目。 (9)软件实现过程:了解系统中各个模块中的关于图的设计;讨论算法(数据结构、控制流程、数据流程);使用编程语言实施底层设计(编程)。 10.1综合测试题1 一、判断题 说明:共10题,每题1分,满分10分 ()1① 有一批数据,经常用来进行插入和删除处理,这样的数据用顺序表存储最合适。 ()2① 栈用于实现子程序调用。 ()3① 队列可用于表达式的求值。 ()4① 队列在队头插入,队尾删除。 ()5② 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。 ()6② 完全二叉树的某结点若无左孩子,则它必是叶结点。 ()7② 将一棵树转换成二叉树后,根结点没有左子树。 ()8② 任一二叉排序树的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间。 ()9② 中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。 ()10③ 如果待排序的数据是有一定顺序的,那么冒泡和简单选择排序法中,简单选择最好。

大学C语言期末考试题及答案

东北大学C语言期末考试题及答案(1) 1、构成C语言的基本单位是___B____。 过程 函数 语句 命令 2、设x为整型变量,不能正确表达数学关系:55&&x<10 x==6||x==7||x==8||x==9 !(x<=5)&&(x<10) 3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。 &&、||、! ||、&&、! &&、!、|| !、&&、|| 4、下面语句中,正确的是__D___。 printf("%c\n","student"); printf("%c\n","c"); printf("%s\n",&a); printf("%s\n","hello"); 5、对于for(表达式1;;表达式3)可以理解为__B___。 for(表达式1;0;表达式3) for(表达式1;1;表达式3) for(表达式1;表达式1;表达式3) for(表达式1;表达式3;表达式3) 6、执行下面程序段的结果是__B___。 main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); } a=1,b=1 a=2,b=1 a=1,b=0 a=2,b=2

7、执行下面程序段的结果是__D___。 int x=0; do { printf(“%2d”, x--); }while(x); 打印出321 打印出23 不打印任何结果 陷入死循环 8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。 If(x>y) if (y>z)x=y; else z=y; 7 6 5 4 9、如果一个函数被说明为static,那么__B___。 该函数只能被main函数调用 该函数能被当前文件的函数调用,但不能被其他文件的函数调用 该函数不能被当前文件的函数调用,可以被其他文件的函数调用 任何文件的函数都可以调用该函数 10、下面关于局部变量的描述中,错误的是__D___。 函数的局部变量的有效范围只能在本函数 函数的形式参数也是局部变量 局部变量的名称不能和函数同名称 不同的函数中不能定义相同名称的局部变量 11、下列初始化字符数组的语句中,错误的是__A___。 char str[5]="hello"; char str[]={'h','e','l','l','o','\0'}; char str[5]={"hi"}; char str[100]=""; 12、引用数组元素时,数组下标可以是__D___。 整型常量 整型变量 整型表达式 以上均可 13、已知:char str[10],*p=str; 下面的语句中正确的是__B___。 str="ABC"; p="ABC"; *str="ABC"; *p="ABC";

相关文档
相关文档 最新文档