程序修改题(41-50)

第四十一题

题目

给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。

#include  <stdio.h>
typedef  struct  list
{  int  data;struct list  *next;
} LIST;
int fun(LIST *h)
{  LIST  *p;
/**********found**********/int  t;p=h;
/**********found**********/while( *p ){
/**********found**********/t=t+p.data;p=(*p).next;              }return  t;
}
main()
{  LIST  a, b, c, *h; a.data=34;  b.data=51;  c.data=87;  c.next='\0';h=&a;  a.next=&b;  b.next=&c;printf("总和 = %d\n",fun( h ));getchar();
}

解析

int  t=0;

while( p )

t=t+p->data;

第四十二题

题目

#include <stdio.h>
double fun( int m )
{double t = 1.0;int i;for( i = 2; i <= m; i++ )
/**********found**********/t = 1.0-1 /i;
/**********found**********/_______;
}main()
{int m ;printf( "\nPlease enter a number:\n" );scanf(  "%d", &m);printf( "\n\nThe result is %lf\n", fun( m ) );getchar();
}

解析

t = t-1.0 /i;

return t ;

第四十三题

题目

假定整数数列中的数不重复,并存放在数组中。给定程序modi1.c中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。

#include <stdio.h>
#define   N  20
int fun(int *a,int n,int x)
{   int   p=0,i;a[n]=x;while( x!=a[p] )p=p+1;
/**********found**********/if(P==n) return -1;else{ for(i=p;i<n-1;i++)
/**********found**********/a[i+1]=a[i];return n-1;}
}
main()
{  int  w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf("The original data :\n");for(i=0;i<n;i++) printf("%5d",w[i]);printf("\nInput x (to delete): "); scanf("%d",&x);printf("Delete  :  %d\n",x);n=fun(w,n,x);if ( n==-1 ) printf("***Not be found!***\n\n");else{  printf("The data after deleted:\n");for(i=0;i<n;i++) printf("%5d",w[i]);printf("\n\n");}getchar();
}

解析

if(p==n) return -1;

a[i]=a[i+1];

第四十四题

题目

给定程序modi1.c中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

#include <stdio.h>
#include <string.h>
#define    N   5
#define    M   81
/**********found**********/
fun(char  (*sq)[M])
{  int  i;     char  *sp;sp=sq[0];for(i=0;i<N;i++)if(strlen( sp)<strlen(sq[i]))sp=sq[i] ;
/**********found**********/return  sq;
}
main()
{  char   str[N][M], *longest;    int   i;printf("Enter %d lines :\n",N);for(i=0; i<N; i++) gets(str[i]);printf("\nThe N string  :\n",N);for(i=0; i<N; i++) puts(str[i]);longest=fun(str);printf("\nThe longest string :\n"); puts(longest);getchar();
}

解析

char* fun(char  (*sq)[M])

return  sp;

第四十五题

题目

给定程序MODI1. C中函数char *fun(char *s1, char *s2,char *r) 的功能是:将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。

如: s1是”723”,s2是”567", 则返回的字符串为”1290”。要考虑进位。

#include <stdio.h>
#include <string.h>
char *fun(char * s1,char *s2,char *r)
{int len,cy=0,md;char *p,*q,*t;len=strlen(s1);p=s1+len-1;q=s2+len-1;t=r+len;
/**********************found***********************/*t='\0';while(p>=s1){
/**********************found***********************/md=*p+*q-'0'+cy;if(md>=10)	cy=1;else	cy=0;*t=md%10+'0';p--;q--;t--;}
/**********************found***********************/if(cy=1)     *t='1';else{while(*r++=*++t);}return r;
}
void main()
{char s1[100],s2[100],s3[101];strcpy(s1,"65743");strcpy(s2,"85339");fun(s1,s2,s3);printf("%s+%s=%s\n",s1,s2,s3);
}

解析

*t='0';

md=(*p-'0')+(*q-'0')+cy;

if(cy==1)

第四十六题

题目

给定程序MODI1. C中,函数fun的功能是:统计形参str中所出现的大写字母的范围跨度,

即按字典序最前面的大写字母与最后面的大写字母ASCII值之差,并传递回主函数输出。若没有大写字母,则函数输出0。

例如: 若str的内容为”Baybye!Doom",其中大写字母为B和D,D与B之 差为2,函数返回2,程序输出2。

若str的内容为"M68C9Xaa”,其中字典序最前面的大写字母为C,最后面的大写字母为X,X与C之差为21,函数返回21,程序输出21。

#include <stdio.h>
#include <string.h> int fun(char* str) {  int k, c0, c1;c0 = c1 = -1;for (k=0; k<strlen(str); k++) if ( (str[k] >= 'A') && (str[k] <= 'Z') ) {  c0 = c1 = k;break;}if (c0 == -1)return 0;
/**********************found***********************/for (k=0; k<strlen(str)-1; k++) {
/**********************found***********************/if ( (str[k] >= 'A') || (str[k] <= 'Z') ) {if (str[k] < str[c0])c0 = k;if (str[k] > str[c1])c1 = k;}}
/**********************found***********************/return c1 - c0;
}int main()
{ char str[100];int l;printf("input string:");scanf("%s", str);l = fun(str);printf("span:%d\n", l);return 0;
}

解析

for (; k<strlen(str); k++) 

if ( (str[k] >= 'A') && (str[k] <= 'Z') ) 

return str[c1] - str[c0];

第四十七题

题目

#include <stdio.h>
/************found************/
fun ( int   m )
{double y = 0, d ;int    i ;/************found************/for( i = 100, i <= m, i += 100 ){d = (double)i * (double)i ;y += 1.0 / d ;}return( y ) ;
}main( )
{int  n = 2000 ;printf( "\nThe result is %lf\n", fun ( n ) ) ;getchar();
}

解析

double fun ( int   m )

for( i = 100; i <= m; i += 100 )

第四十八题

题目

给定程序modi1.c中,函数fun的功能是:统计子字符串substr在字符串str中出现的次数。

例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。

#include <stdio.h>int fun (char *str,char *substr)
{  int i,j,k,num=0;
/************found************/for(i = 0, str[i], i++)for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/If(substr[k+1]=='\0'){  num++;break;}return num;
}main()
{char str[80],substr[80];printf("Input a string:") ;gets(str);printf("Input a substring:") ;gets(substr);printf("%d\n",fun(str,substr));getchar();
}

解析

for(i = 0; str[i]; i++)

if(substr[k+1]=='\0')

第四十九题

题目

给定程序MODI1. C中,函数fun的功能是:从一个3行4列的矩阵中找出最大数及最大数所

在位置的下标,函数返回值为最大数,形参pRow和pCo1返回最大数所在位置的下标。

#include <stdio.h>int func(int (*p)[4], int m, int n, int *pRow, int *pCol)
{int i, j, max;
/**********found**********/max = *p;*pRow = 0;*pCol = 0;for (i=0;i<m;i++){for (j=0;j<n;j++){if ( *(*(p+i)+j) > max){max = *(*(p+i) + j);*pRow = i;
/**********found**********/*pCol = i + j;}}}
/**********found**********/return *max;
}int main()
{int aa[3][4] = {{1,3,5,7},{21,19,27,22},{11,17,18,20}};int maxVal, row, col;maxVal = func(aa, 3, 4, &row, &col);printf("%d %d %d\n", maxVal, row, col);return 0;
}

解析

max = **p;

*pCol = j;

return max;

第五十题

题目

给定程序MODI1. C中,函数void list (MYDATA *h)的功能是:列出带头结点单链表中所有

没有删除标记的数据。调用这个函数时,传给形参h的是指向单链表头结点的指针。

例如:当10个结点的数据为1,2,3,4,5,6, 7,8,9, 10时,输出将是:3 4 6 7 8 9 10。

其中,各个数据所对应的删除标记是由随机数产生的。

#include<stdio.h>
#include<stdlib.h>
typedef struct dat
{char deleted;	//是否删除:0-未删除,1-删除int data;struct dat* next;
} MYDATA;
void list(MYDATA *h)
{
/******found******/MYDATA  p;p=h->next;while(p!=NULL){/******found******/if(p->data==0){printf("%d  ",p->data);}
/******found******/p=next;}
}void creat(MYDATA *h,int *d,int n)
{MYDATA *p, *q;int i=0,del;q=h;while(n>0){p=( MYDATA *)malloc(sizeof(MYDATA));del=rand()%2;p->data=d[i];p->deleted=del;p->next=q->next;q->next=p;q=p;n--;i++;}
}
void main()
{MYDATA *head;int n=10,dd[]={1,2,3,4,5,6,7,8,9,10};head=(MYDATA *)malloc(sizeof(MYDATA));head->next=NULL;creat(head,dd,n);list(head);
}

解析

MYDATA  *p;

if(p->deleted==0)

p=p->next;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1536886.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构-扫描线】力扣57. 插入区间

给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表 intervals&#xff0c;其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束&#xff0c;并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示另一个区间的开始和…

李宏毅结构化学习 02

文章目录 一、上篇博文复习二、Separable Case三、Non-separable Case四、Considering Errors五、Regularization六、Structured SVM七、Cutting Plane Algorithm for Structured SVM八、Multi-class and binary SVM九、Beyond Structured SVM 一、上篇博文复习 图中x表示输入的…

Android Framework(六)WMS-窗口显示流程——窗口内容绘制与显示

文章目录 窗口显示流程明确目标 窗户内容绘制与显示流程窗口Surface状态完整流程图 应用端处理finishDrawingWindow 的触发 system_service处理WindowState状态 -- COMMIT_DRAW_PENDING本次layout 流程简述 窗口显示流程 目前窗口的显示到了最后一步。 在 addWindow 流程中&…

基于Python的自然语言处理系列(10):使用双向LSTM进行文本分类

在前一篇文章中&#xff0c;我们介绍了如何使用RNN进行文本分类。在这篇文章中&#xff0c;我们将进一步优化模型&#xff0c;使用双向多层LSTM来替代RNN&#xff0c;从而提高模型在序列数据上的表现。LSTM通过引入一个额外的记忆单元&#xff08;cell state&#xff09;来解决…

24.Redis实现全局唯一ID

是一种分布式系统下用来生成全局唯一ID的工具。 特点 1.唯一性 2.高可用 3.高性能 4.递增性&#xff0c;数据也要保持一种递增&#xff0c;有利于数据库进行查询。 5.安全性 全局唯一ID的生成策略 1.UUID(没有顺序&#xff0c;字符串类型&#xff0c;效率不高) 2.Redis…

【电路笔记】-差分运算放大器

差分运算放大器 文章目录 差分运算放大器1、概述2、差分运算放大器表示2.1 差分模式2.2 减法器模式3、差分放大器示例3.1 相关电阻3.2 惠斯通桥3.3 光/温度检测4、仪表放大器5、总结1、概述 在之前的文章中,我们讨论了反相运算放大器和同相运算放大器,我们考虑了在运算放大器…

floodfill算法(二)

目录 一、太平洋大西洋水流问题 1. 题目链接&#xff1a;417. 太平洋大西洋水流问题 2. 题目描述&#xff1a; 3. 解法 &#x1f334;算法思路&#xff1a; &#x1f334;算法代码&#xff1a; 二、扫雷游戏 1. 题目链接&#xff1a;529. 扫雷游戏 2. 题目描述&#xf…

softmax回归的从零实现(附代码)

softmax回归是一个多分类模型&#xff0c;但是他跟线性回归一样将输入特征与权重做线性叠加&#xff0c;与线性不同的是他有多个输出&#xff0c;输出的个数对应分类标签的个数&#xff0c;比如四个特征和三种输出动物类别&#xff0c;则权重包含12个标量&#xff08;带下标的w…

深度学习之线性代数预备知识点

概念定义公式/案例标量(Scalar)一个单独的数值&#xff0c;表示单一的量。例如&#xff1a;5, 3.14, -2向量 (Vector)一维数组&#xff0c;表示具有方向和大小的量。 &#xff0c;表示三维空间中的向量 模(Magnitude)向量的长度&#xff0c;也称为范数&#xff08;通常为L2范数…

HCIA--实验十六:ACL通信实验(2)

2.高级ACL配置 一、实验内容 1.需求/要求&#xff1a; 使用三台PC和一台交换机&#xff0c;在交换机上配置高级ACL&#xff0c;测试PC1、PC2、PC3间的连通性。 二、实验过程 1.拓扑图&#xff1a; 2.步骤&#xff1a; 1.给PC3配置ip地址&#xff1a; 2.给交换机SW3配置高…

Hello,Spring Boot...

今天开启了Spring Boot学习之旅。 首先就是&#xff0c;JDK、Maven、IDEA以及各种官网的下载、安装与配置 然后通过组件创建小类&#xff0c;最让人头痛的就是&#xff0c;这个spring-boot-starter-thymeleaf&#xff0c;下错版本了 其他的一切顺利&#xff0c;自动化明显 最后…

2024最新版mysql数据库表的查询操作-总结

序言 1、MySQL表操作(创建表&#xff0c;查询表结构&#xff0c;更改表字段等)&#xff0c; 2、MySQL的数据类型(CHAR、VARCHAR、BLOB,等)&#xff0c; 本节比较重要&#xff0c;对数据表数据进行查询操作&#xff0c;其中可能大家不熟悉的就对于INNER JOIN(内连接)、LEFT JOIN…

Learn ComputeShader 15 Grass

1.Using Blender to create a single grass clump 首先blender与unity的坐标轴不同&#xff0c;z轴向上&#xff0c;不是y轴 通过小键盘的数字键可以快速切换视图&#xff0c;选中物体以后按下小键盘的点可以将物体聚焦于屏幕中心 首先我们创建一个平面&#xff0c;宽度为0.2…

SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

SysML图例-农业无人机

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>>

dll修复工具4DDiG DLL Fixer,解决电脑dll丢失问题

4DDiG DLL Fixer是一款专业的DLL修复工具&#xff0c;旨在解决Windows系统中各种DLL相关问题。该工具能够快速全面地扫描计算机&#xff0c;检测并修复导致程序功能异常的DLL错误。它支持一键式操作&#xff0c;自动扫描、识别和替换缺失或损坏的DLL文件&#xff0c;从而帮助用…

推荐3款AIai论文大纲一键生成文献,精选整理!

在当前的学术写作环境中&#xff0c;AI论文大纲生成工具已经成为许多学者和学生的重要助手。这些工具不仅能够快速生成高质量的论文大纲&#xff0c;还能提供内容填充、文献引用和查重修改等全方位的服务。以下是三款值得推荐的AI论文大纲一键生成文献工具&#xff1a;千笔-AIP…

爬虫--翻页tips

免责声明&#xff1a;本文仅做分享&#xff01; 伪线程 from DrissionPage import ChromiumPage import timepage ChromiumPage() page.get("https://you.ctrip.com/sight/taian746.html") # 初始化 第0页 index_page 0# 翻页点击函数 sleep def page_turn():page…

C/C++语言基础--从C到C++的不同(下),15个部分说明C与C++的不同

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 1-10在上篇C/C语言基础–从C到C的不同(上&#xff09;&#xff1b;当然C和C的不同还有很多&#xff0c;本人暂时只总结这些&#xff0c;其他的慢慢更新&#xff1b;上一篇C/C语言基础–从C到C的不同(上&…

node.js 中的进程和线程工作原理

本文所有的代码均基于 node.js 14 LTS 版本分析 概念 进程是对正在运行中的程序的一个抽象&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;操作系统的其他所有内容都是围绕着进程展开的 线程是操作系统能够进行运算调度的最小单位&#xff0c;其是进程中的一个执…