C语言第15章练习题1.docx
《C语言第15章练习题1.docx》由会员分享,可在线阅读,更多相关《C语言第15章练习题1.docx(70页珍藏版)》请在冰点文库上搜索。
C语言第15章练习题1
第一、二章C语言概述与算法
一、单选题
1.一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是
A)有零个或多个输入 B)有零个或多个输出
C)有穷性 D)可行性
2.以下叙述中正确的是
A)C语言的源程序不必通过编译就可以直接运行
B)C语言的每条可执行语句最终都将被转换成二进制的机器指令
C)C语言的源程序经编译形成的二进制代码可以直接运行
D)C语言的函数不可以单独进行编译
3.对用C语言编写的代码程序,以下叙述中哪个是正确的
A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
4.结构化程序由三种基本结构组成,由这三种基本结构组成的算法
A)可以完成任何复杂的任务 B)只能完成部分复杂的任务
C)只能完成符合结构化的任务 D)只能完成一些简单的任务
5.有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是
A)C001.OBJ B)C001.DAT C)C001.EXE D)C001.C
二、填空题
1.结构化程序由 、 、 三种基本结构组成。
2.模块化程序设计的设计原则是 和 。
3.组成C程序的基本单位是 ,其组成部分包括 和 。
4.C程序中的main称 ,它可以出现在程序的 位置。
5.由“/*”和“*/”括起来的内容称为 ,它的作用是 。
6.描述算法的常用方法有:
。
第三章 数据类型、运算符与表达式
一、单选题
1.与十进制数97不等值的字符常量是
A) ’a’ B)’\101’ C)’\x61’ D)’\141’
2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在
A) C001.C B)C001.OBJ C)C001.DAT D)C001.EXE
3.以下选项中正确的整型常量是
A) 5. B)-10 C)1.000 D)4/5
4.以下选项中正确的实型常量是
A)0 B)3. 1415 C)0.03x102 D).32
5.以下选项中不正确的实型常量是
A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-2
6.以下选项中不合法的用户标识符是
A)wb-1 B)file C)Main D)PRINTF
7.以下选项中不合法的用户标识符是
A)_123 B)printf C)A$ D)Dim
8.C语言中运算对象必须是整型的运算符是
A)% B)/ C)* D)+
9.可在C程序中用作标识符的一组标识符是
A)void B)as_b3 C)For D)2c
Define _123 -abc DO
WORD If case SiG
10.若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7; B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b
11.以下非法的赋值语句是
A)n=(i=2,++i);B)j++; C)++(i+1); D)x=j>0;
12.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6. B)6 C)5. D)6.
13.已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是
A)6 B)0 C)2 D)1
14.以下叙述中正确的是
A)a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。
B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式
C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D)已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3
15.以下叙述中正确的是
A)在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。
B)C程序由主函数组成。
C)C程序由函数组成。
D)C程序由函数和过程组成。
16.TurboC中int类型变量所占字节数是
A)1 B)2 C)3 D)4
17.不合法的八进制数是
A)0 B)028 C)07700 D)01
18.不合法的十六进制数是
A)oxff B)0Xabc C)0x11 D)0x19
19.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是
A)a=b=c=100;B)d++;C)c+b; D)d=(c=22)-(b++);
20.以下选项中不是C语句的是
A){int i; i++; printf(“%d\n”, i); }
B); C)a=5,c=10 D){ ; }
21.以下合法的C语言赋值语句是
A)a=b=58 B)k=int(a+b);C)a=58,b=58 D)--i;
22.以下程序的输出结果是
main()
{ int x=10, y=3;
printf(“%d\n”,y=x/y);
}
A)0 B)1 C)3 D)不确定的值
23.C语言中的简单数据类型有
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
24.C语言中,字符(char)型数据在微机内存中的存储形式是
A)反码 B)补码 C)EBCDIC码 D)ASCII码
25.设有语句char a=‘\172’;,则变量a
A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法
26.C语言中不合法的字符常量是
A)’\xff’ B)’\65’ C)’&’ D)’\028’
27.C语言中不合法的字符串量是
A)”\121” B)’y=’ C)”\n\n” D)”ABCD\x6d”
28.判断char型变量c是否为大写字母的最简单且正确的表达式是
A)’A’<=c<=’Z’ B)(c>=’A’&(c<=’Z’)
C)(‘A’<=c)AND(‘Z’>=c) D)(c>=’A’)&&(c<=’Z’)
29.下列运算符中优先级最高的运算符是
A)!
B)% C)-= D)&&
30.下列运算符中优先级最低的运算符是
A)|| B)!
= C)<= D)+
31.为表示关系x≥y≥z,应使用的C语言表达式是
A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
32.设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是
A)a&&b B)a<=b C)a||b+c&&b-c D)!
((a
c||1)
二、填空题
1.若k为int型变量且赋值11,请写出运算k++后表达式的值 和变量的值 。
2.若x为double型变量,请写出运算x=3.2,++x后表达式的值 和变量的值 。
3.函数体由符号 开始,用符号 结束。
4.函数体的前面是 部分,其后面是 部分。
5.在C语言程序中,用关键字 定义基本整型变量,用关键字 定义单精度实型变量,用关键字 定义双精度实型变量。
6.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是 。
7.C程序中定义的变量,代表内存中的一个 。
8.表达式3.5+1/2的计算结果是 。
9.对以下数学式,写出三个等价的C语言表达式是 、 、
。
10.表达式s=10应当读做“ ”。
11.计算机中内存储器的最小单位称为 ,其中能容纳的数是 。
12.通常一个字节包含 个二进制位。
在一个字节中能存放的最大十进制整数是 ,它的二进制数的形式是 ;最小十进制整数是 ,它的二进制形式是 。
13.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是 、最小十进制整数是 ,它们的二进制形式是 。
14.C语言中用 表示逻辑真,用 表示逻辑假。
15.根据C语言运算符的优先顺序和结合性,按从高到低的顺序写出以下表达式中,运算符“+”、“>”、“*”、“&&”、“!
=”、“||”、“!
”和“/”的优先顺序:
、 、 、 、 、 、 、 。
16.若表达式(a+b)>c*2&&b!
=5||!
(1/2)中,a、b、c的定义和赋值为
int a=3,b=4,c=2;
则表达式的值为 。
17.将下列数学式改写成C语言的关系表达式或逻辑表达式是A) B) 。
A)a=b或a4
18.请写出与以下表达式等价的表达式是A) B) 。
A)!
(x>0) B)!
0
19.以下程序的输出结果是 。
main()
{ inta=0;
a+=(a=8);
printf("%d\n",a);
}
第四章 顺序结构程序设计
一、单选题
1.若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是
A)read(a,b,c) B)scanf(“%d%d%d”,a,b,c);
C)scnaf(“%D%D%D”,&a,&b,&C);D)scanf(“%d%d%d”,&a,&b,&c);
2.若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是
scanf(“%f %f %f”,&a,&b,&c);
A)10 B)10.0,22.0,33.0 C)10.0 D)10 22
22 22.0 33.0 33
33
3.已知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);
4.若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);printf("%d,%d\n",m,i);
}
执行后的输出结果是
A)8,6 B)8,3 C)6,4 D)7.4
5若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是
A)a=a+b,b=a-b,a=a-b; B)t=a;a=b;b=t;
C)a=t;t=b;b=a; D)t=b;b=a;a=t;
6.有以下程序
main()
{ inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出结果是
A)9,2 B)10,2 C)9,1 D)10,1
7.若变量已正确定义,以下程序段的输出结果是
x=5.16894;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
A)输出格式说明与输出项不匹配,输出无定值B)5.17000
C)5. D)5.
8.若有以下程序段,c3中的值是
int c1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
9.若有以下程序段,其输出结果是
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
A)0,0,-10 B)0,0,5 C)-10,3,-10 D)3,3,-10
10.当运行以下程序时,在键盘上从第一列开始,输入(此处表示Enter),则程序的输出结果是
main()
{ int a; float b, c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
}
A)a=98,b=765,c=4321 B)a=10,b=432,c=8765
C)a=98,b=765.,c=4321. D)a=98,b=765.0,c=4321.0
11.以下程序的输出结果是
main()
{ int a=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
}
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%dD)a=%d,b=%d
12.若int类型占两个字节,则以下程序段的输出是
int a=-1;
printf(“%d,%u\n”,a,a);
A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535
13.以下程序段的输出是
int x=496;
printf(“*%-06d*\n”,x);
A)*496 * B)* 496* C)** D)输出格式不合法
14.以下程序段的输出是
float a=3.1415;
printf(“|%6.0f|\n”,a);
A)|3.1415| B)| 3.0| C)| 3| D)| 3.|
15.以下程序段的输出是
printf(“|%10.5f|\n”,12345.678);
A)|2345.67800| B)|12345.6780| C)|12345.67800| D)|12345.678|
16.若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是
A)scanf(%f”,c) B)scanf(%8.4f”,&c); C)scanf(%6.2f”,&c); D)scanf(%8f”,&c);
17.若变量已正确说明,要求用以语句给a赋予3.12、给b赋予9.0,则正确的输入形式是
scanf(“a=%f,b=%f”,&a,&b);
A)3.12 9.0 B)a= 3.12b= 9C)a=3.12,b=9.0 D)a=3.12 ,b=9
18.以下程序的输出结果是
#include “math.h”
main()
{ double a=-3.0,b=2;
printf(“%3.0f %3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));
}
A)9 8 B)8 9 C)6 6 D)以上三个都不对
19.以下程序的输出结果是
main()
{ char c1=‘A’,c2=‘Y’;
printf(“%d,%d\n”,c1,c2);
}
A)因输出格式不合法,无正确输出B)65,90 C)A,Y D)65,89
20.以下程序段的输出结果是
main()
{ char x=‘A’;
x=(x>=’A’&&x<=’Z’)?
(x+32):
x;
printf(“%c\n”,x);
}
A)A B)a C)Z D)z
21以下程序段的输出结果是
main()
{ char ch1,ch2;
ch1=‘A’+‘5’-‘3’;
ch2=‘A’+‘5’-‘3’;
printf(“%d,%c\n”,ch1,ch2);
}
A)67,C B)B,C C)C,D D)不确定的值
22.若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是
scanf(“%f%c%f%c”,&a,&c1,&b,&c2);
A)2.0 % 4.0# B)2.0%4.0# C)2% 4# D)2%4#
23.以下程序的运行结果是
main()
{ inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
else c+=1;
printf(“%d\n”,c);
}
A)0 B)1 C)2 D)3
24.以下程序的输出结果是
main()
{ int w=4,x=3,y=2,z=1;
printf(“%d\n”,(ww:
zz:
x));
}
A)1 B)2 C)3 D)4
25.下列程序段的输出结果是
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A)无输出 B)12,123.5,12345.5
C)1234,123.5,12345.5 D)1234,123.4,1234.5
二、填空题
1.若有以下定义,请写出以下程序段中输出语句执行后的结果。
(1)
(2) (3)
int i=-200,j=2500;
printf(“
(1) %d %d”,i,j);
printf(“
(2) i=%d,j=%d\n”,i,j);
printf(“(3) i=%d\nj=%d\n”,i,j);
2.变量i、j、k已定义为int类型并赋初值0,用以下语句输入时
scanf(“%d”,&i); scanf(“%d”,&j); scanf(“%d”,&k);
当执行第一个输入语句时从键盘输入:
123 表示Enter键
则变量i、j、k的值分别是。
3.复合语句在语法上被认为是 。
空语句的形式是 。
4.以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 、 、 。
int k;flaot a; double x;
scanf(“%d%f%lf”,&k,&a,&x);
printf(“k=%d,a=%f,x=%f\n”,k,a,x);
5.以下程序段的输出结果是 。
int x=0177;
printf(“x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
6.以下程序段的输出结果是 。
double a=513.;