LL1007
C语言程序设计
江立
第二次书面作业
这里写名字
这里写学号
ANT
书面作业_7
请按下列要求,编写相应程序:
1、一个10个整数的数组(34,91,83,56,29,93,56,12,88,72),找出最小值和其下标。
2、用rand()函数产生100000个0-9之间的随机整数,分别统计0-9数字出现的次数,并输出对应的百分比。
(提示:统计次数用一维数组来存放)
3、将数组中的数按颠倒的顺序重新存放。
在操作时,只能借助一个临时存储单元而不得另外开辟数组。
注意:不是要求按颠倒的顺序打印数据,而是要求按逆序重新放置数组中的内容。
假定a 数组有8个元素,原始内容如表-1所示:
表-1 数组a 原来的内容
现要求改变成如表-2所示:
表-2
重新排列后的数组
a
请按下列要求,编写相应程序:
1、先分别定义两个元素个数分别为41和21的字符数组str1、str2,然后从键盘上输入两个长度不超过20的字符串分别存放到str1、str2中,再将str2内容连接到str1尾部(不使用strcat()函数),最后输出str1的字符串内容。
2、从键盘上输入一个字符串,假定字符串的长度小于200,试分别统计每一种英文字母(不区分大、小写)的个数并输出。
3、假定电文的译码规律如下:A→Z(a→z),B→Y(b→y),C→X(c→x),…,Z→A(z→a)。
要求编写程序,能实现将原文翻译成密码,或将密码翻译成原文的功能。
原文或密码内容从键盘输入,其所属类型(指原文或密码)也由键盘输入,0代表原文,1代表密码。
请按下列要求,编写相应程序:
1、定义一个求最大公约数函数intgcd(int x, int y),在主函数输入两个整数,然后调用gcd()输出这两个整数的最大公约数。
(编程思路参考第6讲课件例子)
2、定义一个将十进制数转换成十六进制数的函数void dec2hex(int n),该函数的功能是将参数中的十进制数以十六进制方式输出(编程思路参考第6讲课件例子)。
在主函数输入一个十进制整数,然后调用dec2hex()输出对应的十六进制数。
3、定义一个递归函数intsum_of_square(int n),计算表达式:12+22+32+…+n2的值。
在主函数中输入n值,通过调用sum_of_square() 输出结果。
请按下列要求,编写相应程序:
1、输入某一门课程多名学生的考试成绩,要计算该课程的平均分和方差。
具体要求如下:
(1)定义一个float 型的全局变量aver 来存放平均分;
(2)void array_input(int array[], int n)的功能是:输入数据存放到整型数组array 中参数n 是数组元素的个数;
(3) double calculate(int array[], int n)的功能是:计算课程的平均分存放到全局变量aver 中,再计算方差作为函数的返回值,方差计算公式:
为平均数其中x x n i i x n _
2_1
2
:)(1-=∑=σ (4)主函数的功能:定义一个是长度为10的整型数组,通过调用array_input()输入10名学生某一课程的成绩,再调用calculate( )计算平均分、方差,最后输出结果。
2、编写一个函数void func():该函数能输出是第几次调用函数。
主函数通过循环调用func()函数5次。
(提示:func()中可定义静态局部变量)
1.先定义一个结构体Student,它包含四个成员:学号(number)、姓名(name)、电话(telphone)、地址(address),然后定义一个结构体数组stu[3],输入3个学生的数据,再输出。
运行结果如下图所示,请编程实现相应功能。
2.要求与上一题相同,程序的数据输入、输出改用以结构体数组为参数的函数void input(struct Student stu[], int n)、void print(struct Student stu[], int n)来完成,在main()函数中调用这两个函数,以实现模块化程序设计。
1. 请编写函数fun(),其功能是:对传送过来的两个浮点数求出和值和差值(结果保留两位小数),通过形参传送回调用函数,形参用指针形式。
在main()函数中通过键盘输入的形式确定两个实参的值,并调用fun函数。
运行界面如下:
2. 请编写函数fun(),其功能是:对传送过来的三个浮点数选出最大值和最小值(结果保留两位小数),并通过形参传送回调用函数,形参用指针形式。
在main()函数中通过键盘输入的形式确定三个实参的值,并调用fun函数。
运行界面如下:。