C++程序填空题!大一水平,谢谢!

Q1:下面程序的功能在字符串str中找出最大的字符并放在第一位置上,并将该字符前的原字符往后顺序移动,如“fdswab”变成“wfdsab”#include<stdio.... Q1:下面程序的功能在字符串str中找出最大的字符并放在第一位置上,并将该字符前的原字符往后顺序移动,如“fdswab”变成“wfdsab”
#include <stdio.h>
#include <string.h>
void main()
{
char str[80],*p,max,*q;
p=str;gets(p);max=*(p++);
while(*p!='\0')
{
if(max<*p){max=*p;_____①______;}
p++;
}
p=q;
while(____②_____){*p=*(p-1);_____③_____;}
*p=max;
puts(p);
}

Q2:检查字符串S中左右括号使用是否合法;左括号“(”和右括号“)”的个数必须相等且在任何位置处左右括号个数都要相等或者左括号的个数大于右括号的个数。如满足上述条件,则输出OK,否则输出ERROR
#include "stdio.h"
void main()
{
char s[80],*sp=s;
int light=0,right=0,flag=1;
gets(s);
while(*sp!='\0')
{if(*sp=='(')light++;
else if(*sp==')'
{
right++;
if(_____①____){______②______;break;}
}
______③______;
}
if (light!=right)_________④__________;
if(flag)printf("ok");
else printf("error");
}

Q3:下面程序中的函数int find(int a[],int n,int *k)的功能是:求一维数组a的前n个元素中最大元素的值及其所在的位置,并把他们返回给主调函数。
#include <stdio.h>
void main()
{
int i,k,max;
int find(int a[],int n,int *k);
int a[10]={3,9,4,1,7,6,-10,10,-5,2};
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
max=______①______;
printf("最大值=%d,最大值是数组a的第%d个元素\n",max,k);
}
int find(int a[],int n,int *k)
{
int i,max;
max=a[0];*k=0;
for(i=1;i<n;i++)
if(_____②____){max=a[i];_______③_______;}
return max;
}
展开
 我来答
百度网友77dd25f
2007-06-01 · TA获得超过133个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:304万
展开全部
Q1: 1、q=p 2、 p!=str 3、p--
Q2: 1、right>light 2、 flag=0 3、flag=1 4、flag=0
Q3: 1、find(a,10,&k) 2、 max<a[i] 3、*k=i+1
匿名用户
2017-02-09
展开全部
Australia's most valuable
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式