上学期C语言作业1.docx

上传人:b****4 文档编号:3934870 上传时间:2023-05-06 格式:DOCX 页数:12 大小:22.26KB
下载 相关 举报
上学期C语言作业1.docx_第1页
第1页 / 共12页
上学期C语言作业1.docx_第2页
第2页 / 共12页
上学期C语言作业1.docx_第3页
第3页 / 共12页
上学期C语言作业1.docx_第4页
第4页 / 共12页
上学期C语言作业1.docx_第5页
第5页 / 共12页
上学期C语言作业1.docx_第6页
第6页 / 共12页
上学期C语言作业1.docx_第7页
第7页 / 共12页
上学期C语言作业1.docx_第8页
第8页 / 共12页
上学期C语言作业1.docx_第9页
第9页 / 共12页
上学期C语言作业1.docx_第10页
第10页 / 共12页
上学期C语言作业1.docx_第11页
第11页 / 共12页
上学期C语言作业1.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

上学期C语言作业1.docx

《上学期C语言作业1.docx》由会员分享,可在线阅读,更多相关《上学期C语言作业1.docx(12页珍藏版)》请在冰点文库上搜索。

上学期C语言作业1.docx

上学期C语言作业1

2011年上学期C语言作业

习题1

1.1请根据自己的认识,写出C语言的主要特点。

1.2C语言的主要用途是什么?

它和其他高级语言有什么异同?

1.3写出一个C程序的构成。

1.4C语言以函数为程序的基本单位,有什么好处?

习题2

2.1请将c语言的数据类型和其他高级语言的数据类型做比较。

c有哪些特点?

2.2C语言为什么要规定对所有用到的变量要“先定义,后使用”。

这样做有什么好处?

2.3请将下面各数用八进制和十六进制数(补码)表示:

(1)10  

(2)32  (3)75  (4)-617

(5)-111(6)2483(7)-28654(8)21003

2.4将以下3个整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

变量的类型

 25-232769

 int型(16位)

 long型(32位)

 short型(16位)

 signedchar(8位)

 unsignedint型

 unsignedlong型

 unsignedshort型

unsignedchar型

2.5字符常量与字符串常量有什么区别?

2.6写出以下程序运行的结果。

    main()

{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",c4,c5);

}

2.7要将“china”译成密码,密码规律是:

用原来的字母后面第4个字母代替原来的字母。

例如,字母“a”后面第4个字母是“e”,用“e”代替“a”。

因此,“china”应译为“glmre”。

请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为‘c’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘g’、‘l’、‘m’、‘r’、‘e’,并输出。

2.8例2.6能否改成如下:

  main()

{intc1,c2;(原为charc1,c2)

c1=97;

c2=98;

printf("%c%c\n",c1,c2);

printf("%d%d\n",c1,c2);

分析运行时会显示什么信息?

为什么?

2.9求下面算术表达式的值。

 

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

  设a=2,b=3,x=3.5,y=2.5

2.10写出程序运行结果。

   main()

{inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

2.11写出下面表达式运算后a的值,设原来a=12。

设a和n已定义为整型变量。

(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

习题3

3.1C语言中的语句有哪几类?

C语句与其他语言中的语句有哪些异同?

3.2怎样区分表达式和表达式语句?

C语言为什么要设表达式语句?

什么时候用表达式,什么时候用表达式语句?

3.3C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?

3.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=‘a’,c2=‘b’。

想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

  要求输出的结果如下:

  a=3b=4c=5

x=1.200000,y=2.400000,z=-3.600000

x+y=3.60y+z=-1.20z+x=-2.40

u=51274n=128765

c1='a'or97(ascii)

c2='b'or98(ascii)

3.5请写出下面程序的输出结果:

    main()

{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");

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=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

请编程序。

3.7输入一个华氏温度,要求输出摄氏温度。

公式为c=5/9(f-32)

输出要有文字说明,取2位小数。

习题4

4.1写出下面各逻辑表达式的值。

设a=3,b=4,c=5。

  

(1)a+b>c&&b==c

(2)a||b+c&&b-c

(3)!

(a>b)&&!

c||1

(4)!

(x=a)&&(y=b)&&0

(5)!

(a+b)+c-1&&b+c/2

4.2有3个整数a、b、c,由键盘输入,输出其中最大的数。

4.3有一函数:

x (x<1)

y=2x-1 (1≤x<10)

3x-11 (x≥10)

写一程序,输入x,输出y值。

4.4给一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。

4.5企业发放的奖金根据利润提成。

利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000<I≤200000)时,低于10万元的部分按10%提成,高于100000元的部分,可提成7.5%;200000<I≤400000时,低于20万的部分仍按上述办法提成(下同)。

高于20万元的部分5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000<I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。

从键盘输入当月利润I,求应发奖金总数。

  要求:

(1)用if语句编程序;

(2)用Switch语句编程序。

4.6有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。

见图5.16。

这4个塔的高度为10m,塔以外无建筑物。

今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。

习题5

5.1输入两个正整数m和n,求其最大公约数和最小公倍数。

5.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

5.3求Sn=a+aa+aaa+…+aa…an个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之内的所有完数,并按下面格式输出其因子:

6itSfactorSare1,2,3

5.7有一分数序列

2/1,3/2,5/3,8/5,13/8,21/13,…

求出这个数列的前20项之和。

5.8猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,就只剩一个桃子了。

求第一天共摘多少桃子。

5.9用迭代法求。

求平方根的迭代公式为

 

要求前后两次求出的x的差的绝对值小于10-5。

5.10打印出以下图案。

*

***

*****

*******

*****

***

*

习题6

6.1用筛法求100之内的素数。

6.2用选择法对10个整数排序。

6.3求一个3×3矩阵对角线元素之和。

6.4已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中

6.5将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1。

要求改为1,4,5,6,8。

6.6打印出以下的杨辉三角形(要求打印出10行)。

1

11

121

1331

14641

15101051

………………

6.7找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

6.8有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

6.9有一行电文,已按下面规律译成密码:

a→Za→z

b→Yb→y

c→Xc→x

……

即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。

非字母字符不变。

要求编程序将密码译回原文,并打印出密码和原文。

6.10编一程序,将两个字符串连接起来,不要用Strcat函数。

6.11编一个程序,将两个字符串S1和S2比较,如果S1>S2,输出一个正数;S1=S2,输出0;S1

不要用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’后面的字符不拷贝

习题7

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。

7.2求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根并输出结果。

从主函数输入a、b、c的值。

7.3写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。

7.4写一函数,使给定的一个二维数组(3×3)转置,即行列互换。

7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

7.6写一函数,将两个字符串连接。

7.7写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。

如输入1990,应输出“1990”。

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门课的成绩,分别用函数求:

①每个学生平均分;②每门课的平均分;③找出最高的分数所对应的学生和课程;④求平均分方差:

σ=1n∑x2i-(∑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写一函数,将一个3×3的矩阵转置。

8.7将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。

用main函数调用。

8.8在主函数中输入10个等长的字符串。

用另一函数对它们排序。

然后在主函数输出这10个已排好序的字符串。

8.9用指针数组处理上一题目,字符串不等长。

8.10将n个数按输入时顺序的逆序排列,用函数实现。

8.11有一个班4个学生,5门课。

①求第一门课的平均分;②找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生。

分别编3个函数实现以上3个要求。

8.12输入一个字符串,内有数字和非数字字符,如a123x45617960?

302taB5876将其中连续的数字作为一个整数,依次存放到一数组a中。

例如,123放在a[0],456放在a[1]…统计共有多少个整数,并输出这些数。

8.13写一函数,实现两个字符串的比较。

即自己写一个strcmp函数,函数原型为int strcmp(char*p1,char*p2);设p1指向字符串S1,p2指向字符串S2。

要求当S1=S2时,返回值为0,若S1≠S2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14)。

如果S1>S2,则输出正值,如S1<S2,则输出负值。

8.14编一程序,打入月份号,输出该月的英文月名。

例如,输入“3”,则输出“March”,要求用指针数组处理。

8.15用指向指针的指针的方法对5个字符串排序并输出。

8.16用指向指针的指针的方法对n个整数排序并输出。

要求将排序单独写成一个函数。

5个整数和n在主函数中输入。

最后在主函数中输出。

习题9

9.1定义一个结构体变量(包括年、月、日)。

计算该日在本年中是第几天?

注意闰年问题。

9.2写一个函数days,实现上面的计算。

由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。

9.3编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num、name、score[3],用主函数输入这些记录,用print函数输出这些记录。

9.4在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。

9.5有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。

9.7写一函数free,将上题用new函数占的空间释放。

free(p)表示将p(地址)指向的单元以后的内存段释放。

9.8已有a、b两个链表,每个链表中的结点包括学号、成绩。

要求把两个链表合并,按学号升序排列。

9.9有两个链表a和b,设结点中包含学号、姓名。

从a链表中删去与b链表中有相同学号的那些结点。

9.10建立一个链表,每个结点包括:

学号、姓名、性别、年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2