
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;
} 展开
#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;
} 展开
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询