C语言程序设计习题
第一章 程序设计基本概念
[1.1] 在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。 [1.2] C语言源程序文件的后缀是 ______, 经过编译后, 生成文件的后缀是 ______,经过连接后,生成文件的后缀是 ______。
[1.3] 结构化程序由 ____、 ____、 ____三种基本结构组成。
第二章 C程序设计的初步知识
一 、 选 择题
[2.1] 以下选项中正确的整型常量是
A) 12 B)-20 C)1,000 D)4 5 6
[2.2] 以下选项中正确的实型常量是
2
A) 0 B)3.1415 C)0.329*10 D).871
[2.3] 以下选项中不正确的实型常量是
A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2
[2.4] 以下选项中不合法的用户标识符是
A)abc.c B)file C)Main D)PRINTF
[2.5] 以下选项中不合法的用户标识符是
A)_123 B)printf C)A$ D)Dim
[2.6] C语言中运算对象必需是整型的运算符是
A)% B)/ C)! D)* *
[2.7] 可在C程序中用作用户标识符的一组标识符是
A)void B)as_b3 C)For D)2c
define _123 -abc DO
WORD If case SIG [2.8] 若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
[2.9] 以下叙述中正确的是
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。
[2.10] 以下叙述中正确的是
在C程序中无论整数还是实数,只要在允许的范围内都能准确无误的表示。 C程序由主函数组成。 C程序由函数组成。
C程序由函数和过程组成。
[2.11] TURBO C中int 类型变量所占字节数是
A)1 B)2 C)3 D)4
[2.12] 不合法的八进制数是
A)0 B)028 C)077 D)01
[2.13] 不合法的十六进制数是
A)oxff B)0Xabc C)0x11 D)0x19
二、填空题
[2.14] 若k为int整型变量且赋值11。请写出运算k++后表达式的值A)____和变量的值B)_____。
[2.15] 若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)________。
[2.16] 函数体由符号____开始,用符号_____结束。函数体的前面是_______部分,其后是_______部分。
[2.17] C语言中的标识符可分为________、________、和预定义标识符三类。 [2.18] 在C语言程序中,用关键字_________定义基本整型变量,用关键字________定义单精度实型变量,用关键字_______定义双精度实型变量。
[2.19] 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____________。 [2.20] C程序中定义的变量,代表内存中的一个_______。 [2.21] 表达式3.5+1/2的计算结果是________。
[2.22] 对以下数学式,写出三个等价的C语言表达式______、_____、______。 a?b
c
[2.23] 表达式s=10应当读做“________________”。
[2.24] 计算机中内存储器的最小存储单位称_________,其中能容纳的数是_________。 [2.25] 通常一个字节包含_______个二进制位。在一个字节中能存放的最大(十进制)整数是_____,它的二进制数的形式是___________;最小(十进制)整数是_______,它的二进制数的形式是______________。
[2.26] 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是_______、最小(十进制)整数是_____,它的二进制数的形式是________________。
[2.27] 在C语言中整数可用______进制数、_____进制数和_____进制数三种数制表示。
三、上机改错题(读者最好在TURBO C环境下上机试一试,以便熟悉出错信息)。
[2.28] 请指出以下C程序的错误所在 #include stdio.h;
main(); /* main function */
float r,s; /*/*r is radius*/,/*s is area of circular*/*/ r=5.0;
s=3.14159*r*r; printf(“ %f\\n”,s)
[2.29] 请指出以下C程序的错误所在 #include stdio.h
main /*main function*/
{ float a,b,c,v; /*a,b,c are sides, v is volume of cube*/ a=2.0;b=3.0;c=4.0 v=a*b*c;
printf(“ %f\\n” ,v) }
第三章 顺序结构
选择题
[3.1] 若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是
A)a=b=c=d=100; B)d++; C)c+b; D)d=(c=22)-(b++);
[3.2] 以下选项中不是C语句的是
A){int i; i++; printf(“%d\\n”,i);} B); C)a=5,c=10 D){ ; }
[3.3] 以下合法的C语言赋值语句是
A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;
[3.4] 以下程序的输出结果是
A)0 B)1 C)3 D)不确定的值 main( )
{ int x=10, y=3;
printf(“%d\\n”,y=x/y); }
[3.5] 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是
A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);
C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c);
[3.6] 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是
A)10 B)10.0,22.0,33.0 C)10.0 D)10 22
22 22.0 33.0 33 33
scanf(“ %f %f %f” ,&a,&b,&c);
[3.7] 若变量已正确定义,要将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;
[3.8] 若变量已正确定义,以下程序段的输出结果是
A) 输出格式说明与输出项不区配,输出无定值 B)5.17 C)5.168 D)5.169
X=5.16894;
Printf(“ %f\\n”,(int)(x*1000+0.5)/(float)1000);
[3.9] 若有以下程序段,c3中的值是
A)0 B)1/2 C)0.5 D)1
int c1=1,c2=2,c3; c3=c1/c2;
[3.10] 若有以下程序段,其输出结果是
A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3); printf(“ %d,%d,%d\\n”,a,b,c);
[3.11] 当运行以下程序时,在键盘上从第一列开始输入9876543210
A)a=98,b=765,c=4321 B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c=4321.0
main()
{ int a; float b,c;
scanf(“ -?O”,&a,&b,&c);
printf(“ \\na=%d,b=%f,c=%f\\n”,a,b,c); }
[3.12] 以下程序的输出结果是
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d main( )
{int a=2,b=5;
printf(“a=%%d,b=%%d\\n”,a,b);}
[3.13] 若int类型占两个字节,则以下程序段的输出是
A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535
int a=-1;
printf(“ %d,%u\\n”,a,a);
[3.14] 以下程序段的输出是
A)*496 * B)* 496* C)*000496* D)输出格式符不合法
int x=496;
Printf(“ *d*\\n”,x);
[3.15] 以下程序段的输出是
A)|3.1415| B)| 3.0| C)| 3| D)| 3.|
float a=3.1415;
Printf(“ |%6.0f|\\n”,a);
[3.16] 以下程序段的输出是
A)|2345.67800| B)|12345.6780| C)|12345.67800| D)|12345.678|
printf(“ |.5f|\\n”,12345.678);
[3.17] 以下程序段的输出是
A)*0000057.66* B)* 57.66* C)*0000057.67* D)* 57.67*
float a=57.666;
pirntf(“0.2f\\n”,a);
3.18若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是 A)scanf(“ %f”,c); B)scanf(“ %8.4f”,&c); B) scafn(“ %6.2f”,&c); D)scanf(“ %8”,&c); 283.1900
[3.19] 若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(Ц代表空格)
A)3.12ЦЦ9.0