一、选择题
1.在每个C程序中都必须包含有这样一个函数,该函数的函数名为。
A.main
B.MAIN
C.name
D.function
2.在以下关于C语言的注释的叙述中,不正确的是。
A.注释可用"/*"、"*/"形式表示,也可用"//"形式表示
B.编译器在编译一个程序时,将跳过注释,不对其进行处理
C.编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
3.以下叙述不正确的是。
A.在C程序中,严格区分大小写字母
B.一个C源程序有且仅有一个main函数
C.在C程序中,注释只能位于一条语句的后面
D.一个C程序总是从main函数开始执行
4.下列合法的标识符为
A.abde+
B.#KDJF
C.67KDJ
D.DK3_
C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线
5.关于字符串和字符的关系正确的是
A.“A”与’A’是相同的
B.字符串是常量,字符是变量
C.“A”与’A’是不同的
D.“A”与“A”是相同的
6.下面关于语句的说法正确的是
if(x>y)
{z=x;s=z*z;} else
{z=y;s=1/(z*z);}if(x>y)
z=x;s=z*z; else
z=y;s=1/(z*z);
A.下面这两段程序的执行效果是一致的
B.空语句是只有一个分号的语句,它其实什么也不干
C.语句的构成不一定需要分号
D.语句的书写对程序的运行不起作用,因此可以随便写都可以
7.以下各标识符中,合法的用户标识符组为。
A.PAd,P#d,b-b,abc,_0123,ssiped
B.cin,a10,CPP,float,del_word,signed
C.void,max,hiy,<fr>,list,*jer
D.a,temp,_isw,INT,keep,wind
8.字符串“\”EOF=-\61\””的长度是。
A.8B.9C.12D.非法字符串9.数学式x
sin在C程序中对应的不正确的表达式为。
A.sqrt(sin(x)>0?sin(x):-sin(x))B.sqrt(fabs(sinx))
C.sqrt(sqrt(sinx*sinx))D.fabs(sqrt(sin(x)))
10.下列是C语言的有效标识符?
A._No1B.No.1C.12345D.int
11.C语言中,表示一条语句结束的标号是
A.#B.;C.//D.}
12.每个C程序中都必须有且仅有一个
A.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是。
A.字符型B.整型C.实型D.数组
14.下列字符列中,可作为C语言程序自定义标识符是。
A.switch B.file C.break D.do
printf函数中大小写d通用吗15.运算符+、<=、=、%中,优先级最低的运算符是。
A.+B.<=C.=D.%
16.下列字符列中,可以作为“字符串常量”的是。
A.ABC B.″xyz″C.′uvw′D.′a′
17.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是。
A.0,0B.0,1C.1,0D.1,1 18.字符串"vm\x43\\\np\102q"的长度是。
A.8B.10C.17D.16 19.在C语言中,自定义的标识符。
A.能使用关键字并且不区分大小写
B.不能使用关键字并且不区分大小写
C.能使用关键字并且区分大小写
D.不能使用关键字并且区分大小写
20.设x和y均为逻辑型变量,则x&&y为真的条件是。
A.它们均为真
B.其中一个为真
C.它们均为假
D.其中一个为假
21.
A.和(m==0)等价
B.和(m==1)等价
C.和(m!=0)等价
D.和(m!=1)等价
22.在if语句中,用作判断的表达式为。
A.关系表达式
B.逻辑表达式
C.算术表达式
D.任意表达式
23.设i和k都是int类型,则以下for循环语句。
for(i=0,k=-1;k=1;i++,k++)cout<<"****\n";
A.判断循环结束的条件不合法
B.是无限循环
C.循环体一次也不执行
D.循环体只执行一次
24.若有以下语句,则输出结果为。
int a=2,b=1;
cout<<a>b?"a大于b":"a小于b"<<endl;
A.a大于b
B.a小于b
C.1
D.输出语句有错
25.int k=10;
while(k=0)k=k-1;
则下面描述正确的是。
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
26.int a=1,b=2,c=2,t;
while(a<b){t=a;a=b;b=t;c--;}
cout<<a<<”,”<<b<<”,”<<c;
运行结果为。
A.1,2,0
B.2,1,0
C.1,2,1
D.2,1,1
27.int x=-1;
do
{x=x*x;}
while(!x);
下列说法正确的是。
A.是死循环
B.循环执行两次
C.循环执行一次
D.有语法错误
28.以下能正确计算1*2*3*…*10的程序段是。
A.do{i=1;s=1;
B.do{i=1;s=0;
s=s*i;i++;}s=s*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);
29.以下描述正确的是。
A.由于do-while循环中循环体语句只是一条可执行语句,所以循
环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面
不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变
为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
30.while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
31.下面有关for循环的正确描述是。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号
括起来
32.对for(表达式1;;表达式3)可理解为。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
<(表达式1;表达式3;表达式3)
33.在C编程语言中,以下正确的描述是。
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
34.下面程序段。
for(t=1;t<=100;t++)
{cin>>x;
if(x<0)continue;
cout<<t;}
A.当x<0时整个循环结束
B.x>=0时什么也不输出
D.最多允许输出100个非负整数
35.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是。
A.swap(int x,int y){int t;t=x;x=y;y=t;}
B.swap(int*x,int*y){int t;t=x;x=y;y=t;}
C.swap(int*x,int*y){int t;t=*x;*x=*y;*y=t;}
D.swap(int*x,int*y){int*t;t=x;x=y;y=t;}
36.若有代数式3ae/bc,则不正确的C语言表达式是。
A.a/b/c*e*3
B.3*a*e/b/c
C.3*a*e/b*c
D.a*e/c/b*3