C语言程序设计基础谭浩强习题Word文件下载.docx
《C语言程序设计基础谭浩强习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础谭浩强习题Word文件下载.docx(38页珍藏版)》请在冰豆网上搜索。
1.在C语言中,下列数据类型属于基本类型的是。
A)整型、浮点型、字符型B)共用体类型、整型
C)结构体类型、浮点型D)指针类型、字符型
2.C语言中不能表示的整型常量进制是。
A)十进制B)十六进制C)八进制D)二进制
3.在C语言中,转义字符回车换行符是。
A)\nB)\tC)\rD)\b
4.在ASCII码表中可以看到每个小写字母的ASCII码比相应的大写字母。
A)大32B)大64C)小32D)小64
5.设d为字符变量,下列表达式能够完整正确赋值的是。
A)d=297B)d=’a’C)d=“a”D)d=’abc’
6.10+’a’+1.5-567.345/’b’的结果是型数据。
A)charB)doubleC)intD)float
7.语句
inti=3;
k=(i++)+(i++)+(i++);
执行过后k的值为,i的值为。
A)9,6B)12,5C)18,6D)15,5
8.inti=3;
printf(“%d”,-i++);
的输出结果为,输出后i的值为。
A)-3,4B)-4,4C)-4,3D)-3,3
9.已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为。
#include<
stdio.h>
voidmain()
{
charx,y;
x=’0’;
y=’9’;
printf(“%d,%c\n”,x,y);
}
A)因输出格式不合法,输出错误信息B)48,9
C)0,9D)0,57
10.已知在ASCII集中,字母A的序号为65,下面程序的输出结果为。
{
charc1=’Y’,c2=’B’;
printf(“%c,%d\n”,++c1,c2--);
A)Y,66B)Z,65C)Z,66D)Y,65
11.C语言中,运算对象必须是整型数的运算符是。
A)*B)/C)%和/D)%
12.下列常数中,合法的C语言常量是。
A)’\n’B)e-310C)abcD)’1234’
13.下面程序的输出结果是。
{
intx=2,y=0,z;
x*=3+2;
printf(“%d”,x);
x*=y=z=4;
A)840B)1040C)10,4D)8,4
14.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值为。
A)1B)2C)2.0D)2.5
15.表达式(int)2.1416的值为。
A)2B)2.1C)0D)3
16.C语言规定标识符由等字符组成.
A)字母 数字 下划线 B)中划线 字母 数字
C)字母 数字 逗号 D)字母下划线中划线
17.若有如下定义:
inta=2,b=3;
floatx=3.5,y=2.5;
则表达式:
(float)(a+b)/2+(int)x%(int)y的值是。
A)2.500000B)3.500000C)4.500000D)5.000000
18.已知字母A的ASCII码为十进制65,下面程序段的运行结果为:
。
charch1,ch2;
ch1=‘A’+2;
ch2=‘D’-3;
printf(“%d,%c\n”,ch1,ch2);
A)67,65B)C,AC)C,DD)67,A
19.设x、y均为float型变量,则以下不合法的赋值语句是。
A)++x;
B)y=(x%2)/10;
C)x*=y+8;
D)x=y=0;
20.设有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=kD)(x%=k)-(k%=5)
1.在C语言中,程序运行期间,其值不能被改变的量叫。
2.在C语言中,要求对所有变量,遵循先定义后的原则。
3.可以用来表示C的整常数的进制是、、。
4.浮点型变量分为和,即float和double型。
5.C的字符常量是用括起来的一个字符,字符串常量用括起来的一组字符。
6.在一个变量定义语句中可以同时定义多个变量,变量之间用隔开。
7.下面的程序运行结果为。
{
charc1,c2;
c1='
a'
;
c2='
b'
c1=c1-32;
c2=c2-32;
printf(“%c%c”,c1,c2);
}
8.表达式10+'
+1.5-0.5*'
的结果。
9.在C语言中,可以利用,将一个表达式的值转换成指定的类型。
10.#include<
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
运行后i,j,m,n的值是。
第二章答案
1~5ADAAB
6~10BAABC
11-15DABCA
16~20ABCBA
1.常量
2.使用
3.八进制十进制十六进制
4.单精度双精度
5.单引号双引号
6.逗号
7.AB
8.59.5
9.强制类型转换
10.9,11,9,10
第三章顺序结构程序设计
1.下列说确的是。
A)输入项可以是一个浮点型常量,如scanf(“%f”,4.8);
B)只有格式控制,没有输入项也能进行正确输入,如scanf(“a=%d,b=%d”);
C)当输入一个浮点型数据时,格式控制部分应规定小数点后的位数,如scanf(“%5.3f”,&
f);
D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&
2.根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是。
inta;
floatx;
printf(“inputa,x:
”);
输入语句
输出语句
输入形式inputa,x:
32.1
输出形式a+x=5.10
A)scanf(“%d,%f”,&
a,&
x);
B)scanf(“%d%f”,&
printf(“\na+x=%4.2f”,a+x);
printf(“\na+x=%4.2f”,a+x);
C)scanf(“%d%f”,&
D)scanf(“%d%3.1f”,&
printf(“\na+x=%6.1f”,a+x);
printf(“\na+x=%4.2f”,a+x);
3.以下程序的输出结果是。
inti=010,j=10,k=0x10;
printf(“%d,%d,%d\n”,i,j,k);
A)8,10,16B)8,10,10C)10,10,10D)10,10,16
4.以下程序的输出结果是。
charc1='
6'
c2='
0'
printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);
A)因输出格式不合法,输出出错信息B)6,0,6,102
C)6,0,7,6D)6,0,5,7
5.设有如下定义
intx=10,y=3,z;
则语句
printf(“%d\n”,z=(x%y,x/y));
的输出结果是。
A)3B)0C)4D)1
6.设有如下定义
intx=10,y=5,z;
printf(“%d\n”,z=(x+=y,x/y));
A)1B)0C)4D)3
7.根据定义和数据的输入方式,输入语句的正确形式为:
已有定义:
floata1,a2;
输入4.523
3.52
A)scanf(“%f%f“,&
a1,&
a2);
B)scanf(“%f,%f“,a1,a2);
C)scanf(“%4.3f,%3.2f“,&
D)scanf(“%4.3f%3.2f“,a1,a2);
1.putchar函数的作用是,getchar函数的作用是。
2.printf函数的”格式控制”包括两部分,分别是和。
3.不同类型的输出容有不同的格式字符,其中是用来按十进制整数形式输出一个整型数,是用来按小数形式输出一个浮点数,是用来输出一个字符。
4.符号”&
”是运算符,&
a是指。
5.复合语句是由一对括起来的若干语句组成。
6.分析下面程序:
intx=2,y,z;
x*=3+2;
printf(“%d“,x);
x*=y=z=4;
x=y=z;
x=(y=z);
程序的输出结果为。
7.编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。
jia=70
jian=30
cheng=1000
chu=2
程序:
(1)
a=50;
b=20;
printf(“jia=%d\n”,
(2));
printf(“jian=%d\n”(3));
printf(“cheng=%d\n”,(4));
printf(“chu=%d\n”,(5));
将缺少的部分填在空白处。
8.以下程序的输出结果为:
____________。
{
c1=‘a’;
c2=‘b’;
printf(“%c\n%c”,c1-32,c2);
三、编程题
1.请编写一个程序,能显示出以下两行文字。
Iamastudent.
IloveChina.
2.请编写一个程序,从键盘上输入a=2,b=3.4,c=’D’,向屏幕输出对应的a,b,c的值。
第三章答案
1-5DBABA
6-7DA
1.向终端输出一个字符从终端输入一个字符
2.格式说明普通字符
3.%d%f%c
4.取地址a在存中的地址
5.大括号
6.104044
7.
(1)intbbba,b;
(2)a+b(3)a-b(4)a*b(5)a/b
8.A
b
1.#include<
printf(“Iamastudent.\n”);
printf(“IloveChina.\n”);
}
2.#include<
inta;
floatb;
charc;
scanf(“%d%f%c”,&
b,&
c);
printf(“a=%d,b=%f,c=%c\n”,a,b,c);
第四章选择结构程序设计
1.以下关于运算符优先级的描述中,正确的是。
A)!
(逻辑非)>
算术运算>
关系运算>
&
(逻辑与)>
||(逻辑或)>
赋值运算
B)&
C)关系运算>
D)赋值运算>
||(逻辑或)
2.逻辑运算符的运算对象的数据类型。
A)只能是0或1B)只能是.true或.false.
C)只能是真或假D)任何类型的数据
3.能正确表示x的取值围在[0,100]和(-10,-5)的表达式是。
A)(x>
=-10)&
(x<
=-5)||(x>
0)&
100)
B)(x>
-10)&
-5)||(x>
=0)&
=100)
C)(x>
=-5)&
(x>
D)(x>
-5)&
4.以下程序的运行结果是。
intc,x,y;
x=1;
y=1;
c=0;
c=x++||y++;
printf(“\n%d%d%d\n”,x,y,c);
A)110B)211C)011D)001
5.判断字符型变量ch为大写字母的表达式是。
A)’A’<
=ch<
=’Z’B)(ch>
=A)&
(ch<
=Z)
C)(ch>
=’A’)&
=’Z’)D)A<
=Z
6.以下if语句书写正确的是。
A)if(x=0;
)B)if(x>
0)
printf(“%f”,x);
{x=x+1;
elseprintf(“%f”,-x);
C)if(x>
0);
D)if(x>
}{x=x+1;
printf(“%f”,x);
7.若已知a=10,b=20,则表达式!
a<
b的值为。
C
A)10B)20C)1D)0
8.写出下面程序的执行结果。
{intx=6,y=0;
if(y=1)x=5;
printf(“%d\t”,x);
if(y=0)x=3;
elsex=4;
printf(“%d\t\n”,x);
A)63B)54C)53D)65
9.下列程序段运行后x的值是。
a=b=c=0;
x=35;
if(!
a)x=-1;
elseif(b);
if(c)x=3;
elsex=4;
A)-1B)4C)35D)3
10.若有以下函数关系
y=2xx<
0时
y=x+1x=0时
y=xx>
下面程序段能正确表示以上关系的是。
A)y=2*x;
B)y=2*x;
if(x!
=0)if(x<
=0)
if(x>
0)y=x;
if(x==0)y=x+1;
elsey=x+1;
elsey=x;
=0)D)y=x+1;
if(x<
if(x<
0)y=2*x;
elsey=2*x;
elsey=x;
11.若有变量定义floatx;
inty;
则正确的switch语句是。
A)switch(x)B)switch(x)
{case1:
printf(“*\n”);
{case1~2:
printf(“*\n”);
case2:
printf(“**\n”);
}case3~4:
printf(“**\n”);
}
C)switch(y)D)switch(y)
{case1*y:
{case1:
case2*y:
}case2:
12.当a=1,b=3,c=5,d=4时,执行完下面程序段后x的值为。
if(a<
b)
if(c<
d)x=1;
else
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
13.设有如下定义:
charch=’z’,则执行下面语句后变量ch:
ch=(‘A’<
=ch&
ch<
=‘Z’)?
(ch+32):
ch
A)AB)aC)ZD)z
14.已知intx=30,y=50,z=80;
以下语句执行后变量x、y、z的值分别为:
if(x>
y||x<
z&
y>
z)
z=x;
x=y;
y=z;
A)x=50,y=80,z=80B)x=50,y=30,z=30
C)x=30,y=50,z=80D)x=80,y=30,z=50
15.switch(表达式c)括号表达式c的类型:
。
A)可以是任意类型B)只能为整型
C)可以是整型或字符型D)可以为整型或浮点型
1.在C语言中,对于if语句,else子句与if子句的配对规则是。
2.以下两条if语句可合并成一条if语句。
if(a<
=b)x=1;
elsey=2;
if(a>
b)printf(“****”);
elseprintf(“####”);
3.设有程序片段如下:
switch(class)
{case'
A'
:
printf(“GREAT!
\n”);
case'
B'
printf(“GOOD!
C'
printf(“OK!
D'
printf(“NO!
default:
printf(“ERROR!
若class的值为'
则输出结果是。
4.x是0~100之间的整数,根据以下if语句写出等价的switch语句。
if(x<
60)m=1;
elseif(x<
70)m=2;
elseif(x<
80)m=3;
elseif(x<
90)m=4;
elsem=5;
switch(
(1))
{
(2)m=5;
break;
case6:
m=2;
case7:
m=3;
case8:
m=4;
(3)m=1;
5.输入3个实数a,b,c要求按从大到小顺序输出三个数。
{floata,b,c,t;
scanf(“%f,%f,%f”,&
if(a<
b)
{t=a;
(1)b=t;
if(
(2))
a=c;
c=t;
if(b<
c)
{(3)b=c;
printf(“%f,%f,%f”,a,b,c);
6.输入一个字符,如果是大写字母,则把其变成小写字母;
如果是小写字母,则变成大写字母;
其它字符不变。
请在括号填入缺少的容。
#include<
voidmain()
{charch;
scanf(“%c”,&
ch);
if(
(1))
ch=ch+32;
else
if(ch>
=’a’&
=‘z’)
(
(2))
printf(“%c\n”,ch);
7.用C语言描述
1)a