C语言作业及参考答案 下载本文

} 标题 描述 输入数据 输出数据 输入示例 6.9计算n! n大于12,小于300 输入一个大于12的整数 选做题* 输出有一到多行,每行输出n!的40位 80 输出示例 6558 int main( ) { int a[2800]={1,1}; int n,i,j,jinwei,chenji,weishu=1; scanf(\ for(i=2; i<=n; i++) {jinwei=0; for(j=1; j<=weishu+1||jinwei; j++) {chenji=a[j]*i+jinwei; a[j]=chenji; jinwei=chenji/10; } while(a[j]==0) j--; weishu=j; } for(i=weishu,j=0; i>0; i--) { printf(\ if(j@==0) printf(\ } printf(\ return 0; } 标题 6.10计算鞍点 选做题* 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在描述 该列上最小。也可能没有鞍点。 输入数据 输入一个5行6列二维数组 二个表示鞍点位置的行、列号 输出数据 没有鞍点输出none 7 6 15 4 3 2 2 7 9 4 3 1 输入示例 6 8 13 7 1 17 5 9 10 6 5 3 4 7 11 2 7 9 输出示例 2 3 #include int main() { int a[5][6]; int i,j,k,hang,lie; int find=0; for(i=0; i<5; i++) for(j=0; j<6; j++) scanf(\ for(i=0; i<5; i++) {k=0; for(j=0;j<6; j++) if(a[i][j]>a[i][k]) k=j; for(j=0;j<5;j++) if(a[j][k] int main( ) { int i, pos=0, word=0,start=0,maxlen=0; char string[81]; gets(string); for(i=0; string[i]!='\\0'; i++) if (string[i]==' ') { if(word==1&&i-start>maxlen) {pos=start; maxlen=i-start; } word=0; } else if(word==0) { word=1; start=i; } for(i=pos; string[i]!=' '&&string[i]!='\\0';i++) printf(\ return 0; } 标题 描述 6.12 字符串比较 输入两个字符串,比较这两个字符串的大小。比较时从头开始依次比较两个串的对应字符,如果都相同,输出0,否则输出不同处两个字符ASCII码的差。 输入数据 两个字符串 输出数据 一个整数 输入示例 asdfg asghd 输出示例 -3 提示 3组测试数据: br和bhj br和brg brg和br #include int main() { char s1[20],s2[20]; int i,cha=0; gets(s1); gets(s2); i=0; for(i=0;s1[i]&&s2[i]; i++) if(s1[i]!=s2[i]) break; cha=s1[i]-s2[i]; printf(\ return 0; } 书面作业: 1.输入10个整数,输出最小值及最小值的下标。

2.字符串复制。输入一个字符串,把它复制到一个字符数组中,并输出。 3.找出一个5*6的二维数组的鞍点。一个数组的鞍点是一个位置(行号,列号),该位置上的元素在该行值最大,在该列值最小.一个数组可能有一个鞍点,也可能没有鞍点。 4.字符分类统计。输入3行字符,分别统计其中英文大写字母、小写字母、数字、空格及其他字符的个数。

5.判断一个字符串是否是回文?如“abcba”(顺读和逆读相同)

6.折半查找。有15个数,按从小到大的顺序存放在一个数组中。输入一个数,查找该数是数组中的第几个数。如果该数不在数组中,则输出“找不到” 7.矩阵的乘法运算

8.用筛选法求素数。对于一个整数x,只要删去所有不超过sqrt(x)的素数p的所有倍数(不含p),剩下的就是不超过x的全部素数。 9.输入1000个0~50的整数,统计每个数出现的次数

10.公元元年元月元日(1年1月1日)是星期一,确定公元y年m月d日是星期几

11.A,B,C,D,E合伙夜间捕鱼,凌晨时都睡了。A第1个醒来,将鱼平分成5份,多余1条扔掉,回家了。B第2个醒来,将鱼平分成5份,多余1条扔掉,回家了;C、D、E依次醒来,按同样的方法分鱼。问5人至少合作捕到多少条鱼?每人醒来后看到多少条鱼? 12.完美立方。

问题描述:a^3= b^3+ c^3+ d^3为完美立方等式。例如123= 6^3+ 8^3+ 10^3。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),

使得a^3= b^3+ c^3+ d^3,其中1

输出:每行输出一个完美立方,按照a的值,从小到大依次输出。当两个完美立方等式中a的值相同,则依次按照b、c、d进行非降升序排列输出,即b值小的先输出、然后c值小的先输出、然后d值小的先输出。 #include int main() {

int n;scanf(\int i, cube[101];

for(i=0;i<=100;i++) cube[i]=i*i*i; int a,b,c,d;

for(a=2;a<=n;a++) for(b=2;b

if(cube[a] == cube[b]+cube[c]+cube[d])

printf(\return 0; }

13.给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 14.猜字游戏。计算机生成一个随机数,用户来猜。猜对数字但是位置不对用nB来表示,位置正确用nA表示。 例如随机数:2468

一猜:0123 0A,1B 二猜:1234 0A,2B 三猜:2345 1A,1B 四猜:2346 1A,2B 五猜:8346 0A,3B 六猜:2846 1A,3B 七猜:2486 2A,2B 八猜:2468 4A

15.A,B,C是小学老师,各教两门课,互不重复。共有6门课:语文、算术、政治、地理、音乐和美术。已知: (1)政治老师和算术老师是邻居 (2)地理老师比语文老师年纪大 (3)B最年轻

(4)A经常对地理老师和算术老师讲他看过的文学作品 (5)B经常和音乐老师、语文老师一起游泳

16.过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1968年10月28日=1968+10+28=2006。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只有一个人得奖,奖金都归这个人。如果有多于一个人得奖,则他们平分这笔钱。现在让我们来写一段程序算算都有哪些人得到了奖金?得到多少?

函数

上机作业: 标题 描述 7.1 折半查找 输入10个从小到大的数,再输入一个数x,用折半方法查找x在10个数中的位置(0-9),输出-1表示找不到. 输入数据 10个从小到大的整数和一个整数 输出数据 一个表示位置的数(-1至9) 输入示例 1 2 3 4 5 6 7 8 9 10 1 输出示例 0 提示 注意折半查找的方法 7.2找最大数 选作题* 标题 描述 输入数据 输出数据 输入示例 输出示例 提示 标题 描述 输入数据 输出数据 输入示例 输出示例 标题 描述 输入数据 输出数据 输入示例 输出示例 提示 标题 描述 输入数据 利用函数找出9个数的最大值.请设计一个函数找出9个数的最大值,在主函数中调用这个函数,输出最大值. 9个整数 1个表示最大值的整数 3 4 7 2 99 2 4 6 1 99 必须使用函数 7.3判断素数函数 写一个判素数的函数,在主函数输入一个整数,输出是否素数信息。 整数 YES或者NO 42 NO 7.4数组转置 无 输入一个4*4矩阵 无 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 5 ?9 13 2 6 10 14 3 7 11 15 4 8 12 16 使用=输出 7.5 百分制换算为等级分 选作题* 根据百分制得分给出等级分.设计一个函数根据百分制得分给出等级分,在主函数中调用这个函数 一个表示分数的整数