编程题46-50

上传人:子 文档编号:41938217 上传时间:2018-05-31 格式:DOC 页数:31 大小:56KB
返回 下载 相关 举报
编程题46-50_第1页
第1页 / 共31页
编程题46-50_第2页
第2页 / 共31页
编程题46-50_第3页
第3页 / 共31页
编程题46-50_第4页
第4页 / 共31页
编程题46-50_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《编程题46-50》由会员分享,可在线阅读,更多相关《编程题46-50(31页珍藏版)》请在金锄头文库上搜索。

1、编程题编程题 46-5046-5046题目:学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序如 fill.c 给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include #define N 16typedef struct char num10;int s; STREC;void fun ( STREC a )main()STREC sN= “GA005“,85, “GA003“,76, “GA002“,69, “

2、GA004“,84,“GA001“,98, “GA007“,72, “GA008“,61, “GA006“,87,“GA015“,86, “GA013“,92, “GA012“,62, “GA014“,91,“GA011“,66, “GA017“,64, “GA018“,63, “GA016“,73;int i; FILE *out;fun ( s );printf (“The data after sorted :n“);for (i=0; i#include void fun(char *ss)void main( void )char tt51;clrscr();printf(“nPle

3、ase enter an character string within 50 characters:n“ );gets( tt );printf(“nnAfter changing, the stringn %s“, tt );fun(tt) ;printf( “nbecomes %sn“, tt );48题目:请编写函数 fun,其功能是:将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的百位和个位上。例如,当 a=45,b=12,调用该项函数后,c=4152。注意:部分源

4、程序如 fill.c 给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include #include void fun (int a, int b ,long *c)main ()int a,b;long c;clrscr ();printf (“Input a, b:“);scanf(“%d%d“, fun (a, b, printf (“The result is: %dn“, c);49题目:请编写函数 fun,其功能是:将 s 所指字符串中下标为偶数同时ASCII 值为奇数的字符删除,s 中剩余的字符形成的新串放在 t 所指

5、的数组中。例如,若 s 所指字符串中的内容为 ABCDEFG12345,其中字符 C 的ASCII 码值为奇数,在数组中的下标为偶数,因此必须删除;而字符 1 的 ASCII 码值为奇数,在数组中的下标也为奇数,因此不应当删除,其他依次类推。最后 t 所指的数组中的内容应是 BDF12345。注意:部分源程序如 fill.c 给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include #include #include void fun(char *s, char t)main ()char s100, t100;clrscr()

6、;printf(“nPlease enter string S:“);scanf(“%s“, s);fun(s, t);printf(“nThe result is : %sn“, t);50题目:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入a 结构体数组中。请编写函数 fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分) 。已给出函数的首部,请完成该函数。注意:部分源程序如 fill.c 给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include #include #includ

7、e #define N 10typedef struct sschar num10;int s; STU;void fun( STU a, STU *s ) main()STU aN=“A01“,81,“A02“,89,“A03“,66,“A04“,87,“A05“,77,“A06“,90,“A07“,79,“A08“,61,“A09“,80,“A10“,71, m;int i;clrscr();printf(“* The Original data *n“);for ( i=0; i#define N 16/* 定义学生记录的结构体信息 */typedef struct /* 学号 */ch

8、ar num10;/* 成绩 */int s; STREC;void fun ( STREC a )int i, j ;STREC t;/* 从第一个学生到倒数第二个学生逐个进行以下内循环的处理 */for (i=0; i=a/* p 指针指向 ss 字符串的第一个字符 */char *p=ss;/* 以下循环取得 ss 字符串的长度,n 用于计数 ss 字符串的长度 */* while(*p)是 while(*p !=0)的简写方式 */while(*p)/* p 指针每访问一个字符,n 加一 */n+;/* p 指针往后移动一个字符位置,准备访问下一个字符 */p+;/* 使用 for 循

9、环逐个处理所有字母 */for (i=0;i= amain ()int a,b;long c;/* clrscr 函数定义在 conio.h,所以存在#include */* clrscr 函数作用是清除输出窗口中已经存在的所有信息 */clrscr ();printf (“Input a, b:“);/* 使用 scanf 函数输入 a、b 的值 */scanf(“%d%d“, fun (a, b, /* 输出经过 fun 处理得到的整数 c */printf (“The result is: %dn“, c);49分析:题目要求编写函数 fun,其功能是:将 s 所指字符串中下标为偶数同时

10、 ASCII 值为奇数的字符删除,s 中剩余的字符形成的新串放在 t 所指的数组中。例如,若 s 所指字符串中的内容为 ABCDEFG12345,其中字符 C 的ASCII 码值为奇数,在数组中的下标为偶数,因此必须删除;而字符 1 的 ASCII 码值为奇数,在数组中的下标也为奇数,因此不应当删除,其他依次类推。最后 t 所指的数组中的内容应是 BDF12345。为了实现以上要求,我们必须使用循环逐个地检查字符串中的每一个字符,判断字符的下标是否为偶数,并且判断该字符的 ASCII码是否是奇数。只有满足以上两个条件,该字符才能被保留,拷贝到 t 所指的数组中,否则将被丢弃。官方答案注解如下:

11、#include #include #include /* fun 函数的作用是将 s 所指字符串符合条件的字符拷贝到 t 数组中 */void fun(char *s, char t)/* 使用定义在 string.h 中的 strlen 函数取得参数 s 字符串的长度 n */int i, j=0, n=strlen(s);/* 从下标为 0 的第一个字符到最后一个字符,逐个判断字符串s 的每一个字符 */for(i=0; i */* clrscr 函数作用是清除输出窗口中已经存在的所有信息 */clrscr();printf(“nPlease enter string S:“);/* 使

12、用 scanf 函数输入 s 字符串 */scanf(“%s“, s);fun(s, t);printf(“nThe result is : %sn“, t);50分析:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入a 结构体数组中。题目编写函数 fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分) 。已给出函数的首部,请完成该函数。为了实现以上要求,我们可以预先定义一个 max 变量用于保存在数组中发现的学生成绩的最高分数。然后将 max 与数组中所有其他的成绩进行比较大小,只要发现比 max 中的值更大的成绩就将该成绩覆盖 max 中的值,所

13、以我们假设数组第一个学生的成绩为最高成绩,将 max 初始化为数组第一个学生的成绩。当 max 与数组中所有成绩都比较结束之后,max 的值就是数组中的最高分数。官方答案注解如下:#include #include #include #define N 10/* 定义学生记录的结构体信息 */typedef struct ss/* 学号 *char num10;/* 学习成绩 */int s; STU;void fun( STU a, STU *s )int i, max ;/* 假设 a 数组的第一个元素的 s(即第一个学生的成绩)是最高成绩 */max=a0.s;/* 将 max 在 a

14、数组中逐个比较每一个学生的成绩,即 s 成员的值 */* 只要发现比 max 更大的成绩,则将该成绩覆盖 max */* 这样就能确保 max 中存放的是 a 数组中的所有学生的最高分数 */for(i=0;imax)max=ai.s;/* s 指向发现的目前 a 数组中成绩最高的学生记录 */*s=ai ; main()/* s 数组存放了 N 个学生信息,每一个学生记录保存学号和成绩两部分 */STU aN=“A01“,81,“A02“,89,“A03“,66,“A04“,87,“A05“,77,“A06“,90,“A07“,79,“A08“,61,“A09“,80,“A10“,71, m

15、;int i;/* clrscr 函数定义在 conio.h,所以存在#include */* clrscr 函数作用是清除输出窗口中已经存在的所有信息 */clrscr();printf(“* The Original data *n“);/* 输出 a 数组中所有学生的学号 num 和学习成绩 s */for ( i=0; iN; i+ ) printf(“N0=%s Mark=%dn“, ai.num,ai.s);fun ( a, printf(“* THE RESULT*n“);/* 输出 a 数组中成绩最高的学生记录 m 的学号 num 和学习成绩s */printf(“The top : %s , %dn“, m.num, m.s);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号