编程试题编程试题编程试题的题目?

1.输入两个整数,求两数的平方和并输出#include<stdio.h>
int main()
{
int a,b,c;
printf("please input a,b:\n");
scanf("%d%d",&a,&b);
c=a*a+b*b;
printf("the result is %d\n",c);
}
2.输入一个圆半径( r )当r>=0时,计算并输出圆的面积和周长,否则输出提示信息。#include<stdio.h>
#define PI 3.14
int main()
{
float r,s,l;
printf("please input r:\n");
scanf("%f",&r);
if(r>=0)
{
s=PI*r*r;
l=2*PI*r;
printf("the area is %.2f\n",s);
printf("the circumference is %.2f\n",l);
}
else
printf("input error!\n");
}
3.函数y=f(x)可表示为y=2x+1(x<0) y=0(x=0) y=2x-1(x>0) 编程实现输入一个x值,输出y值。#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x<0)
y=2*x+1;
if(x>0)
y=2*x-1;
if(x==0)
y=0;
printf("%d",y);
}
4.编写一个程序,从4个整数中找出最小的数,并显示此数。#include<stdio.h>
int main()
{
int a,b,c,d,t;
printf("please input a,b,c,d:\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(a>d)
{
t=a;
a=d;
d=t;
}
printf("min = %d\n",a);
}
5.有一函数当x<0时,y=3,当x=0时,y=5 ,编程从键盘输入一个x值,输出y值#include<stdio.h>
int main()
{
int x,y;
printf("please input x:");
scanf("%d",&x);
if(x<0)
y=1;
else if(x==0)
y=5;
else
y=3;
printf("x=%d,y=%d\n",x,y);
}
6.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)#include<stdio.h>
int main()
{
float max(float x,float y);
float a,b,m;
scanf("%f,%f",&a,&b);
m=max(a,b);
printf("Max is %f\n",m);
}
float max(float x,float y)
{
float temp;
if(x<y)
{
temp=x;
x=y;
y=temp;
}
return(x);
}
7.从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄#include<stdio.h>
int main()
{
int yourAge,hisAge;
printf("Please enter your age:");
scanf("%d",&yourAge);
printf("Please enter your friend's age:");
scanf("%d",&hisAge);
if(yourAge>=hisAge)
{
printf("You are older!Your age is=%d\n",yourAge);
}
if(yourAge<hisAge)
{
printf("You friend is older!HisAge age is=%d\n",hisAge);
}
}
8.键盘输入两个加数,再输入答案,如果正确,显示“right”,否则显示“error”#include<stdio.h>
int main()
{
int a,b,c;
printf("please input a and b:\n");
scanf("%d,%d",&a,&b);
printf("please input the answer for a+b:\n");
scanf("%d",&c);
if(c==a+b)
printf("right!\n");
else
printf("error!\n");
}
9.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:费用30元,<=10小时。费用每小时3元,10-50小时。费用每小时2.5元,>=50小时。要求当输入每月小时数,显示该月总的上网费用。#include<stdio.h>
int main()
{
int hour;
float fee;
printf("please input hour:");
scanf("%d",&hour);
if(hour<=10)
fee=30;
else if(hour>=10&&hour<=50)
fee=3*hour;
else fee=hour*2.5;
printf("The total fee is %0.2f",fee);
}
10.神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0. 4元。输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。#include<stdio.h>
int main()
{
float a,x,y;
printf("请输入您的话费:");
scanf("%f",&a);
x=0.6*a;
y=50+0.4*a;
printf("神州行话费为:%0.2f\n",x);
printf("全球通话费为:%0.2f\n",y);
if(x>=y)
printf("建议使用全球通");
else
printf("建议使用神行通");
}
11.个人所得税计算,应纳税款的计算公式如下:收入<=1000元部分税率为0%,2000元>=收入>1000元的部分税率为5%,3000元>=收入>2000元的部分税率为10%,6000元>=收入>3000元的部分税率为15%,收入>6000元的部分税率为20%。输入某人的收入,计算出应纳税额及实际得到的报酬。(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)#include<stdio.h>
int main()
{
int grade;
float income,tax,money;
printf("please input your income:");
scanf("%f",&income);
if(income<0)
printf("the input is error!");
else
{
grade=(int)income/1000;
switch(grade)
{
case 0:tax=0;break;
case 1:tax=(income-1000)*0.05;break;
case 2:tax=50+(income-2000)*0.1;break;
case 3:tax=150+(income-3000)*0.15;break;
default:tax=600+(income-6000)*0.2;
}
money=income-tax;
printf("tax=%0.2f,money=%0.2f",tax,money);
}
}
12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。#include<stdio.h>
int main()
{
int data;
char grade;
printf("please enter the score:");
scanf("%d",&data);
switch(data/10)
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
printf("the grade is %c",grade);
}
13. 编程设计一个简单的计算器程序。从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果。#include<stdio.h>
int main()
{
int data1,data2;
//定义两个操作符
char op;
//定义运算符
printf("Please enter the expression:");
scanf("%d%c%d",&data1,&op,&data2);
switch(op)
{
case '+':
printf("%d+%d=%d\n",data1,data2,data1+data2);
break;
case '-':
printf("%d-%d=%d\n",data1,data2,data1-data2);
break;
case '*':
printf("%d*%d=%d\n",data1,data2,data1*data2);
break;
case '/':
if(0==data2)
printf("Division by zero!\n");
else
printf("%d/%d=%d\n",data1,data2,data1/data2);
break;
default:
printf("Unknown operator!\n");
}
}
14. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。#include<stdio.h>
int main()
{
int a[10],i,iNum1=0,iNum2=0,iNum3=0;
for(i=0;i<10;i++)
{
printf("please input number:");
scanf("%d",&a[i]);
if(a[i]>0)
iNum1++;
else if(a[i]<0)
iNum2++;
else
iNum3++;
printf("正数:%d个,负数:%d个,零:%d\n个",iNum1,iNum2,iNum3);
}
}
15、编程序实现求1-10之间的所有数的乘积并输出。#include<stdio.h>
int main()
{
int i,sum=1;
for(i=1;i<=10;i=i+1){
sum=sum*i;
}
printf("the sum of odd is:%d",sum);
}
16. 从键盘上输入10个数,求其平均值。#include<stdio.h>
int main()
{
int a[10],sum=0;
float ave=0;
printf("please input number:\n");
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
sum+=a[i];
ave=(float)sum/10; //ave=sum/10.0;
}
printf("ave=%f\n",ave);
}
17、编程序实现求1-1000之间的所有奇数的和并输出。#include<stdio.h>
int main()
{
int i;
long sum=0;
for(i=1;i<=1000;i=i+2){
sum=sum+i;
}
printf("the sum of odd is:%ld",sum);
}
18.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13……编程求这个序列的前20项之和。#include<stdio.h>
int main()
{
int i,t,n=20;
float num1=2,num2=1,sum=0;
for(i=1;i<=n;i++){
sum=sum+num1/num2;
t=num1;
num1=num1+num2;
num2=t;
}
printf("sum=%0.2f",sum);
}
19. 用数组实现以下功能:输入5个学生成绩,而后求出这些成绩的平均值并显示出来。#include<stdio.h>
int main()
{
int i;
float a[5],sum=0;
for(i=0;i<5;i++){
printf("输入第%i个学生的成绩:",i+1);
scanf("%f",&a[i]);
sum=sum+a[i];
}
printf("result=%0.2f",sum/5);
}
20、用循环的方法构造一个5行5列的二维数组,使主对角线上的变量为1,其它为0,并将数组中所有项按行按列显示出来。#include<stdio.h>
int main()
{
int a[5][5],i,j,s=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(i==j)
a[i][j]=1;
else
a[i][j]=0;
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(j==0)
printf("\n");
printf("%d",a[i][j]);
}
}
}
21.求一个3×3矩阵对角线元素之和。从键盘输入矩阵元素的值并输出和的值。#include<stdio.h>
int main()
{
int a[3][3],sum=0;
int i=0,j=0;
printf("Enter data:\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++){
sum=sum+a[i][j];
}
printf("sum=%d",sum);
}
22.输入n的值,n代表行数,输出如图所示的图形。
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
(此图为n=4时的输出结果)
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=4;i++){ //控制行数
for(k=1;k<=(2*i-1);k++){ //控制每行输出的*号个数
printf("*");
}
printf("\n");//输出一行后换行
}
}
23、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。(提示:用数组存放成绩数据)#include<stdio.h>
#define M 30
int main()
{
float score[M],max,min,aver;
int i;
printf("please input score:\n");
for(i=0;i<M;i++){
scanf("%f",&score[i]);
}
aver=0.0;
max=score[0];
min=score[0];
for(i=0;i<M;i++){
if(max<score[i])
max=score[i];
if(min>score[i])
min=score[i];
aver+=score[i];
}
printf("max=%0.2f,min=%0.2f,aver=%0.2f",max,min,aver/M);
}
24.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。#include<stdio.h>
#define ARR_SIZE 40
int main()
{
float score[ARR_SIZE],maxScore,minScore,sum;
int n,i;
long maxNum,minNum,num[ARR_SIZE];
printf("please enter total number:");
scanf("%d",&n);
printf("Please enter the number and score:\n");
for(i=0;i<n;i++){
scanf("%ld%f",&num[i],&score[i]);
}
maxScore=score[0];
minScore=score[0];
maxNum=num[0];
minNum=num[0];
sum=score[0];
for(i=1;i<n;i++){
if(score[i]>maxScore){
maxScore=score[i];
maxNum=num[i];
}
else if(score[i]<minScore)
{
minScore=score[i];
minNum=num[i];
}
sum=sum+score[i];
}
printf("maxScore=%0.2f,maxNum=%ld\n",maxScore,maxNum);
printf("minScore=%0.2f,minNum=%ld\n",minScore,minNum);
printf("sum=%0.2f,average=%0.2f\n",sum,sum/n);
}
25.将一个有5个元素的数组中的值(整数)按逆序重新存放。例: 原来顺序为:8、6、5、4、1,要求改为1、4、5、6、8以下三种方法总结#include<stdio.h>
#define N 5
int main()
{
int a[N],i,temp;
printf("enter array a:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N/2;i++)
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("Now,array a:\n");
for(i=0;i<N;i++)
printf("%2d",a[i]);
printf("\n");
}
#include<stdio.h>
#define N 5
int main()
{
int a[N],i,j,temp;
printf("enter array a:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("Now,array a:\n");
for(i=0;i<N;i++)
printf("%2d",a[i]);
printf("\n");
}
#include <stdio.h>
int main()
{
int a[5] = { 8, 6, 5, 4, 1 };
int i, j, t;
for (i = 4, printf("逆序数组: "); i > -1;)
{
printf("%d ", a[i--]);
}
return 0;
}
26.从键盘上输入一个23的矩阵,将其转置后形成32的矩阵输出。#include<stdio.h>
int main()
{
int a[2][3],b[3][2],i,j;
printf("enter array a:\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++){
for(j=0;j<2;j++){
b[i][j]=a[j][i];
}
}
printf("Now,array a:\n");
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("%5d",b[i][j]);
}
printf("\n");
}
}
27.编写两个函数分别求两个整数的最小公倍数和最大公约数,用主函数调用这两个函数并输出结果。两个整数由键盘输入。#include<stdio.h>
int main()
{
int mingy(int a,int b);
int maxgb(int a,int b);
int m,n,gys,gbs;
printf("please input two numbers:");
scanf("%d %d",&m,&n);
gys=mingy(m,n);
gbs=maxgb(m,n);
printf("the result is:%d %d",gys,gbs);
return 0;
}
int mingy(int x, int y)
{
int z;
for (z=x%y; z!=0; x=y,y=z,z=x%y);
return y;
}
int maxgb(int x, int y)
{
int t;
t=(x*y)/mingy(x,y);
return t;
}
28. 输入一个3*3矩阵,求出其转置矩阵,并求出两个矩阵的和。#include<stdio.h>
int main()
{
int a[3][3];
int b[3][3];
int c[3][3];
int i,j;
printf("please input 6 numbers:\n");
for(i=1;i<3;i++)
{
for(j=1;j<3;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
}
for(i=1;i<3;i++)
{
for(j=1;j<3;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
for(i=1;i<3;i++)
{
for(j=1;j<3;j++)
{
printf("%d ",a[i][j]);
}
}
}
29、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据)#include<stdio.h>
int main()
{
int a[10];
int i,j,temp;
printf("input score:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<10;i++)
for(j=0;j<9;j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
30. 定义一个5行3列的数组,从键盘输入各数组元素的值,计算各数组元素之和。#include<stdio.h>
int main()
{
int i,j,sum,a[5][3];
printf("Enter data:\n");
for(i=0;i<5;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<3;j++)
sum=sum+a[i][j];
printf("sum=%d\n",sum);
}
31、编写程序,交换两个数组中的对应元素。#include<stdio.h>
#define N 5
int main()
{
int a[N],b[N],i,j,temp;
printf("please input a:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("please input b:\n");
for(j=0;j<N;j++)
scanf("%d",&b[j]);
for(i=0;i<N;i++)
{
temp=a[i];
a[i]=b[i];
b[i]=temp;
}
printf("the result of a is:");
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\nthe result of b is:");
for(i=0;i<N;i++)
{
printf("%d ",b[i]);
}
}
32、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。#include<stdio.h>
int main()
{
int a[4][3],i,j;
printf("please enter data:\n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
int min=a[0][0];
int m=0,n=0;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
if(a[i][j]<min)
{
min=a[i][j];
m=i;
n=j;
}
printf("最小的数是=%d\n 行=%d 列=%d",min,m,n);
}
33.编程实现如下功能:从键盘输入一行字符,统计其中英文字符,数字字符和其他字符的个数。#include<stdio.h>
#include<string.h>
#define ARR_SIZE 80
int main()
{
char str[ARR_SIZE];
int len,i,letter=0,digit=0,space=0,others=0;
printf("please input a string:");
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='a'&&str[i]<='z'
str[i]>='A'&&str[i]<='Z')
letter++;
else if (str[i]>='0'&&str[i]<='9')
digit++;
else
others++;
}
printf("English character:%d\n",letter);
printf("digit character:%d\n",digit);
printf("other character:%d\n",others);
}
34.编程实现如下功能:1)在主函数中,实现从键盘输入10名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。#include<stdio.h>
#define ARR_SIZE 40
void Sort(float score[],long num[],int n);
int main()
{
float score[ARR_SIZE];
int n,i;
long num[ARR_SIZE];
printf("please enter total number:");
scanf("%d",&n);
printf("please enter the number and score:\n");
for(i=0;i<n;i++)
{
scanf("%ld%f",&num[i],&score[i]);
}
Sort(score,num,n);
printf("Sorted results:\n");
for(i=0;i<n;i++)
{
printf("%ld\t%4.0f\n",num[i],score[i]);
}
}
void Sort(float score[],long num[],int n)
{
int i,j;
float temp1;
long temp2;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]>score[i])
{
temp1=score[j];
score[j]=score[i];
score[i]=temp1;
//交换学号
temp2=num[j];
num[j]=num[i];
num[i]=temp2;
}
}
}
}
35.编程实现如下功能: 实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80
void MyStrcat(char dstStr[], char srcStr[]);
int main()
{
char
s[ARR_SIZE], t[ARR_SIZE];
printf("Please enter source string: ");
gets(s);
printf("Please enter destination string: ");
gets(t);
MyStrcat(s,t);
printf("The concatenate string is: ");
puts(s);
}
void MyStrcat(char dstStr[], char srcStr[])
{
int i = 0, j;
while(dstStr[i] != '\0'){
i++;
}
for (j=0; srcStr[j]!='\0'; j++, i++)
{
dstStr[i] = srcStr[j];
}
dstStr[i] = '\0';
}
36、猜数游戏。系统随机产生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。注:rand()函数可以产生0~32767间的正整数,程序中需包含stdlib.h。#include <stdio.h>
#include <stdlib.h>
int main()
{
int
magic;
int
guess;
int
counter;
magic = rand() % 100 + 1;
counter = 0;
do{
printf("Please guess a magic number:");
scanf("%d", &guess);
counter ++;
if (guess > magic)
printf("Wrong!Too high!\n");
else if (guess < magic)
printf("Wrong!Too low!\n");
}
while (guess != magic);
printf("Right!\n");
printf("counter = %d\n", counter);
}
37.输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,并将交换后的数据重新输出。#include<stdio.h>
void Swap(int *x, int *y);
int main()
{
int
a, b;
printf("Please enter a,b:");
scanf("%d,%d", &a, &b);
printf("Before swap: a = %d,b = %d\n", a,b);
Swap(&a, &b);
printf("After swap: a = %d,b = %d\n", a, b);
}
void Swap(int *x, int *y)
{
int
temp;
temp = *x;
*x = *y;
*y = temp;
}
38.随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体重。#include<stdio.h>
int main()
{
int n=0;
float weight,max=0,min=100,sum=0,ave;
printf("please input the weight:");
scanf("%f",&weight);
while(weight>0)
{
sum=weight+sum;
n++;
if (weight<min)
min=weight;
else if(weight>max)
max=weight;
scanf("%f",& weight);
}
if(n>0)
{
ave=sum/n;
printf("maxweight = %f\n ",max);
printf("minweight = %f\n",min);
printf("ave = %f\n",ave);
}
else
printf("NO VALID DATA");
}
39.输入m,k的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)#include <stdio.h>
unsigned long Factorial(unsigned int number);
int main()
{
unsigned int m, k;
double p;
printf("Please input m, k:");
scanf("%u, %u", &m, &k);
p = (double)Factorial(k) / Factorial (m-k);
printf("p=%0.2f\n", p);
}
unsigned long Factorial(unsigned int number)
{
unsigned long i, result = 1;
for (i=2; i<=number; i++)
result *= i;
return result;
}
40.编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。#include <stdio.h>
#include <math.h>
int IsPrimeNumber(int number)
{
int i;
if(number <= 1)
return 0;
for(i=2; i<sqrt(number); i++)
{
if ((number % i) == 0)
return 0;
}
return 1;
}
int main()
{
int n;
printf("Please input n:");
scanf("%d",&n);
if(IsPrimeNumber(n))
printf("\n%d is a Prime Number",n);
else
printf("\n%d is not a Prime Number",n);
}
40道编程题代码链接:https://download.csdn.net/download/weixin_44071904/85444319

我要回帖

更多关于 编程试题 的文章

 

随机推荐