c语言模拟练习2.docx
《c语言模拟练习2.docx》由会员分享,可在线阅读,更多相关《c语言模拟练习2.docx(14页珍藏版)》请在冰豆网上搜索。
![c语言模拟练习2.docx](https://file1.bdocx.com/fileroot1/2023-1/29/2ab67f2a-dddf-4638-aba6-efdc791822a2/2ab67f2a-dddf-4638-aba6-efdc791822a21.gif)
c语言模拟练习2
一、选择题
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.#KDJFC.67KDJD.DK3_
5.关于字符串和字符的关系正确的是
A.“A”与’A’是相同的
B.字符串是常量,字符是变量
C.“A”与’A’是不同的
D.“A”与“A”是相同的
6.
下面关于语句的说法正确的是
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,,list,*jer
D.a,temp,_isw,INT,keep,wind
8.字符串“\”EOF=-\61\””的长度是。
A.8 B.9 C.12D.非法字符串
9.C语言中,表示一条语句结束的标号是
A.#B.;C.//D.}
10.每个C程序中都必须有且仅有一个
A.类B.预处理命令C.主函数D.语句
11.下列数据类型不是C语言基本数据类型的是。
A.字符型B.整型C.实型D.数组
12.下列字符列中,可作为C语言程序自定义标识符是。
A.switchB.fileC.breakD.do
13.运算符+、<=、=、%中,优先级最低的运算符是。
A.+B.<=C.=D.%
14.下列字符列中,可以作为“字符串常量”的是。
A.ABCB.″xyz″C.′uvw′D.′a′
15.字符串"vm\x43\\\np\102q"的长度是。
A.8B.10C.17D.16
16. 在C语言中,自定义的标识符。
A.能使用关键字并且不区分大小写
B.不能使用关键字并且不区分大小写
C.能使用关键字并且区分大小写
D.不能使用关键字并且区分大小写
17.设x和y均为逻辑型变量,则x&&y为真的条件是 。
A.它们均为真 B.其中一个为真
C.它们均为假 D.其中一个为假
18.在if语句中,用作判断的表达式为。
A.关系表达式B.逻辑表达式
C.算术表达式D.任意表达式
19.设i和k都是int类型,则以下for循环语句。
for(i=0,k=-1;k=1;i++,k++)printf("****\n");
A.判断循环结束的条件不合法B.是无限循环
C.循环体一次也不执行D.循环体只执行一次
20.若有以下语句,则输出结果为。
inta=2,b=1;
strings1;
s1=a>b?
"a大于b":
"a小于b";
printf("%s\n",s1);
A.a大于bB.a小于bC.1D.输出语句有错
21.intk=10;
while(k=0)k=k-1;
则下面描述正确的是。
A.while循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
22.inta=1,b=2,c=2,t;
while(a
printf("%d,%d,%d\n",a,b,c);
运行结果为。
A.1,2,0B.2,1,0C.1,2,1D.2,1,1
23.intx=-1;
do
{x=x*x;}
while(!
x);
下列说法正确的是。
A.是死循环B.循环执行两次
C.循环执行一次D.有语法错误
24. 以下能正确计算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);
25.以下描述正确的是。
A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
26.while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
27.下面有关for循环的正确描述是。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
28.对for(表达式1;;表达式3)可理解为。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.or(表达式1;表达式3;表达式3)
29.在C编程语言中,以下正确的描述是。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
30.下面程序段。
for(t=1;t<=100;t++)
{scanf("%d",&x);
if(x<0)continue;
printf("%d\n",t);}
A.当x<0时整个循环结束B.x>=0时什么也不输出
C.cout永远也不执行D.最多允许输出100个非负整数
31.若有代数式3ae/bc,则不正确的C语言表达式是。
A.a/b/c*e*3B.3*a*e/b/c
C.3*a*e/b*cD.a*e/c/b*3
32.以下表达式值为3的是。
A.16-13%10B.2+3/2
C.14/3-2D.(2+6)/(12-9)
33.设有说明语句,intk=7,x=12;则以下能使值为3的表达式是。
A.x%=(k%=5)B.x%=(k-k%5)
C.x%=k-k%5D.(x%=k)-(k%=5)
二、填空题
1.程序的三种基本的控制结构是:
、、。
2.C语言中的每条基本语句以 作为结束符,每条复合语句以 作为结束符。
3.关系表达式x+y>5的相反表达式为 。
4.下面的程序段中循环体的执行次数是。
a=10;b=0;
do{b+=2;a-=2+b;}while(a>=0);
5.下面程序段的运行结果为。
x=2;
do{printf("*");x--;}while(!
x==0);
6.已知inta[3][2]={3,2,1};则表达式“a[0][0]/a[0][1]”的值是。
7.如果一个函数无返回值,定义它时函数类型应是。
8.预处理命令以开头。
9.在函数中使用语句返回值。
10.函数的形参在未被调用前分配空间,函数形参的要和实参相同。
11.inta[3]=3;则a[2]=。
12.数组由和构成,其数组元素的数据类型是。
13.声明长度为10的float型数组a,且初始化为0的语句是:
。
14.C语言的源程序必须通过和后,才能被计算机执行。
15.C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是。
16.在C语言中,表示逻辑“真”值用。
17.设y为int型变量,请写出描述“y是奇数”的表达式。
18.C语言提供的3种逻辑运算符是、和。
19.若x、y、z均为int型变量,则描述“x或y中有一个小于z”的表达式是。
20.设a、b、c均为int型变量且a=7.5,b=2,c=3.6,则表达式a>b&&c>a||a
c>b的值是。
21.设a、b、c均为int型变量且a=6,b=4,c=2,则表达式!
(a-b)+c-1&&b+c/2的值是。
22.设a、b均为int型变量且a=2,b=4,则表达式!
(x=a)||(y=b)&&0的值是。
23.设a、b、c均为int型变量且a=1,b=4,c=3,则表达式!
(a
c&&1的值是。
24.若有条件“2三、填空完成下面的程序
1.以下程序的功能是:
输出x,y,z三个数中的最大者。
请填空。
#include
intmain()
{intx=4,y=6,z=7;
intu,v;
if()u=x;
elseu=y;
if()v=u;
elsev=z;
printf(“v=%d”,v);
}
3.以下程序的功能是:
输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。
请填空。
#include
intmain()
{charch;
scanf(“%c”,&ch);
if()ch=ch+32;
elseif()ch=ch-32;
printf(“%c”,ch);
return0;
}
5.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段。
请填空。
含有switch语句的程序段:
intx,y,m;
y=(int)(x/10);
switch(y)
{case10:
m=5;break;
case9:
m=4;break;
case8:
m=3;break;
case7:
m=2;break;
case6:
m=1;break;
default:
m=0;
}
含有非嵌套if语句的程序段:
intx,m;
if()m=5;
if()m=4;
if()m=3;
if()m=2;
if()m=1;
if()
7.下面程序的功能是从键盘输入若干学号,然后输出学号中百位数字是3的学号(输入0时结束循环),请填空。
#include
intmain()
{longintnum;
scanf(“%d”,&num);
do
{if()pringf(“%d”,num);
scanf(“%d”,&num);
}while();
return0;
}
8.下面程序的功能是计算正整数2345的各位数字的平方和,请填空。
#include
intmain()
{intn=2345,sum=0;
do
{sum=sum+;
n=;
}while(n);
printf(“sum=%d”,sum);
return0;
}
10.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计买完所需的天数,请填空。
#include
intmain()
{intday=0,x1=1020,x2;
while()
{x2=;
x1=x2;
day++;
}
printf(“day=%d\n”,day);
return0;
}
11.下面的程序的功能是用do-while语句求1—1000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印5个数,请填空。
#include
intmain()
{inti=1,j=0;
do
{if
{printf(“%4d”,i);
j++;
ifprintf(“\n”);
}
i=i+1;
}while(i<1000);
return0;
}
四、给出下列程序运行后的输出结果
1.当a=1,b=3,c=5,d=4时,执行以下程序段后x的值是。
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
2.以下程序的输出是。
#include
intmain()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(xif(y!
=10)
if(!
ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf(“%d\n”,a);
return0;
}
3.以下程序的输出是。
#include
intmain()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);
return0;
}
4.以下程序的输出是。
#include
intmain()
{intx=1;
if(x=2)
printf(“OK”);
elseif(x<2)pirntf(“%d\n”,x);
elseprintf(“Quit”);
return0;
}
5.若运行时为变量x输入12,则以下程序的运行结果是。
#include
intmain()
{intx,y;
scanf(“%d”,&x);
y=x>12?
X+10:
x-12;
printf(“%d\n”,y);
return0;
}
6.若运行时输入:
2<回车>,则以下程序的运行结果是。
#include
intmain()
{charclass;
printf(“Enter1for1stclasspostor2for2ndpost”);
scanf(“%c”,&class);
if(calss==’1’)
printf(“1stclasspostageis19p”);
else
printf(“2ndclasspostageis14p”);
return0;
}
9.以下程序的运行结果是。
#include
intmain()
{inta,b,c,d,x;
a=0;
c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)x=15;
elsex=25;
printf(“%d\n”,d);
return0;
}
10.以下程序的输出结果是。
#include
intmain()
{intx,y;
x=5;
switch(x)
{case1:
case2:
case3:
case4:
printf(“x<5\n”);
case5:
printf(“x=5\n”);
default:
printf(“Thevalueofxisunknwn.\n”);
return0;
}
11.下面程序的运行结果是。
#include
intmain()
{intnum=0;
while(num<=2)
{num++;
printf(“%d”,num);
}
return0;
}
12.若运行以下程序时,从键盘输入3.62.4<回车>,则下面程序的运行结果是。
#include
#include
intmain()
{floatx,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while
(1)
if(fabs(z)>1.0{x=y;y=z;z=x/y;}
elsebreak;
printf(“%f\n”,y);
return0;
}
13.下面程序的运行结果是。
#include
intmain()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;
}
printf(“%d\n”,a);
return0;
}