c语言题型总结_c语言编程题总结

2020-02-28 其他工作总结 下载本文

c语言题型总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言编程题总结”。

C语言题型总结

1.字母的输入与输出:

#include main(){ char ch1,ch2,ch3;printf(“请输入三个字母:”);scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);printf(“输出三个字母:%c %c %c”,ch1-32,ch2-32,ch3-32);}

#include main(){ char ch1,ch2,ch3;printf(“请输入三个字母:”);ch1=getchar();ch2=getchar();ch3=getchar();printf(“输出三个字母:%3c%3c%3c”,ch1-32,ch2-32,ch3-32);}

#include main(){ char ch1,ch2,ch3;printf(“请输入三个字母:”);ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1-32);putchar(ch2-32);putchar(ch3-32);} 2.分类显示:

#include main(){ int m;printf(“请输入m:k”);scanf(“%d”,&m);

} if(m>0)printf(“%d is greater than 0”);else printf(“%d is le than or equal to 0”);3.分段函数:

#include main(){ float x,y;scanf(“%f”,&x);if(x

y=1+x;else if(x

y=1+(x-2)*(x-2);else

y=(x-1)*(x-1)+(x-2)*(x-2);printf(“x=%f,y=%f”,x,y);} 4.成绩分等级: #include main(){ int s,num;char grade;

printf(“请输入成绩s:”);scanf(“%d”,&s);

num=s/10;

switch(num){

case 10:grade='A';break;

case 9:grade='A';break;

case 8:grade='B';break;

case 7:grade='C';break;

case 6:grade='D';break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:grade='E';break;

deflaut:break;

} } printf(“The score is %d,the grade is %cn”,s,grade);5.求最大公约数、最小公倍数:

#include main(){ int m,n,i,b;printf(“请输入两个数:”);

scanf(“%d,%d”,&m,&n);for(i=m;i>0;i--)

if(m%i==0&&n%i==0)

break;b=(m*n)/i;printf(“最大公约数:%d,最小公倍数:%d”,i,b);} 6.1000以内素数:

#include main(){ int i,j;for(i=1000;i>0;i--)

{

for(j=2;j

if(i%j==0)

break;

if(j==i)

printf(“%d,”,i);} } 7.1000以内最大的10个质数求和:

#include main(){ int i,j,sum=0,n=0,a[10];for(i=999;i>2;i=i-2)

{

for(j=2;j

if(i%j==0)

break;

if(j==i)

{

a[n]=i;

n++;

if(n>10)

break;

} } for(n=0;n

sum+=a[n];

printf(“%d+%d+%d+%d+%d+%d+%d+%d+%d+%d=%dn”,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],sum);}

#include main(){ int i,j,sum=0,n=0,a[10];for(i=999;i>2;i=i-2)

{

for(j=2;j

if(i%j==0)

break;

if(j==i)

{

a[n]=i;

sum+=a[n];

n++;

if(n>9)

break;

} } for(n=0;n

printf(“%d,”,a[n]);

printf(“%d”,sum);}

8.各位的和:

#include main(){ int n,c;c=0;scanf(“%d”,&n);

while(n!=0)

{

c+=n%10;

n=n/10;}

printf(“%d”,c);} 9.判断几位数:

#include main(){ int n,c;c=0;scanf(“%d”,&n);

while(n!=0)

{

c++;

n=n/10;}

printf(“%d”,c);} 10.奇数项相加,偶数项相减:

#include main(){ int i;double sum;i=1,sum=0;while(i

if(i%2==0)

sum=sum-1.0/i;

else

sum=sum+1.0/i;

i++;} printf(“%lfn”,sum);} 11.100-200以内找质数:

#include main(){ int i,j,sign;for(i=100;i

{

sign=1;

for(j=2;j

if(i%j==0)

{

sign=0;break;

}

if(sign==1)

printf(“%d is/n”,i);

else

printf(“%d is not/n”,i);} } 12.10个成绩的最高、最低、平均值

#include main(){ int a[10],max,min,i;float aver,sum;max=min=sum=0;printf(“请输入10个成绩:”);for(i=0;i

scanf(“%d”,&a[i]);for(i=0;i

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];} printf(“max=%d,min=%d,aver=%f”,max,min,aver);} 13.数组删除一个元素

#include main(){ int a[10],num,i;printf(“请输入数组:”);for(i=0;i

scanf(“%d”,&a[i]);printf(“删除其中一个数num=”);scanf(“%d”,&num);for(i=num;i

a[i-1]=a[i];

a[9]=0;

printf(“后来的数组为:”);for(i=0;i

printf(“%d”,a[i]);} 14.数组添加一个元素

#include main(){ int a[10],b[11],num,i,t;printf(“请输入数组:”);for(i=0;i

scanf(“%d,”,&a[i]);printf(“添加其中一个数num=”);scanf(“%d,”,&num);printf(“添加的数为:”);scanf(“%d”,&t);

for(i=0;i

b[i]=a[i];

b[num-1]=t;for(i=num;i

b[i]=a[i-1];

printf(“后来的数组为:”);for(i=0;i

printf(“%d,”,b[i]);} 15.数组形式计算成绩

#include main(){ int a[5][3],i,j;float aver1[5],aver2[3],s,s1,s2;printf(“请输入数组:n”);for(i=0;i

s1=0;

for(j=0;j

{

scanf(“%d”,&a[i][j]);

s1+=a[i][j];

}

aver1[i]=(float)s1/3;} for(j=0;j

s2=0;(不能随便动位置)

for(i=0;i

s2+=a[i][j];

aver2[j]=(float)s2/5;

s+=aver2[j];} for(i=0;i

printf(“student%d:%3.1f,”,i,aver1[i]);for(j=0;j

printf(“course%d:%3.1f,”,j,aver2[j]);

printf(“Average:&3.1f”,s/3);} 输入成绩时,一行三个,之后回车

16.函数的多级调用

float myfabs(float x){ return x>0?x:-x;} float myfunc(float r){ return 2*myfabs(r)+1;} main(){ float f=0.5;printf(“%f”,myfunc(f));} 17.三个数比较大小

#include int getMax(int a,int b,int c){ int t;if(a>b)

t=a;else

t=b;if(c>t)

t=c;

return t;} int getMin(int a,int b,int c){ int k;if(a>b)

k=b;else

k=a;if(c

k=c;return k;} int getMax(int a,int b,int c);int getMin(int a,int b,int c);main(){ int a,b,c;printf(“请输入三个整数:n”);scanf(“%d,%d,%d”,&a,&b,&c);printf(“最大值是:%d,最小值是:%d”,getMax(a,b,c),getMin(a,b,c));} 18.求最大公约数、最小公倍数(调用函数)

#include int gcd(int a,int b){ int i;for(i=a;i>0;i--)

if(a%i==0&&b%i==0)

break;return i;} int mul(int a,int b){ int j;j=a*b/gcd(a,b);return j;} int gcd(int a,int b); int mul(int a,int b); main(){ int a,b;printf(“请输入两个整数:n”);scanf(“%d,%d”,&a,&b);printf(“最大公约数是:%d,最小公倍数值是:%d”,gcd(a,b),mul(a,b));} 19.二维数组找最大行、最小行,之后换行

#include main(){

int n,i,j,nMax=0,nMin=0,temp;int a[10][10];printf(“请输入正整数:n”);

scanf(“%d”,&n);printf(“请输入二维数组a[%d][%d]n”,n,n);for(i=0;i

for(j=0;j

scanf(“%d,”,&a[i][j]);} for(i=0;i

for(j=0;j

{

if(a[i][j]>a[nMax][j])

{

nMax=i;

}

else if(a[i][j]

{

nMin=i;

}

}

if(nMax==nMin)

{

printf(“变换后的二维数组为:n”);

for(i=0;i

{

for(j=0;j

printf(“%d,”,a[i][j]);

printf(“n”);

}

}

else

{

for(j=0;j

{

temp=a[nMax][j];

a[nMax][j]=a[nMin][j];

a[nMin][j]=temp;

}

printf(“变换后的二维数组为:n”);

for(i=0;i

{

for(j=0;j

printf(“%d,”,a[i][j]);

printf(“n”);

}

} }

20.判断某年某月某日是星期几

#include int daysInMonth(int year,int month);main(){

int y,m,d,i,days;int isLeapYear(int year);scanf(“%d,%d,%d”,&y,&m,&d);for(i=2012;i

days+=366;else days+=365;days+=daysInMonth(y,i);for(i=1;i

case 0:

printf(“星期日”);break;case 1:

printf(“星期一”);break;case 2:

printf(“星期二”);break;case 3:

printf(“星期三”);break;case 4:

printf(“星期四”);break;case 5:

printf(“星期五”);break;case 6:

printf(“星期六”);break;} } int isLeapYear(int year){

} {

if(year%400==0||(year%4==0&&year%100!=0))return 1;return 0;int daysInMonth(int year,int month)switch(month){ case 1: case 3: case 5: case 7: case 8:

case 10: case 12:return 31;case 4: case 6:

case 9:

case 11:return 30;case 2:if(isLeapYear(year)==1)

} return 29;

} else return 28;21.字符串的连接

#include main(){ char s1[20],s2[20],*p1,*p2;p1=s1;p2=s2;

printf(“请输入字符串1:”);gets(s1);

printf(“请输入字符串2:”);

gets(s2);while(*p1)

p1++;(先输出p1所指的第一个字母,然后使p1指向下一个字符,再输出,p再自增)

while(*p1++=*p2++);(把*p2的内容赋给*p1,p1,、p2自增,*p2就是表达式的值!指的是字符串的内容,而非对地址赋值)p是指针变量,他不能用来存放字符串,只能存放char变量的地址。

printf(“连接后结果:%sn”,s1);}

#include main(){

} char s1[20],s2[20];int i,j;printf(“请输入字符串s1:”);gets(s1);printf(“请输入字符串s2:”);gets(s2);for(i=0;s1[i]!='';i++);for(j=0;s2[j]!='';j++)

{

} s1[i] ='';s1[i]=s2[j];i++;puts(s1);#include void catStr(char *str1,char *str2);main(){

char str1[20]=“hello”,str2[20]=“world”;printf(“the origin :”);

gets(str1);

gets(str2);

catStr(str1,str2);

printf(“now :”);

puts(str1);

puts(str2);} void catStr(char*str1,char*str2){ while(*str1!='')

str1++;

while(*str2!=''){

*str1++=*str2;

str2++;}

*str1='';}

22.两个数交换

#include void swap(int *p1,int *p2){

} int temp;temp=*p1;*p1=*p2;*p2=temp;main(){ int a=5,b=9,*pa=&a,*pb=&b;

printf(“交换前a=%d,b=%dn”,a,b);

} swap(pa,pb);printf(“交换后a=%d,b=%dn”,a,b);23.求三角形的周长和面积 #include void Proce(float f1,float f2,float f3,float *p1,float *p2);main(){ float a,b,c,fArea,fPerimeter;

printf(“nPlease input 3 sides of the triangle:”);

} void Proce(float f1,float f2,float f3,float *p1,float *p2){

} float s;s=(f1+f2+f3)/2;*p1=sqrt(s*(s-f1)*(s-f2)*(s-f3));*p2=f1+f2+f3;scanf(“%f%f%f”,&a,&b,&c);Proce(a,b,c,&fArea,&fPerimeter);printf(“Area=%f,Perimeter=%f”,fArea,fPerimeter);24.回文数

#include main(){

}

#include main(){

int n,c=0;printf(“Pleae input the number:”);scanf(“%d”,&n);printf(“The original number is:%ldn”,n);printf(“And now the number is:”);long n;printf(“Pleae input the number:”);scanf(“%d”,&n);printf(“The original number is:%ldn”,n);printf(“And now the number is:”);while(n){ printf(“%d”,n%10);} n/=10;printf(“n”);getchar();while(n){

c=c*10+n%10;

n/=10;}

} printf(“%d”,c);printf(“n”);getchar();25.字符串的复制

#include void upCopy(char *new,char *old);main(){

char s1[20],s2[20];

gets(s1);

upCopy(s2,s1);

puts(s1);

puts(s2);} void upCopy(char *new,char *old){

while(*old!=''){

if(*old>='A'&&*old

*new++=*old;

old++;}

*new='';} 26.初始化一个3X5的二维矩阵,计算前4列的和,保存在每行的最后一个元素中。例如:第一行的和为A[0][0]+ A[0][1] +A[0][2]+ A[0][3],放入A[0][4]中,要求输出原始矩阵和新矩阵。

#include main(){

int A[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}},i,j;for(i=0;i

}

printf(“n”);} for(i=0;i

for(j=0;j

} for(j=0;j

#include void mytrcat(char *s1,char *s2){

while(*s1!='')

s1++;while(*s2!=''){

if(*s2>='0'&&*s2

} void mystrcat(char *s1,char *s2);main(){

char *s1[20],*s2[20];printf(“请输入字符串1:”);gets(s1);printf(“请输入字符串2:”);gets(s2);

mytrcat(s1,s2);} puts(s1);28.写一个函数mystrcmp(char *s1,char *s2),其功能和库函数strcmp相同。在主函数中定义字符数组s1和s2并初始化,调用mystrcmp后由main函数输出比较的结果。本题不许使用字符串处理函数。#include char mystrcmp(char *s1,char *s2){

int result;while(*s1!=''){

if(*s1>*s2)return 1;if(*s1

s1++;

s2++;}

return 0; } char mystrcmp(char *s1,char *s2);main(){ char s1[20],s2[20];

int result;printf(“请输入字符串1:”);gets(s1);printf(“请输入字符串2:”);gets(s2);

result=mystrcmp(s1,s2);printf(“%d”,result);} 还有问题,再试试?为啥不行 折半查找 #include #define N 6 main(){

int a[N],i,j,t,mid,x,flag,low,high;printf(“the origin shu zu is:”);for(i=0;i

min=i;

for(j=i+1;j

{

if(a[min]>a[j])

min=j;

}

} {

} } t=a[i];a[i]=a[j];a[j]=t;printf(“now shu zu is: ”);for(i=0;i

printf(“%d,”,a[i]);printf(“please input the number:”);

scanf(“%d”,x);

low=0;high=N-1;while(low

mid=(high+low)/2;if(x==a[mid]){ flag=1;break;}

if(x>a[mid])

low=mid+1;else high=mid-1;} if(flag==1)

printf(“found:%d”,mid+1);else } printf(“not found”);#include int main(){ int a[20]={1,2,3,4,6,7,8,10,11,13,14,15,16,18,19,21,23,24,26,28};int n,low,high,flag,mid;printf(“输入一个数:”);scanf(“%d”,&n);low=0;high=19;

while(low

break;}

if(n>a[mid])

low=mid+1;else

high=mid-1;

} if(flag==1)

printf(“found,%dn”,mid+1);else

printf(“not foundn”);}

《c语言题型总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言题型总结
点击下载文档
相关专题 c语言编程题总结 题型 语言 c语言编程题总结 题型 语言
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文