2013年上学期C语言作业.doc_第1页
2013年上学期C语言作业.doc_第2页
2013年上学期C语言作业.doc_第3页
2013年上学期C语言作业.doc_第4页
2013年上学期C语言作业.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2013年上学期C语言作业习题11.1 请根据自己的认识,写出C语言的主要特点。 C语言可以为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言具有绘图能力,并具有很强的数据处理能力,它是数值计算的高级语言。 1.2 C语言的主要用途是什么? 它和其他高级语言有什么异同? C语言主要用于程序的编程开发;和其它高级语言相比都采用符号形式,使人可以摆脱难用的二进制和具体的计算机细节,提供许多高级的程序结构,供编写人员用于组织复杂的程序。都是面向问题的语言独立于具体的机器,比较接近人的语言习惯,可以方便的表示数据的运算和程序控制结构,能更有效的描述各种算法。C语言具有绘图能力和可移植性有更强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。1.3 写出一个C程序的构成。 由程序名,预编译指令,标准输出输入头文件,c语言的主函数,函数开始标志,定义整型变量给变量赋值,并赋值给变量,输出结果,程序正常结束,函数结束标志。 1.4 C语言以函数为程序的基本单位,有什么好处? 函数是程序的基本组成单位,因此可以很方便地用函数作为程序模块来实现C语言程序。利用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性,而且还可以把程序中普通用到的一些计算或操作编成通用的函数,以供随时调用,这样可以大大地减轻程序员的代码工作量。习题22.1 请将c语言的数据类型和其他高级语言的数据类型做比较。c有哪些特点?数据类型丰富,具有现代语言的各种数据结构;能实现各种复杂的数据结构运算;使用方便灵活,较其他语言简单;便于程序的结构化,并节省内存。2.2 C语言为什么要规定对所有用到的变量要“先定义,后使用”。这样做有什么好处? 凡未被事先定义的,不作为变量名,这样能保证程序中变量名使用正确;每一个变量被指定一确定数据类型,在编译时就能为其分配相应的存储单元;指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法;变量要“先定义,后使用”,就是为了在内存的相应地址中开辟一个这个变量专用的空间,也是为了计算机在使用这个变量的时候可以方便地找到这个变量在内存中所在的位置,以便于下一步的操作。通俗点讲就是:给每个变量一个存储的位置,方便操作。2.3 请将下面各数用八进制和十六进制数(补码)表示:(1) 10 (2) 32 (3) 75 (4) -617(5) -111 (6) 2483 (7) -28654 (8) 21003 八进制:(1)12 (2)40 (3)113 (4)-627 (5)-1(6) (7)-10025 (8)十六进制:?字节占多少 2.4 将以下3个整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。变量的类型 25 -2 32769 int型(16位): 2500000000 00011001 -211111111 11111110 32769溢出long型(32位): 2500000000 00000000 00000000 00011001-211111111 11111111 11111111 11111110 32769000000000 00000000 10000000 00000001short型(16位): 2500000000 00011001-211111111 11111110 32769溢出signed char(8位):2500011001,-211111110,32769溢出unsigned int型:2500000000 00000000 00000000 00011001-2无 32769000000000 00000000 10000000 00000001unsigned long型2500000000 00000000 00000000 00011001-2无 32769000000000 00000000 10000000 00000001unsigned short型:2500000000 00011001-2无 3276910000000 00000001unsigned char型:2500011001,-2无,32769溢出 2.5 字符常量与字符串常量有什么区别?字符常量由单引号括起来,字符串常量由双引号来。字符常量只能是单个字符,字符串常量则可以含一个或多个字符。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言中没有相应的字符串变量。这是与BASIC 语言不同的。但是可以用一个字符数组来存放一个字符串常量。字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符0 (ASCII码为0)。这是字符串结束的标志。2.6 写出以下程序运行的结果。main() char c1=a,c2=b,c3=c,c4=101,c5=116; printf(a%c b%ctc%ctabcn,c1,c2,c3); printf(tb%c %c,c4,c5); aa bb cc abc A N 2.7 要将“china”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“a”后面第4个字母是“e”,用“e”代替“a”。因此,“china”应译为“glre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为c、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为g、l、r、e,并输出。#include void main ()char c1,c2,c3,c4,c5;c1=c,c2=h,c3=i,c4=n,c5=a;printf(%c%c%c%c%cn ,c1+4,c2+4,c3+4,c4+4,c5+4); 2.8 例2.6能否改成如下:ain() int c1,c2;(原为char c1,c2) c1=97; c2=98;printf(%c%cn,c1,c2);printf(%d %dn,c1,c2); 分析运行时会显示什么信息?为什么?ab 9798 因为int是数值整型,先输出c1再输出c2即9798,char是字符型.97,98分别是asc二的a和b2.9 求下面算术表达式的值。(1) x+a%3*(int)(x+y)%2/4 设x=25,a=7,y=472.5 ?(2) (float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=35,y=253.5 ?2.10 写出程序运行结果。main() int i,m,n; i=8; j=10; m=+i; n=+; printf(%d,%d,%d,%d,i,j,m,n); 9 11 9 102.11 写出下面表达式运算后a的值,设原来a=12。设a和n已定义为整型变量。(1) a+=a 24(2) a-=2 10(3) a*=2+3 60(4) a/=a+a 1/2(5) a%=(n%=2),n的值等于5 12(6) a+=a-=a*=a -144习题33.1 C语言中的语句有哪几类?C语句与其他语言中的语句有哪些异同?3.2 怎样区分表达式和表达式语句?C语言为什么要设表达式语句?什么时候用表达式,什么时候用表达式语句?3.3 C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?3.4 若a=3,b=4,c=5,x=12,y=24,z=-36,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=a or 97(ascii) c2=b or 98(ascii)3.5 请写出下面程序的输出结果:main() int a=5,b=7; float x=678564, y=-789124; char c=a; long n=1234567; unsigned u=65535; printf(%d%dn,a,b); printf(%3d%3dn,a,b); printf(%f,%fn,x,y); printf(%-10f,%-10fn,x,y); printf(%8.2f, %8.2f,%.4f,%.4f,%3f,%3fn,x,y,x,y,x,y); printf(%e,%102en,x,y); printf(%c,%d,%o,%xn,c,c,c,c); printf(%ld,%lo,%xn,n,n,n); printf(%u,%o,%x,%dn,u,u,u,u); printf(%s,%5.3sn,coMputer, coMputer); 3.6 用下面的scanf函数输入数据,使a=10,b=20,c1=a,c2=a,x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据?scanf(%5d%5d%c%c%f%f%*f,%f,&a, &b, &c1, &c2, &x, &y, &z);3.7设圆半径r=15,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。3.7 输入一个华氏温度,要求输出摄氏温度。公式为 c=5/9(f-32)输出要有文字说明,取2位小数。习题44.1 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) abc & b=c (2) a|bc & b-c (3) !(ab) & !c|1 (4) !(x=a) & (y=b) & 0 (5) !(ab)c-1 & bc24.2 有3个整数a、b、c,由键盘输入,输出其中最大的数。4.3 有一函数: x (x1) y = 2x-1 (1x10) 3x-11 (x10) 写一程序,输入x,输出y值。4.4 给一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为321,应输出123。4.5 企业发放的奖金根据利润提成。利润I低于或等于10万元的,奖金可提10;利润高于10万元,低于20万元(100000I200000)时,低于10万元的部分按10提成,高于100000元的部分,可提成75;200000I400000时,低于20万的部分仍按上述办法提成(下同)。高于20万元的部分5提成;400000I600000时,高于40万元的部分按3提成;600000I1000000时,高于60万的部分按15提成;I1000000时,超过100万元的部分按1提成。从键盘输入当月利润I,求应发奖金总数。要求:(1)用if语句编程序;(2)用Switch语句编程序。4.6 有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。见图5.16。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。习题55.1 输入两个正整数m和n,求其最大公约数和最小公倍数。5.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。5.3 求Sn=a+aa+aaa+aaa n个a之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。5.4 编写程序求1!+2!+3!+4!+20!。5.5 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。5.6 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:6itS factorS are 1,2,35.7 有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和。5.8 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。5.9 用迭代法求 。求平方根的迭代公式为要求前后两次求出的x的差的绝对值小于10-5。5.10 打印出以下图案。* * * * * * * * * * * * * * * * * * *习题66.1 用筛法求100之内的素数。6.2 用选择法对10个整数排序。6.3 求一个33矩阵对角线元素之和。6.4 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中6.5 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。6.6 打印出以下的杨辉三角形(要求打印出10行)。111121133114641151010516.7 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。6.8 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。6.9 有一行电文,已按下面规律译成密码:aZazbYbycXcx即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并打印出密码和原文。6.10 编一程序,将两个字符串连接起来,不要用Strcat函数。6.11 编一个程序,将两个字符串S1和S2比较,如果S1S2,输出一个正数;S1=S2,输出0;S1S2,输出一个负数。不要用Strcmp函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。例如,“a”与“c”相比,由于“a”“c”,应输出负数,由于“a”与“c”的ASCII码差值为2,因此应输出“-2”。同理:“and”和“aid”比较,根据第2个字符比较结果,“n”比“i”大5,因此应输出“5”。6.12 编写一个程序, 将字符数组 s2 中的全部字符拷贝到字符数组 s1 中。 不用 strcpy 函数。 拷贝时, 0也要拷贝过去。0后面的字符不拷贝习题77.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。7.2 求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c的值。7.3 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。7.4 写一函数,使给定的一个二维数组(33)转置,即行列互换。7.5 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。7.6 写一函数,将两个字符串连接。7.7 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。7.8 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。7.9 写一函数,输入一行字符,将此字符串中最长的单词输出。7.10 写一函数,用“起泡法”对输入的10个字符按由小到大顺序排列。7.11 用弦截法求根。方程为ax3+bx2+cx+d=0,系数a、b、c,d的值依次为1,2,3,4,的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。7.12 输入10个学生5门课的成绩,分别用函数求:每个学生平均分;每门课的平均分;找出最高的分数所对应的学生和课程;求平均分方差:=1nx2i-(xi/n)2,xi为某一学生的平均分。7.13 写几个函数:输入10个职工的姓名和职工号:按职工号由小到大顺序排序,姓名顺序也随之调整;要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。7.14 写一函数,输入一个十六进制数,输出相应的十进制数。7.15 给出年、月、日,计算该日是该年的第n天。习题8本章习题均要求用指针方法处理。8.1 输入3个整数,按由小到大的顺序输出。8.2 输入3个字符串,按由小到大的顺序输出。8.3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;进行处理;输出10个数。8.4 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。8.5 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少?8.6 写一函数,将一个33的矩阵转置。8.7 将一个55的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。用main函数调用。8.8 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。8.9 用指针数组处理上一题目,字符串不等长。8.10 将n个数按输入时顺序的逆序排列,用函数实现。8.11 有一个班4个学生,5门课。求第一门课的平均分;找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均成绩;找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。8.12 输入一个字符串,内有数字和非数字字符,如a123x456 17960?302taB5876将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a0,456放在a1统计共有多少个整数,并输出这些数。8.13 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为intstrcmp(char *p1,c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论