27 KiB
27 KiB
第一次
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:在此程序中,函数fun 的功能是:将十进制正整数m 转换成k(1<k<26)进制
数,并按位输出。例如,若输入8 和2,则应输出1000
(即十进制数8 转换成二进制表示是1000)。
------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,不能定义新变量。
----------------------------------------------------------------------*/
#include <stdio.h>
// 函数声明
void fun(int m, int k);
int main()
{
int m, k;
printf("【请输入十进制正整数m 和进制k(1 < k < 26):】");
scanf("%d %d", &m, &k);
if (k <= 1 || k >= 26)
{
printf("错误:k 的值必须在 2 到 25 之间。\n");
return 1;
}
fun(m, k);
return 0;
}
void fun(int m, int k)
{
char result[65];
int remainder, i;
int index = 63;
result[64] = '\0';
/**********Program**********/
/********** End **********/
printf("\n");
}
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:键盘输入一个整数n,由这n 个人围成一圈,顺序排号。从第一个人开始报数
(从1 到3 报数),凡报到3 的人退出圈子,问最后留下的是原来第几号的那位
输入输出如下
【请输入整数n: 】99
最后留下的是原来第88 号的那位
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,函数中所需变量根据需要自定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int josephus(int n)
{
/**********Program**********/
/********** End **********/
}
int main()
{
int n;
int result;
printf("【请输入整数n: 】");
scanf("%d", &n);
result = josephus(n);
printf("最后留下的是原来第%d 号的那位\n", result);
return 0;
}
第二次
/*-----------------------------------------------------------------------
【程序设计】
-----------------------------------------------------------------------
键盘输入五个正整数,编写函数求其中偶数之和,并输出结果
示例:
【请输入五个正整数:】100 222 656 899 65
【这五个正整数中的偶数之和为:】978
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int sum_of_even(int arr[], int size);
int main()
{
int numbers[5];
int i;
int even_sum;
printf("【请输入五个正整数:】");
for (i = 0; i < 5; i++)
{
if (scanf("%d", &numbers[i]) != 1)
{
printf("输入有误,请确保输入了五个整数。\n");
return 1;
}
if (numbers[i] <= 0)
{
printf("输入有误!请确保输入的是正数。\n");
return 1;
}
}
even_sum = sum_of_even(numbers, 5);
printf("【这五个正整数中的偶数之和为:】%d\n", even_sum);
return 0;
}
int sum_of_even(int arr[], int size)
{
int sum = 0;
int i;
/**********Program**********/
/********** End **********/
}
/*-----------------------------------------------------------------------
【程序设计】
-----------------------------------------------------------------------
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前
导*号全部
删除, 中间和尾部的* 号不删除。例如, 字符串中的内
容:"*******A*BC*DEF*G****",删除
后字符串编写函中的内容应当是:"A*BC*DEF*G****"编写函数时,不得使用C 语
言提供的字符
串函数。
-------------------------------------------------------------------------
注意:请勿改动主函数main 和其它函数中的任何内容,
仅在函数fun 的花括号中填入你编写的若干语句,根据情况可以定义新变量。
根据情况可以自定义变量
------------------------------------------------------------------------*/
#include <stdio.h>
void fun(char *a)
{
/**********Program**********/
/********** End **********/
}
main()
{
char s[81];
printf("【Enter a string:】\n");
gets(s);
fun(s);
printf("【The string after deleted:】\n");
puts(s);
}
第三次A
/*-----------------------------------------------------------------------
【程序设计】
-----------------------------------------------------------------------
编写函数找出能同时满足用3 除余2,用5 除余3,用7 除余2 的所有整数并输出。
输入输出如下:
【请输入区间的起始值: 】1
【请输入区间的结束值:】 100
23
-------------------------------------------------------------------------
注意:请勿改动主函数main 和其它函数中的任何内容,
仅在函数isMeetCondition 的花括号中填入你编写的若干语句,根据情况可以定义新变量。
根据情况可以自定义变量
------------------------------------------------------------------------*/
#include <stdio.h>
int isMeetCondition(int num);
int main()
{
int start, end;
int i;
printf("【请输入区间的起始值: 】");
scanf("%d", &start);
printf("【请输入区间的结束值: 】");
scanf("%d", &end);
for (i = start; i <= end; i++)
{
if (isMeetCondition(i))
{
printf("%d\n", i);
}
}
return 0;
}
int isMeetCondition(int num)
{
/**********Program**********/
/********** End **********/
}
/*-----------------------------------------------------------------------
【程序设计】
-----------------------------------------------------------------------
定义一个函数判断一个字符串是否是另一个字符串的子字符串,要求用指针实现。
输入输出如下:
【请输入第一个字符串:】abcdefg1234qwert
【请输入第二个字符串:】4q
字符串'4q'是字符串'abcdefg1234qwert'的子字符串
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
// 函数声明,用于判断子字符串
int isSubstring(char *str1, char *str2);
int main()
{
char str1[100], str2[100];
printf("【请输入第一个字符串:】");
gets(str1);
printf("【请输入第二个字符串:】");
gets(str2);
if (isSubstring(str1, str2))
{
printf("字符串'%s'是字符串'%s'的子字符串\n", str2, str1);
}
else
{
printf("字符串'%s'不是字符串'%s'的子字符串\n", str2, str1);
}
return 0;
}
int isSubstring(char *str1, char *str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j;
/**********Program**********/
/********** End **********/
return 0;
}
第三次B
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:随机输入一字符串(不包含空格,长度不超过100),删除字符串中的数字
字符后输出。
例如
【请输入字符串:】I will graduate from high school in June 2025
【去掉数字后的字符串为:】I will graduate from high school in June
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
int main()
{
char a[100], b[100];
int l, i, j;
printf("【请输入字符串:】");
gets(a);
l = strlen(a);
j = 0;
/**********Program**********/
/********** End **********/
b[j] = '\0';
printf("【去掉数字后的字符串为:】");
puts(b);
return 0;
}
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:以下程序的功能是删去一维数组str 中所有相同的数,使之只剩一个。数组
中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
若一维数组中的数据是:
2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 9
结果是:2 3 4 5 6 7 8 9
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int del(int str[], int n)
{
int i, j = 1;
/**********Program**********/
/********** End **********/
}
int main()
{
int str[] = {2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9};
int i, m, n = sizeof(str) / sizeof(int);
for (i = 0; i < n; i++)
printf("%d ", str[i]);
m = del(str, n);
printf("\n");
for (i = 0; i < m; i++)
printf("%d ", str[i]);
printf("\n");
return 1;
}
第四次
/*---------------------------------------------------------------------
程序设计
---------------------------------------------------------------------
王老师通过课题专利研发赚到了人生的第一个100 万,他存入银行账户用于理财,
每年可以
获得4%的收益,在每年的最后一天,他会取出10 万来消费,剩下的继续理财。编
写程序计算
过多少年以后,账户上的钱会被取完(使用do....while)。
---------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
---------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int money = 100;
int year = 1;
/**********Program**********/
/********** End **********/
printf("%d 年后账户上的钱会被花完", year);
printf("\n");
return 0;
}
/*---------------------------------------------------------------------
程序设计
---------------------------------------------------------------------
通过指针传递实现将一数组中的数据按相反顺序存放。
例如:输入20 24 4 13 11
输出:11 13 4 24 20
---------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
---------------------------------------------------------------------*/
#include <stdio.h>
void sort(int *, int);
void main()
{
int a[5], i;
for (i = 0; i < 5; i++)
{
scanf("%d,", &a[i]);
}
sort(a, 5);
for (i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
void sort(int *p, int n)
{
int i, j, temp;
/**********Program**********/
/********** End **********/
}
第五次
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:编写函数实现输入一串字符串,删除字符串中的重复的字符,然后输出新的
字符串(重复字符保留第一次出现的字符)
输入输出如下所示
请输入一串字符串: mn,mn.,mzxcv,nkh021215468796468765465
去除重复字符后的字符串为: mn,.zxcvkh021546879
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
void removeDuplicates(char *str);
int main()
{
char str[100];
printf("【请输入一个字符串: 】");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0;
removeDuplicates(str);
printf("【去除重复字符后的字符串为:】 %s\n", str);
return 0;
}
void removeDuplicates(char *str)
{
int seen[256] = {0};
int writeIdx = 0;
int i;
int len = strlen(str);
if (str == NULL)
return;
if (len <= 1)
return;
/**********Program**********/
/********** End **********/
str[writeIdx] = '\0';
}
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:编写函数实现用除二取余的方法,把任意一个十进制正数的二进制序列输出
(不考虑溢出)
程序输入输出如下所示
Enter a decimal number: 2
The binary representation is: 10
-------------------------------------------------------------------------
------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
void decimalToBinary(int decimal)
{
int remainder;
int len = 0;
char binary[32];
int i;
if (decimal == 0)
{
printf("0");
return;
}
/**********Program**********/
/********** End **********/
printf("%s\n", binary);
}
int main()
{
int number;
printf("【Enter a decimal number: 】");
scanf("%d", &number);
printf("【The binary representation is: 】");
decimalToBinary(number);
}
第六次
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第
二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩
下的一半零一个。直到最后一天早上想再吃时,见只剩下一个桃子了。通过输入来
控制吃桃的最后一天,编写函数求第一天共摘了多少桃子。
输入输出如下所示:
【输入猴子还剩1 个桃子的最后一天: 】10
猴子第一天摘了1534 个桃子
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int countPeaches(int lastDay)
{
int peaches = 1;
int day;
/**********Program**********/
/********** End **********/
}
int main()
{
int lastDay;
int totalPeaches;
printf("【输入猴子还剩1 个桃子的最后一天:】 ");
scanf("%d", &lastDay);
totalPeaches = countPeaches(lastDay);
printf("猴子第一天摘了%d 个桃子\n", totalPeaches);
return 0;
}
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:一瓶汽水一元,两个空瓶子可以换一瓶汽水,输入购买汽水的金额,编写函
数计算出一共可以喝多少瓶汽水
输入输出如下所示:
【请输入购买汽水的金额(元):】 3
总共可以喝 5 瓶汽水
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
int totalBottles(int money)
{
int totalBottlesDrank = 0;
int boughtBottles = money;
int newBottles;
/**********Program**********/
/********** End **********/
}
int main()
{
int money;
int result;
printf("【请输入购买汽水的金额(元): 】");
scanf("%d", &money);
result = totalBottles(money);
printf("总共可以喝 %d 瓶汽水\n", result);
return 0;
}
第七次
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
编写函数 fun, 函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数
和 a[0]中的数对调、次最大数和 a[1]中的数对调,输出对调后的结果。
例如原数组为{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5},对调后的结果为9 6 4 1 5 3 2 1 5 3 5
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void fun(int *a, int n)
{
int max_index = 0;
int second_max_index = 0;
int i;
/**********Program**********/
/********** End **********/
}
int main()
{
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int i;
fun(arr, size);
printf("【Modified array: 】");
for (i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
请编写C 代码,完成计算数组 A 与数组 B 的对称差集(即只属于 A 或者只属
于 B 的元素)。提示:可以先将数组 A 和 B 变为递增排序,然后可以使用双指
针法来高效地找到它们的对称差集。
示例1
【请输入数组 A 的大小: 】5
【请输入数组 A 的 5 个元素: 】6 5 4 3 2
【请输入数组 B 的大小: 】4
【请输入数组 B 的 4 个元素: 】7 6 3 8
【数组 A 与数组 B 的对称差集为: 】2 4 5 7 8
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void bubbleSort(int arr[], int size)
{
int i, j;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
// 交换 arr[j] 和 arr[j + 1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int computeSymmetricDifference(int A[], int sizeA, int B[], int sizeB, int C[])
{
int i = 0, j = 0, k = 0;
/**********Program**********/
/********** End **********/
}
int main()
{
int sizeA, sizeB;
int i;
printf("【请输入数组 A 的大小: 】");
scanf("%d", &sizeA);
int A[100];
printf("【请输入数组 A 的 %d 个元素: 】", sizeA);
for (i = 0; i < sizeA; i++)
{
scanf("%d", &A[i]);
}
printf("【请输入数组 B 的大小: 】");
scanf("%d", &sizeB);
int B[100];
printf("【请输入数组 B 的 %d 个元素: 】", sizeB);
for (i = 0; i < sizeB; i++)
{
scanf("%d", &B[i]);
}
int C[200]; // 假设结果数组最大长度为 200,为 A 和 B 长度之和
int diffSize = computeSymmetricDifference(A, sizeA, B, sizeB, C);
printf("【数组 A 与数组 B 的对称差集为: 】");
for (i = 0; i < diffSize; i++)
{
printf("%d ", C[i]);
}
printf("\n");
return 0;
}
第八次
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
函数 fun 的功能是: 将 输入的字符串中的字母转换为按字母序列的后续字母(但
Z 转换为 A, z 转换为 a),其它字符不变,最后输出转换后的字符串。
示例1:
【请输入一个字符串: 】12345QAZWSXrfvtgb!!@!@@¥
【转换后的字符串为: 】12345RBAXTYsgwuhc!!@!@@¥
------------------------------------------------------------------------
----------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char *str)
{
/**********Program**********/
/********** End **********/
}
int main()
{
char input[100];
printf("【请输入一个字符串: 】");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0';
fun(input);
printf("【转换后的字符串为: 】%s\n", input);
return 0;
}
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
要求编写一个程序来计算给定整数的平方根的整数部分,功能类似于 C 语言标准
库中的 sqrt 函数,但仅返回整数部分结果。
示例1:
【请输入一个非负整数: 】12
【12 的平方根的整数部分是: 】3
------------------------------------------------------------------------
----------------------------------------------------------------------*/
#include <stdio.h>
int mySqrt(int x)
{
/**********Program**********/
/********** End **********/
}
int main()
{
int num;
while (1)
{
printf("【请输入一个非负整数: 】");
if (scanf("%d", &num) != 1 || num < 0)
{
while (getchar() != '\n')
;
printf("输入无效,请输入一个非负整数。\n");
}
else
{
break;
}
}
int sqrtResult = mySqrt(num);
printf("【%d 的平方根的整数部分是: 】%d\n", num, sqrtResult);
return 0;
}
第九次
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
编写一个 C 语言函数,函数接收一个整数数组 arr 以及数组的长度 size 作为参
数,使用 bool 类型返回该数组中是否存在重复的元素。在 main 函数中,输入多
个正整数(输入非数字字符表示输入结束)并调用该函数,根据返回结果输出相应
的提示信息。
示例:
【请输入多个整数(输入非数字字符结束输入):】1 2 3 4 5 5 6 a
数组中存在重复元素。
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
bool hasDuplicates(int arr[], int size)
{
/**********Program**********/
/********** End **********/
}
int main()
{
int capacity = 10;
int *arr = (int *)malloc(capacity * sizeof(int));
if (arr == NULL)
{
printf("内存分配失败!\n");
return 1;
}
int size = 0;
int num;
printf("【请输入多个整数(输入非数字字符结束输入):】");
while (scanf("%d", &num) == 1)
{
if (size == capacity)
{
capacity *= 2;
arr = (int *)realloc(arr, capacity * sizeof(int));
if (arr == NULL)
{
printf("内存分配失败!\n");
return 1;
}
}
arr[size++] = num;
}
while (getchar() != '\n');
if (hasDuplicates(arr, size))
{
printf("数组中存在重复元素。\n");
}
else
{
printf("数组中不存在重复元素。\n");
}
free(arr);
return 0;
}
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
现在有一位赛车手要驾驶一台电动摩托车去完成多段赛程。这台电动摩托车的电
池电量存储
上限是 100 度电哦,它有一个标称的平均电耗,也就是每行驶 100 公里,就会消
耗 10 度
电。这里有个很重要的前提条件要大家牢记呀,每一段赛程的距离都是小于 600
公里的哦,
并且每次出发的时候,电动摩托车的电池都是充满电的状态呢。还有一个关键的规
则得注意
哦,如果电动摩托车到达某个地点之后,赛车手查看发现电池内剩余的电量低于电
池总电量
的 10%(也就是 100×10% = 10 度电或者更少啦),那这个时候就必须得在这个
地方给电
动摩托车充电了呢,请帮忙计算一下,这名驾驶员在赛程中的哪几段赛程前是需要
充电的。
示例1:
【请输入赛程段数:】
5
【请输入各段赛程距离,单位公里:】
380 200 390 400 300
【需要在以下几段赛程前充电:】
第 3 段赛程前
第 5 段赛程前
示例2:
【请输入赛程段数:】
4
【请输入各段赛程距离,单位公里:】
190 140 110 80
无需充电。
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h> // 引入stdlib.h 用于动态内存分配相关操作
#define TANK_CAPACITY 100 // 电池总容量(单位:度)
#define LOW_FUEL_LIMIT (0.10 * TANK_CAPACITY) // 低电量阈值(10%)
#define AVG_CONSUMPTION_PER_100KM 10 // 平均电耗(单位:度/百公里)
#define FUEL_CONSUMPTION_PER_KM (AVG_CONSUMPTION_PER_100KM /
100.0) // 每公里电耗(单位:度/公里)
int checkRefuelStops(int trips[], int count, int results[])
{
int refuel_count = 0;
double current_fuel = TANK_CAPACITY;
/**********Program**********/
/********** End **********/
return refuel_count;
}
int main()
{
int num_trips;
printf("【请输入赛程段数:】\n");
scanf("%d", &num_trips);
int *trips = (int *)malloc(num_trips * sizeof(int));
if (trips == NULL)
{
printf("内存分配失败!\n");
return 1;
}
printf("【请输入各段赛程距离,单位公里:】\n");
for (int i = 0; i < num_trips; ++i)
{
scanf("%d", &trips[i]);
}
int *results = (int *)malloc(num_trips * sizeof(int));
if (results == NULL)
{
printf("内存分配失败!\n");
free(trips);
return 1;
}
int refuel_count = checkRefuelStops(trips, num_trips, results);
if (refuel_count > 0)
{
printf("【需要在以下几段赛程前充电:】\n");
for (int i = 0; i < refuel_count; i++)
{
printf("第 %d 段赛程前\n", results[i]);
}
}
else
{
printf("无需充电。\n");
}
free(trips);
free(results);
return 0;
}
第十次
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
请编写函数 fun, 函数的功能是: 移动一维数组中的内容; 若数组中有 n 个整数,
要求把下标从 0 到 p(含 p,p 小于等于 n-1 )的数组元素平移到数组的最后,最后
输出移动后的数组。
示例:
【请输入数组元素的个数: 】10
【请输入10 个整数:】1 2 3 4 5 6 7 8 9 10
【请输入p 的值 (p <= 9):】 5
【移动后的数组为: 】7 8 9 10 1 2 3 4 5 6
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅
在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void fun(int *w, int p, int n)
{
int temp[p + 1];
/**********Program**********/
/********** End **********/
}
int main()
{
int n, p;
printf("【请输入数组元素的个数: 】");
scanf("%d", &n);
int a[n];
printf("【请输入%d 个整数:】", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("【请输入p 的值 (p <= %d): 】", n - 1);
scanf("%d", &p);
fun(a, p, n);
printf("【移动后的数组为: 】");
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
编写一个 C 语言程序,输入由中括号 [数字和小写字母]组成且无中括号嵌套的字
符串。规则如下:[nx](n 为正整数,x 为小写字母)表示将 x 重复 n 次;[nxy]
(n 为正整数,x、y 为小写字母)表示将 xy 重复 n 次。实现 fun 函数对输入
字符串解码并生成原始字符串。
示例1:
【请输入符合规则的字符串:】[5wh]
【原始字符串:】whwhwhwhwh
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 `main` 或其它函数中给出的内容,
仅在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *fun(char input[])
{
int len = strlen(input);
char *output = (char *)malloc(1000 * sizeof(char));
if (output == NULL)
{
printf("内存分配失败!\n");
return NULL;
}
int outputIndex = 0;
/**********Program**********/
/********** End **********/
return output;
}
int main()
{
char input[1000];
printf("【请输入符合规则的字符串:】\n");
scanf("%s", input);
char *result = fun(input);
if (result != NULL)
{
printf("【原始字符串:】%s\n", result);
free(result);
}
return 0;
}