C语言编程高手请来解决几道tc程序题

我们c语言期末考试 有一些题 就是写程序 对你们来说应该比较简单 我刚学这个不是特别懂 自己写的不确定
能帮我写一下么
我自己也写了 但是有的运行不成功 而且因为那些是考试题 老师不给我们讲 但考试必须又要过 不及格影响毕业学位证书 平时我钻研别的网络技术和软件测试了,c语言没有学的特别好,我现在心里没底 所以来请教高手
★在1月7晚上6点之前解决,我会把我所有的分能给的全部给,谢谢★

★题目在这里★(由于字数有限,我把剩下的题目发在下面的回答的2楼3楼上了大家记得看)
1、编写一函数,该函数的功能是统计一个班学生某门课程的平均成绩,并按照成绩的高低进行排序。要求在主函数中调用该函数。在主函数中输出该门课程的平均成绩并按照排序后的结果输出所有学生的成绩,同时找出高于平均分的学生人数。
要求:学生自己完成该函数的定义。注意函数的参数和返回值,若没定义该函数,而直接在主函数中实现上述功能则扣掉20分。

2、编写一函数,该函数的功能是可以计算任意一个整数的位数,并能输出该整数各个位上的数字。函数返回值为该任意整数的位数。在主函数中任意输入一个整数,调用该函数,输出该整数的位数及各个位上的数字。
要求:若没定义该函数,而在主函数中直接完成全部功能扣掉15分。

3、编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,统计满足条件的所有这些整数的个数并作为函数的返回值返回。在主函数中调用该函数,能够输出所有这些满足条件的数以及数目。
该函数原型为:int fun(int *a)

★题目在这里:★ (继续贴)我是楼主

第 1套
试题说明
***********************************
第一题(30分)
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据
域中的数据从小到大顺序链接。函数fun的功能是:把形参x的值放入一个新结点
并插入到链表中,插入后各结点仍保持从小到大顺序排列。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数fun的功能是:计算并输出k以内最大的10个能被13或
17整除的自然数之和。k的值由主函数传入, 若k的值为500, 则函数值为4622。
请改正程序中的错误,使程序能输出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
函数fun的功能是: 对指定字符在字符串a中出现的次数进行统计, 统计的数
据存到b数组中。其中: 字符'a'出现的次数存放到b[0]中,字符'b'出现的次数存
放到b[1]中,字符'c'出现的次数存放到b[2]中,字符'd'出现的次数存放到b[3]中,
字符'e'出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。
例如, 当a中的字符串为: "bacd1b+ddep",调用该函数后,b中存放数据应是:
1、2、1、3、1、3。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 2套
试题说明
***********************************
第一题(30分)
给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标
文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复
制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放
在变量tfname中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C的功能是:读入一行英文文本, 将其中每个单词的最后一个
字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
例如, 若输入I am a student to take the examination.,
则应输出"I aM A studenT tO takE thE examination."。
请改正程序中的错误, 使它能计算出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
编写函数fun, 它的功能是: 计算并输出下列级数和:
1 1 1
S = —— + —— + … + ———
1×2 2×3 n(n+1)
例如: 当n = 15时, 函数值为: 0.937500。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 3套
试题说明
***********************************
第一题(30分)
给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为
myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。
给定程序MODI1.C中函数 fun 的功能是: 计算并输出该数列前n项的平方根之和
sum。n的值通过形参传入。
例如, 当n=10时, 程序的输出结果应为: 23.197745。
请改正程序中的错误, 使程序能输出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
请编写一个函数fun (int *a,int n,int *odd,int *even),函数的功能是分
别求出数组a中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数;
利用odd返回奇数之和, 通过even返回偶数之和。
例如:a数组元素中的值依次为: 1, 9, 2, 3, 11, 6; 则通过odd返回奇数
之和24; 则通过even返回偶数之和 8。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 4套
试题说明
***********************************
第一题(30分)
给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到
文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显
示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数 fun 的功能是: 计算并输出high以内最大的10个素
数之和。high由主函数传给fun函数。
若high的值为100, 则函数的值为732。
请改正程序中的错误, 使程序能输出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
程序定义了N×N的二维数组, 并在主函数中自动赋值。请编写函数
fun(int a[][N]), 函数的功能是: 使数组上半三角元素中的值全部置成0。例如:
a数组中的值为
| 1 9 7 | | 0 0 0 |
a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 2 0 0 |
| 4 5 6 | | 4 5 0 |
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 5套
试题说明
***********************************
第一题(30分)
给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的
编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作
为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数fun的功能是: 求整数x的y次方的低3位值。例如,整
数5的6次方为15625, 此值的低3位值为625。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
函数fun的功能是: 把a数组中的n个数和b数组中逆序的n个数一一对应相加,
结果存在c数组中。
例如: 当a数组中的值是: 1、3、5、7、8,b数组中的值是: 2、3、4、5、8
调用该函数后, c数组中存放的数据是9、8、9、10、10
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 6套
试题说明
***********************************
第一题(30分)
给定程序功能是用冒泡法对6个字符串进行排序。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数 fun 的功能是: 实现两个整数的交换。
例如给a和b分别输入: 60 和 65, 输出为: a = 65 b = 60
请改正程序中的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
编写一个函数, 从所读入的若干个字符串(用****作为结束输入的标志)中找
出长度最大的一个字符串, 并输出该字符串。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 7套
试题说明
***********************************
第一题(30分)
给定程序的功能是将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。
例如, 若输入8和2, 则应输出1000(即十进制数8转换成二进制表示是1000)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中fun函数的功能是: 读入一个长度小于63个字符的英文句
子,将其中每个单词的最后一个字母改成大写,然后输出此句子 (这里的“单词”
是指由空格隔开的字符串)。
例如, 若输入
"I am a student to take the examination.",
则应输出"I aM A studenT tO takE thE examination."。
请修改程序中的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
程序定义了N×N的二维数组, 并在主函数中自动赋值。请编写函数
fun(int a[][N]), 函数的功能是:使数组中第一行元素中的值与倒数第一行元素
中的值对调、第二行元素中的值与倒数第二行元素中的值对调、……、其他依次
类推。例如: a数组中的值为
|0 11 12 7 9|
|1 9 7 4 5|
a = |20 13 18 3 1|
|14 5 6 8 2|
|15 9 17 4 1|
|15 9 17 4 1|
|14 5 6 8 2|
则返回主程序后a数组中的值应为 |20 13 18 3 1|
|1 9 7 4 5|
|0 11 12 7 9|
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 8套
试题说明
***********************************
第一题(30分)
给定程序的功能是将未在字符串s中出现、而在字符串t中出现的字符, 形成
一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。
例如: 当s="12345", t="24677"时, u中的字符为: "67"。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)

例如, 当k为10时, 函数值应为: 1.533852。
请改正程序中的错误, 使程序能输出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)

注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 9套
试题说明
***********************************
第一题(30分)
给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符形成一
个新的字符串放在u中, u中字符按原字符串中字符顺序排列, 不去掉重复字符。
例如: 当s = "112345", t = "2467"时, u中的字符串为"1135"。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数 fun 的功能是:将在字符串s中下标为偶数位置上的
字符, 紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现
的逆序排列。(注意0为偶数)
例如: 当s中的字符串为: "123456"时, 则t中的字符串应为: "553311"。
请改正程序中的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
编写函数fun, 它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然
数之和的平方根s, 并作为函数值返回。
例如: 若n为878时, 函数值应为: s = 134.465609。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 10套
试题说明
***********************************
第一题(30分)
给定程序的功能是将在字符串s中下标为奇数位置上的字符,紧随其后重复出
现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列。(注意0为
偶数)
例如: 当s中的字符串为: "1234567"时, 则t中的字符串应为: "664422"。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数 fun 的功能是: 通过某种方式实现两个变量的值交
换的操作, 例如变量a 中的值原为 8,b中的值原为3,程序运行后 a 中的值为 3,
b中的值为8。
请改正程序中的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
函数fun的功能是: 把a数组中的n个数的平方值,与b数组中逆序的n个数的平
方值一一对应相减, 结果存放在c数组中。
例如: 当a数组中的值是: 1、3、5、7、8, b数组中的值是: 2、3、4、5、8
调用该函数后, c中存放的数据是: -63、-16、9、40、60
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。

第 11套
试题说明
***********************************
第一题(30分)
给定程序的功能是将大写字母转换为对应小写字母之后的第五个字母; 若小
写字母为v~z, 使小写字母的值减21。转换后的小写字母作为函数值返回。例如,
若形参是字母A,则转换为小写字母f; 若形参是字母W, 则转换为小写字母b。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
***********************************
第二题(30分)
给定程序MODI1.C中函数 fun 的功能是:将在字符串s中下标为偶数位置上的
字符, 紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符的顺
序排列。(注意0为偶数)
例如: 当s中的字符串为: "12345"时, 则t中的字符串应为: "113355"。
请改正程序中的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
***********************************
第三题(40分)
函数fun的功能是: 把a数组中的n个数的平方值,与b数组中逆序的n个数的平
方值一一对应相乘, 结果存放在c数组中。
例如: 当a数组中的值是: 1、3、5、7、8, b数组中的值是: 2、3、4、5、8
调用该函数后, c中存放的数据是: 64、225、400、441、256
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-03
第一题:
#include "stdio.h"
float *Grade(float *num,int i) //用来冒泡排序 num传入数组指针,i传入数组个数
{
int j,k;
float temp;
for (j=0;j<i;j++)
for (k=0;k<i-j;k++)
{
if (num[k]<num[k+1])
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
return num;
}
void main()
{
float num[100];
int i=0,j=0,iavg=0; //i=数组个数,j=循环,iavg=高于平均成绩人数
float avg=0,sum=0; //avg=平均成绩,sum=总成绩
printf("请输入成绩,按Ctrl+D结束:");
while (scanf("%f",&num[i])) //循环输入成绩
{
sum+=num[i];
i++;
}
avg=sum/i;
printf("平均分为%.1f\n",avg);
Grade(num,i);
printf("所有学生的成绩为:");
for (j=0;j<i;j++)
{
printf("%.1f ",num[j]);
if (num[j]>avg)
iavg++;
}
printf("\n高于平均人数的有%d人\n",iavg);
}
第二题:
#include "stdio.h"
int digit(int i,int *dinum)
{
int j=0,k=0;
while (i=0) //计算位数
{
dinum[k]=i%10; //将数字存入数组
i=i/10;
j++;k++;
}
return j;
}
void main()
{
int inum,dinum[10],i,j; //inum=整数 dinum=存各个数字的数组 i,j=循环需要
printf("请输入整数:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("该整数为 %d 位\n",j);
printf("数字分别为:");
for (i=j-1;i>=0;i--)
{
printf("%d ",dinum[i]);
}
}
第三题:
#include "stdio.h"
int fun(int *a)
{
int i=1,j=0;
for (i;i<1000;i++)
{
if ((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return j;
}
void main()
{
int a[500],i,j;
j=fun(a);
for (i=0;i<j;i++)
{
printf("%d ",a[i]);
if (i%15==0)
printf("\n");
}
以上代码均在VC6.0中编译通过,现在1点了。后面的题以后再说本回答被提问者采纳
第2个回答  2009-01-06
★题目在这里:★ (继续贴)我是楼主

4、已知有10个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构体数组sell中。输出排序之前和排序后的记录。
5、编写递归函数实现两个数的最大公约数的求解。在主函数中任意输入两个整数,调用该递归函数。要求:必须使用递归函数,否则扣掉20分。

6、请编写一个函数void fun(char a[],int k,int n),其功能是:删除字符串中指定下标开始的n 个字符。其中,a指向字符串,k中存放指定的下标。例如,字符串内容为:Hellollo World!,k中值为:5,n中的值为:3,则调用该函数的结果为:Hello World!。编写一个函数int fun(char *str,char *substr),该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。在主函数中输入两个比较的字符串,通过调用该函数得到相应的输出结果。

7、用递归法将一个整数n转换成字符串。例如:输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。
要求:n是一个整数,不能用数组,否则扣掉20分。
必须使用递归函数,否则扣掉20分。

8、编写函数Squeeze(char s[],char c),功能是删除字符串s中所出现的与变量c相同的字符。在主函数中输入字符串和待删字符。调用该函数,并输出删掉字符以后的字符串。

9、编写程序,在键盘上输入任意多个字符串,输出其中最大的字符串。

10、已知学生的记录由学号和英语成绩、数学成绩构成,5名学生的数据已存入a结构体数组中。编程分别找出英语和数学成绩最高的学生记录,输出该学生的所有信息。
要求:必须使用结构体完成。否则扣掉20分。
多个学生的信息可以通过键盘输入,程序中有能够控制输入学生人数的语句,否则扣掉5分。
11、请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。要求:用户可以重复的输入字母来进行判断,并且程序可以在用户输入某些内容后可以停止。
第3个回答  2019-02-18
第一题:
#include
"stdio.h"
float
*Grade(float
*num,int
i)
//用来冒泡排序
num传入数组指针,i传入数组个数
{
int
j,k;
float
temp;
for
(j=0;javg)
iavg++;
}
printf("\n高于平均人数的有%d人\n",iavg);
}
第二题:
#include
"stdio.h"
int
digit(int
i,int
*dinum)
{
int
j=0,k=0;
while
(i=0)
//计算位数
{
dinum[k]=i%10;
//将数字存入数组
i=i/10;
j++;k++;
}
return
j;
}
void
main()
{
int
inum,dinum[10],i,j;
//inum=整数
dinum=存各个数字的数组
i,j=循环需要
printf("请输入整数:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("该整数为
%d
位\n",j);
printf("数字分别为:");
for
(i=j-1;i>=0;i--)
{
printf("%d
",dinum[i]);
}
}
第三题:
#include
"stdio.h"
int
fun(int
*a)
{
int
i=1,j=0;
for
(i;i<1000;i++)
{
if
((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return
j;
}
void
main()
{
int
a[500],i,j;
j=fun(a);
for
(i=0;i<j;i++)
{
printf("%d
",a[i]);
if
(i%15==0)
printf("\n");
}
以上代码均在VC6.0中编译通过,现在1点了。后面的题以后再说
第4个回答  2020-07-08
第一题:
#include
"stdio.h"
float
*Grade(float
*num,int
i)
//用来
冒泡排序
num传入
数组指针
,i传入数组个数
{
int
j,k;
float
temp;
for
(j=0;j
avg)
iavg++;
}
printf("\n高于平均人数的有%d人\n",iavg);
}
第二题:
#include
"stdio.h"
int
digit(int
i,int
*dinum)
{
int
j=0,k=0;
while
(i=0)
//计算位数
{
dinum[k]=i%10;
//将数字存入数组
i=i/10;
j++;k++;
}
return
j;
}
void
main()
{
int
inum,dinum[10],i,j;
//inum=整数
dinum=存各个数字的数组
i,j=循环需要
printf("请输入整数:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("该整数为
%d
位\n",j);
printf("数字分别为:");
for
(i=j-1;i>=0;i--)
{
printf("%d
",dinum[i]);
}
}
第三题:
#include
"stdio.h"
int
fun(int
*a)
{
int
i=1,j=0;
for
(i;i<1000;i++)
{
if
((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return
j;
}
void
main()
{
int
a[500],i,j;
j=fun(a);
for
(i=0;i
评论
0
0
加载更多
相似回答