资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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++){
if(i%5==2&&i%7==3&&i%3==1){

printf("%d\n",i);

}}

return 0;}

输入5个整数,找出大数和最小数所在的位置,并把两者对调 ,然后输出调整后的5个数。

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 "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;jif(strcmp(name[k],name[j])>0) k=j;
if(k!=i){
strcpy(t,name[k]);
strcpy(name[k],name[i]);
strcpy(name[i],t);
}
}
}

逆序排列

#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元起,快前往官网查看详情吧


网站标题:c语言编程题-创新互联
URL地址:http://cdkjz.cn/article/hegsi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220