c++编程题汇总
经典C语言编程(20题)
1.请编写一个函数fun,其功能是:删除字符串中的数字字符。
例如,输入字符串为:48CTYP9R6,则输出:CTYPR。
部分源程序已经给出,请勿改动主函数的内容。
main(){ char item[100];gtes(item);fun(item);printf(“The string:%s\n”,item);}解答:#include<stdio.h>#include<string.h>void fun(char s[]){int i,j;for(i=j=0;s[i]!='\0';i++)if(s[i]>='0' && s[i]<='9') i++;elses[j++]=s[i]; s[j]='\0';}main(){ char item[100];gets(item);fun(item);printf("The string:%s\n",item); }2. 从键盘上读入一字符串存入字符数组xx中,请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应位置上,最后调用函数WriteDat()将结果xx输出。
替代关系如下:f(p)=p*11%256其中,p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于32,则该字符不变,否则用f(p)所对应的字符进行替代。
设字符串的长度小于80个字符,部分源程序已给出。
除增加必要的数据定义、函数参数外,请勿改动主函数的内容。
#include <stdio.h>main(){ char xx[80];gets(xx);encryptChar();WriteDat();}解答:#include<stdio.h>#include<string.h>void encryptChar(char a[]) {int i,j;for(i=j=0;a[i]!='\0';i++) if(a[i]%2==0 ||(a[i]*11%256<32))a[j++]=a[i];elsea[j++]=a[i]*11%256; } WriteDat(char a[]) {puts(a);}main(){ char xx[80];gets(xx);encryptChar(xx); WriteDat(xx);} _3. 设有数组:int a[10]={6012,5099,9012,7025,8088,9096,8080,3046,5082,2345};请编制函数jssort(),其功能是:要求按每个数的后三位的大小进行升序排序,然后调用函数WriteDat()将结果输出。
全国计算机等级考试c语言编程题目汇总
int i;
*n=0;
for(i=7;i<=m;i++)
if((i%7==0)||(i%11==0))
a[(*n)++]=i;
}
3. 程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
}
3. 程序设计
请编写一个函数void fun(char*tt,int pp[ ]),统计在tt所指字符串中‘a’至‘z’26个小写字母各自出现在的次数,并依次放在pp数组中。
void fun(char*tt, int pp[ ])
{
r *p=tt;
int i;
for(i=0;i<26;i++)
STREC fun(STREC*a,char *b)
{
STREC c;
Int i;
c.num[0]=’\0’;
c.s=-1;
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)==0)
{strcpy(c.num,a[i].num);
c.s=a[i].s;break;}
int fun(STREC *a,STREC *b)
{
int i,j=0,min=a[0].s;
for(i=0;i<N;i++)
{ if(min>a[i].s){
C语言编程题目
h 1、编程实现:从键盘输入3个变量的值,其中中a=5,b=6,c=7,然后将3个变量的值进行交换,使得a=6,b=7,c=5.#include"stdio.h"void main(){int a,b,c,m;printf("Enter a,b,c:");scanf("%d,%d,%d",&a,&b&c);m=a;a=b;b=c;c=m;printf("a=%d,b=%d,c=%d\n",a,b,c);}2、编程实现:输入任意一个3位数,将其各位数字反序输出(例如:输入123,输出321)。
#include"stdio.h"void main(){int a,b,c,x,y;printf("输入一个3位数:\n");scanf("%d",&x);h a=x%10;b=x/100;c=x%100/10;y=a*100+c*10+b;printf("%d\n",y);}3、编程实现:输入三角形的边长,求三角形面积(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2.#include<stdio.h>#include<math.h>void main(){int a,b,c;float x,y;scanf("%d,%d,%d",&a,&b,&c);x=(a+b+c)/2;y=sqrt(s*(s-a)*(s-b)*(s-c));printf("%.3f\n",y);}4、编程实现:从键盘上输入一个年月日,要求出该天是该年的第几天(注意判断该年是否是闰年)。
#include<stdio.h>void main(){inta,b,c;printf("输入一个年月日:"); scanf("%d%d%d",&a,&b,&c);if(a%4==0||a%100==0)switch(b){case 1: printf("%d\n",c);break; case 2: printf("%d\n",31+c);break; case 3: printf("%d\n",60+c);break; case 4:printf("%d\n",91+c);break; case 5:printf("%d\n",121+c);break; case 6:printf("%d\n",152+c);break; case 7:printf("%d\n",182+c);break; case 8:printf("%d\n",213+c);break; case 9: printf("%d\n",244+c);break; case 10: printf("%d\n",274+c);break; case 11: printf("%d\n",305+c);break; case 12: printf("%d\n",335+c);break; }elseswitch(b){case 1: printf("%d\n",c);break;case 2: printf("%d\n",31+c);break;case 3: printf("%d\n",59+c);break;case 4: printf("%d\n",90+c);break;case 5: printf("%d\n",120c);break;case 6: printf("%d\n",151+c);break;case 7: printf("%d\n",181+c);break;case 8: printf("%d\n",212+c);break;case 9: printf("%d\n",243+c);break;case 10: printf("%d\n",273+c);break;case 11: printf("%d\n",304+c);break;case 12: printf("%d\n",334+c);break;}}5、求∑n!(1!+2!+3!+...+25!)。
40个C语言的基础编程题
{ sn=sn+2*hn;/*第 n 次落地时共经过的米数*/ hn=hn/2; /*第 n 次反跳高度*/ printf("the total of road is %f\n",sn); printf("the tenth is %f meter\n",hn);} }
再加上 168 又是一个完全平方数, 请问该数是多少? 1.程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后 的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); 果*/ y=sqrt(i+268); 结果*/ if(x*x==i+100&&y*y==i+268)/*如果一个数的 平方根的平方等于该数,这说明此数是完全平方数*/ printf("\n%ld\n",i); }} ======================================== 【程序 12】 题目:输入三个整数 x,y,z,请把这三个数由小到大 输出。 1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较, 如果 x>y 则将 x 与 y 的值进行交换, 然后再用 x 与 z 进行比较, 如果 x>z 则将 x 与 z 的值 进行交换,这样能使 x 最小。 2.程序源代码: main() {int x,y,z,t; /*以下为三重循环*/ scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} /*交换 x,y 的值*/ /*确保 i、j、 if(x>z) {t=z;z=x;x=t;}/*交换 x,z 的值*/ if(y>z) {t=y;y=z;z=t;}/*交换 z,y 的值*/ printf("small to big: %d %d %d\n",x,y,z);} ======================================== 【程序 13】 题目:用*号输出字母 C 的图案。 /*y 为再加上 168 后开方后的 /*x 为加上 100 后开方后的结
c语言经典编程题
c语言经典编程题
以下是一些经典的C 语言编程题:
1. 计算斐波那契数列:要求使用递归和循环两种方式实现。
2. 冒泡排序算法:实现对一组数字进行排序。
3. 二分查找算法:在有序数组中查找特定的元素。
4. 打印九九乘法表:使用循环打印出九九乘法表。
5. 字符串反转:将一个字符串反转。
6. 计算水仙花数:输出所有的水仙花数(一个三位数,其各位数字立方和等于该数本身)。
7. 约瑟夫环问题:经典的数学问题,要求用循环和指针实现。
8. 猴子吃桃问题:经典的数学问题,要求用递归实现。
这些题目都是C 语言编程中的经典问题,可以帮助你巩固和提高C 语言的编程能力。
c语言编程100题
*******
*****
***
*
78、打印如下矩阵
25
24
23
22
21
10
9
8
7
20
64、编写函数,通过指针求一个字符串的反串。函数头如下:
65、编写函数,通过指针求一个字符串的长度。函数头如下:
#include <stdio.h>
char *strlen(char *s)
{char *p=s;
while(*p)p++;
return(p-s);
71、试编程判断输入的正整数是否既是5又是7的整数倍。若是,则输出yes,否则输出no。
72、每个苹果0.8元,第一天买两个苹果,从第二天开始,每天买前一天的2倍,直到购买的苹果个数达到不超过100的最在数。编写程序求每天平均花多少钱?
73、试编程找出1至99的所有同构数,所谓同构数是指它出现在它的平方数的右边。如6的平方数36故6是同构数。
74、试编写一程序将字符串s中的所有字符c删除。
75、编写程序,求1-3+5+……+101
76、编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于10-4
77、编写程序,打印以下图形(输入一正整数说,输出一棱形)
当n=4时,图形如下:
*
***
*****
24. 把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中的英文字符。
25. 编程,把文本文件d1.dat复制到d2.dat(其中空格字符不复制)。
c语言经典题目100题
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
C语言经典编程100题(答案版)
C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
c语言编程题目大全
1、请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
{ char a[N];int i;for(i=0;i<m;i++) a[i]=w[i];while(w[i]) { w[i-m]=w[i]; i++;}i--;m--;for(;m>=0;m--,i--) w[i]=a[m];}2、编写函数fun,它的功能是:计算并输出下列级数和:1 1 1S = ── + ── + … + ───1×2 2×3 n(n+1)例如,当n = 10时,函数值为:0.909091。
{int i;double s;for(i=1;i<=n;i++){ s+=1.0/(i*(i+1));}return s;}3、假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其它*号全部删除。
形参p已指向字符串中最后的一个字母。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG*******。
{ char *q;while(a<p)if(*a=='*'){ for(q=a;*q;q++)*q=*(q+1);p--;}else a++;}4、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。
合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。
例如,当a=45,b=12。
调用该函数后,c=1425。
{*c=a/10*100+a%10+b/10*1000+b%10*10;}5、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。
50道C 编程练习题及解答
50道C/C++编程练习题1、输入3个数,求最大值int main(){ int a,b,c,m;cin>>a>>b>>c;m=a;if(b>m) m=b;if(c>m) m=c;cout<<m;}2、编程序,求方程ax2+bx+c=0的根#include<iostream>#include<cmath>using namespace std;int main(){double a,b,c,d,x1,x2;cin>>a>>b>>c;if(a==0)if(b==0) cout<<"error\n";else cout<< "x="<<-c/b<<endl;else{ d=b*b-4*a*c;if(fabs(d)<=1e-6)cout<<"x1=x2="<<-b/(2*a)<<endl;else if(d>1e-6){ x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1="<<x1<<",x2="<<x2<<endl;}else cout<<"方程无实根\n";}}3、输入一个成绩,打印相应的等级int main(){ int a;cin >> a;if(a>=90) cout<<"A";else if(a>=80) cout<<"B";else if(a>=70) cout<<"C";else if(a>=60) cout<<"D";else cout<<"E";}4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。
c语言经典编程试题12例(带答案)
int i,num=0;
float a[10],sum=0.0;
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
if(i>=0)
{
num++;
sum+=a[i];
}
printf("10个数中非负数的个数为:%d\n",num);
void main()
{
char a[50];
char *p,*q;
printf("请输入一个字符串:");
gets(a);
for(p=a;*p!=0;)
if(*p=='a')
{
q=p;
while(*p)
{
*p=*(p+1);
p++;
}
p=q;
}
else
p++;
printf("%s\n",a);
}
12、一个皮球从100米的高度自由落下,每次落地后反弹回原来高度的一半,再落下,在反弹。求当它第10次落地时,共经过了多少米,第十次反弹多高?
printf("100之内偶数的和位: %d\n",sum);
}
7、求1*2*3+3*4*5+…99*100*101的值。
解题思路:
定义一个变量从1到101,再有标志变量j确定乘够3个数之后便重新开始下一次乘积。跳出循环后加上最后一次乘积。
C语言编程题_经典40题(附解答)
{int i, j, temp, exchange ; for ( i=0; i<n-1; i++)
/*i表示趟数,最多n-1趟*/
{exchange=0; /*假设这一趟不会有数据交换*/
for ( j=n-1 ; j> i; j--)
if (R[j]<R[j-1]) /*若反序则交换,将较小的元素往上调*/ { temp =R[j]; R[j]=R[j-1]; R[j-1]= temp; exchange=1; } if(exchange= =0) return; } }
{ for( j=1; j<=i; j++)
printf(―%4d* %d= %2d‖, i, j, i*j); printf(―\n‖); } }
8、铁路托运行李规定:行李重不超过50公斤的,托运费 按每公斤0.15元计费;如超过50公斤,超过部分每公斤加收 0.10元。编一程序实现自动计费功能。 double money(double w ) { if (w<=50) return 0.15*w; else return 0.75+0.1*(w-50); } void main( ) { int w; double f; do { printf(―请输入行李重量:”); scanf(―%d‖,&w); if (w >0) { f =money(w); printf(―\nweight=%d,freight=%f‖,w,f); } }while (w= =0); }
{ temp=b[i]; b[i]=b[k]; b[k]=temp; }
} }
输出一维数组的函数如下:
c语言编程题及答案
c语言编程题及答案1. 输入输出题题目:编写一个程序,要求从键盘输入两个整数,然后输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 条件语句题题目:编写一个程序,要求从键盘输入一个整数,判断它是否为正数、负数还是零,并输出相应的提示信息。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n"); scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n"); } else if (num < 0) {printf("这是一个负数。
\n"); } else {printf("这是零。
\n");}return 0;}```3. 循环语句题题目:编写一个程序,要求计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int i, sum;sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```4. 数组题题目:编写一个程序,要求定义一个包含10个整数的数组,并逐个从键盘输入数组元素的值,然后对数组进行逆序输出。
c语言编程习题及答案
c语言编程习题及答案C语言是一种广泛使用的计算机编程语言,以其高效性和灵活性而闻名。
以下是一些C语言编程习题及其答案,供学习者练习和参考。
习题1:求两个数的和编写一个C程序,输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```习题2:计算圆的面积编写一个C程序,输入圆的半径,计算并输出圆的面积。
```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```习题3:判断一个数是奇数还是偶数编写一个C程序,输入一个整数,判断并输出它是奇数还是偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d 是偶数。
\n", num);} else {printf("%d 是奇数。
C程序设计试题汇编
c程序设计试题汇编C程序设计试题汇编一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是正确的数据类型?A. IntegerB. intC. RealD. float2. 以下哪个语句可以正确地声明一个整型变量?A. int var;B. var int;C. int = var;D. var = int;3. C语言中的数组下标是从哪个数字开始的?A. 0B. 1C. -1D. 随机数4. 以下哪个是正确的C语言函数定义?A. int func(int a, int b) { return a + b; }B. int func(int, int) { return a + b; }C. func(int a, int b) { return a + b; }D. int func(a, b) { return a + b; }5. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void6. 以下哪个是C语言中的循环结构?A. forB. whileC. do-whileD. 所有选项都是7. 在C语言中,以下哪个操作符用于取模运算?A. %B. /C. *D. -8. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. ~D. 所有选项都是9. 在C语言中,哪个关键字用于定义一个结构体?A. structB. typeC. classD. union10. 以下哪个是C语言中的输入输出函数?A. printf()B. print()C. input()D. read()二、填空题(每空2分,共20分)11. 在C语言中,字符常量用____表示。
12. 一个C语言程序的执行从____函数开始。
13. C语言中的字符串以____字符结尾。
14. 一个变量的存储类别可以是自动的(auto)或____的。
15. 在C语言中,____运算符用于连接字符串。
计算机系C语言编程50题(含答案)
1、输入1~10之间的一个数字,输出它对应的英文单词。
#include"stdio.h"main(){int x;printf("please input x(1-10):\n");scanf("%d",&x);switch(x){case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;case 4:printf("four");break;case 5:printf("five");break;case 6:printf("six");break;case 7:printf("server");break;case 8:printf("eight");break;case 9:printf("nine");break;case 10:printf("ten");break;}}2、用自然语言描述程序逻辑如下,试写程序。
①设置环境;②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③i=1;④如果i≤100,则转⑤,否则转⑧;⑤令s=0,求前i个自然数之和,并放于变量s之中;⑥sum=sum+s;⑦i增加1,转④;⑧输出和sum,结束。
#include"stdio.h"main(){int i,j,s;long sum=0;for(i=1;i<=100;i++){s=0;for(j=1;j<=i;j++){s=s+j;}sum=sum+s;}printf("sum=%d",sum);}3、用自然语言描述的程序逻辑为:(假设正确口令为123456)①设置环境;②定义变量i、flag和password,并令flag=0,i=0;③用户回答口令,将其赋于password变量;④口令正确?如果是,则flag=1,转⑥。
c语言经典一百题
c语言经典一百题
以下是一些经典的 C 语言题目,这些题目可以帮助你提高编程技能和加深对 C 语言的理解。
1. 输出 "Hello, World!"
2. 求出 1 到 100 的所有素数
3. 求出斐波那契数列的第 n 项
4. 判断一个数是否为回文数
5. 将一个字符串反转
6. 求出数组中的最大值和最小值
7. 求出数组中所有元素的和
8. 将一个字符串中的字符按字母顺序排序
9. 实现冒泡排序算法
10. 实现选择排序算法
11. 求出数组中所有奇数的和
12. 实现插入排序算法
13. 求出数组中所有偶数的和
14. 判断一个数是否为奇数或偶数
15. 求出两个数的最大公约数
16. 求出两个数的最小公倍数
17. 判断一个年份是否为闰年
18. 将一个十进制数转换为二进制数
19. 将一个二进制数转换为十进制数
20. 求出两个数的和、差、积和商
21. 求出数组中所有数字的平均值
22. 将一个字符串中的字符按字母顺序降序排序
23. 将一个字符串中的单词倒序输出
24. 求出数组中所有数字的个数
25. 求出数组中所有正数的个数
26. 求出数组中所有负数的个数
27. 将一个字符串中的字母按字母顺序升序排序,其他字符按字母顺序降序排序
28. 将一个字符串中的单词按长度升序排序,长度相同的单词按字母顺序降序排序
29. 将一个字符串中的单词按长度降序排序,长度相同的单词按字母顺序升序排序
30. 求出数组中所有数字的绝对值之和。
c语言经典题目100题
c语言经典题目100题C语言经典题目100题C语言经典题目一直是程序员们提高编程技能和理解语言细节的重要手段之一。
在这篇文档中,我将为你准备100道C语言经典题目,帮助你更好地掌握和应用C语言的基础知识。
这些题目将涵盖C语言的各个方面,包括基本数据类型、运算符、流程控制、函数等。
请注意,本文所提供的代码示例可以供你借鉴参考,但请务必自行思考和尝试解决这些问题。
题目1:编写一个C程序,交换两个变量的值。
```c#include<stdio.h>int main(){int a = 5, b = 10;int temp;printf("交换前:a = %d, b = %d\n", a, b);temp = a;a = b;b = temp;printf("交换后:a = %d, b = %d\n", a, b);return 0;```题目2:编写一个C程序,判断一个数是奇数还是偶数。
```c#include<stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0)printf("%d 是偶数\n", num);elseprintf("%d 是奇数\n", num);return 0;}```题目3:编写一个C程序,求两个数的最大公约数。
```c#include<stdio.h>int main()int num1, num2;int gcd;printf("请输入两个正整数:");scanf("%d %d", &num1, &num2);for(int i = 1; i <= num1 && i <= num2; i++){if(num1 % i == 0 && num2 % i == 0)gcd = i;}printf("%d 和 %d 的最大公约数是 %d\n", num1, num2, gcd);return 0;}```题目4:编写一个C程序,判断一个数是否为素数。
C编程(25题)
一、程序设计共30题(共计300分)第1题(10.0分)题号:521/*------------------------------------------------------- 【程序设计】---------------------------------------------------------题目:找出二维整型数组a[4][4]中每行元素的最大值,并将该元素移动至该行首列。
编写程序:1、编写void findmax(int a[][N], int n[])函数:找出二维数组a中每行元素的最大值,并将该元素的列下标存入数组n中,即第0行元素最大值的列下标存入n[0], ...,第3行元素最大值的列下标存入n[3]。
2、编写void move(int a[][N],int n[])函数:根据数组n中保存的数据,将a数组中每行最大值元素移动到该行首列,要求移动后该元素与该行其他元素的相对位置不变。
例如:a数组的初始数据为:-2 13 6 925 4 0 11-8 3 10 164 75 20经过处理后a数组中数据为:13 6 9 -225 4 0 1116 -8 3 1020 4 7 5--------------------------------------------------------- 注意:请勿改动主函数main()中的任何语句。
-------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#define N 4void findmax(int a[][N], int n[]){/**********Program**********//********** End **********/}void move(int a[][N],int n[]){/**********Program**********//********** End **********/}void main(){int i,j;int a[N][N]={{-2,13,6,9},{25,4,0,11},{-8,3,10,16},{4,7,5,20}},n[4]; FILE *fp;findmax(a,n);move(a,n);if((fp=fopen("data.txt","w"))==NULL){printf("open file error\n");exit(0);}for(i=0;i<N;i++){for(j=0;j<N;j++){fprintf(fp,"%d\t",a[i][j]);printf("%d\t",a[i][j]);}fprintf(fp,"\n");printf("\n");}fclose(fp);}答案:void findmax(int a[][N],int n[]){int i,j,k;for(i=0;i<N;i++){k=0;for(j=1;j<N;j++)if(a[i][j]>a[i][k])k=j;n[i]=k;}}void move(int a[][N],int n[]){int i,j,k,l;for(i=0;i<N;i++){k=n[i];while(k!=0){l=a[i][0];for(j=1;j<N;j++)a[i][j-1]=a[i][j];a[i][3]=l;k--;}}}第2题(10.0分)题号:522/*------------------------------------------------------- 【程序设计】---------------------------------------------------------题目:程序对一维数组a中数据进行升序排序后,对数组a中重复出现的数据,删除重复数据,保留一个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章1.编写一个求方程ax2 + bx + c = 0的根的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。
要求从主函数输入a,b,c的值并输出结果。
#include < iostream.h >#include < math.h >void equation_1 (int a, int b, int c){double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = (-b - sqrt(temp) ) / (2 * a * 1.0);cout<<"两个不相等的实根"<< endl;cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;}void equation_2 (int a, int b, int c){double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = x1;cout<<"两个相等的实根"<< endl;cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;}void equation_3 (int a, int b, int c){double temp, real1, real2, image1, image2;temp = - (b*b - 4 * a * c);real1 = -b / (2 * a *1.0);real2 = real1;image1 = sqrt(temp);image2 = - image1;cout<<"两个虚根"<< endl;cout<<"x1 = "<< real1<<" + "<< image1<<"j"<< endl;cout<<"x2 = "<< real2<<" + "<< image2<<"j"<< endl;}void main(){int a, b, c;double temp;cout<<"输入a,b,c的值"<< endl;cin>>a>>b>>c;cout<<"方程为:"<< a<<"x*x+"<< b<<"x+"<< c<<" = 0"<< endl;temp = b*b - 4 * a * c;if(temp > 0)equation_1 (a, b, c);if(temp == 0)equation_2 (a, b, c);if(temp < 0)equation_3 (a, b, c);}2.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。
要求在短小而完全的程序中显示这个程序是怎样被调用的。
#include < iostream >using namespace std;char up (char c){if(c >= 97 && c <= 122)return (c - 32) ;elsereturn c;}void main(){int i;char c[15] = {'A','v','e','t','E','T','%','&','4','Y','e','i','@','9','^'};for(i = 0 ; i < 15 ; i++)cout<< up(c[i])<<", ";cout<< endl;}3.编写主程序条用带实数r和整数n两个参数的函数并输出r的n次幂。
#include < iostream.h >#include < math.h >double power(double a, int b){int i;double result = 1.0;for(i=0;i< b;i++)result = result * a;return result;}void main(){double r;int n;cout<<"r = ";cin>>r;cout<<"n = ";cin>>n;cout<< r<<"的"<< n<<"次幂是:"<< power(r,n)<< endl;}4.编写有字符型参数C和整形参数N的函数,让他们显示出由字符C组成的三角形。
其方式为第1行有1个字符C,第2行有2个字符C ,等等。
#include < iostream >using namespace std;void print_triangle(char c, int n){int i, j;for(i=0; i< n; i++){for(j=0; j<=i; j++){cout<< c;}cout<< endl;}}void main(){print_triangle('a',10);}5.编写一个ieqiu字符串长度的函数,strlen(),再用strlen()函数编写一个函数revers(s)的倒序递归程序,使字符串s逆序。
#include < iostream >#include < string >using namespace std;int strlen(char *str){int len = 0;while(str[len] != '\0'){len++;}return len;}void revers(char *b){char c;int j, len;len=strlen(b);j=len/2-1;while(j>=0){c=*(b+j);*(b+j)=*(b+len-j-1);*(b+len-j-1)=c; j--;}b[len]='\0';}void main(){char str[]={"1234567890"};cout<< str<<"----的长度:"<< strlen(str)<< endl;cout<< str<< endl;//倒序前revers(str);//cout<< str<< endl;//倒序后}6.用函数模板实现3个数值中按最小值到最大值排序的程序。
#include < iostream >using namespace std;templatevoid sort(T a, T b, T c){T array[3],temp;int i,j;array[0] = a;array[1] = b;array[2] = c;for(i=0;i<3;i++){for(j=0;j<2;j++)if(array[j]>array[j+1]){temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}cout<< array[0]<< array[1]<< array[2]<< endl;}void main(){sort(5,1,9);}7.利用函数模板设计一个求数组元素中和的函数,并检验之。
#include < iostream >using namespace std;templateT sum (T a[],int n){int i;T s=0;for(i=0;i< n;i++)s = s + a[i];return s;}void main (){int a[5]={1,2,3,4,5};int s = sum(a,5);cout<< s<< endl;}8.重载上题中的函数模板,使他能够进行两个数组的求和。
#include < iostream >using namespace std;templateT sum (T a[], int n){int i;T s=0;for(i=0;i< n;i++)s = s + a[i];return s;}template //重载上面的模板T sum (T a[], int n, T b[], int m){return sum(a,n)+sum(b,m);}void main (){int a[5]={1,2,3,4,5};int b[10]={1,2,3,4,5,6,7,8,9,10};int s1 = sum(a, 5);int s2 = sum(b, 10);int s3= sum(a, 5, b, 10);cout<< s1<< endl;cout<< s2<< endl;cout<< s3<< endl;}第四章1.设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。