c语言编程题-创新互联
编写程序,输入一行字符,分别统计其中的大写字母个数和小写字母个数以及数字个数。
创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元鹰潭做网站,已为上家服务,为鹰潭各地企业和个人服务,联系电话:18980820575#inclde
int main()
{char a[3];
char str;
int i;
int b[5]={0};
gets(a);
for(i=0;(str=a[i])!='\0';i++)
{
if(str>='A'&&str<='Z')
b[0]++;
else if(str>='a'&&str<='z')
b[1]++;
else if(str>='0'&&str<='9')
b[2]++;
}
printf("大写字母=%d\n",b[0]);
printf("小写字母=%d\n",b[1]);
printf("数字=%d\n",b[2]);
return 0;
}
水仙花数,
int main(){
int i = 0;
for (i = 100; i< 1000; i++){
int a = i % 10;//获得个位
int b = i / 10 % 10;//获得十位
int c = i / 100;//获得百位
if (a*a*a + b*b*b + c*c*c == i)
printf("水仙花数:%d\n", i);
}
return 0;
}
求5×5矩阵两条对角线上的各元素之和。
#include
int main()
{
int i,j,sum1,sum2,matrix[5][5];
sum1=0,sum2=0;
printf("请为该矩阵输入元素:");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&matrix[i][j]);
for(i=0,j=0;i<5;i++,j++)
sum1+=matrix[i][j];
for(i=4,j=0;i>=0;i--,j++)
sum2+=matrix[i][j];
printf("主对角线上元素的和为:%d\n斜对角线上的元素的和为:%d\n",sum1,sum2);
return 0;
}
输出3~100以内的所有素数,每行输出5个值。
#include
int main()//3-100的素数
{
int i, j, n = 0;
for (j = 3; j<= 100; j++)
{
for (i = 2; i<= j - 1; i++)
{
if (j%i == 0)
break;
}
if(i >= j)
{
n++;
printf("%d ", i);
if (n % 5 == 0)
printf("\n");
定义学生结构体类型,成员包括学号、姓名、3门课程的成绩、平均成绩。用一个函数实现5个学生数据(包括学号、姓名、3门课程的成绩)的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生的序号。要求在主函数中输出平均分最高的学生的数据。
#include
struct Student
{
int num; char name[20]; float score[3]; float aver;
};
int main()
{
void input(struct Student stu[]);
int max(struct Student stu[]);
void aver(struct Student *stu);
struct Student stu[5],*p=stu;
int i;
input(p);
aver(p);
i=max(p);
printf("学号:%d\n姓名:%s\n成绩:%f %f %f\n平均成绩:%f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
return 0;
}void input(struct Student stu[])
{ int i;
printf("请输入各学生的信息:学号、姓名、三门课成绩:\n");
for(i=0;i<5;i++)
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}
int max(struct Student stu[])
{int i,m=0;
for(i=1;i<5;i++)
if (stu[i].aver>stu[m].aver) m=i;
return m;
}
void aver(struct Student *stu)
{ int i;
for(i=0;i<5;i++)
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
}
)学生成绩统计:先输入某班级学生总人数,后输入该班每个学生的成绩,要求计算并输出该班学生的平均成绩、最高成绩和最低成绩。要求使用动态内存分配来实现。
#include
#include
int main()
{
float *p,max=-1,min=101,aver=0;
int i,num;
scanf("%d",&num);
p=(float *)calloc(sizeof(float),num);
for(i=0;i { scanf("%f",p+i); if(*(p+i)>max) max=*(p+i); else if(*(p+i) min=*(p+i); aver+=*(p+i); } aver/=num; printf("平均分:%f最高分:%f最低分:%f\n",aver,max,min); return 0; } 定义并调用自定义函数void mystrncpy(char *t,char *s,int n),使用该函数实现字符串复制:输入一个字符串s和一个正整数n,将字符串s中从头开始的n个字符复制到字符串t中。要求在主函数中输入字符串s,并输出字符串s和字符串t。 #include void mystrncpy(char *t,char *s,int n) { int i; for(i=0;i if((t[i]=s[i])=='\0') return; t[i]='\0'; return; } int main() { char t[100],s[]="I love china"; mystrncpy(t,s,10); printf("%s\n",t); return 0; } 一个数组中的n个值已经按升序排列存放,输入一个数,编程查找是否有该数,有则显示其所在的位置,没有则显示 “No Found”,通过指针实现。 #include int main() { int j,a[]={0,1,2,3,4,5,6,7,8,9},*p=a; scanf("%d",&j); for(;p if(*p==j) { printf("%d",p-a+1); break; } if(p==a+10) printf("Not Found"); return 0; } 有两个磁盘文件dfileA.txt和dfileB.txt,各存放一行字母(不多于80个),现要求把两个文件中的信息合并(按照字母顺序排列),输出到一个新文件dfileC.txt中。 #include #include #include int main() { FILE *fp1,*fp2,*fp3; char ch,str1[160],str2[80]; int i,j; if((fp1=fopen("dfileA.txt","r"))==NULL) { printf("file open error!"); exit(0); } if((fp2=fopen("dfileB.txt","r"))==NULL) { printf("file open error!"); exit(0); } if((fp3=fopen("dfileC.txt","w"))==NULL)· · { printf("file open error!"); exit(0); } i=0; while(!feof(fp1)) str1[i++]=fgetc(fp1); str1[i]='\0'; printf("%s\n",str1); i=0; while(!feof(fp2)) str2[i++]=fgetc(fp2); str1[i]='\0'; printf("%s\n",str2); strcat(str1,str2); printf("%s\n",str1); for(i=0;i for(j=0;j if(str1[j]>str1[j+1]) { ch=str1[j]; str1[j]=str1[j+1]; str1[j+1]=ch; } } fputs(str1,fp3); fclose(fp1); fclose(fp2); fclose(fp3); return 0; } 输入3个正整数,判断是否能够构成三角形,如果能则计算三角形的周长和面积,否则输出“不能构成三角形!”。 我的答案: #include #include int main(){ double a,b,c,s,area; scanf("%1f %1f %1f",&a,&b&c); if(a+b>c&&a+c>b&&c+b>a){ s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf("area=%1f",area); } else printf("不能构成三角形!"); return 0; } 学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人。编写程序,求该校的学生人数。 #include main(){ int i; for(i=950;i<=1150;i++){ printf("%d\n",i); }} return 0;} mian() { int a[5],max,min,i,j,k; for(i=0;i<5;i++) scanf("%d",&a[i]); min=a[0]; for(i=1;i<5;i++) if(a[i] {min=a[i]; k=i;} max=a[0]; for(i=1;i<5;i++) if(a[i]>max) {max=a[i]; j=i;} a[k]=max; a[j]=min; printf("%3d",k);//最小值输出 printf("%3d",j);//大值输出 for(i=0;i<5;i++) printf("%d",a[i]); } 6. (简答题,8.5分)编写一个书名排序程序,输入10个书名并存入一个二维数组,用函数void sortstring( char *name[] , int n)实现它们的字典顺序。 #include "stdio.h" 逆序排列 #include int main(){ void sort(int a[],int n); //函数声明 int a[20]={0},i,num=0; int *p=a; //定义一个指针变量 scanf("%d",&num); for(i=0;i scanf("%d",p++); p=a; sort(p,num); for(i=0,p=a;i printf("%d,",*p++); return 0; } void sort(int a[],int n){ int i,t; for(i=0;i t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; } } )编写自定义函数,实现如下功能:一个数组有n个整数,使前面各数顺序向后移动m个位置,移出的数再从开头移入。要求在主函数中输入n的值,由随机函数rand()产生n个整数存入数组,调用自定义函数后,在主函数中输出调整后的n个数。 正确答案: #include #include #include void move(int arry[],int n,int m); int main() { int arry[100],n,m,temp,i,j; srand(time(NULL)); scanf("%d",&n); for(i=0;i { printf("%d ",arry[i]); } scanf("%d",&m); printf("\n"); move(arry,n,m); for(i=0;i printf("%d ",arry[i]); return 0; } void move(int arry[],int n,int m) { int temp,i,j; for(i=0;i { temp=arry[n-1]; for(j=n-1;j>0;j--) arry[j]=arry[j-1]; arry[0]=temp; } } 同构数 #include int main() {int i;for(i=1; i<100; i++){if(i*i%10==i||i*i%100==i){ printf("%-4d",i); }} return 0; } 冒泡排序 #include int main() { int i,j,t,a[10]; printf("输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) //变量i仅代表比较的趟数(n-1)趟 for(j=0;j<9-i;j++) if(a[j]>a[j+1]) //相邻两个数相互比较 { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 选择排序 #include int main() { int i,j,t,a[10]; printf("请输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); //输入10个整数存到数组里 for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) //如果前一个数比后一个大,则调换值 { t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; } 插入排序 #include int main() { void insert(int a[],int first,int last); int i,a[10]; printf("输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); insert(a,0,9); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); return 0; } void insert(int a[],int first,int last) { int i,j,t; for(i=first+1;i<=last;i++) { t=a[i]; j=i-1; while((j>=0) && (a[j]>t))//与已排序的数逐一比较,大于t时,该数移后 { a[j+1]=a[j]; j--; } a[j+1]=t; } } 矩阵装置 //3*3矩阵的转置 void Print(int a[][3]){ int i = 0, j = 0; for (i = 0; i< 3; i++){ for (j = 0; j< 3; j++){ printf("%d ", a[i][j]); } printf("\n"); } printf("\n"); } int main(){ int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0, j = 0; printf("转置之前=============\n"); Print(a); //转置 for (i = 0; i< 3; i++){ for (j = 0; j< i; j++){ int t = a[i][j]; a[i][j] = a[j][i]; a[j][i] = t; } } printf("转置之后=============\n"); Print(a); return 0; } 目录 输入5个整数,找出大数和最小数所在的位置,并把两者对调 ,然后输出调整后的5个数。 你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
if(i%5==2&&i%7==3&&i%3==1){
#include "string.h"
void sort(char (*name)[20],int n){
int i,j,k;
char t[20];
for(i=0;i
for(k=i,j=k+1;j
if(k!=i){
strcpy(t,name[k]);
strcpy(name[k],name[i]);
strcpy(name[i],t);
}
}
}
分享名称:c语言编程题-创新互联
分享地址:http://pwwzsj.com/article/hegsi.html