习题一【习题1-1】C语言源程序最多可能由________________部分组成?A)预处理部分B)变量说明部分C)函数原型声明部分D)函数定义部分【习题1-2】一个完整的C语言源程序最少必须有_______。A)若干个主函数B)若干个函数C)且只能有一个主函数D)一个函数【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。A)程序设计结构化B)程序设计模块化C)程序设计简单化D提高程序设计有效性【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过_______________________________________。A)编辑和链接B)编译和链接C)修改和运行D运行并输入数据【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?从中了解程序的开发过程。习题二一、单项选择题【习题2-1】已知’A’的ASCII代码是65,以下程序的输出结果是()#includestdio.hmain(){intc1=65,c2=66;printf(%c,%c,c1,c2);}A.因输出格式不合法,输出错误信息B.65,66C.A,BD.65,66【习题2-2】若变量已正确定义,要将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;【习题2-3】若k是整型变量,则以下程序段的输出是()k=-8567;printf(“|%d|\n”,k);A.输出格式不正确B.输出为|008567|C.输出为|8567|D.输出为|-8567|【习题2-4】下列可作变量的标识符是()A.3rtB.je_cC.$89D.a+6【习题2-5】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母或下划线B.必须为下划线C.必须为字母D.可以是字母、数字和下划线中的任一种字符【习题2-6】C语言并不是非常严谨的算法语言,在以下关于C语言的不严谨的叙述中,错误的说法是()A.大写字母和小写字符的意义相同B.有些不同类型的变量可以在一个表达式中运算C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D.同一个运算符号在不同的场合可以有不同的含义二、简答题【习题2-7】C语言数据类型有哪几类?基本数据类型包括哪几类?【习题2-8】C语言中十进制、八进制和十六进制整常量是如何表示的?【习题2-9】C语言为什么规定对所用到的变量“先定义,后使用”,这样做有什么好处?【习题2-10】C语言中的语句有几类?控制语句有哪些?【习题2-11】怎样区分表达式和表达式语句?为什么有人称C为表达式语言?【习题2-12】字符常量与字符串常量有什么区别?【习题2-13】下面各数用八进制和十六进制数表示:(1)10(2)32(3)75(4)-617(5)-111(6)2483(7)-28654(8)21003三、阅读程序写结果或填空【习题2-14】写出以下程序的运行结果:#includestdio.hmain(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf(a%cb%c\tc%c\tabc\n,c1,c2,c3);printf(\t\b%c%c\n,c4,c5);}【习题2-15】写出以下程序的运行结果:#includestdio.hmain(){intn=177;printf(%o\n,n);}【习题2-16】写出以下程序的运行结果:#includestdio.hmain(){inta,n=0;n+=(a=10);printf(%d\n,a);}【习题2-17】写出以下程序的运行结果:#includestdio.hmain(){inta=5,b=7;floatx=67.8564,y=-789.124;charc='A';longn=1234567;unsignedu=65535;printf(%d%d\n,a,b);printf(%3d%3d\n,a,b);printf(%f,%f\n,x,y);printf(%-10f,%-10f\n,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n,x,y,x,y,x,y);printf(%e,%10.2e\n,x,y);printf(%c,%d,%o,%x\n,c,c,c,c);printf(%ld,%lo,%x\n,n,n,n);printf(%u,%o,%x,%d\n,u,u,u,u);printf(%s,%5.3s\n,COMPUTER,COMPUTER);}【习题2-18】写出以下程序的运行结果:#includestdio.hmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(%d,%d,%d,%d,i,j,m,n);}【习题2-19】下面运算表达式的值是:x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7【习题2-20】下面运算表达式的值是:(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5【习题2-21】写出下面赋值表达式运算后a的值,设原来a=12;(1)a+=a(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a【习题2-22】数学表达式:-5x5用C语句如何表达?x5或x-5又是如何表达?请写出相应的C语句。四、编写程序题【习题2-23】设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积(4πR2)、圆球体积(V=4πR³/3)、圆柱体积。用scanf()输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编写程序。【习题2-24】输入一个华氏温度,要求输出摄氏温度。公式为c=59(F-32),输出要有文字说明,取2位小数。【习题2-25】编程序,用getchar()函数读入两个字符给cl、c2,然后分别用putchar()函数和printf()函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整型?抑或二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符变量是否在任何情况下都可以互相代替?如“charc1,c2;”与“intcl,c2;”是否无条件地等价?【习题2-26】编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。输出计算结果要求有文字说明,并取小数点后两位数字。【习题2-27】编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。习题三一、单项选择题【习题3-1】“基本结构”不具有以下特点()A.只有一个入口,只有一个出口B.没有死循环C.没有永远执行不到的语句D.不允许退出循环【习题3-2】在流程图中,菱形框表示的操作是()A.数据的输入输出B.程序的开始C.条件判断D.赋值【习题3-3】以下程序的运行结果是()#includestdio.hmain(){intm=5,n=10;printf(%d,%d\n,m++,--n);}A.5,9B.6,9C.5,10D.6,10【习题3-4】逻辑运算符两侧的数据类型()A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据【习题3-5】下列关系表达式结果为假的是()A.0!=1B.2=8C.(a=2*2)==2D.y=(2+2)==4【习题3-6】下列运算符中优先级最低的是()A.?:B.+=C.=D.==【习题3-7】写出下面各逻辑表达式的值。设a=3,b=4,c=5。a+bc&&b==ca||b+c&&b-c!(ab)&&!c||1!(x=a)&&(y=b)&&0!(a+b)+c-1&&b+c/2二、简单题【习题3-8】什么是算法?算法有哪些特性?从日常生活中举出几个算法的例子。【习题3-9】算法有哪些描述方法?各有什么优缺点?【习题3-10】结构化的算法有哪几种结构?试分别描述。【习题3-11】选择语句和循环语句对条件的判断的标准是什么?(即何值为真、何值为假?)三、用传统流程图表示求解以下问题的算法。【习题3-12】有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反);【习题3-13】依次将10个数输入,要求将其中最大的数打印出来;【习题3-14】有三个数a、b、c,要求按大小顺序把它们打印出来;【习题3-15】求1+2+3+…+100;【习题3-16】判断一个数n能否同时被3和5整除;【习题3-17】将100~200之间的素数打印出来;【习题3-18】求两个数m和n的最大公约数;【习题3-19】求方程式ax2+bx+c=0的根(a、b、c从键盘输入)。四、编写程序题【习题3-20】有一函数100)(x11-3x10)x(11-2x1)(xxy写一程序,输入x,输出y值。【习题3-21】给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。【习题3-22】企业发放的奖金根据利润提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000I≤200000)时,低于10万元的部分按10%提成,高于100000元的部分,可提成7.5%;200000I≤400000时,低于20万元的部分仍按上述办法提成(下同)。高于20万元的部分按5%提成;400000I≤600000时,高于40万元的部分按3%提成;600000I≤1000000时,高于60万元的部分按1.5%提成。从键盘输入当月利润I,求应发奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。【习题3-23】输入4个整数,要求按从小到大的顺序输出。【习题3-24】输入两个正整数m和n,求其最大公约数和最小公倍数。【习题3-25】输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。【习题3-26】编写程序实现功能:输入整数a和b,若a2+b2100,则输出a2+b2之和的百位以上的数字,否则直接输出a2+b2的和。【习题3-27】编写程序判断输入的正整数是否既是5又是7的整数倍。若是则输出“yes”,否则输出“no”。【习题3-28】编写程序实现功能:根据表3-1的函数关系,对输入的每个x的值,计算出相应的y值。表3-1习题3-28的函数关系xyx000x≤10x10x≤201020x40-0.5x+20【习题3-29】编写程序实现,输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:(1)同时被3、5、7整除;(2)能被其中两个数整除(要指出是哪两个数);(3)能被其中一个数整除(要指出是哪个数);(4)不能被3、5、7中任意一个整数整除。【习题3-30】用switch编程实现以下函数关系:【习题3-31】编写程序,用switch实现:对于给定的百分制成绩,改成相应的A、B、C、D、E表示,90分以上为A,80~89为B,70~79为C,60~69为D,60以下为E。【习题3-32】编写程序实现功能:输入一个复数,输出其共轭复数,如,输入2+3i回车,输出2-3i。【习题3-33】求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。-1(x0)y0(x=0)1(x0)【习题3-34】求201n!n(即求1!+2!+3!+