《C语言程序设计》习题Word格式.docx
《《C语言程序设计》习题Word格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》习题Word格式.docx(47页珍藏版)》请在冰点文库上搜索。
2.下列属于字符型常量的是()。
A)’AA’B)”B”C)‘\117’D)’\x93L’
3.以下()是正确变量名。
A)5fB)ifC)f.5D)_f5
4.char型变量存放的是()。
A)ASCⅡ码值B)字符本身C)十进制代码值D)十六进制代码值
5.C语言中最简单的数字类型包括()。
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型
6.下面叙述正确的是()。
A)强制类型转换运算的优先级高于算术运算
B)若a和b是整型变量,(a+b)++是合法的
C)”A”*’B’是合法的
D)”A”+”B”是合法的
7.不是C语言实型常量的是()。
A)55.0B)0.0C)55.5D)55e2.5
8.已知chara=’R’;
则不正确的赋值表达式是()。
A)a=(a++)%4B)a+2=3C)ca+=256--D)a=‘\078’
9.以下选项中属于C语言数据类型的是()。
A)复数型B)逻辑型C)双精度型D)集合型
10.若已定义f,g为double类型,则表达式:
f=1,g=f+5/4的值是()。
A)2.0B)2.25C)2.1D)1.5D)1.5D)1.5D)1.5
11.设整形变量a为5,使b不为2的表达式是()。
A)b=(++a)/3B)b=6-(--a)C)b=a%2D)b=a/2
12.若t为double类型,表达式t=1,t*5,t的值为()。
A)1B)6.0C)2.0D)1.0
13.在C语言中,运算对象必须是整型数的运算符是()。
A)%B)\C)%和\D)**
14.字符串”abcd\tef\0g”的长度是()。
A)9B)7C)6D)4
1.C的整数可以用十、八和()三种进位制表示。
2.字符串”ab\034\\\x79”的长度为()。
3.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为()。
4.设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为()。
5.若k为int型变量且赋值11。
请写出运算k++后表达式的值( )。
6.表达式3.5+1/2的计算结果是()。
7.若A、b和c均是int型变量,则执行下面表达式后,c值为()。
c=(a=5)-(b=2)+a
8.条件”20<
x<
30或x<
-100”的C语言表达式是()。
9.C语言的基本数据类型有整型、实型和( )。
10.若有定义:
charc=′\010′;
则变量c中包含的字符个数为()。
11.C语言中普通整型变量的类型声明符为()。
第3章
一、选择题
1.结构化程序设计不包括()。
A)最优化B)自顶而下,逐步细化C)模拟化设计D)结构化编码
2.下面叙述中,()不是结构化程序设计中的三种基本结构之一。
A)数据结构B)选择结构C)循环结构D)顺序结构
3.已知:
inta,b;
用语句scanf(“%d%d”,&
a,&
b);
输入a、b的值时,不能作为输入数据分隔符的是()。
A),B)空格C)回车D)[TAB]
4.已知:
inty;
执行语句y=5/2;
则变量y的结果是()。
A)2B)-2C)2.5D)2.0
5.已知:
执行语句y=5%-3;
A)2B)-2C)1D)-1
6.设inta=2,b=2;
则++a+b的结果是()。
A)2B)3C)4D)5
7.getchar()函数的功能是从终端输入()。
A)一个整型量值B)一个实型变量值C)多个字符D)一个字符
8.putchar()函数的功能是向终端输出()。
A)多个字符B)一个字符C)一个实型变量值D)一个整型变量表达式
9.已有如下定义和输入语句
inta;
charc1,c2;
scanf(“%d,%c,%c”,&
a,&
c1,&
c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()。
A)10ABB)10,A,BC)10ABD)10AB
10.若有声明和语句:
inta=5,b=6;
b*=a+1;
则b的值为()。
A)5B)6C)31D)36
11.使用语句scanf(“a=%f,b=%d”,&
输入数据时,正确的数据输入是()。
A)a=2.2,b=3B)a=2.2b=3C)2.23D)2.2,3
12.下列程序的运行结果是()。
#include<
stdio.h>
voidmain()
{inta=2,c=5;
printf("
a=%d,b=%d\n"
a,c);
}
A)a=%2,b=%5B)a=2,b=5C)a=d,b=dD)a=%d,b=%d
二、填空题
1.设有以下变量定义,并已赋确定的值,
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y所求得的数据类型是()。
2.若有定义inty=7;
floatx=2.5,z=4.7;
则下面表达式的值为()。
x+(int)(y/3*(int)(x+z)/2)%4
3.若有声明和语句:
inta=25,b=60;
b=++a;
则b的值是()。
三、程序分析题(写出程序运行结果)
1.#include<
voidmain()
{inta,b,c;
a=-1;
b=-2;
c=++a-b++;
%d"
c);
}
2.#include<
{intx,y,z;
x=1;
y=3;
z=++x+(++y);
z);
}
第4章
1.若整型变量a,b,c,d中的值依次为1,4,3,2,则条件表达式a<
b?
a:
c<
d?
c:
d的值为()。
A)1B)2C)3D)4
2.若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是()。
A)1B)0C)2D)不知道a的值,不能确定
3.在C语言中,switch语句后一对圆括号中表达式的类型()。
A)可以是任何类型B)只能是int类型
C)可以是整型或字符型D)只能是整型或实型
4.下列运算符的优先级最高的是()。
A)关系运算符B)算术运算符C)赋值运算符D)逻辑运算符
5.下列运算符中优先级最低的运算符是()。
A)||B)!
=C)<
=D)+
6.设charc1=’a’,c2=’A’;
则表达式c1==c2+32?
c1:
(c1=c2+32)的值是()。
A)1B)0C)’a’D)’A’
7.设intx=1,y=1;
表达式(!
x||y--)的值是()。
A)0B)1C)2D)-1
8.能正确表示逻辑关系a≥10或a≤0的C语言表达式是()。
A)a>
=10ora<
=0B)a>
=0|a<
=10
C)a>
=10&
&
a<
=0D)a>
=10||a<
=0
9.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假,则不能满足要求的表达式是()。
A)a%2==1B)!
(a%2==0)C)!
(a%2)D)a%2
10.如果a=3,b=2,c=1,则下列表达式的值为0的是()。
A)a>
bB)(a>
b)==cC)b+c<
aD)c=a>
b
11.表示关系12<
=x<
=y的C语言表达式为()。
A)(12<
=x)&
(x<
=y)B)(12<
=y)
C)(12<
=x)|(x<
=y)D)(12<
=x)||(x<
=y)
12.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A)缩排位置相同的ifB)在其之前未配对的if
C)在其之前未配对的最近的ifD)同一行上的if
13.若有定义inta=1,b=2,c=3,d=4,x=5,y=6则表达式(x=a>
b)&
(y=c>
b)的值为()。
A)0B)1C)5D)6二、填空题
1.C语言中逻辑值真用()表示。
2.C语言中逻辑值假用()表示。
3.在C语言中,当表达式值为0时表示逻辑值假,当表达式值为()时表示逻辑值真。
4.设x为int型变量,请写出一个关系表达式(),用以判断x同时为3和7的倍数时,关系表达式的值为真。
5.C语言中逻辑运算符优先级按由低到高分别是()。
三、程序分析题
1.以下程序的功能是
stdio.h>
{
charch;
scanf(“%c\n”,&
ch);
ch=(ch>
=’A’&
ch<
=’Z’)?
ch+32:
ch;
printf(“char=%c\n”,ch);
2.若inti=10;
则执行下列程序后,写出变量i的正确结果。
switch(i)
{
case9:
i+=1;
case10:
case11:
default:
3.有以下程序
{
inta=1,b=2,c=3,d=0;
if(a==1)
if(b!
=2)
if(c!
=3)d=1;
elsed=2;
elseif(c!
=3)d=3;
elsed=4;
elsed=5;
printf(“%d\n”,d);
写出程序运行后的输出结果。
四、程序填空题
1.输入三角形的三条边a,b,c,求三角形的面积。
#include“math.h”
#include“stdio.h”
voidmain()
floata,b,c,d,t,s;
printf(“请输入三角形的三条边:
”);
scanf(“%f,%f,%f”,&
b,&
c);
if
(1)
printf(“%f%f%f不能构成三角形!
”,a,b,c);
else
t=(a+b+c)/2;
s=
(2)
printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”,a,b,c,s);
五、程序设计题
1.请编程序,输入一个4位数字,要求输出这4个数字字符,每个数字间空一个空格。如输入1990,应输出1990。
第5章
1.有以下程序
#include<
{inty=10;
while(y--);
printf(“y=%d\n”,y);
程序执行后的输出结果是()。
A)y=0B)y=-1C)y=1D)while构成无限循环
2.运行下面程序段的输出结果是()。
inti;
for(i=0;
i<
10;
i++);
printf(“%d”,i);
A)9B)10C)8D)11
3.设有程序段
intk=10;
while(k=0)k=k-1;
则下面的描述正确的是()。
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
4.关于break语句的描述正确的是()。
A)break语句只能用于循环体中
B)break语句可以一次跳到多个嵌套循环体之外
C)在循环结构中可以根据需要使用break语句
D)在循环结构中必须使用break语句
5.C语句中while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
6.对于整型变量x,与while(!
x)等价的是()。
A)while(x!
=0)B)while(x==0)C)while(x!
=1)D)while(~x)
7.下列do-while循环的循环次数为()。
已知:
inti=5;
do
{printf(“%d\n”,i--);
i--;
}while(i!
=0);
A)0B)1C)5D)无限
8.要求以下程序的功能是计算:
s=1+1/2+1/3+……+1/10
{
intn;
floats;
s=1.0;
for(n=10;
n>
1;
n--)
s=s+1/n;
printf("
%6.4f\n"
s);
程序运行后输出结果错误,导致错误结果的程序行是()。
A)s=1.0;
B)for(n=10;
n--)C)s=s+1/n;
D)printf("
9.下面关于for循环的正确描述是()。
A)for循环是先执行循环体语句,后判断循环条件
B)若for循环的循环体中包含多条语句,多条语句必须用括号括起来
C)for循环只能用于循环次数已经确定的情况
D)在for循环中,不能用break语句跳出循环体
10.以下程序的输出结果是()。
inti;
for(i=1;
6;
i++)
if(i%2){printf(“#”);
continue;
printf(“*”);
printf(“\n”);
A)#*#*#B)#####C)*****D)*#*#*
1.若for循环用以下形式表示
for(表达式1;
表达式2;
表达式3)循环体语句
则执行语句for(i=0;
3;
i++)printf(“*”);
时,表达式3执行()次。
2.设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;
}while(i<
2);
printf(“%d\n”,sum);
上述程序的输出结果是()。
3.若intx=5;
while(x>
0)printf(“%d”,x--);
的循环执行次数为()。
1.#include<
intx=2;
while(x--);
printf(“%d”,x);
写出程序运行结果。
2.当执行下面的程序段后,i、j、k的值分别为()、()、()。
inta,b,c,d,i,j,k;
a=10;
b=c=d=5;
i=j=k=0;
for(;
a>
b;
++b)
i++;
while(a>
++c)
j++;
do
k++;
d++);
1.鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空
for(x=1;
=29;
x++)
y=30-x;
if()printf(“%d,%d\n”,x,y);
2.下面程序的功能是计算1-3+5-7+…-99+101的值,请填空。
{inti,t=1,s=0;
for(i=1;
=101;
i+=2)
{;
s=s+t;
;
printf(“%d\n”,s);
3.爱因斯坦的阶梯问题。设有一阶梯,每步跨2阶,最后余1阶;
每步跨3阶,最后余2阶;
每步跨5阶,最后余4阶;
每步跨6阶,最后余5阶;
只有每步跨7阶时,正好到阶梯顶。问至少有多少阶梯。
inta=7;
while()
a+=();
printf("
Flightofstairs=%d\n"
a);
4.以下程序的功能是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
{floatx,amax,amin;
scanf(“%f”,&
x);
amax=x;
amin=x;
while()
{if(x>
amax)amax=x;
if()amin=x;
printf(“\namax=%f\namin=%f\n”,amax,amin);
1.设m,n为正整数,且m<
n,求由m到n的自然数倒数之和。
2.请编写一个程序,求序列2/1+3/2+5/3+8/5……前20项之和
3.编写程序,打印出所有的对等数。对等数是指一个三位数,其各位数字的和与各位数字的积的积等于该数本身。例如:
144=(1+4+4)*(1*4*4)
第6章
1.已知chars[5],c;
intb;
则调用函数scanf的正确语句是()。
A)scanf(“%s%c”,s,c);
B)scanf(“%d%c”,&
b,c);
C)scanf(“%d%c”,b,&
D)scanf(“%s%c”,s,&
2.下列描述中不正确的是()。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符=“对字符型数组进行整体赋值
3.在inta[5]={1,3,5};
中,数组元素a[1]的值是()。
A)1B)0C)3D)2
4.若要定义一个具有5个元素的整型数组,以下错误的定义语句是()。
A)inta[5]={0}B)intb[]={0,0,0,0,0}C)intc[2+3]D)inti=5,d[i]
5.已知inta[10];
则对a数组元素的正确引用是()。
A)a[10]B)a[3.5]C)a(5)D)a[10-10]
6.以下能对一维数组a进行正确初始化的语句是()。
A)inta[5]=(0,0,0,0,0,)B)inta[5]=[0]
C)inta[5]={1,2,3,4,5,6,7}D)inta[]={0}
7.若有定义inta[3][4]={{1,2},{0},{1,2,3}};
则a[1][1]的值为()。
A)0B){1,2}C)1D)3
8.若有声明inta[5][4];
则对其数组元素的正确引用是()。
A)a[3+1][2]B)a(3)
(2)C)a[0,2]D)a[3][5]
9.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式
10.若有inta[3][5]={{2,2},{2,6},{2,6,2}};
则数组a共有个元素()。
A)8B)5C)3D)15
11.设有如下程序段:
inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;
for(i=0;
for(j=0;
j<
i;
j++)
s=s+a[i][j];
则执行该程序段后,s的值是()。
A)0B)1C)2D)3
12.设有如下定义charstr[8]={“Fujian”};
则分