程序设计基础C习题指导书文档格式.docx
《程序设计基础C习题指导书文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计基础C习题指导书文档格式.docx(126页珍藏版)》请在冰点文库上搜索。
2.设C源程序文件名为text.c,为得出该程序的运行结果,应执行的文件名是,此文件是通过产生的。
3.结构化程序由、、三种基本结构组成。
4.若k为整型变量且赋值11。
请写出运算k++后表达式的值和变量的值。
5.若x为double型变量,运算x=3.2,++x后表达式的值和变量的值。
6.函数体由符号开始,用符号结束。
函数体的前面是部分,其后是部分。
7.C语言中的标识符可分为、和预定义标识符三类。
8.在C语言程序中,用关键字定义基本整型变量,用关键字定义单精度实型变量,用关键字定义双精度实型变量。
9.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是。
10.C程序中定义的变量,代表内存中的一个。
11.表达式3.5+1/2的计算结果是。
12.写出数学表达式
三个等价的C语言表达式、、。
13.通常一个字节包含个二进制位。
14.当计算机用两个字节存放一个整数时,能存放的最大(十进制)整数是、最小(十进制)整数是。
15.在C语言中整数可用进制数、进制数和进制数三种数制表示。
16.C语言中,int型数据占个字节,long型数据占个字节,unsignedint型数据占个字节,short型数据占个字节,float型数据占个字节,double型数据占个字节,char型数据占个字节。
17.C语言规定,标志符只能由______、_______、________3种字符组成,而且,第一个字符必须是_______或_______。
18.C语言中,基本数据类型有________、_______和字符型。
19.‘x’在内存中占______字节,“x”在内存中占________字节,“\101”在内存中占______字节。
㈡.选择题
1.组成C语言程序的是()。
A.子程序B.过程C.函数D.主程序和子程序
2.以下叙述中正确的是()。
A.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。
B.C程序由主函数组成。
C.C程序由函数组成。
D.C程序由函数和过程组成。
3.以下选项中正确的整型常量是()。
A.12.B.-20C.1,000D.456
4.以下选项中正确的实型常量是()。
A.0B.3.1415C.0.329╳102D..871
5.以下选项中不合法的用户标识符是()。
A._123B.printfC.A$D.Dim
6.C语言中运算对象必须是整型的运算符是()。
A.%B./C.!
D.*
7.C语言中,#definePRICE2.56将PRICE定义为()。
A.符号常量B.字符常量C.实型常量D.变量
8.若变量已正确定义并赋值,符合C语言语法的表达式是()。
A.a=a+7;
B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b
9.不合法的八进制数是()。
A.0B.028C.077D.01
10.C语言中合法的字符常量是()。
A.nB.’\n’C.110D.“n”
11.表达式1/5+3%4+4.5/5的值是()。
A.3.9B.3.900000C.1.100000D.1.85
12.下面4个选项中,均是合法转义字符的选项是()。
A.'
\"
'
\\'
\n'
B.'
\'
\017'
'
C.'
\011'
\f'
\}'
D.'
\abc'
\101'
xlf'
13.设有语句:
charc=’\72’;
则变量c()。
A.包含1个字符B.包含2个字符C.包含3个字符'
D.不合法
14.在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
A.由用户自己定义B.均为2个字节
C.是任意的D.由所用机器的机器字长决定
㈢.判断题
1.一个C程序的执行是从本程序的第一个函数开始,到本程序文件的最后一个函数结束。
()
2.在C程序中,逗号运算符的优先级最低。
3.定义的变量都具有默认值,因此变量定义后便可以使用。
4.在C语言中,即使两个整型数据未超出该数据的取值范围,它们的和也可能会超出该数据的取值范围()。
㈣.程序设计题
1.编程输出下列图案
********
?
MENU?
$$$$$$$$
2.编写一个程序,将两个数作为输入数据,并显示它们的和、差、积、商。
应用篇
1.若采用十进制数的表示形式,则077为______,0111为______,0xab为_______。
2.设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确无误地存放在变量a中,应采用的类型说明语句是________。
3.若有定义语句:
intm=5,y=2;
则执行表达式y+=y-=m*=y后的y值是。
4.C程序是由构成的,一个C程序必须有一个。
1.已知各变量的类型说明如下:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下正确的表达式是()。
A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3) D.y=float(i)
2.以下正确的叙述是()。
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是整数还是实数,都能被准确无误的表示
D.在C程序中,%是只能用于整数运算的运算符
3.sizeof(float)是()。
A.一个双精度型表达式B.一个整型表达式
C.一种函数调用D.一个不合法的表达式
1.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变。
2.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
3.一个C程序可以有多个函数,其中主函数必须在程序的最开头()。
4.若有命令行:
#defineN1000,则N++是不合法的表达式()。
提高篇
1.若有定义语句:
inta=2,b=7;
floatx=3.5,y=2.5;
则表达式(float)(a+b)/2+(int)x%(int)y的值为______。
2.假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为______。
1.已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='
A'
+'
6'
-'
3'
后;
c2中的值为()。
A.DB.68C.不确定的值D.C
2.若有定义语句:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
A.2.500000B.2.750000C.3.5000000D.0.000000
3.设有说明语句:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型为()。
A.floatB.charC.intD.double
4.设有语句:
inta=3;
执行语句printf(“%d”,-a++);
后,输出的结果是()。
A.3B.4C.-3D.-12
第二章算法与顺序结构
1.算法:
为解决一个问题而采取的方法和步骤。
2.算法的分类:
数值算法、非数值算法。
3.算法的特点:
有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。
4.算法描述方法:
自然语言、流程图、改进流程图、N—S流程图、伪代码、计算机语言。
5.C语句的类型:
控制语句、函数调用语句、表达式语句、空语句、复合语句。
6.输入输出的概念:
输入输出是相对主机而言,C语言是由函数来实现输入输出的。
7.字符数据的输入/输出:
getchar()、putchar()。
8.格式输入/输出:
scanf()、printf()。
9.printf的格式符:
d、i,o,x、X,u,c,s,f,e、E,g、G;
l,m,n,-。
10.scanf的格式符:
l,m,*;
&
。
注意输入数据时数据流的分隔符,系统默认的分隔符为空格、tab键和回车。
11.顺序结构的设计思想:
声明变量、输入数据、处理(算法)、输出结果。
二.用N—S图表示下列问题
1.有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换。
2.依次将10个数输入,要求将其中最大的数打印出来。
3.有3个数a、b、c,要求按从大到小的顺序把它们打印出来。
4.求1+2+3+……+100。
5.判断一个数n能否同时被3和5除。
6.将100~200之间的素数打印出来。
7.求两个整数m和n的最大公约数(用辗转相除法)。
8.求方程ax2+bx+c=0的根;
分别考虑有两个不等的实根和有两个相等的实根的情况。
三.习题
1.以下程序段执行后的输出结果是:
⑴⑵
inti=-200,j=2500;
⑶
printf(“⑴%d%d”,i,j);
printf(“⑵i=%d,j=%d\n”,i,j);
printf(“⑶i=%d\nj=%d\n”,i,j);
2.复合语句在语法上被认为是。
空语句的形式是。
3.C语句的最后用结束。
4.以下程序段的输出结果是。
intx=0177;
printf(“x=%6d,x=%6o,x=%6x,x=%6u\n”,x,,x,x,x);
5.以下程序段的输出结果是。
doublea=513.789215;
printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n”,a,a,a,a);
6.以下程序段的输出结果是。
a=3+5,a*4;
x=11/3;
printf(“%d,%%d\n”,a,x);
7.以下程序输入三个整数值给a、b、c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。
请填空:
#include<
stdio.h>
main()
{inta,b,c,t;
printf(“Entera,b,c:
”);
scanf(“%d,%d,%d”,);
;
a=b;
b=c;
;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
8.以下程序不借助任何变量把a、b中的值进行交换。
{inta,b;
printf(“Inputa,b:
scanf(“%d,%d”,);
a+=;
b=a-;
a=a-;
printf(“a=%d,b=%d\n”,a,b);
9.已知inta=1;
printf("
%d\n"
'
a'
);
则输出结果是。
10.已知floata=3,b=2;
%f\n"
a/b);
11.结构化程序设计的3种基本结构是结构、结构和循环结构。
12.若x为int型变量,则执行语句x=7;
x+=x-=x+x;
后x的值是________。
13.C语句的最后用______结束。
14.设有一输入函数scanf(“%d”,k);
它不能使float类型变量k得到正确数值得原因是___________和_____________。
15.若已定义:
inta;
unsignedb;
longc;
语句:
a=-2;
b=a;
c=b;
则b中值为,c中值为。
16.若k为整型变量且赋值10。
请写出运算k++后表达式的值_____和变量的值_______。
17.复合语句在语法上被认为是_______,空语句的形式是_______。
18.有如下程序段:
设a为两个字节,inta=-1;
printf("
a1=%d,a2=%u"
a,a);
输出结果为:
_________。
1.若a、b、c、d都是int型变量且初始值为0,下列不正确的赋值语句是()。
A.a=b=c=100;
B.d++;
C.c+b;
D.d=(c=22)-(b++);
2.以下选项中不是C语句的是()。
A.{inti;
i++;
printf(“%d\n”,i);
}B.;
C.a=5,c=10D.{;
3.以下合法的C语言赋值语句是()。
A.a=b=58B.k=int(a+b);
C.a=58,b=58D.--i;
4.以下程序的输出结果是()。
A.0B.1C.3D.不确定的值
{intx=10,y=3;
printf(“%d\n”,y=x/y);
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”,&
6.若变量已正确定义,要将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;
a=t;
7.若变量已正确定义,以下程序段的输出结果是()。
A.输出格式说明与输出项不匹配,输出无定值
B.5.1700C.5.16800D.5.16900
x=5.16894;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
8.执行以下程序段后,c3中的值是()。
A.0B.1/2C.0.5D.1
intc1=1,c2=2,c3;
c3=c1/c2;
9.执行以下程序段后,其输出结果是()。
A.0,0,-10B.0,0,5C.-10,3,-10D.3,3,-10
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
10.以下程序的输出结果是()。
A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=%d,b=%d
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
11.若int型占两个字节,以下程序段的输出是()。
A.-1,-1B.-1,32767C.-1,32768D.-1,65535
inta=-1;
printf(“%d,%u\n”,a,a);
12.以下程序段的输出结果是()。
A.|3.1415|B.|3.0|C.|3|D.|3.|
floata=3.1415;
printf(“|%6.0f|\n”,a);
13.以下程序段的输出结果是()。
A.98B.89C.66D.以上三个都不对
math.h>
{doublea=-3.0,b=2;
printf(“%3.0f%3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));
14.若a为整型变量,则以下语句()。
A.赋值不合法B.输出值为-2C.输出为不确定值D.输出值为2
a=-2L;
printf(“%d\n”,a);
15.若有定义chars=‘\092’;
则该语句()。
A.使s的值包含1个字符B.定义不合法,s的值不确定
C.使s的值包含4个字符D.使s的值包含3个字符
16.若k、g均为int型变量,则下列语句的输出为()。
A.15B.16C.15D.16
6f70716f
k=017;
g=111;
printf(“%d\n”,++k);
printf(“%x\n”,g++);
17.已知字母a的ASCII十进制代码为97,执行下列语句后的输出为()。
A.b,cB.a--运算不合法,故有语法错误
C.98,cD.格式描述和输出项不匹配,输出无定值
chara=‘a’;
a--;
printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);
18.下列程序的输出为()。
A.27.000000B.27.500000C.28.000000D.28.500000
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(“%f\n”,x);
}
19.下列程序的输出结果是()。
A.18B.9C.-18D.-9
main(){inta=9;
a+=a-=a+a;
20.下列程序的输出结果是()。
A.0B.5C.1D.不确定值
main(){inta=7,b=5;
printf(“%d\n”,b=b/a);
21.下列程序的输出结果是()。
A.12B.11C.10D.9
main(){inta=011;
printf(“%d\n”,++a);
22.下列关于printf()函数的描述中,错误的是()。
A.该函数是标准格式输出函数
B.该函数参数表是由若干个表达式组成的
C.该函数控制串中的格式符的个数应与参数表中参数的个数相等
D.该函数参数表中各个参数的计算顺序一定是从左至右的
23.下列是输出显示字符’a’的八进制ASCII码语句,正确的是()。
A.printf("
%c\n"
B.printf("
C.printf("
%s\n"
D.printf("
%o\n"
24.在scanf()函数的格式说明符中,长整型数的输入格式说明符是()。
A.%dB.%lfC.%ldD.%x
25.在printf()函数的格式说明符中,双精度浮点型的输出格式说明符是()。
A.%ldB.%lfC.%cD.%s
26.将一个双精度浮点型常数12.345使用printf()函数输出显示在屏幕上,要求输出宽度为数值左边有2个空格符,小数点后面有4位数,正确的输出语句是()。
%9.4lf\n"
12.345);
%8.4lf\n"
%lf\n"
%9.4f\n"
27.putchar函数可以向终端输出一个()。
A.整型变量表达式的值B.实型变量的值
C.字符串D.字符或字符型变量的值
28.下列给出的分隔符中,错误的是()。
A.:
B.;
C.,D.?
29.以下选项不是C语句的是()。
A.{inta;
a++;
a);
C.{;
}D.b=5
30.若变量已正确定义,要将a和b的数进行交换,下面不正确的语句是()。
A.a=a+b,b=a-b,a=a-b;
B.t=a,a=b,b=t;
C.a=t;
t=b;
D.t=b;
a=t;
31.若变量已说明为int类型,要给a、b、c输入数据,正确的输入语句是()。
A.scanf("
%d%d%d"
a,b,c);
B.read(a,b,c);
C.scanf("
%D%D%D"
&
a,&
b,&
c);
D.scanf("
%d%d%d"
㈢.程序设计题
1.编写程序,从终端键盘输入圆的半径r,圆柱体的高h,分别计算出圆周长c1、圆面积cs和圆柱的体积cvs。
输出计算结果时要求有文字说明,并取小数点后2位数字。
2.输入一个华氏温度,要求输出摄氏温度。
公式为:
c=5(f-32)/9。
3.编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。
1.以下程序的输出结果是_________。
main()
{printf("
%f,%4.3f\n"
3.14,3.1415);
2.以下程序的输出结果是_________。
{charc='
x'
;
c:
dec=%d,oct=%o,hex=%x,ASCII=%c\n"
c,c