级C语言程序设计练习题.docx
- 文档编号:11245704
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:36
- 大小:29.19KB
级C语言程序设计练习题.docx
《级C语言程序设计练习题.docx》由会员分享,可在线阅读,更多相关《级C语言程序设计练习题.docx(36页珍藏版)》请在冰豆网上搜索。
级C语言程序设计练习题
2012级非计算机专业C语言练习题
第一单元数据类型、表达式及顺序结构练习题
一、选择题:
1、不合法的C语言整型常量是D。
A.–012B.0x35C.123LD.8E2
2、不合法的C语言实型常量是A。
A.E3B..123C.–6.2E4D.5.0
3、不合法的C字符常量是C。
A.´2´B.´\101´C.´AB´D.´\n´
4、下列四组选项中,均是不合法的用户标识符的选项是B。
A.WP_0doB.b-agotoint
C.floatla0_AD.-123abcTEMP
5、定义三个变量a、b、c,并分别赋初值为5。
能实现该功能的语句是C。
A.inta=b=c=5;B.inta,b,c=5;C.inta=5,b=5,c=5;D.inta=5;b=5;c=5;
6、设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D。
A.floatB.charC.intD.double
7、以下选项中不能用作C程序合法常量的是(B)。
A.1.234B.'123'C.123D."\x7G"
8、以下选项中可用作C程序合法实数的是(A)
A..1e0B.3.0e0.2C.E9D.9.12E
9、下列标识符中,不合法的用户标识符为(D)。
A.PadB.CHARC.a_10D.a≠b
10、以下选项中能表示合法常量的是(C)。
A.整数:
2.00B.实数:
1.5E2.0C.字符斜杠:
‘\’D.字符串:
"\007"
11、若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是(A)。
A.1B.0C.2D.3
12、若有定义语句:
intx=10;,则表达式x-=x+x的值为(B)
A.-20B.-10C.0D.10
13、表达式:
(int)((double)9/2)-(9)%2的值是(B)。
A.0B.3C.4D.5
14.intx=5,y=14;则表达式x+7/y+0.6值为(B)。
A.7.1B.5.6C.6.6D.6.1
15、C语言中运算对象必需是整型的运算符是(B)。
A./B.%C.*D.+
16、表达式3.6-5/2+1.2+5%2的值是(D)。
A.4.3B.4.8C.3.3D.3.8
17、C语言中,数字029是一个(A)。
A.不合法数字B.十进制数C.八进制数D.十六进制数
18、设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)。
A.k++B.k+=1C.++kD.k+1
19、下列C语言运算符中优先级最低的是(B)。
A.++B.=C.-D.&&
20、若有定义语句:
inta=3,b=2,c=1;,以下选项中错误的赋值表达式是(A)
A.a=(b=4)=3;B.a=b=c+1;
C.a=(b=4)+c;D.a=1+(b=c=4);
二、填空题:
1、若有定义intm=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16。
2、若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为1。
3、若a是int型变量,则表达式a+3.5/3.5-(int)4.8的类型为double。
4、若a是int型变量,则计算表达式a=25/3%3后a的值为2。
5、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10,n的值为6。
6、若有定义:
charc=‘\010’;则变量c中包含的字符个数为1。
7、若有定义:
intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为1。
三、程序阅读题:
1、以下程序的输出结果是a,98。
#include
main()
{intx=97;chary=’b’;
printf(“%c,%d”,x,y);
}
2、以下程序的输出结果是x=-60。
#include
main()
{intx=6;
x+=x-=x*x;
printf(“x=%d\n”,x);
}
3、以下程序的输出结果是-1。
#include
main()
{inti=1,j;
j=-i++;
printf(“%d\n”,j) ;
}
4、有以下程序,运行后的输出结果是b,。
main()
{chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);}
5、以下程序的输出结果是1,1,7。
main()
{inti=0,j=0,a=6;
if((++i>0)||(++j>0))
a++;
printf("%d,%d,%d",i,j,a);}
第二单元选择结构练习题
一、选择题:
1、若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是(A)。
A.1B.0C.2D.3
2、有以下程序运行时,输入的值在哪个范围才会有输出结果(B)。
main(){
intx;
scanf("%d",&x);
if(x<=3);
elseif(x!
=10)
printf("%d\n",x);
}
A.不等于10的整数B.大于3且不等于10的整数
C.大于3或等于10的整数D.小于3的整数
3、在嵌套使用if语句时,C语言规定else总是(C)。
A.和之前与其具有相同缩进位置的if配对B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对D.和之前的第一个if配对
4、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是(C)。
A.num%2==1B.!
(num%2==0)C.!
(num%2)D.num%2
5、若有定义:
inta=3,b=2,c=1;并有表达式:
①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是(C)。
A)①和②B)②和③C)①和③D)③和④
6、以下程序片段。
(B)
intx=2,y=3;
printf(“%d,%d”,x+2,y);
A)输出为:
2,3B)输出为:
4,3
C)输出为:
23D)输出为:
43
7、能正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是。
c
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
8、若inti=10;执行下列程序后,变量i的正确结果是。
switch(i){
case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}C
A)10B)11C)12D)13
9、下面D是错误的if语句(设intx,a,b;)
A)if(a=b)x++;B)if(a=
C)if(a-b)x++;D)if(x)x++;
11.以下程序片段。
A
main()
{intx=1,y=2;
if(x>y)printf(“***”);
elseprintf(“###”);}
A)有语法错误,不能通过编译B)输出:
***
C)可以编译,但不能通过连接,所以不能运行D)输出:
###
12.对下述程序,是正确的判断。
A
main()
{intx,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y;
y=x;
else
x++;
y++;
printf(“%d,%d”,x,y);}
A)有语法错误,不能通过编译B)若输入3和4,则输出4和5
C)若输入4和3,则输出3和4D)若输入4和3,则输出4和5
13、有以下程序运行时,输入的值在哪个范围才会有输出结果()。
main(){
intx;scanf("%d",&x);
if(x<=3);
elseif(x!
=10)printf("%d\n",x);}
A.不等于10的整数B.大于3且不等于10的整数
C.大于3或等于10的整数D.小于3的整数
14.下述表达式中,()可以正确表示x≤0或x≥1的关系。
A)(x>=1)||(x<=0)B)x>=1|x<=0
C)x>=1&&x<=0D)(x>=1)&&(x<=0)
15.以下程序输出结果是。
main()
{intx=1,y=0,a=0,b=0;
switch(x){
case1:
switch(y){
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf(“a=%d,b=%d”,a,b);
}
A)a=1,b=0B)a=2,b=1C)a=1,b=1D)a=2,b=2
16.当a=1,b=3,c=5,d=4时,执行完下面一段代码后x的值是。
if(a
if(c else if(a elsex=3; elsex=6; elsex=7; A)1B)2C)3D)4 17.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。 它是() A)if(a)S1;elseS2;B)if(a==0)S2;elseS1; C)if(a! =0)S1;elseS2;D)if(a==0)S1;elseS2; 18.若inti=10;执行下列程序后,变量i的正确结果是。 switch(i){C case9: i+=1; case10: i+=1; case11: i+=1; default: i+=1; }C A)10B)11C)12D)13 二、填空题: 1.C语言提供6种关系运算符,按优先级高低它们分别是________,________,________,________,________,________等。 2.C语言提供三种逻辑运算符,按优先级高低它们分别是________,________,________。 3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式________ 。 4.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式: ________ 。 5.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A C>B的值是________。 6.有intx=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为________。 7.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以_________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 8.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是____. 9.若x为int类型,请以最简单的形式写出与! x等价的C语言表达式_____. 10.如果不考虑条件表达式语句,很多情况下,多分支选择结构既可以通过if语句来实现,也可以通过语句来实现。 三、读程题: 1.以下程序的输出结果是。 main() {inta=1,b=0; if(! a)b++; elseif(a==0)if(a)b+=2; elseb+=3; printf(”%d\n”,b); } 2.写出以下程序的运行结果。 main() {inta=2,b=7,c=5; switch(a>0){ case1: switch(b<0){ case1: printf(“@”);break; case2: printf(“! ”);break; } case0: switch(c==5){ case1: pritnf(“*”);break; case2: printf(“#”);break; default: printf(“#”);break; } default: printf(“&”); } printf(“\n”);} 3.以下程序的输出结果是。 main() {inta=100; if(a>100)printf("%d\n",a<=100); elseprintf("%d\n",a<=100); } 4、以下程序的输出结果是。 main() {inti; for(i=0;i<3;i++) {switch(i) {case1: printf("%d",i); case2: printf("%d",i); default: printf("%d",i);}}} 5、以下程序的输出结果是。 main() {inti=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf("%d,%d,%d",i,j,a);} 第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是()。 main() {inti,s=0; for(i=1;i<10;i+=2)s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和B.自然数1~10的累加和 C.自然数1~9中的奇数之和D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是()。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先判断表达式,后执行循环体语句 C.for循环中,可以用break跳出循环体 D.for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++)printf("*****\n"); 下面关于语句执行情况的叙述中正确的是()。 A.循环体执行两次B.循环体执行一次 C.循环体一次也不执行D.构成无限循环 4、设有以下程序段 intx=0,s=0; while(! x! =0)s+=++x; printf("%d",s);则 A)运行程序段后输出0B)运行程序段后输出1 C)程序段中的控制表达式是非法的D)程序段执行无限次 5、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为()。 for(i=0, j=10; i<=j;i++, j- -) k=i+j; A.6B.9C.10D.11 6、C语言中,break;语句可以用于循环语句和()语句中。 A.ifB.switchC.forD.while 7、for(i=0;i<=15;i++)printf("%d",i);循环结束后,i的值为()。 A.14B.15C.16D.17 8、与语句“while(! x)”等价的语句是()。 A.while(x==0)B.while(x! =0)C.while(x==1)D.while(x! =1) 9、以下程序中,while循环的次数是()。 #include voidmain() {inti=0; while(i<10){if(i<1)continue;if(i==5)break;i++;}} A.1B.死循环,不能确定次数C.6D.10 10.下面程序段 intk=2; while(k=0){printf(“%d”,k);k--;} 则下面描述中正确的是。 A)while循环执行10次B)循环是无限循环 C)循环题语句一次也不执行D)循环体语句执行一次 A)无限次B)0次C)1次D)2次 11.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。 main() {inta,max=0; scanf(“%d”,&a);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习题