C语言综合练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、下列叙述中错误的是(A)。
A.一个C语言程序只能实现一种算法
B.C程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个C函数可以单独作为一个C程序文件存在
2、以下叙述中正确的是(C)。
A.C程序的基本组成单位是语句
B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束
D.C语句必须在一行内写完
3、以下叙述中正确的是(C)。
A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
4、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)。
A.大写字母 B.连接符
C.数字字符 D.下划线
5、下列定义变量的语句中错误的是(D)。
A.int _int; B.double int_;
C.char For; D.float USS
6、以下选项中不能作为C语言合法常量的是(A)。
A.´cd´ B。 0.1c+6
C.〞\a〞 D.´\011´
7、以下选项中不属于字符常量的是 (B)。A.'C' B."C" C.'\xCC0' D.'\072' 8、下列常量哪个是不合法的(B)。
A.0x4d00 B.‘BASIC’
C.‟\\‟D.“/045”
9、以下4组用户定义标识符中,全部合法的一组是(A)。
A._main B.If C.txt D.int enclude -max REAL k_2 sin turbo 3COM _001 10、以下选项中不属于字符常量的是(B)。A.'C' B."C" C.'\xCC' D.'\072' 11、下列变量名中哪个是不合法(C)。A.Turbo_C B.vc C.int D._2ab 12、设变量已正确定义并赋值,以下正确的表达式是(B)。
A.b=3++ B.x=2,++y
C.a=14%3.3 D.x=y+3=2
13、以下定义语句中正确的是 (D)。
A.int a=b=0 ; B.char A=65+1,b='b'; C.float a=1,*b=&a,*c=&b ;
D.double a=0.0,b=1.1;
14、以下选项中正确的定义语句是(C)。A.double a;b; B. double a=b=7 C.double a=7,b=7; D.double,a,b;
15、以下不能正确表示代数式2ab/cd 的C
语言表达式是(D)。
A.2*a*b/c/d B.a*b/c/d*2
C.a/c/d*b*2 D.2*a*b/c*d
16、若变量x、y已正确定义并赋值,以下
符合C语言语法的表达式是(A)。
A.++x,y=x-- B.x+1=y
C.x=x+10=x+y D.double(x)/10
17、以下关于逻辑运算符两侧运算对象的叙
述中正确的是(D)。
A.只能是整数0或1
B.只能是整数0或非0的整数
C.可以是结构体类型的数据
D.可是任意合法的表达式
18、若有定义int x,y;并已正确给变量赋
值,则以下选项中与表达式(x-y)?(x++):
(y++)中的条件表达式(x-y)等价的是(C)。
A.(x-y>0) B.(x-y<0)
C.(x-y<║x-y>0) D.(x-y==0)
19、设有定义:int k=0;,以下选项的四个
表达式中与其他三个表达式的值不相同的
是(A)。
A.k++ B.k+=1 C.++k D.k+1
20、若以下选项中的变量已正确定义,则正
确的赋值语句是(C)。
A.x1=26.8%3 B.1+2=x2
C.x3=0x12 D.x4=1+2=3;
21、执行以下程序段后,w的值为(C)。
int w=´A´,x=14,y=15;
w=((x||y)&&(w<´a´));
A. -1 B.NULL C.1 D. 0
22、当变量c的值不为2、4、6时,值也为“真”的表达式是 (B)。
A.(c==2)‖(c==4)‖(c==6)
B.(c>=2&&c<=6)‖(c!=3)‖(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
23、设有以下定义
int a=0;
double b=1.25;
char c=‟A‟;
#define d 2
则下面语句中错误的是(D)。
A.a++; B.b++ C.c++; D.d++;
24、若有以下函数首部
int fun(double x[10],int *n)则下面针对此函数声母语句中正确的是 (B)。
A.int fun(double x,int *n);
B.int fun(double ,int);
C.int fun(double*x,int n);
D.int fun(double *,int*);
25、若程序中定义了以下函数
double myadd(double a,double b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)。
A.double myadd(double a,b);
B.double myadd(double,double);
C.double myadd(double b,double a);
D.double myadd(double x,double y); 26、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)。A.abs(x-y)<10 B.x-y>-10&& x-y<10 C.(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<100 27、已知int x=10,y=20,z=30; if(x>y)
z=x;x=y;y=z;执行后x,y,z的值是(B)。A.x=10,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10 D.x=20,y=30,z=20 28、对for(表达式1; ; 表达式3)可理解为(B)。
A.for(表达式1; 0; 表达式3)
B.for(表达式1; 1; 表达式3)
C.for(表达式1; 表达式1; 表达式3)
D.for(表达式1; 表达式3; 表达式3) 29、以下叙述中正确的是(C)。
A.break语句只能用于switch语句体中 B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C.break 语句只能用在循环体内和switch 语句体内
D.在循环体内使用break语句和continue
语句的作用相同
30、下列叙述中正确的是(D)。
A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break 语句
31、在嵌套使用if语句时,C语言规定else 总是(C)。
A.和之前与其具有相同缩进位置的if配对B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
32、若i为整型变量,则以下循环执行次数是(B)。
for(i=2;i==0;) printf("%d",i--);
A.无限次B.0次C.1次D.2次33、以下能正确计算1×2×3×...×10的程序段是(C)。
A.do{ i=1; s=1; B.do{ i=1;s=0;
s=s*i; s=s*i;
i++; i++;
}while(i<=10); }while(i<=10);
C.i=1; s=1; D.i=1; s=0;
do{ s=s*i; do{ s=s*i;
i++; i++;
}while(i<=10); }while(i<=10);
34、若有宏定义:#define f(x) x/x,则表达式f(3+6)的值为(C)。
A.1 B.25 C.11 D.4
35、下面的函数调用语句中func函数的实参个数是(A)。
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7, v8)));
A. 3 B. 4 C.5 D. 8 36、以下叙述中错误的是(B)。
A.用户自定义的函数中可以没有return语句
B.用户自定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值C.用户自定义的函数中若没有return语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式37、以下关于宏的叙述中正确的是(C)。