

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A C 语言程序设计教程(第三版)课后习题11.1定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。structint mai n()int days(i nt year,i nt mon th,i nt day);int s;scan f(%d %d %d, &tia n.year, &tia n.mo nth, &tia n.day);s=days(tia n. year,tia n.mon th,tia n. day);prin tf(%dn,s);int days(i nt year,i nt mon th,i nt day)inti=month,s,a13
2、=0,31,28,31,30,31,30,31,31,30,31,30,31,sum=0,leap,j;if(year%4=0)if(year%100=0)if(year%400=0)Ieap=1;elseleap=0;elseleap=1;elseleap=0;if(leap&i 2)for(j=1;ji;j+)sum=sum+aj;s=sum+day+1;elsefor(j=1;ji;j+)sum=sum+aj;s=sum+day;return(s);BC 语言程序设计教程(第三版)课后习题 11.3现有有 N 个学生的数据记录,每个记录包括学号、 三科成绩。 编写一个函数in put,用
3、来输入一个学生的数据记录。编写一个函数print,打印一个学生的数据记录。在主函数调用这两个函数,读取 N 条记录输入,再按要求输出。N100 【考虑用什么做函数的参数?结构体变量,还是指向结构体的指针变量,还是用结构体数组名?】非结构体做法#in cludeint mai n()int i,n;int a100,b100,c100;char e10081,f10081;scan f(%d,&n);for(i=1;i=n ;i+)scan f(%s%s%d%d%d,ei,fi,&ai,&bi, &ci);for(i=1;i=n ;i+)prin tf(%s,%s,%d,%d,%dn,ei,fi
4、,ai,bi,ci); return 0;C 结构体训练有 N 个学生,每个学生的数据包括学号、3 门课的成绩,从键盘输入 求打印出 3 门课的总平均成绩,以及最高分的学生的数据(包括学号、注意:刻画学生的数据类型必须用结构体类型。不能用多个数组解决#in clude int mai n()struct stuint num;char n ame20;int scorel;int score2;int score3;boy1024;int N,i,s,s1=0,s2=0,s3=0,max=0,c;float ave1,ave2,ave3;scan f(%d,&N);for(i=0;imax)m
5、ax=s;c=i;ave1=(s1*1.0)/(N*1.0);ave2=(s2*1.0)/(N*1.0);ave3=(s3*1.0)/(N*1.0);prin tf(%.Of %.0f %.0fn,ave1,ave2,ave3);prin tf(%d %s %d %d %dn,boyc. nu m,,boyc.score1,boyc.score2,boyc.sco re3);D 矩阵转置输入 N*N(N100)的矩阵,输出它的转置矩阵。#in cludeint mai n()int N,a100100,i,j,b100100;scan f(%dn,&N);for(i=0;iN
6、;i+)for(j=0;jN;j+)scan f(%d,&aij);for(i=0;iN;i+)for(j=0;jN;j+)bji=aij;for(i=0;iN;i+)for(j=0;jN-1;j+)prin tf(%d ”,bij); prin tf(%dn,biN-1);E 求矩阵的外围元素之和求矩阵的外围元素之和#in cludeint mai n()int a1010,i,j,N,s=0;scan f(%dn,&N);for(i=0;iN;i+)for(j=0;j=n=10,*=m=100) n 和 m 由键盘输入,并将这些素数存储到数组 a 中并输出(每个素数后面带一个空格)要求:(
7、 1 )编写如下接口的功能函数: int fun (int n ),该函数的功能是判断n 是不是素数。 若是,返回 1 ,若不是返回 0。( 2) main 函数去调用该功能函数#includeint fun(int n)int t;for(t=2;tn;t+)if(n%t=0)break;if(tn)return 0;else return 1;int main()int n,m,i,a90,j=0,b;scanf(%d,%d,&n,&m);for(i=n;i=m;i+)if(fun(i)=1)aj+=i;for(b=0;bj;b+)prin tf(%d ”,ab);G 编程题删除字符串中的
8、特殊符号指定字符串中仅包含字母(含大小写),空格和星号*,编写自定义函数fun,删除其中的*程序的主体框架已经提供在下面,可以直接复制粘贴到答题框。注意仅能改动注释之的容,注释外容不得修改,否则将被判违规。void fun( char *p)/* 注释 1 :答题请在本行与注释2 之间编写程序。本行注释不得删除*char *p1,*p2;for(p 仁 p2=p;*p1;p1+)if(*p1!=*)*p2+=*p1;*p2=0;return p;注释 2: 答题请在本行与注释 1 之间编写程序。 本行注释不得删除 intmain()char b1024;while(gets(b)!=0)fun
9、(b);printf(%sn,b);return 1;H 冒泡排序下列给定程序中函数 fun 的功能是:用冒泡法对 6 个字符串按由小到大的顺序进行排序。 请 改正程序中的错误, 使它能得出正确的结果。 注意:不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构 . 改错位置已经标注为 found ,所有改错只能在 found 附近修改。#include #include #define MAXLINE 20fun(char* pstr6)int i,j;char *p;for(i=0;i5;i+)*(pstr+i)=*(pstr+j);*(pstr+j)=p;int mai n
10、()*found*for(j=i+1;j0)p=*(pstr+i);*found*int i;char *pstr6,str6MAXLINE;for(i=0;i6;i+)pstri=stri;for(i=0;i6;i+)scanf(%s,pstri);fun(pstr);printf(The String after sorting:n);for(i=0;i6;i+)printf(%sn,pstri);return 0;I 2015C 二级考试无纸化操作题( 2)下列给定程序中,函数 fun 的功能是:把形参 a 所指数组中的最小值放在元素 aO 中,接着 把 a 所指数组中的最大值放在 a1
11、元素中;再把 a 所指数组元素中的次小值放在 a2中,把 a 所指数组元素中的次大值放在 a3,依此类推。 例如,若 a 所指数组中的数据最初排列 为:9, 1, 4, 2, 3,6, 5, 8, 7;则按规则移动后,数据排列为: 1, 9, 2, 8, 3, 7,4, 6,5。形参 n 中存放 a 所指数组中数据的个数。 规定 fun 函数中的max 存放当前所找的最大值, px 存放当前所找最大值的下标。 请在程序的下画线处填入正确的容并将下画线删除, 使程序得出正确的结果。 注意: 部分源程序给出如下。不得增行或删行,也不得更改程序 的结构 !void fun(char *p)/* 注释
12、 1 : 答题请在本行与注释 2 之间编写程序。本行注释不得删除*/char *p1,*p2;for(p1=p2=p;*p1;p1+)if(*p1!=*)*p2+=*p1;*p2=0;return p;/* 注释 2:答题请在本行与注释 1 之间编写程序。 本行注释不得删除 */int main()char b1024;while(gets(b)!=0)fun(b);printf(%sn,b);return 1;J 编辑部的故事( 1 )文艺青年杂志社对作者按字符数付稿酬。编辑部的编辑遇到一个烦心事,最近作者群中流行 “咆哮体”文书,一句话里带有很多个感叹号,而且咆哮体中经常混杂着“有木有”和
13、“尼玛”这样无用的词语,使得杂志的额外支 出大大增加。你需要帮助解决这一个问题,将文本中多个连续的感叹号,无用的“有木有” 和“尼玛”等无用的词。K 改错题39F 面程序中函数 fun 的功能是: 统计 p2 子字符串在 pl 所指的主字符串中出现的次数。请改正程序中的错误,使得它能得出正确结果#in elude int fun( char *p1,char *p2)int i,j,k,num=0;/* found */for(i=0;p1i;i+)return num;int mai n()char str80,substr80;gets(str);gets(substr);prin tf(
14、%d,fu n(str,substr);return 0;L 编程题33编写函数 fun,其功能是找出 MXN 的二维浮点数组中最大元素的值,将这个数输出。(M,N均小于 100)void fun( float *p,int M,i nt N)float mx=*(p+0);int i;for(i=0;i1024;i+)beginif(*(+P)mx)mx=*p;prin tf(%.4f,mx);int mai n()int a100100,M,N,i,j; sea nf(%d%d,&M,&N);for(i=0;iM;i+) for(j=0;jN;j+) scan f(%f,&aij);fun
15、(&aOO,M,N);return 0;M 第七章之找到第一名(1)某市进行了一次英语竞赛,一共有 N 个人报名参加(N1000000),按照报名顺序分别是 1 号N 号。英语竞赛的得分围是 0100 分,可能会有 0.5 分存在。现在给你 N 的值和按照 排列的得分,要求输出第一名的。若是有并列第一名则需要同属输出多个第一名的。* end#in cludeint mai n()int a100,N,i,max=0,n;scan f(N=%d,&N);for(i=0;imax)max=ai;for(i=0;iN;i+)if(max=ai)n=i+1;printf(%dn,n);N 第七章之删除
16、数组元素( 1 )输入 N个大小围在 0100 (含 0和 100)的整数(N100),并未排序且不重复。从中寻找一个指定的数的下标号(从 1 开始),从数组中删除, 并将剩余的数组容输出。#include int main()int n,a99,i,b;scanf(N=%d,&n);for(i=0;i=n-2;i+)scanf(%d,&ai);scanf(%d,&an-1); scanf(%d,&b);if(b!=n)for(i=0;i=b-2;i+)Printf(%d,ai);for(i=b;i=n-2;i+)printf(%d,ai);printf(%d,an-1);elsefor(i=
17、0;i=n-3;i+)printf(%d,ai);printf(%d,an-2);O 第七章之冒泡排序法(1)使用冒泡排序法对数组元素进行排序,要求输出每一趟排序后的数组容。数组大小 组元素定为正整型。#in cludeint mai n()int a1O,i=O,j, n,t,m;while(sca nf(%d,&ai)!=EOF) i+;n=i;for(i=0;i n-1;i+)for(j=0;j aj+1) N10,数t=aj;aj=aj+1;aj+1=t; prin tf(%d,aO);for(m=1;mn;m+)printf(,%d,am);printf(n);P 所有串长超过 k
18、的字符串中后面的字符删除函数 fun 的功能是:在形参 ss 所指字符串数组中,将所有串长超过 面的字符删除,只保留前面的 k 个字符。 ss所指字符串数组中共有串长小于 N(N=10) 。#include void fun(char ss11,int M,int k)/* your code start */int i=0;k(K=N)。的字符串中后M ( M=5)个字符串,且while(iM)ssik=0;i+;your code endint main()int M,k,i;char ss511;scanf(%d,&M);scanf(%d,&k);gets(ss0);for(i=0;iM
19、;i+)gets(ssi);fun(ss,M,k);for(i=0;iM;i+)puts(ssi);return 0;Q 字符串按长度由短到长进行排序函数 fun 的功能是:在形参 ss 所指字符串数组中,将所k(K=N)。的字符串中后M ( M=5)个字符串,且有串长超过 面的字符删除,只保留前面的 k 个字符。ss 所指字符串数组中共有 串长小于 N(N=10) 。#include#includevoid fun(char ss11,int M)char *ps5,*tp;int i,j,k;for(i=0;iM;i+) psi=ssi;for(i=0;iM-1;i+)k=i;for(j=
20、i+1;jstrle n(psj)k=j;tp=psi;psi=psk;psk=tp;for(i=0;iM;i+)puts(psi);int mai n() int M,i;char ss 511;scan f(%d,&M);gets(ssO);for(i=0;iM;i+) gets(ssi);fun( ss,M);R 补齐字符串函数 fun 的功能是:求出形参ss 所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M( M=5)个字符串,且串长小于 N。(N=10)#i nclude#in eludevoid fun(char ss11,i
21、nt M)int i,j,k=O, n, m,le n;for(i=0;in)n=len;k=i;for(i=0; i=0; j-)ssim-=ssij;for(j=0; j n _le n; j+)ssij=*;int mai n() int M,i;char ss 511;scan f(%d,&M);gets(ssO);for(i=0;iM;i+) gets(ssi);fun( ss,M);for(i=0;iM;i+) puts(ssi);S 每个单词的第一个字母改成大写读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里单词是指由空格隔开的字符串)。#in clude #in clude ctype.h#include string.h void upfst(char *p)*p=toupper(*p);P+;for(;*p;p+)if(*(p-1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45349-2025支持大规模定制生产的网络协同制造服务平台参考架构
- 持续进步的土木工程师试题及答案
- 重点解析:人力资源管理师考试试题及答案
- 健康管理师考试语言艺术的运用试题及答案
- 2025年度环保产业合作返点支持合同
- 二零二五年度书画艺术教育机构合作协议模板
- 2025年度知识产权运营保证金质押担保合同
- 2025年度解除房屋出租合同及租赁关系终止协议
- 前沿话题健康管理师考试试题及答案
- 二零二五年度房地产租赁市场房屋产权份额转让合同
- PLC应用技术课件 任务6. S7-1200 PLC控制电动机正反转
- 华能武汉发电限责任公司2025年度应届毕业生招聘高频重点模拟试卷提升(共500题附带答案详解)
- 16《大家排好队》第1课时 课件
- 2025年中国科协所属单位招聘19名应届生历年高频重点模拟试卷提升(共500题附带答案详解)
- 2024年镇江市高等专科学校高职单招职业适应性测试历年参考题库含答案解析
- 人教PEP版六年级下册Unit 3 Where did you go 单元整体教学设计
- 第十九章《一次函数》内容分析与教学建议
- 珍爱生命预防溺水 安全教育主题班会PPT课件
- 220kV架空送电线路铁塔拆除施工方案
- 空调制冷行业铜管钎焊作业指导书(共28页)
- 比例的应用评课
评论
0/150
提交评论