C语言复习题.docx
《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(37页珍藏版)》请在冰豆网上搜索。
C语言复习题
第1章基础知识
1.下列变量名中合法的是
A.B.C.Tom
B.3a6b
C._6a7b
D.$ABC
2.C语言的基本单位是(函数)
3.以下说法中正确的是
A.C语言程序总是从第一个定义的函数开始执行;
B.C语言程序中至少有一个main函数;
C.C语言程序总是从main函数开始执行;
D.C语言程序中的main函数必须放在程序的开始部分;
4.C源程序文件的扩展名为(..c)
5.以下说法中正确的是
A.C源程序可以直接运行产生结果;
B.C源程序经编译后才可直接运行产生结果;
C.C源程序经连接后才可直接运行产生结果;
D.C源程序经编译和连接后才可直接运行产生结果;
6.在C程序中,main()函数的位置是(可以任意;)
7.以下叙述不正确的是
A.一个C源程序可由一个或多个函数构成;
B.一个C源程序必须包含一个main函数;
C.C程序的基本组成单位是函数;
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误;
8.可在C语言中用作用户标识符的一组标识符是
A.voiddefineword
B.as_b3_123ff
C.for_abccase
D.2cdosig
9以下是正确的C语言标识符是____。
A.#define
B._123
C.%d
D.\n
10C语言中,下列正确的叙述是
A.C程序中的关键字必须小写,其他标识符不区分大小写
B.C程序中的所有字母都不区分大小写
C.C程序中的所有字母都必须小写
D.所有的C语言关键字必须小写
11.算法具有五个特性,以下选项中不属于算法特性的是
A.简洁性
B.有穷性
C.确定性
D.可行性
12.以下不正确的C语言标识符是
A.int
B.a_1_2
C.ab1exe
D._x
13.下列四组字符串中都可以用作C语言程序标识符的一组是
A.print
_3d
oodb
aBc
B.i\am
one_half
start$it
3pai
C.Pxq
My->book
line#
His.age
D.str_l
Cpp
pow
while
14.下面各选项组中,均是C语言关键字的组是。
A.auto,enum,include
B.switch,typedef,continue
C.signed,union,scanf
D.if,struct,type
15.下列不属于C语言关键字的是。
A.default
B.register
C.enum
D.external
16.C语言程序从main()函数开始执行,所以这个函数要写在_.程序文件的任何位置___。
17。
下面符号中,____不是C语言允许的一般标识符。
A.sum
B.lotus_1
C.#33
D.a5
18.下列选项中,合法的C语言关键字是
A.VAR
B.cher
C.integer
D.default
19.以下叙述中正确的是
A.C程序由主函数组成;
B.C程序由函数组成;
C.C程序由函数和过程组成;
D.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示出来;
20.要把高级语言编写的源程序转换为目标程序,需要使用
A.编辑程序
B.驱动程序
C.诊断程序
D.编译程序
参考答案:
D
21.下列选项中不属于结构化程序设计方法的是
A.自顶向下
B.逐步求精
C.模块化
D.可复用
参考答案:
D
22.两个或两个以上模块之间关联的紧密程度称为
A.耦合度
B.内聚度
C.复杂度
D.数据传输特性
参考答案:
A
23.以下不合法的用户标识符是
A.j2_KEY
B.dobule
C.4d
D._8_
参考答案:
C
24.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
25.以下叙述中错误的是
A.C语句必须以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
26.用C语言编写的代码程序
A.可立即执行
B.是一个源程序
C.经过编译即可执行
D.经过编译解释才能执行
参考答案:
B
27.下列选项中,不能用作标识符的是
A._1234_
B._1_2
C.int_2_
D.2_int_
28.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )。
A.有零个或多个输入
B.有零个或多个输出
C.有穷性
D.可行性
参考答案:
B
29.以下叙述中正确的是
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
参考答案:
B
30.以下4组用户定义标识符中,全部合法的一组是
A._main
enclude
sin
B.if
-max
turbo
C.txt
REAL
3COM
D.int
k_2
_001
参考答案:
A
31.以下叙述中正确的是
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的一切优点
参考答案:
C
32.以下叙述中正确的是
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其它函数之前
D.所有被调用的函数一定要在调用之前进行定义
参考答案:
A
33在C语言提供的合法的关键字是
A.swicth
B.cher
C.Case
D.default
参考答案:
D
34.下列字符串不是标识符的是
A.sum
B.Average
C.Day_night
D.M.D.JOHN
参考答案:
D
35.C语言规定:
在一个源程序中,main函数的位置
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
参考答案:
C
第2章数据类型运算符与表达式
1.设有intn=3;则n++的结果是(3)
2.设有intn=3;则++n,n的结果是(4)
3.逗号表达式(a=3*5,a*4),a的值为(15)
4.若有intq,p;以下不正确的语句是
A.p*=3;
B.p/=q;
C.p+=3;
D.p&&=q;
参考答案:
D
5.设i=5,j=6,表达式k=(i++)*(--j)的值为(25)
6.若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为(900)
7.C语言中运算对象必须是整型的运算符是
A.%=
B./
C.=
D.<=
参考答案:
A
8.若变量已正确定义并赋值,下面符合C语言语法的表达式是
A.a:
=b+1
B.a=b=c+2
C.int18.5%3
D.a=a+7=c+b
参考答案:
B
9.以下程序的输出结果是(13.700000)
main()
{inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf(“%f”,z);
}
10.字符串""的长度是(0)
11.以下语句的输出结果是(9)(strlen()为求字符串长度函数)
printf(“%d\n”,strlen(“xyz\n099\8\\”));
12.,号运算符得结合方向为自左向右的
13.与条件表达式"(n)?
(c++):
(c--)"中的表达式(n)等价的表达式是 (n!
=0)。
14.C语言中,所有的C语言关键字必须小写。
15.检查以下的C语言标识符的正确性:
A intB a_1_2C ab1exeD _xE printF i\am
16.检查以下的C语言的关键字的正确性:
auto,enum,include switch,typedef,continue,signed,union,scanf if,struct,type
default, register,enum,external
17.字符串""的长度是0
18.如果inta=1,b=2,c=3,d=4;则条件表达式"a
a:
cc:
d"的值是1
19.为求出s=10!
的值,则变量s的类型应当为ong
20.已知inti=10;表达式"20-0<=i<=9"的值是1
21.在32位的计算机中,一个字长等于1个字节。
22.设y是int型变量,判断y为奇数的关系表达是(y%2)==1.
23.计算机机领域中,通常用英文单词“Byte”表示字节。
24.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是x>5||x<-5.
25.设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为:
double.
26.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1。
27.若已知a=10,b=20,则表达式!
a*b的值是1。
28.计算机网络分为广域网和局域网,因特网属于____广域网____。
29.C语言的函数体一般包括____声明____部分和执行部分。
30.一个C程序总是从main函数开始执行,在____main____函数中结束运行。
31.C程序的注释是由____/**/____所界定的文字信息组成的。
32.一个C语言程序有且仅有一个____main()____函数。
33.C语言源程序的语句分隔符是____;____。
34.在程序设计语言中,计算机能够识别的语言是____机器____语言。
35.标识符的第一个字符必须是____字母或下划线____。
36.关键字是一种C语言中规定的具有____特定____含义的标识符
37.已知字母b的ascii码为98,且charch;则表达式ch=’b’+’8’-‘3’的值为____103____。
38.表达式10/3的结果是____3____。
表达式10%3的结果是____1____。
39.以下程序运行后的输出结果是____220____
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
40.以下程序运行后的输出结果是____b____。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
41.若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是 ____-3____.
42.若有以下程序
main()
{
chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
执行后的输出结果是____7____.
43.以下程序的输出结果是____2,1____
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%d\n”,a,b);
}
44.若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是____3____。
c=(a-=(b-5));
c=(a%11)+(b=3);
45.若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是____3____。
c=(a-=(b-5));
c=(a%11)+(b=3);
46.请写出以下数学式的C语言表达式____a/(b*c)____.
a
───
b.c
47.程序设计的三种基本结构是顺序结构、选择结构、循环结构。
(正确)
48.C语言中可以把一个字符串赋给一个字符变量。
(错误)
第3章顺序结构
1.以下程序的输出结果是___101_。
main()
{intn=1;
printf("%d%d%d\n",n,n++,n--);
}
2.从键盘输入12345,则下面程序的输出结果是__.a=12b=345__。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
3.以下程序段的输出结果是1234
4.若要求从键盘读入含有空格字符的字符串,应使用函数
A.getc()
B.gets()
C.getchar()
D.scanf()
参考答案:
B
5.有以下程序
#include
main()
{
charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,值为(1245)
6.有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是(6,5,A,B )。
7.有以下程序
main()
{
intx=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是( 102,10)。
8.设有如下程序段:
intx=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是( )。
A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B.运行时产生出错信息
C.输出值为2002
D.输出值为2003
参考答案:
D
9.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( )。
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d%d%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
参考答案:
C
10.设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是(10,2 )。
printf(”%d,%d\n”,x--,--y);
题目:
以下程序的输出结果是____261____。
main()
{inta=177;
printf("%o\n",a);
}
11.以下程序的输出结果是____0____。
main()
{unsignedshorta=65536;intb;
printf(“%d\n”,b=a);
}
12.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是____5.0,4,c=3____intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c);
13.若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是____a=1,b=2____。
inta,b;
scanf("a=%b,b=%d,&a,&b);
14.下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include
main()
{inta,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
a=
____a+b____;
b=____a-b____;
a=____a-b____;
printf("a=%d,b=%d\n",a,b);
}
15.假设变量a和b均为整型,以下语句可以不借助任何变量把a,b中的值进行交换。
请填空。
a+=____b____; b=a-b; a-=b;
16.有以下程序段,说明其输出结果,请填空。
int a=3,b=4;
printf("%d\n",a=a+1,b+a,b+1);
printf("%d\n",(a=a+1,b+a,b+1));
输出结果是____
4
5
____。
17.intx;floaty,z;
scanf("%2d%3f%4f",&x,&y,&z);
printf("\n");
printf("x=%d,y=%f,z=%f\n",x,y,z);
当执行以上程序段时,在键盘上从第一列开始输入9876543210l,则程序的输出结果是
____x=98,y=765.000000,z=4321.000000____。
18.有以下程序段
intx,y,z;
scanf("%d%d%d",&x,&y,&z
printf("x+y+z=%d\n",x+y+z);
当程序运行时输入数据的形式为:
25,13,10时,正确的输出结果为
____无正确值;无正确结果____。
19.有以下程序段:
chara,b,c,d;
c=getchar();d=getchar();
scanf("%c%c",&a,&b);
putchar(a);putchar(b);
printf("%c%c",c,d);
程序运行后,若从键盘输入(从第1列开始)
9l
876l
则输出结果是____879____。
所属章节:
顺序结构
20.有以下程序段
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10l
则输出结果是____10,A,10____。
21.编写一个程序,从键盘输入一个三位整数,将它们逆序输出。
例如输入127,输出721。
22.求华氏温度100°F对应的摄氏温度。
计算公式:
c=5*(f-32)/9,式中:
c表示摄氏温度,f表示华氏温度。
23.编写程序,要求输入某学生期末考试四门成绩(成绩为整数),然后将四门成绩的总分及平均分输出,平均分的结果保留小数点后一位数字。
24.编写一个四则运算的程序,要求输入两个整数,依次求出两数的和、差、积和商,并输出。
25.变量a=30,变量b=20,编写程序实现交换a和b的值,并输出。
26.从键盘输入任意字符,若是大写字母原样输出,若是小写字母则转为大写字母再输出。
27.输入矩形的长及宽,输出矩形的面积。
28.输入三角形的三边长,求三角形面积。
提示:
三角形面积area,公式为:
area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2.
29.输入两个整数a和b,要求把他们的值互换再输出。
第4章选择结构
1.执行下列语句后a的值为
(2)
inta,b,c;
a=b=c=1;
++a||++b&&++c;
2.执行下列语句后a的值为(0)
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
3.执行下列语句后b的值为(6)
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
4.以下程序的输出结果是(.$$$)
main()
{inta=5,b=0,c=0;
if(a=b+c)printf(“***\n”);
elseprintf(“$$$\n”);
}
5.若运行时给变量x输入12,则以下程序的运行结果是(0)
main()
{intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x-12;
printf(“%d\n”,y);
}
6.以下程序的输出结果是
(1)
main()
{intk=4,a=3,b=2,c=1;
printf(“\n%d\n”,kk:
c
c:
a);
}
7.若w=1,x=2,y=3,z=4,则表达式ww:
yy:
z的值是
(1)
8.设a=2,b;则执行b=a==!
a;语句后,b的结果是(0)
9.设有intn=2;则++n+1==4的结果是
(1)
10.设有inta=2,b;则执行b=a&&1;语句后,b的结果是
(1)
11.设有intm=1,n=2;则++m==n的结果是
(1)
12.设有intn=2;则++n+1==4,n的结果是(3)
13.有以下程序
main()
{intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf(“%d\n”,x);
}
执行后输出结果是____-4____。
14.以下程序运行后的输出结果是____3____。
main()
{intp=30;
printf("%d\n",(p/3>0?
p/10:
p%3));
}
15.以下程序运行后的输出结果是____yes____。
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
16.若有以下程序
main()
{intp,a=5;
if(p=a!
=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是 ____1____.
17.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a
if(aprintf("%d%d%d\n",a,b,c);
}
执行后输出结果是____503____.
18.以下程序运