c语言备考习题及部分答案_c语言复习习题及答案
c语言备考习题及部分答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言复习习题及答案”。
一、判断题
1.格式字符%md中的m不能为负。(×)2.实际上,可以用顺序、分支、循环三种结构构造任何算法。()3.printf(“%d”,sizeof(1234));其结果是4。(×)4.在C语言中,任何一个表达式的最后加上一个分号就构成一个合法的语句。()
二、单选题
1.下述程序的输出结果是(B)
#include
void main()
{int a,b,c=241;
a=c/100%9;
b=-1&&-1;
printf(“%d,%d”,a,b);
} 2.若有定义:int x,y;char a,b,c;并有以下输入数据:x=1 2 A B C,则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是(D)A)scanf(“x%d y=%d”,&x,&y);
a=getch();b=getch();c=getch();B)scanf(“x=%d%d”,&x,&y);
a=getch();b=getch();c=getch();C)scanf(“x=%d%d%c%c%c”,7x,&y,&a,&b,&c);D)scanf(“x=%d%d%c%c%c%c%c”,&x,&y,&a,&b,&b,&c,&c);3.已有定义double d,f;数据的输入方式为:3.45 1.2 根据定义和数据的输入方式,输入函数调用语句的正确形式为(A)A)scanf(“%lf%lf”,&d,&f)B)scanf(“%f%f”,&d,&f)
5.下面程序执行结果是32768。(×)
main()
{int a,b;
printf(“%dn”,b=(a=32767,a+1));}
C)scanf(“3.2f%3.1f”,&d,&f)D)scanf(“%3.2lf%3.1lf”,&d,&f)4.如下程序: #include
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%dn”,m);
}
运行后m的值为(C)。
(A)(B)(C)7
(D)14
5.下面程序的输出是(C)。
#include
void main()
{ int x=10,y=3;
printf(“%dn”,y=x/y);
}
(A)0
(B)
1(C)3(D)不确定的值
6.下面程序运行情况是(D)。
#include
void main()
{ int x=3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
(A)有语法错0不能通过编译
(B)输出****
(C)可以通过编译,但不能通过连接,因而不能运行
(D)输出#### 7.结构化程序的三种基本结构是(A)。(A)顺序结构、选择结构、循环结构
(B)递归结构、循环结构、转移结构
(C)嵌套结构、递归结构、顺序结构
(D)循环结构、转移结构、顺序结构
8.以下程序的输出结果是(B)。#include main(){ int i=010,j=10;
printf(“%d,%d”,++i,j--);}(A)11,10
(B)9,10
(C)010,9
(D)10,9 9.运行完下列程序后,在屏幕上的内容是(D)。main(){ int a=0;
a+=(a=12);
printf(“%dn”,a);} 10.语句printf(“s=%-5.3s”,“computer”);的输出结果是(B)。
A)s= com B)s=com
C)s= ter D)s=ter
11.下面程序的输出是(C)
main()
{int
x=10,y=3;
printf(“%dn”,y=x/y);
}
A)0
B)C)
3D)不确定的值 12.执行下面程序中输出语句后,a的值是(C)。
main()
{ int
a;
printf(“%dn”,(a=3*5,a*4,a5));
}
A)65 B)20
C)1
5D)10 13.下列程序的输出结果是(A)。
main()
{int a=-1,b=1,c;
c=(a++
printf(“%d,%d,%d”,a,b,c);}
A)0,0,1
B)-1,1,1
C)0,1,0
D)0,0,0
14.以下程序运行后,m的值为(C)。
#include
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%dn”,m);}
A)B)3
C)7
D)14
15.下面程序的输出结果是(D)。
main()
{int x=10;
printf(“%dn”,~x);}
A)9
B)-9
C)11
D)-11 16.以下程序的输出结果是(D)。
main()
{int x=10,y=10;
printf(“%d,%dn”,x--,--y);}
A)10,10
B)9,9
C)9,10
D)10,9 A.B.C.D.17.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式(B)。
A)从左起输出该字符串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错0信息
18.putchar函数可以向终端输出一个 D A)整型变量表达式值
B)实型变量值 C)字符串
D)字符或字符型变量值
19.根据定义和数据的插入方式,输入语句的正确形式为(B)。
已有定义:float f1,f2;数据的输入方式:4.52
3.5 A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f %2.1f”,&f1,&f2);D)scanf(“%3.2f%2.1f”,&f1,&f2);20.已知ch是字符型变量,下面不正确的赋值语句是(A)。
A)ch=''a+b''
B)ch=''O'';
C)ch=''7''+''9'';D)ch=5+9;
21.假设int a=4;以下不正确的语句是(A)。
A)a+1=4;
B){a+++ +4;a/=4}
C);
D)printf(“a+1=4”);22.如下程序的执行结果是(B)。
main()
{ int x=023;
printf(“%dn”,--x);}
A)17
B)18
C)23
D)24 23.以下程序的输出结果是(D)。
main()
{char x=040;
printf(“%dn”,x=x
A)100
B)80
C)120
D)64
24.假如一个整型变量的最大允许值为32767,那
么运行如下程序后屏幕上会输出的结果是(B)
main()
{ int a,b;
a=32767;
b=a+1;
printf(“%d,%d”,a,b);
}
A)32767,32768 B)32767,-32768 C)
32767,0 D)运行时报错
25.已知字母A的ASCII码为十进制的65,下面程序的输出是C main()
{ char ch1,ch2;ch1=''A''+''5''-''3'';
ch2=''A''+''6''-''3'';
printf(“%d,%cn”,ch1,ch2);
}
A)67,D
B)B,C
C)C,D
D)不确定的值
26.请读程序片段:int i=65536;printf(“%dn”,i);上面程序片段的输出结果是(B)。A)65536
B)0
C)有语法错0,无输出结果
D)-1 27.在下列程序段中:
int x, y;
scanf(“%3d*2d%d”,&x,&y);
若输入的数据为:12345678,则x、y的值分别为(B)。
A)123,456
B)123,678
C)12345 678
D)无法得到正确的值
28.有如下程序,输入数据12 345后,y的值是(B)。
#include main(){ int x;float y;
scanf(“%3d%f”,&x,&y);}
(A)12.000000
(B)345.000000
(C)12345.000000
(D)0.000000 29.有如下程序,若要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是(D)
main()
{int a1,a2;
char c1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
}(A)1020AB
(B)10 20AB(C)10 20 AB
(D)10 20AB 30.下列语句的输出为(A)。
int x=-1;
printf(“%d,%u,%o”,x,x,x);
A)-1,65535,177777
B)-1,-1,-1 C)-1,32767,-177777
D)-1,32768,177777
31.若有定义int a=3;则执行完printf(“%d”,-a--);语句后,a 的值为(B)。
A)-
3B)
2C)-2
D)3 32.以下程序的输出结果是(C)。int x=3,y=4;void main(){ int x,y=5;
x=y++;
printf(“%d”,x);}
A)3
B)
4C)
5D)6
33.设有如下定义:int x=10,y=3,z;则语句:
z=(x%y,x/y));
printf(“%dn”,Z);的输出结果是(D)
A)B)0
C)4
D)3
34.以下程序的输出结果是(D).main()
{ int a=3;
printf(“%dn”,(a+a-=a*a));}
A)-6
B)12
C)0
D)–12
35.设有定义:int x=1,y=-1;则语句:
printf(“%dn”,(x--&++y);的输出结果是(B).A)1
B)0
C)-1
D)2
36.设有如下定义: int x=10,y=3,z;则语句: printf(“%dn”,z=x%y,x/y));的输出结果是
(D)。
A)1
B)0
C)4
printf(“n=%dn”,n);}
A)30
B)24
C)60
D)48 D)3
42.下面程序的运行结果是(B)
37.下列程序的输出结果是(A)
main()
main()
{ double
{int x=0,y=0;
while(!x)y+=++x;
printf(“%dn”,y);
}
d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf(“%d n”, d*y);
}
A)3
B)3.2
C)0
D)3.07
38.已知E的ASCII码是69,则执行以下语句的结果是(A)。
printf(“%c”,''D''-''8''+''5'');
A)66
B)A
C)B
D)E 39.执行下面程序后,n的值为(C)。
main()
{int n,a=2,b=3,c=4;
n=(a
n=(n>b)?b:c;
n=(n
A)5
B)4
C)3
D)2 40.以下程序执行完后,a 的值为(C)
#inlcude
void main()
{int a;
printf(“%dn”,(a=3*5,a*4,a+5));}
A)65
B)20
C)15
D)10 41.下面程序的运行结果是(B)
main()
{int n;
(n=6*4,n+6),n*2;
A)1
B)0
C)控制表达式非法
D)程序执行无限次
43.下面程序的运行结果是(B)
main()
{int n,a=2,b=3,c=4;
n=(a
n=(n>b)?b:c;
}
A)5
B)4
C)3
44.以下程序的运行结果为
(C)
。D)2
main()
{unsigned a=3,b=10;
printf(“%dn”,a>1);}
A)3
B)10
C)13
D)14 45.以下程序的运行结果为(A)。
main()
{int x=17,y=26;
printf(“%d”,y/=(x%=6));}
A)5
B)8
C)2
D)26 46.以下程序的输出是(B).
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%dn”,a,b);}
A)6,1
B)2,1
C)6,0
D)2,0 47.下列程序段的输出结果是(A)。
int x=1 , y=1 , z;z=1||++x&&y--;
printf(“n%d,%d,%d”,x,y,z);
A)1,1,1
B)2,0,1
C)2,1,1
D)2,0,0
48.下列程序的运行结果是(B).
#include
main()
{unsigned a,b,c;
a=0x255;b=a
x=(~b)&0xff;
printf(“%f”,x);}
a++
?
A)0x55
B)0xaf
C)0x50
pritnf(“%d,%d,%dn”,a,b,c):printf(“%d,%d,%dn”,a,b,D)0xda 49.若有定义int a=25,b=14,c=19;则以下三目运算符构成的语句的执行结果是(B)
三、多选题
1.结构化程序设计思想应该包括(ABCD)。
(A)使用顺序、分支、循环三种基本结构;(B)限制使用goto语句;
(C)应该使用自顶向下、逐步求精的方法;(D)应该使用模块化的方法;
(E)编码过程中,变量名的命名只要程序员自己明白就可以了;
c);
A)25,14,19
B)26,13,19
C)25,13,19
D)26,14,19 2.2.对于scanf()函数,下列说法正确的是(ABD)。
A)如果相邻格式符之间没有数据分隔,则对应的输入数据之间可用空格、回车分隔。B)输入数据时不能指定精度。
C)在用格式说明符“%c”输入单个字符时,空格字符和转义字符是无效字符,即不能被输入。D)遇到空格、或者回车时,系统认为一个数据输入结束。
3.3.已知ch是字符型变量,下面正确的赋值语句是(BC)。
A)ch=''123'';
B)ch=''xff'';
C)ch=''t'';
D)ch=“”;
4.4.若有定义int a,b;float x;,则以下不正确的赋值语句是(ACD)。
A)a=1,b=2,B)b++;
C)a=b=
5D)b=int(x);
四、填空题
1.在C语言中没有固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由(标准I/O库/系统)提供。
2.语句printf(“%d”,(a=2)&&(b=-2));的输出结果是____1________。3.执行以下程序段后,a 的值是______1____.int a;a=-2*4%-5/2;
五、阅读程序
1.下列程序的运行结果是(3 2 1).
main()
{int x=1;
{int x=2;
{int x=3;
printf(“%d”,x);
}
printf(“%d”,x);
}
printf(“%d”,x);
}