输入50个数按逆序输出和统计每个数出现的次数和最值和交换对称位置的元素

合集下载

C语言上机试题资料

C语言上机试题资料

C语言上机试题资料1、从键盘输入一字符串和一个字符,统计字符串中所含这个字符的个数。

2、求9000到9999整数中,每个数中间两位数字组成的两位数之和。

3、写一个函数,判断一个字符串是否为回文(如下的字符串为回文:asdfdsa,qryggyrq 即字符串是中心对称的),在主函数中输入字符串和输出回文信息。

4、从键盘中输入一个4位整数,判断这个整数的每位数字是否是一个连续的数字,如果是输出“yes”,否则输出“no”。

例如:如果输入:5678 就应输出:yes 。

4、输入10个整数,求这10个数中最大数与最小数之和。

6、写一个函数,判断两个数是否互素(即两个数的最大公约数为1),用主函数调用这个函数,并输出结果,两个数由键盘输入。

7、输入一个整数n,输出:1*2+2*3+3*4+。

+n*(n+1)的和8、输入一个字符串s1,求一个新字符串s2,使s2的前半部分是s1的偶数位上的字符,后半部分是s1奇数位上的字符。

10、输入一个4位数,判断这个四位数的每一位上的数字是否都为偶数,是输出:yes,否则输出:no 。

11、有一个10个整数的数组,从键盘输入一个整数,查找这个数是否在数组中,如果在数组中,则把它从数组中删去,输出处理后的数组。

12、写一个函数,判断一个整形矩阵(4x4)是否为对称矩阵,在主函数中输入矩阵和输出对称信息。

13、输入一字符串,统计其中含有小写英文字母的个数。

14、输入两个字符串s1,s2(s1比s2长),用s2替换s1中前端等长的字符串。

如:s1=”adfsdadsfas”, s2=”kfghg”,替换后的s1=”kfghgadsfas”。

16、输入一个四位数字,判断千位和百位组成的两位数与十位和个位组成的两位数是否相等,相等输出:yes,否则输出:no 。

17、输入一个字符串,输出这个字符串中最大的字符与最小的字符。

18、写一个函数,将一个字符串中的小写元音字母替换成数字:a->1,e->2,i->3,o->4,u->5,在主函数中输入原字符串和输出替换后的字符串。

(完整版)编程练习题

(完整版)编程练习题

(完整版)编程练习题问题一请编写一个程序,在控制台上输出"Hello, World!"。

问题二请编写一个程序,实现将一个字符串逆序输出。

示例输入:`"Hello, World!"`示例输出:`"!dlroW ,olleH"`问题三请编写一个程序,计算一个整数列表中所有元素的和。

示例输入:`[1, 2, 3, 4, 5]`示例输出:`15`问题四请编写一个程序,找出一个整数列表中的最大值。

示例输入:`[10, 5, 8, 20, 13]`示例输出:`20`问题五请编写一个程序,判断一个字符串是否为回文字符串。

示例输入:`"level"`示例输出:`True`示例输入:`"hello"`示例输出:`False`问题六请编写一个程序,将两个有序整数列表合并成一个有序整数列表。

示例输入:`[1, 3, 5], [2, 4, 6]`示例输出:`[1, 2, 3, 4, 5, 6]`问题七请编写一个程序,统计一个字符串中每个字符的出现次数。

示例输入:`"Hello, World!"`示例输出:`{"H": 1, "e": 1, "l": 3, "o": 2, ",": 1, " ": 1, "W": 1, "r": 1, "d": 1, "!": 1}`问题八请编写一个程序,找出一个字符串中最长的连续数字序列。

示例输入:`"abcdef123"`示例输出:`""`问题九请编写一个程序,将一个字符串中的所有单词进行翻转。

示例输入:`"Hello, World!"`示例输出:`"olleH, dlroW!"`问题十请编写一个程序,计算一个数的平方根。

编程题(含答案)

编程题(含答案)
{ int i,j,minj,t;
for(i=0;i<N-1;i++)
{ minj=i;
for(j=i+1;j<N;j++) if(a[j]<a[minj]) minj=j;
if(minj!=i) {t=a[i];a[i]=a[minj];a[minj]=t; }
}
}
void main()
{ int a[N],i;
答案:#include<stdio.h>
long fun(int k)
{ if(k>0)
return (k*fun(k-1));
else if(k==0)
return1l;
}
main()
{ int k;
scanf("%d",&k);
clrscr();
printf("%d!=%ld",k,fun(k));
printf(“Input a number:”);
scanf(“%d”,&x);
printf(“%d\n”,x);
exp=exp+x;
for(n=2;n<=19;n++)
exp=exp+f1(x,n)/f2(n);
printf(“\nThe is exp(%d)=%8.4f\n”,x,exp);
}
scanf(“%d”,&x);
while(x!=-1)
{
if(x>=1&&x<=4) { a[n]=x; n++; }
scanf(“%d”,&x);
}

c语言程序设计复习题库

c语言程序设计复习题库

复习题库题号题 目 1. 某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm ,半径10cm ,共订做1500个铁桶。

计算出所需的原材料。

2.利用系统库函数实现数学运算,求x y 。

3.从键盘上输入一个小写字母,把它转变为大写字母再输出。

4. 设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱底面积,圆柱表面积。

用scanf ()输入数据,输出计算结果。

输出时要有说明,结果取小数点后两位数字。

5.由键盘输入n 的值,编程计算并输出n!的值。

6. 让用户输入一个年份,判断改年份是否是闰年– 被4整除不能被100整除,或者被400整除7. 有一个函数⎪⎩⎪⎨⎧--=11312x x x y ())10()101(1≥<≤<x x x写程序,输入x 的值,输出y 相应的值。

8. 在学生成绩管理中,经常要将成绩的百分制转换成对应的等级制。

90分以上为A 等,80-89为B 等,70-79为C 等,60-69分为D 等,其余为E 等。

编写程序,根据输入的百分制成绩,输出对应的等级。

9. 计算从出生年份(例如1996)到当前年份(例如2014)共经过了多少闰年,输出所有的闰年年份。

10. 从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了多少数?当时的累加和是多少?11.百钱买百鸡问题 12. 计算出自然数SIX 和NINE 满足条件SIX+SIX+SIX=NINE+NINE 的个数CNT,以及所有满足此条件的SIX 与NINE 。

13.求 3—100之间的全部素数14. 图形编程图形编程15. 某歌手大赛,共有10个评委打分,分数采用百分制,去掉一个最高分,去掉一个最低分,然后取平均分,得到歌手的成绩,编程实现。

16.让用户输入10个整数,对10个整数进行降序排列 17.对用户输入的10个整数逆序排列并输出 18. 输出Fibonacci 序列前20项** * ** * * * ** * * * * * ** * * * * * * * ** * * * * * * * * * *19.在一个字符数组中查找一个指定的字符,若数组中含有该字符,则输出该字符在数组中第一次出现的位置,否则输出-1.20.写一个函数,求sn=a+aa+aaa+aaaa+aaaaa.....的值,a的值n的值均由用户指定。

C语言编程题与答案解析

C语言编程题与答案解析
}
9.(*)试编程:判断输入的正整数是否既是 5,又是 7 的整数倍 数。若是则输出 yes;否 则输出 no。
10.(*)已有函数调用语句 c=add(a,b);请编写 aad 函数,计算两 个实数 a 和 b 的和,并返回和值。
11.(*)有人想将手中一张面值 100 元的人民币换成 5 元、1 元、 0.5 元面值的零钱 100 张,以上三种面值的零钱至少有一张,问共有几
12.(*)求 Sn=a+aa+aaa+aaaa+aaaaa 的前 5 项之和,其中 a 是一个
数字,例如:
2+22+222+2222+22222
程序 1:main()
{int i, a,n;
long sum=0, b=1,c=1;
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++) {sum+=a*c;
} 14.(*)用近似1 公式1 求自然对数的底 e 的值。
e≈12+!1!+3! + +…… #include"math.h" main() {float i,j,e,p=1.0,sum=0.0; for(i=1;i<10 ;i++)
{for(j=1;j<=i;j++) p=p*j;
sum=sum+1.0/p; p=1.0;} e=i+sum; printf("%f\n",e); } 15.(*)请编程,用 scanf()函数输入三个字符,对这三个字符各 加一个整数 1 后,用 putchar()函数输出,且每输出一个字符换一行。 16.(*)请编程,用 scanf()函数输入三个整数,输出其中不大不 小的那个数,输出宽度为五位。 int findmid(int i,int j,int k) {int n;

C语言必考100题解析

C语言必考100题解析
48.编程将若干字符串按字母顺序由小到大排序后输出。(二维数组和指针数组均可) 。
49.编程输入一个班的某课程的学生成绩,计算其平均分,然后输出,班级人数由键盘 输入。
50.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符 串(要求:使用头指针和尾指针来实现) 。
51.编程判断输入的一串字符是否为 “回文”。所谓回文是指顺读和倒读都一样的字符串, 如“ABCCBA”是回文。
44.从键盘任意输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能, 然后将交换后的数据重新输出。
45.用字符指针编程实现字符串复制函数。
46.用字符指针编程实现求字符串长度函数。
47.编写一个程序,可以实现在一个数组中删除指定的元素。如:数组元素为1,2,3,
输入3,便删除3,输出1,2;若输入4,则继续输出1,2,3。
为止,要求统计总共累加了多少项。
19.编程输出正三角格式的九九乘法表。
20.编程输出下三角格式的九九乘法表。
21.从键盘任意输入一个正整数,编程判断它是否是素数, 若是素数,输出“YES”,
否则输出“NO!”。
22.编写一个程序实现输出1—100之间所有素数。
23.编写一个程序实现输出任意指定m、n之间的所有素数。
分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,
单位为kg,h为身高,单位为m)。当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t仝27时, 为肥胖。编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。
12.利用switch语句将百分制成绩转化为五分制成绩。
52•用指针数组编程实现: 从键盘任意输入一个数字表示月份值n,程序输出该月份的英 文 表 示 ,若n不 在1~12之 间 , 则 输 出 “Illegal month”。 ("January","February","March","April","

编程题经典100例

编程题经典100例编程是当今世界重要的职业领域之一。

许多年轻人渴望成为优秀的程序员,而要做到这一点,练习编程题是必不可少的。

编程题可以帮助初学者加强对算法和编程语言的理解,更好地掌握编程技能。

以下是编程题经典100例,它们分别来自不同的领域和难度级别,希望对初学者有所帮助。

1. 计算素数输入一个正整数num,输出小于等于num的所有素数。

解析:函数is_prime(num)用来判断num是否为素数,若是,返回True,否则返回False。

对于小于等于num的每个数i,如果is_prime(i)返回True,则输出i。

2. 反转字符串输入一个字符串,输出反转后的字符串。

解析:先将字符串转成列表list,然后使用列表切片操作[::-1]反转列表,最后将列表转回字符串。

3. 删除特定字符输入一个字符串str和一个字符ch,输出删除ch后的字符串。

解析:通过字符串的replace()方法删除ch,返回删除后的新字符串。

4. 合并列表输入两个有序列表a和b,输出合并后的有序列表c。

解析:先将a和b合并成一个列表,再使用sort()方法进行排序。

5. 翻转列表输入一个列表,输出翻转后的列表。

解析:使用列表切片[::-1]反转列表。

6. 平均值输入一个列表,输出列表元素的平均值。

解析:使用sum()函数求和,除以列表长度。

7. 数组移动输入一个列表和一个整数n,将列表中前n个元素移到列表的末尾。

解析:将列表分为前n个元素和剩余元素两部分,然后再将这两个部分合并成一个列表。

8. 查找最大元素输入一个列表,输出列表中的最大元素。

解析:使用max()函数找出列表中的最大值。

9. 打印模型输入一个整数n,输出一个由“*”字符组成的模型,模型是n个星号按一行一个打印,直到n个星号都打印出来。

解析:使用循环输出n个星号。

10. 插入排序输入一个列表,实现插入排序。

解析:对于列表中每个元素i,从0到i-1遍历列表,将i和遍历到的元素进行比较,然后插入到正确的位置。

逆序数及其求法

逆序数及其求法1. 逆序数所谓逆序数,就是指⼀个序列S[i],统计处于序列的每个数的⽐这个数⼤并且排在它前⾯的数的数⽬,然后对于所有数,把这个数⽬加起来求和就是了。

⽐如4 3 1 24第⼀个,所以数⽬为03的前⾯是4,⼤于3的数⽬为11的前⾯是4 3 ,⼤于1的数⽬为22的前⾯是4 3 1,⼤于2的数⽬为2所以逆序数为1+2+2 = 5求逆序数的两种⽅法常规⽅法是按照逆序数的规则做,结果复杂度是O(n*n),⼀般来说,有两种快速的求逆序数的⽅法分别是归并排序和树状数组法2. 归并排序归并排序是源于分⽽治之思想,详细的过程可以查阅其他资料,总体思想是划分⼀半,各⾃排好序后将两个有序序列合并起来。

如何修改归并排序求逆序数?⾸先我们假设两个有序序列a[i]和b[i],当合并时:由于a[i]已是有序,所以对于a[i]的各个元素来说,排在它前⾯且⽐它⼤的数⽬都是0当b[i]中含有⽐a[i]⼩的元素时,我们必然将b[i]元素插到前⾯,那么就是说,在b[i]原先位置到该插的位置中,所有数都⽐b[i]⼤且排在它前⾯所以这是b[i]的数⽬为新插⼊位置newPos - 原来位置oldPos那么对于⼀半的序列⼜怎么做呢?我们知道,归并排序会继续向下递归,⽽递归完成返回后将是两组有序的序列,并且拿到局部的逆序数,所以在Merge函数中添加这⼀计数操作即可代码⽰例如下:#include<stdio.h>#define M 1000int L[M];int R[M];const int Max = 1 <<30;int change = 0;void Merge(int *data,int left,int divide,int right){int lengthL = divide - left;int lengthR = right - divide;for(int i = 0; i < lengthL; ++i){L[i] = data[left + i];}for(int i = 0; i < lengthR; ++i){R[i] = data[divide + i];}L[lengthL] = R[lengthR] = Max;int i = 0;int j = 0;for(int k = left; k < right; ++k){if(L[i] <= R[j]){data[k] = L[i];++i;}else{change += divide - i - left ;data[k] = R[j];++j;}printf("%d ",data[k]);}printf("\n");}void MergeSort(int *data,int left,int right){if(left < right -1){int divide = (left + right)/2;MergeSort(data,left,divide);MergeSort(data,divide,right);Merge(data,left,divide,right);}}int main(){int n,i;int map[100];while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d",&map[i]);change=0;MergeSort(map,0,n);printf("%d\n",change);}return0;}View Code3. 树状数组求逆序数的另外⼀种⽅法是使⽤树状数组对于⼩数据,可以直接插⼊树状数组,对于⼤数据,则需要离散化,所谓离散化,就是将100 200 300 400 500 ---> 1 2 3 4 5这⾥主要利⽤树状数组解决计数问题。

数据结构测试题


68
131:有十个字符串,每个串的长度不超过20个字 符,要求在每个字符串中分别找出最小字符按一 一对应的顺序放入一维数组a中,即:第i个字符 串中的最小字符放入a[i]中,输出每个字符串中 的最小字符(即:在保证阅读性的前提下,输出a 数组的内容)。请编程。
69
132:有十个字符串,每个串的长度不超过20个字 符,要求编写一个函数F(char []),完成在指 定的字符串中找出最小字符,并将结果返回主函 数,主函数完成各串的输入、函数F的调用,将调 用结果按一一对应的顺序放入一维数组a中,即: 第i个字符串中的最小字符放入a[i]中,最后输出 各字符串及对应的a[i]的值。请编程。
47
110:从键盘输入两个字符串a和b,要求不 用strcat函数把串b的前5个字符连接到串a 中;如果b的长度小于5,则把b的所有元素 都连接到a中。请编程。
48
111:已有如下定义和初始化: int a[10]=(1,2,3,4,5,6,7,8,9,10}; 请编程实 现将数组a中元素的值进行如下方式的移 动:原倒数第2个元素值移到第1位,原倒数 第1个元素值移到第2位,其余各元素值向 右依次移动两位。移动后的数列为: 9 10 1 2 3 4 5 6 7 8
64
127:数组a包括10个整数,编写一个函数完成 把a中所有的后项除以前项之余数存入数组b, 返回主函数后按每行4个元素的格式输出数组b。 请用函数调用的方式编程。
65
128:数组a包括10个整数,编写一个函数,完 成计算a中各相邻两个元素的和,并将这些和 存入数组b,返回主函数后按每行4个元素的格 式输出数组b。请用函数调用的方式编程。
17
80:编程实现:求1+1/2+1/3+……+1/n的 值,其中n值由键盘输入。

Raptor题库编程题

1从键盘输入3个数值,按降序显示。

要求用主图实现。

2从键盘输入一个数值x,显示函数值f(x)。

f(x)={|x|−3.5,当x≤2.3时sincos(x−7),当2.3<x≤10时√x,当10<x时。

要求用主图实现。

3从键盘输入非负整数n,显示n!。

要求用主图实现。

(如果题目没有具体要求则非负不需要限定)4显示所有的水仙花数。

一个三位正整数,如果等于该数的每位数字的立方和,则被称为水仙花数。

要求用主图实现。

(假设一个数是365,该题关键就是如何得到百位,十位和各位)注:A代表百位:365/100=3.65 对3.65取整用floor函数,结果是3B代表十位:365/10=36.5 对36.5取整得36,用36 mod 10得到的余数是6C代表各位:365 mod 10 余数是55从键盘输入一个不小于2的的整数,判断其是否为素数。

要求用主图实现。

注:素数的算法很多,用哪个都行,也可以用我们上课练习的。

6显示100到150之间的所有素数。

要求用主图和过程isp实现。

过程isp(m,f)的功能是,判断整数m(m≥2)是否为素数,如果是素数,则f为true,否则f为false。

7显示如下图形。

************************************要求用主图和prt(m,c)过程实现,该过程的功能是,显示m个字符c。

此题的关键点是分两部分输出,第一部分是输出空格,第二部分是输出*8在一个笼子里有若干只鸡和若干只兔,从上面数共有42个头,从下面数共有94只脚,编写程序求解鸡和兔各是多少只?9 已知一个有10个整数组成的数列,按升序排列并显示结果。

要求整数数列用随机函数产生,范围是[10,210]。

随机数请记住:例如:生成a到b范围的随机数a+floor(random*(b-a+1))10输入两个正整数m和n,计算并显示m和n的最大公约数和最小公倍数。

注:最小公倍数=两个数的积/最大公约数11产生并显示6个10到20之间的随机整数,并显示其中的最大数及其位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例1输入50个数按逆序输出
Private Sub Form_Click()
Dim data(1 To 50) As Integer
For i = 1 To 50
'data(i) = Val(InputBox("请输入第" & i & "个数:"))
data(i) = Int((100 - 10 + 1) * Rnd + 10)
Print data(i);
Next i
Print
For i = 50 To 1 Step -1
Print data(i);
Next
End Sub
例2 统计每个数出现的次数
Private Sub Form_Click()
Dim a(0 To 9) As Integer, x As Integer, i As Integer
FontSize = 30
For i = 1 To 100
x = Int(Rnd * 10)
a(x) = a(x) + 1
Next i
For i = 0 To 9
Print i & "有" & a(i) & "个"
Next i
End Sub
最值:
Option Explicit
Option Base 1

Private Sub Form_Click()
Dim compare(12) As Integer, i As Integer
Dim max As Integer, min As Integer
FontSize = 30
Randomize
For i = 1 To 12
compare(i) = Int((90 * Rnd) + 10) '10--99
Print compare(i);
Next i
Print
max = compare(1): min = compare(1)
For i = 2 To 12
If compare(i) > max Then
max = compare(i)
ElseIf compare(i) < min Then
min = compare(i)
End If
Next i
Print "最大数是:"; max
Print "最小数是:"; min

End Sub
交换元素
Option Explicit

Private Sub Command1_Click()
Dim a(9) As Integer, i As Integer, t As Integer
'输入即给各元素赋初值
For i = 0 To 9
a(i) = Int(90 * Rnd) + 10
Print a(i);
Next
Print
'处理即完成交换对称位置的元素
For i = 0 To 4
t = a(i)
a(i) = a(9 - i)
a(9 - i) = t
Next
'输出交换后的各元素值
For i = 0 To 9
Print a(i);
Next
End Sub

相关文档
最新文档