资源描述
(完整word版)浙江大学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. 以下能正确进行字符串赋值或赋初值的语句组是______。
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";
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”
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)) 的值是_____ 。
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 和 <fr> 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. 下列运算符中,_____是关系运算符。
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<c”,应使用的C语言表达式是_____。
A.(a=b)||(a<c) B.(a==b)||(a<c) C.(a=b)&&(a<c) D.(a==b)&&(a<c)
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. 若变量已正
展开阅读全文