当前位置:文档之家› C语言编程题目汇总

C语言编程题目汇总

C语言编程题目汇总
C语言编程题目汇总

1.通过键盘输入两个整数,对他们实施加减乘除运算,然后按照下面格式显示输出

#include

int main()

{

int a,b;

printf("输入两个整数a,b:");

scanf("%d%d",&a,&b);

printf("a+b=%d\n",a+b);

printf("a-b=%d\n",a-b);

printf("a*b=%d\n",a*b);

printf("a/b=%d\n",a/b);

return 0;

}

2. 用switch语句和if语句两种方法编写程序,完成下面公式的计算,输出计算结果。 t2 0<=t<1

y= t2 -1 1<=t<2

t2 -2t+1 2<=t<3

(1)if语句:

#include

int main()

{

float t,y;

printf("请输入t的值:");

scanf("%f",&t);

if(t>=0&&t<1)

{

y=t*t;

}

if(t>=1&&t<2)

{

y=t*t-1;

}

if(t>=2&&t<3)

{

y=t*t-2*t+1;

}

printf("y=%f\n",y);

return 0;

}

(2)switch语句

#include

int main()

{

float t,y;

int a;

printf("请输入t的值:");

scanf("%f",&t);

a=(int)t;

switch(a)

{

case 0:

y=t*t;

break;

case 1:

y=t*t-1;

break;

case 2:

y=t*t-2*t+1;

break;

default:

printf("输入不正确");

return 0;

}

printf("y=%f\n",y);

}

3.假设教务分析百分制学生成绩时认为90分以上为优,80~89分为良,70~79分为中,60~69分为及格,60分以下为不及格。输入某学生百分制成绩,将其转换为上述等级评分。要求用if语句和switch语句两种方法编程。

(1)if语句

#include

int main()

{

int x;

printf("输入学生成绩");

scanf("%d",&x);

if(x>90)

printf("优\n");

else if(x>80)

printf("良\n");

else if(x>70)

printf("中\n");

else if(x>60)

printf("及格\n");

else

printf("不及格\n");

return 0;

}

(2)switch语句

#include

int main()

{

int x,a;

printf("输入学生成绩");

scanf("%d",&x);

a=x/10;

switch(a)

{

case 10:

case 9:

printf("优\n");

break;

case 8:

printf("良\n");

break;

case 7:

printf("中\n");

break;

case 6:

printf("及格\n");

break;

default:

printf("不及格\n");

return 0;

}

}

4. 输入一个000~888之间的正整数,首先提取三位数字,再每位数字加1,合成一个新的三位数字,再强制类型转换为浮点数后输出。

#include

int main()

{

int a,b,c,x,y;

float z;

printf("输入一个正整数(0~888):");

scanf("%d",&x);

a=x/100+1;

printf("a=%d\n",a);

b=(x/10)%10+1;

printf("b=%d\n",b);

c=x%10+1;

printf("c=%d\n",c);

y=a*100+b*10+c;

z=float(y);

printf("z=%f\n",z);

}

5. 输入一个整数,求其立方的绝对值的平方根。输出之。

#include

#include

int main()

{

int x;

float y;

printf("输入一个数:");

scanf("%d",&x);

y=sqrt(abs(x*x*x));

printf("y=%f",y);

}

/*int 型

int abs(int x);

long 型

long labs(int x);

浮点数 float double

double fabs(double x)*/

6. 菜单放在屏幕中央位置。

必须先运行1输入数据,才能运行2四则运算。

要求依据用户输入的‘+’、‘-’、‘*’、‘、’四个运算符进行相应运算。

#include

void caidan()

{

printf(" 迷你计算器\n");

printf(" 1.数据输入\n");

printf(" 2.四则运算\n");

printf(" 0.退出\n");

}

int main()

{

int a,b,c,d;

do

{

caidan();

scanf("%d",&c);

if(c==2)

{

printf("请输入要进行的运算(1+,2-,3*,4/):\n");

scanf("%d",&d);

switch(d)

{

case 1:

printf("a+b=%d",a+b);

break;

case 2:

printf("a-b=%d",a-b);

break;

case 3:

printf("a*b=%d",a*b);

break;

case 4:

printf("a/b=%d",a/b);

break;

default:

printf("输入错误\n");

}

}

if (c==1)

{

printf("请输入两个数字a,b\n");

scanf("%d%d",&a,&b);

}

}

while (c!=0);

return 0;

}

7.针对题目3,要求针对30人的某班转换所有同学的成绩。键盘输入每个同学的成绩,逐个转换,并输出

#include

int main()

{

int i=0;

{

int x,a;

printf("输入学生成绩");

scanf("%d",&x);

a=x/10;

switch(a)

{

case 10:

case 9:

printf("优\n");

break;

case 8:

printf("良\n");

break;

case 7:

printf("中\n");

break;

case 6:

printf("及格\n");

break;

default:

printf("不及格\n");

}

i++;

}

while (i<=30);

}

8.如果全校有50个班,每个班级的人数有多有少,各班级人数可从键盘上输入。修改上面的程序,针对全校所有的班完成同样的任务。

#include

int main()

{

int i=0,d,no,n;

for(d=0;d<=50;d++)

{printf("输入班级编号\n");

scanf("%d",&no);

printf("第%d班的学生成绩:\n",no);

printf("输入学生人数:\n");

scanf("%d",&n);

do

{

int x,a;

printf("输入学生成绩");

scanf("%d",&x);

a=x/10;

switch(a)

{

case 10:

case 9:

printf("优\n");

break;

case 8:

printf("良\n");

break;

case 7:

printf("中\n");

break;

case 6:

printf("及格\n");

break;

default:

printf("不及格\n");

}

i++;

}

while (i

}

}

9.请编写程序输出100到999之内的偶数,每行打印10个数。#include

int main()

{

int i;

int n=0;

for(i=100;i<=999;i++){

if(i%2==0){

printf("%d ",i);

n++;}

if(n==10){n=0;printf("\n");}}

return 0;

}

10.从键盘输入一个年份,判断该年是否为闰年,并输出

#include

int main()

{

int x;

printf("输入一个年份");

scanf("%d",&x);

if(x%4==0&&x%100!=0)||(x%400==0))

printf("该年为闰年");

else printf("%d年不是闰年!\n",x);

}

11.从键盘输入一个年份和月份,输出这个月份的天数

#include

int main()

{

int x,y;

printf("输入一个年份\n");

scanf("%d",&x);

printf("输入月份\n");

scanf("%d",&y);

if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)

printf("31天");

if(y==4||y==6||y==9||y==11)

printf("30天");

if(y==2)

if(x%4==0)

printf("29天");

else

printf("28天");

return 0;

}

12.从键盘输出一行英文句子,输出到屏幕上并且将每个单词的首字母改写成大写字母#include

#include

int main()

#define TURE 1

#define FALSE 0

{

char c;

bool flag = TURE;

printf("输入一行语句:");

while(c!='\n')

{

scanf("%c",&c);

if(c==' ')

{

flag= TURE;

printf(" ");

continue;

}

if(flag)

{

flag = FALSE;

if(c>='a'&&c<='z')

{

c=c-32;

}

}

printf("%c",c);

}

getch();

return 0;

}

13.输入一行英文,求出倒数第二个单词的字符个数

#include

int main()

{

char a[100];

int i,j=1,q,c=0;

printf("请输入英文句子:\n");

gets(a);

for(i=0;i<100;i++)

{

if(a[i]==' ')

j++;

if(a[i]=='\0')

break;

}

for(q=1,i=0;i<100;i++)

{

if(a[i]!=' ')

c++;

else

{

if(q==j-1)

break;

q++;

c=0;

}

}

printf("倒数第二个单词的字母个数为:%d\n",c);

return 0;

}

14.输出下面数列的前20项

0,1,1,2,3,5,8,13,21,34………

#include

int main()

{

int a=0,b=1,c,d;

for(int i=1;i<=10;i++)

{

c=a+b;

d=b+c;

printf("%d %d ",a,b);

a=c;

b=d;

}

}

15.输出100以内所有素数,要求每行仅输出5个素数#include

int main( )

{

int i, t;

for(i=0;i<=100;i++)

{

for (t = 2; t

if ( i%t == 0 )

break;

if ( t == i )

printf( "%d ", i );

}

return 0;

}

16.从键盘输入一个正整数,输出这个整数的所有因子#include

int main()

{

int a,i;

printf("输入一个正整数");

scanf("%d",&a);

for(i=1;i<=a;i++)

if(a%i==0)

printf("%d ",i);

return 0;

}

17.用穷举法打印所有水仙花数,水仙花数是一个3位整数,其各位数字的立方和等于该数字

#include

int main()

{

int a,b,c,i;

for(i=100;i<=999;i++)

{

a=i/100;

b=(i/10)%10;

c=i%10;

if(i==a*a*a+b*b*b+c*c*c)

printf("%d ",i);

}

}

18.从键盘读入两个数a和n,计算并输出a+aa+aaa+aaaa+……+aaa…a(n个a)的值

#include

void main()

{

int a,n,i,t;

long sum=0;

printf("please input a and n:\n");

scanf("%d%d",&a,&n);

t=a;

for(i=0;i

{

sum=sum+t;

a=a*10;

t=t+a;

}

printf("%d",sum);

}

19.利用穷举法求解100的所有质因子

20.递推法计算下列公式

要求精确到。

21.利用random()产生100个随机数,然后将所有的奇数改成相应的复数,所有的偶数保持不变,最后输出改变后的100个整数值。

#include

#include

#include

int main()

{

int a;

for(int i=1;i<=100;i++)

{

a=rand()%101;

if(a%2==1)

{

a=-a;

}

printf("%d ",a);

}

return 0;

}

22.利用random()产生100个随机数,然后通过键盘输入一个整数key,查找在100个随机数中是否存在等于key的值,如果存在,输出他们的位置。

#include

#include

int main()

{

int a,key;

printf("输入key的值:\n");

scanf("%d",&key);

for(int i=1;i<100;i++)

{

a=rand()%101;

printf("%d ",a);

}

printf("\n");

if(a==key)

{

printf("编号是%d ",i);

}

return 0;

}

23.输入一个文本行,其中包含多个单词,计算其中最长的单词长度

#include

int main()

{

int max=0,a;

char str[100];

printf("输入文本\n");

for(int i=0;i<=100;i++)

{

scanf("%c",&str[i]);

if(str[i]==' ')

{

a=i;

i=0;

if(a>max)

{

max=a;

}

}

if(str[i]=='\n')

break;

}

printf("最大单词长度为%d",max);

}

24.判断通过键盘输入的字符串是否表示一个合法标识符。标识符的命名规则是:第一个字符必须是字母或者下划线,后面可以跟随字母,数字或下划线。

25.利用二维数组创建如图4-22的方阵,并显示输出

3 2 1 2 3 0

0 3 2 1 2 3

0 0 3 2 1 2

int main()

{

int i,j;

int

v[6][6]={{1,2,3},{2,1,2,3},{3,2,1,2,3},{0,3,2,1,2,3},{0,0,3,2,1,2},{0,0,0,3,2,1 }};

for(i=0;i<6;i++)

{

for(j=0;j<6;j++)

printf(" %d",v[i][j]);

putchar('\n');

}

}

26.假设某个班级共有35名学生,期末进行了4门课程的考试,编写一个程序完成下列任务:(1)输入4门课程的考试成绩;

(2)计算每位学生的平均成绩

(3)按照平均成绩的高低进行排序

27.

28.

29.通过键盘键入一个整型数列,然后计算它们的平均值,并在数列中查找是否存在与平均值相等的数值,最后根据查找结果输出相应信息。

#include

#define NUM 10

main()

{

int v[NUM];

int i,sum,ave;

for(i=0;i

scanf("%d",&v[i]);

sum=v[0];

for(i=0;i

sum=sum+v[i];

ave=sum/NUM;

for(i=0;i

if(v[i]=ave)

break;

if(i

printf("Exist a element equal to average.\n");

else

printf("No exist any element equal to average.\n");

}

30.这个程序的功能是:将以字符串形式给出的时间分解成数值型表示的小时,分钟,秒并显示输出。

#include

int main()

{

char time[]="10:50:27";

int h,m,s;

h=(time[0]-'0')*10+time[1]-'0';

m=(time[3]-'0')*10+time[4]-'0';

s=(time[6]-'0')*10+time[7]-'0';

printf("The time is:%d hours,%d minutes,%d seconds\n",h,m,s);

}

31.输入含有n个数值的整数数列和整数m,利用选择排序的方法挑选出前m(m

#include

int main()

{

int n,m,data[100],k;

int i, j, min, temp;

printf("输入比较的整数个数\n");

scanf("%d",&n);

printf("输入m的值:\n");

scanf("%d",&m);

printf("输入%d个整数\n",n);

for (i=0; i

{

scanf("%d", &data[i]);

}

for (i=0; i

{

min = i;

for (j=i+1; j

{

if (data[j]

min = j;

}

if (min!=i)

{

temp = data[i];

data[i] = data[min];

data[min] = temp;

}

}

for(k=0;k

{

printf("%d ", data[k]);

}

}

32.输出1000以内的所有素数。要求:

(1)设计一个函数isPrime(int x),专门用于判断给定数值是否为素数;(2)将计算出来的所有素数按照每行8个的格式输出

#include

int isPrime(int x)

{

int k=0,n=0;

for(int i=2;i<=x;i++)

{

if(x%i==0)

{

k++;

}

}

if(k==1)

{

return 1;

}

else return 0;

}

int main()

{

int n=0;

for(int y=1;y<=1000;y++)

{

if(isPrime(y))

{

printf("%4d",y);

n++;

}

if(n==8)

{

printf("\n");

n=0;

}

}

}

33.将给定字符串中的所有大写字母改成小写字母。

#include

#include

int main()

{

char str[50]="WE ARE THE WORLD";

strlwr(str);

puts(str);

}

P.s.大写转小写strlwr(str)

小写转大写strupr(str)

34.对于给定的整数n(n>1),返回下列公式的计算结果:

1×2+2×3+3×4+……+n×(n+1)

#include

int jc(int n)

{

int sum=0;

for(int i=1;i<=n;i++)

sum=sum+i*(i+1);

return sum;

}

int main()

{

int n;

printf("输入n的值\n");

scanf("%d",&n);

printf("计算结果=%d\n",jc(n));

}

35.编写一个递归函数int reverse(int value),其功能为逆序返回给定的正整数值。例如,通过value带入正整数1349,返回9431。

#include

int reverse(int value)

{

int t = 0;

while(value > 0)

{

t=t*10;

t=t+value % 10;

value=value/10;

}

return t;

}

int main()

{

int value;

printf("输入一个正整数");

scanf("%d",&value);

printf("%d\n",reverse(value));

return 0;

}

36.显示一个菜单,根据用户选择,输入数据后,执行相应的操作

#include

#include

void caidan()

{

printf("==========MENU================\n");

printf("sin..........................1\n");

printf("cos..........................2\n");

printf("pow..........................3\n");

printf("sqrt.........................4\n");

printf("exit.........................5\n");

}

int main()

{

int c;

do

{

caidan();

scanf("%d",&c);

if(c==1)

{

double si;

printf("输入数据\n");

scanf("%lf",&si);

printf("%lf\n",sin(si));

}

if(c==2)

{

double co;

printf("输入数据\n");

scanf("%lf",&co);

printf("%lf\n",cos(co));

}

if(c==3)

{

double x,y;

double po;

printf("输入数据\n");

scanf("%lf%lf",&x,&y);

printf("%lf\n",pow(x,y));

}

if(c==4)

{

double sq;

printf("输入数据\n");

scanf("%lf",&sq);

printf("%lf\n",sqrt(sq));

}

}while(c!=5);

return 0;

}

37.编写一个程序,完成下列操作:

(1)输入一个包含n个整数的数列;

(2)输出已经输入的整数数列;

(3)将整数数列按照非递减的顺序重新排列;(4)计算n个整数中的最大值,并输出;(5)计算n个整数中的最小值,并输出;(6)计算n个证书中的平均值,并输出;

38.为管理通讯簿的应用程序定义数据类型,假设通讯薄有100多页,每页记录一个人的联系信息,其中包括姓名,办公室电话,住宅电话,手机和传真等信息。

#include

#include

#include

#define n 100

typedef struct

{

char name[50];

char bgs[20];

char zz[20];

char sj[20];

char cz[20];

}DATA;

int main()

{

FILE *fp;

char filename[50];

int i,k;

char lin[100];

DATA a;

printf("输入通讯簿名字:\n");

scanf("%s",filename);

for(i=1;i<=n;i++)

{

if((fp=fopen(filename,"a+"))==NULL)

{

printf("打开文件错误\n");

return 1;

}

printf("姓名:\n");

scanf("%s",https://www.doczj.com/doc/c918491328.html,);

printf("办公室电话:\n");

scanf("%s",a.bgs);

printf("住宅电话:\n");

scanf("%s",a.zz);

printf("手机:\n");

scanf("%s",a.sj);

printf("传真:\n");

scanf("%s",a.cz);

fprintf(fp,"%d姓名%s\n办公室电话%s\n住宅电话%s\n手机%s\n传真%s\n",i,https://www.doczj.com/doc/c918491328.html,,a.bgs,a.zz,a.sj,a.cz);

fclose(fp);

}

if((fp=fopen(filename,"r"))==NULL)

{

return 1;

}

printf("文件内容:\n");

for(k=0;!feof(fp);k++)

{

fgets(&lin[k],100,fp);

puts(&lin[k]);

}

fclose(fp);

}

相关主题
相关文档 最新文档