急需NOIP执行题模拟题,要C语言,不要Pascal。10分钟内打底20分,好的话加!

难度在NOIP左右,不要初赛题目谢谢各位!!!!!
2025-06-27 18:02:35
推荐回答(2个)
回答1:

NOIP读程复习
姓名: 得分
1.
#include

int a,b;

int work(int a,int b){
if (a%b)
return work(b,a%b);
return b;
}

int main(){
scanf("%d%d",&a,&b);
printf("%d\n",work(a,b));
return 0;
}
输入:20 12
输出:___4____

2.
#include

int main()
{
int a[3],b[3];
int i,j,tmp;
for (i=0;i<3;i++)
scanf("%d",&b[i]);
for (i=0;i<3;i++)
{
a[i]=0;
for (j=0;j<=i;j++)
{
a[i]+=b[j];
b[a[i]%3]+=a[j];
}
}
tmp=1;
for (i=0;i<3;i++)
{
a[i]%=10;
b[i]%=10;
tmp*=a[i]+b[i];
}
printf("%d\n",tmp);
return 0;
}

输入:2 3 5
输出:___780____

3.
#include

const int c=2009;

int main()
{
int n,p,s,i,j,t;
scanf("%d%d",&n,&p);
s=0;t=1;
for(i=1;i<=n;i++)
{
t=t*p%c;
for(j=1;j<=i;j++)
s=(s+t)%c;
}
printf("%d\n",s);
return 0;
}

输入:11 2
输出: 782

4.
#include
#include

#define maxn 50

void getnext(char str[])
{
int l=strlen(str),i,j,k,temp;
k=l-2;
while(k>=0&&str[k]>str[k+1]) k--;
i=k+1;
while(istr[k]) i++;
temp=str[k];
str[k]=str[i-1];
str[i-1]=temp;
for(i=l-1;i>k;i--)
for(j=k+1;j if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
return ;
}

int main()
{
char a[maxn];
int n;
scanf("%s %d",a,&n);
while(n>0)
{
getnext(a);
n--;
}
printf("%s\n",a);
return 0;
}

输入:NOIP 3
输出:
5. #include
void main()
{int i,p[5],a,b,c,x,y=20;
for(i=0;i<=4;i++) cin>>p[i];
a=(p[0]+p[1])+(p[2]+p[3]+p[4])/7;
b=p[0]+p[1]/((p[2]+p[3])/p[4]);
c=p[0]*p[1]/p[2];
x=a+b-p[(p[3]+3)%4];
if(x>10)
y+= (b*100-a)/(p[p[4]%3]*5);
else
y+=20+(b*100-c)/(p[p[4]%3]*5);
cout<}
// 注:本例中,给定的输入数据可以避免分母为0 或数组元素下标越界。
输入:6 6 5 5 3 输出:_______________
6.#include
void fun(int *a,int *b)
{int *k;
k=a; a=b; b=k;
}
void main( )
{int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
cout<}
输出:____________________
7.#include
#include
#include "math.h"
void main()
{int a1[51]={0};
int i,j,t,t2,n=50;
for (i=2;i<=sqrt(n);i++)
if(a1[i]==0)
{t2=n/i;
for(j=2;j<=t2;j++) a1[i*j]=1;
}
t=0;
for (i=2;i<=n;i++)
if(a1[i]==0)
{cout<if(t%10==0) cout<}
cout<}
输出: ________________________________________
________________________________________
8. #include
#include "ctype.h"
void expand(char s1[],char s2[])
{ int i,j,a,b,c;
j=0;
for(i=0;(c=s1[i])!='\0';i++)
if(c=='-')
{ a=s1[i-1]; b=s1[i+1];
if ( isalpha(a)&&isalpha(b) || isdigit(a)&&isdigit(b) )
//函数isalpha(a)用于判断字符a 是否为字母,isdigit(b) 用于判断字符b 是否为数
//字,如果是,返回1,否则返回0
{ j--;
do s2[j++]=a++;
while(tolower(a)else s2[j++]=c;}
else s2[j++]=c;
s2[j]='\0';
}
void main()
{ char s1[100],s2[300];
cin>>s1;
expand(s1,s2);
cout<}
输入:wer2345d-h454-82qqq 输出:____________________________________
9. #include
using namespace std;
int main()
{
int i, a, b, c, d, f[4];
for(i = 0; i < 4; i++) cin >> f[i];
a = f[0] + f[1] + f[2] + f[3];
a = a / f[0];
b = f[0] + f[2] + f[3];
b = b / a;
c = (b * f[1] + a) / f[2];
d = f[(b / c ) % 4];
if(f[(a + b + c + d) % 4] > f[2])
cout << a + b<< endl;
else
cout << c + d << endl;
return 0;
}
输入:9 19 29 39
输出:_______________

10.#include
using namespace std;
void foo(int a, int b, int c)
{
if(a > b)
foo(c, a, b);
else
cout<}
int main()
{
int a, b, c;
cin >> a >> b >> c;
foo(a, b, c);
return 0;
}
输入: 3 1 2
输出: __________

11.#include
using namespace std;

void func(int ary[], int n )
{
int i=0, j, x;
j=n-1;
while(i {
while (i0) i++;
while (i if (i x=ary[i];
ary[i++]=ary[j];
ary[j--]=x;
}
}
}

int main()
{

int a[20], i, m;
m=10;
for(i=0; i {
cin>>a[i];
}
func(a, m);
for (i=0; i cout< cout<< endl;
return 0;
}
输入:5 4 -6 -11 6 -59 22 -6 1 10
输出:____________________________________

12. #include
#include
using namespace std;

#define MAX 100
void solve(char first[], int spos_f, int epos_f, char mid[], int spos_m, int epos_m)
{
int i, root_m;
if(spos_f > epos_f)
return;
for(i = spos_m; i <= epos_m; i++)
if(first[spos_f] == mid[i])
{
root_m = i;
break;
}
solve(first, spos_f + 1, spos_f + (root_m - spos_m), mid, spos_m, root_m - 1);
solve(first, spos_f + (root_m - spos_m) + 1, epos_f, mid, root_m + 1, epos_m);
cout << first[spos_f];
}

int main()
{
char first[MAX], mid[MAX];
int len;
cin >> len;
cin >> first >> mid;
solve(first, 0, len - 1, mid , 0, len - 1);
cout << endl;
return 0;
}

输入: 7
ABDCEGF
BDAGECF
输出:____________________________________
13.#include
int main(){
int a = 79, b = 34, c = 57, d = 0, e = -1;
if (a < c || b > c) d = d + e;
else if (d + 10 < e) d = e + 10;
else d = e - a;
printf("%d\n", d);
return 0;
}
输出: 。

14.#include
int main(){
int i, j;
char str1[] = "pig-is-stupid";
char str2[] = "clever";
str1[0] = 'd'; str1[1] = 'o';
for (i = 7, j = 0; j < 6; i++, j++)
str1[i] = str2[j];
printf("%s\n", str1);
return 0;
}
输出: 。

15.#include
int main(){
int u[4], a, b, c, x, y, z;
scanf("%d %d %d %d",&(u[0]), &(u[1]), &(u[2]), &(u[3]));
a = u[0] + u[1] + u[2] + u[3] - 5;
b = u[0] * (u[1] - u[2] / u[3] + 8);
c = u[0] * u[1] / u[2] * u[3];
x = (a + b + 2) * 3 - u[(c + 3) % 4];
y = (c * 100 - 13) / a / (u[b % 3] * 5);
if ((x + y) % 2 == 0) z = (a + b + c + x + y) / 2;
z = (a + b + c – x - y) * 2;
printf("%d\n", x + y - z);
return 0;
}
输入:2 5 7 4
输出: 。

16.#include
char c[3][200];
int s[10], m, n;
void numara(){
int i, j, cod, nr;
for (j = 0; j < n; j++){
nr = 0; cod = 1;
for (i = 0; i < m; i++){
if (c[i][j] == '1'){
if (!cod){cod = 1; s[nr]++; nr = 0;}
}
else{
if (cod){nr = 1; cod = 0;}
else nr++;
}
}
if (!cod) s[nr]++;
}
}
int main(){
int i;
scanf("%d %d\n", &m, &n);
for (i = 0; i < m; i++) gets(c[i]);
numara();
for (i = 1; i <= m; i++)
if (s[i] != 0) printf("%d %d ", i, s[i]);
return 0;
}
输入:
3 10
1110000111
1100001111
1000000011
输出:
17. #include
int main() {
int a, b;
scanf(“%d”, &a);
b = (a * (a * a)) + 1;
if (b%3 == 0) b = b / 3;
if (b%5 == 0) b = b / 5;
if (b%7 == 0) b = b / 7;
if (b%9 == 0) b = b / 9;
if (b%11 == 0) b = b / 11;
if (b%13 == 0) b = b / 13;
if (b%15 == 0) b = b / 15;
printf(“%d \n”, (100 * a – b) / 2);
return 0;
}
输入:10
输出:
18. #include
int main() {
char str[20] = “Today-is-terrible!”;
int i;
for (i = 6; i <= 10; i++)
if (str == ‘-‘) str[i – 1] = ‘x‘;
for (i = 12; i >= 0; i--)
if (str == ‘t’) str[i + 1] = ‘e’;
printf(“%s\n”, str);
return 0;
}
输出:
19. #include
int main() {
int a, b, c, p, q, r[3];
scanf(“%d%d%d”, &a, &b, &c);
p = a / b / c;
q = b – c + a + p;
r[0] = a * p / q * q;
r[1] = r[0] * (r[0] – 300);
if (3 * q – p % 3 <= r[0] && r[2] == r[2])
r[1] = r[r[0] / p % 2];
else
r[1] = q % p;
printf(“%d\n”, r[0] – r[1]);
return 0;
}
输入:100 7 3
输出:
20. #include
#include
int main(){
char str[60];
int len, i, j, chr[26];
char mmin = 'z';
scanf("%s", str);
len = strlen(str);
for (i = len - 1; i >= 1; i--)
if (str[i - 1] < str) break;
if (i == 0) {
printf("No result!\n"); return 0;
}
for (j = 0; j < i - 1; j++) putchar(str[j]);
memset(chr, 0, sizeof(chr));
for (j = i; j < len; j++) {
if (str[j] > str[i - 1] && str[j] < mmin)
mmin = str[j];
chr[str[j] - 'a']++;
}
chr[mmin - 'a']--;
chr[str[i - 1] - 'a']++;
putchar(mmin);
for(i = 0; i < 26; i++)
for(j = 0; j < chr; j++)
putchar(i + 'a');
putchar('\n');
return 0;
}
输入:zzyzcccbbbaaa
输出:

回答2:

#include
using namespace std;
int n;
int count(int n){
if (n==1) return 0;
if (n%2==0) return count(n/2)+1;
else return count(n*3+1)+1;
}
int main(){
cin>>n;
cout< return 0;
}
输入:99 输出:

#include
using namespace std;
int hi,lo;
void pl(int m,int n,int var,int hi){
int i=n;
hi=lo=0;
while (i){
i--;lo+=m;
if (lo>=10000){lo-=10000;hi++;}
}
cout<}
int main(){
pl(200,343,hi,lo);
return 0;
}输出:

3. #include
#include
using namespace std;
double d1,d2,X,Min;
int main(){
Min=10000;
X=3;
while (X<15){
d1=sqrt(9+(X-3)*(X-3));
d2=sqrt(4+(15-X)*(15-X));
if (d1+d2 X+=0.001;
}
cout< return 0;
}
输出:

#include
#include
using namespace std;
int i,k,n,x[501],w[501];
int main(){
cin>>n;
for (i=1;i<=n;i++){x[i]=0;w[i]=1;}
for (i=2;i<=sqrt(n);i++)
if (x[i]==0){
k=i*i;
while (k<=n){
x[k]=i;
k=k+i;
}
}
for (i=n;i>=1;i--)
if (x[i]){
w[x[i]]=w[x[i]]+w[i];
w[i/x[i]]=w[i/x[i]]+w[i];
w[i]=0;
}
cout< return 0;
}输入:20 输出:

1、
int main(){
int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;
for (i=0;i<6;i++) {
for (j=0;j<6;j++) if (a[i]==b[j]) break;
if(j<6) printf("%d ",a[i]);
}
}
2、
int main(){
int s=1,t=1,a=2,n=4;
for (int i=1;i s*=a; printf("SUM=%d\n",s);
}
3、
#include
int f(char c, char* s){
int m,n,h;
for (n=0,h=strlen(s);n<=h;) {
m=(n+h)/2;
if (c else if(c>s[m]) n=m+1;
else return m;
}
return –1;
}
int main( ){
printf("%d\n",f('g',"abdgkmxy"));
printf("%d\n",f('T',"BQMAXYZOTE"));
}
4、
int work(int x,int a[],int n){
int low=0,high=n-1,mid;
while (low<=high) {
mid=(low+high)/2;
if (x>a[mid]) high=mid-1;
else if(x else return(mid);
}
return(-1);
}
int main( ){
int a[]={4,0,2,3,1},i,t,j;
for (i=1;i<5;i++) {
t=a[i]; j=i-1;
while (j>=0 && t>a[j]) { a[j+1]=a[j]; j--; }
a[j+1]=t;
}
printf ("%d \n", work(3,a,5));
}
4、
int f11(int k){
if (k<=1) return 1;
return k*f11(k-1);
}
int f1(int m,int n){
return f11(m)/f11(n)/f11(m-n);
}
void f2(int n){
for (int i=1;i<=n;i++) putchar(' ');
}
int main(){
int i,j;
for (i=0;i<5;i++) {
f2((5-i)*3);
for (j=0;j<=i;j++) printf("%3d",f1(i,j));
putchar('\n');
}
}
5、
int main(){
int n,i,k,a[10],r[10];
scanf("%d",&n);
a[1]=n; r[1]=0; k=1;
do {
if (r[k]==0){
for (i=1;i<=k;i++) printf("%d ",a[i]); printf("\n");
while (k>0 && a[k]==1) k--;
a[k]--; r[k]++;
}
else {
if (r[k] else a[k+1]=a[k];
r[k+1]=r[k]-a[k+1];
k++;
}
} while (k!=0);
}
输入:5