深圳定制網站公司免費seo關鍵詞優(yōu)化排名
1.個人所得稅計算
應納稅款的計算公式如下:收入<=1000元部分稅率為0%,2000元>=收入>1000元的部分稅率為5%,3000元>=收入>2000元的部分稅率為10%,6000元>=收入>3000元的部分稅率為15%,收入>6000元的部分稅率為20%。輸入某人的收入,計算出應納稅額及實際得到的報酬。(如需連續(xù)計算多個人的納稅情況,直到輸入負數為止,程序應如何改進?試寫出程序)
#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);} }
改進:
#include<stdio.h>void TaxC(int 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);}
}int main()
{int grade;float income,tax,money;printf("please input your income:");scanf("%f",&income);while (income>=0) {TaxC(income);scanf("%f",&income);}return 0;}
2.?從鍵盤上輸入一個百分制成績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);
}
3.?編程設計一個簡單的計算器程序。從鍵盤輸入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");elseprintf("%d/%d=%d\n",data1,data2,data1/data2);break;default:printf("Unknown operator!\n");}
}
4.?從鍵盤輸入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);}
}
5.?從鍵盤上輸入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);
}
6.?編程序實現求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);
}
7.?有一個分數序列: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);
}
8.?用循環(huán)的方法構造一個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;elsea[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]);}}
}
9.?輸入n的值,n代表行數,輸出如圖所示的圖形。\
** * ** * * * ** * * * * * * (此圖為n=4時的輸出結果)
每行輸出2*i+1個
#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");//輸出一行后換行 }
}
?10.?從鍵盤輸入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);
}
11.?從鍵盤輸入某班學生某門課的成績及其學號(班級人數最多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);
}
12. 從鍵盤上輸入一個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");}
}
13.?編寫兩個函數分別求兩個整數的最小公倍數和最大公約數,用主函數調用這兩個函數并輸出結果。兩個整數由鍵盤輸入。
#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;
}
14.?從鍵盤上輸入一個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);
}
15.?編程實現如下功能:從鍵盤輸入一行字符,統計其中英文字符,數字字符和其他字符的個數。
#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++;elseothers++;}printf("English character:%d\n",letter);printf("digit character:%d\n",digit);printf("other character:%d\n",others);
}
16.?編程實現如下功能: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;}}}
}
17.?編程實現如下功能: 實現從鍵盤輸入兩個字符串,分別存入兩個不同的字符數組中;將兩個字符串連接為一個字符串,并打印輸出連接后的整個字符。
#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80void 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';
}
18.?猜數游戲。系統隨機產生一個整數,通過鍵盤輸入數據猜數,猜對為止,并要求統計猜的次數。注: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);
}
19.?輸入兩個整數,利用指針變量作為函數參數,編程實現兩數互換功能,并將交換后的數據重新輸出。
#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;
}
20.?隨機輸入若干個學生的體重,以輸入負數或零結束,分別求最重和最輕的體重,并計算平均體重。
#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");
}
21.?輸入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;
}
22.?編寫程序,其中自定義一函數,用來判斷一個整數是否為素數,主函數輸入一個數,輸出是否為素數。
#include <stdio.h>
#include <math.h>
int IsPrimeNumber(int number)
{ int i;if(number <= 1)return 0;for(i=2; i<sqrt(number); i++) // 2 > sqrt(2){ 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);
}
23.?編寫程序計算某年某月某日是該年中的第幾天。
輸入格式:
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。
輸出格式:
在一行輸出日期是該年中的第幾天。
輸入樣例1:
2009/03/02
輸出樣例1:
61
輸入樣例2:
2000/03/02
輸出樣例2:
62
?
#include<iostream>
#include<array>
using namespace std;
int main()
{ int year=0,month=0,day=0,n=0;array<int,13>a={0,31,28,31,30,31,30,31,31,30,31,30,31};cin>>year;cin.get(); // 斜杠用cin.get()吃掉cin>>month;cin.get();cin>>day;cin.get();if((year%4==0&&year%100)||year%400==0)a[2]=29;for(int i=0;i<=month-1;i++)n+=a[i];int sum=n+day;
cout<<sum;return 0;
}
24. 編程輸出所有水仙花數?“水仙花數”是指一個三位數,其每位數字的立方和等于該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。 ??
#include<stdio.h>
#include<stdlib.h>
//主函數
int main(){int i,j,k,n,sumi,sumj,sumk;//定義7個整型數據printf("\n100-1000 包含的“水仙花”數分別有: \n\n"); for(n=100;n<1000;n++){ //循環(huán)求數字個位、十位、百位上的數字i=n/100;//求百位 j=n/10%10; //求十位 k=n%10; //求個位//求i、j、k的立方和sumi=i*i*i;//求個位立方和 sumj=j*j*j;//求十位立方和 sumk=k*k*k;//求百位立方和//判斷是否為 水仙花數if(n==sumi+sumj+sumk){ printf("%-5d",n);//輸出 水仙花數 } }printf("\n");//換行 return 0;
}
西交之軟件專業(yè)編程題擴展(答案在網上找)
1、從尾到頭打印鏈表
2、旋轉數組的最小數字
3、一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法
4西輸區(qū)軟個整數數咱團實規(guī)編個輛數來調器該數紙數字的顏序,停所有的奇數做于數組的前分了所
有的偶數位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。
5、數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度為9的數組
{1,2,3,2,2,2,5,4,2},由于數字2在數組中出現了5次,超過數細長度的一半,因此輸出2。如果不存在則輸出0.
6、輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。
例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321823。
7、統計一個數字在排序數組中出現的次數。
8、一個整型數組里除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。
西交軟件科創(chuàng)團隊直播分享淘寶店鋪;軟件科創(chuàng)團隊820
5.5西交之軟件專業(yè)編程題擴展
9、輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是8,如果有多對數字的和等于S,輸出兩個數的乘積最小的。
10、在一個長度為n的數組里的所有數字都在0到n-1的范圍內。數組中某些數子是重復的,但不知道有幾個數字是重復的件也木愈道每補數寄重復幾整,瑞找出數組中任寓一方重過的數學用:例,體果輸創(chuàng)長度為的數
組{2,3,1,0,2,5,3},那么對應的輸出是第一個重復的數字2.
11、給定一個數組和滑動窗口的大小,找出所有滑動窗口里數值的最大值。例如,如果輸入數組
{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那么一共存在6個滑動輸口,他們的最大值分別為{4,4,6,6,6,5):針對數
組{2,3,4,2,6,2,5,1}的滑動窗口有以下6個:{12,3,4],2,6,2,5,1},{2,134,270,2,5,1},{2,3,[4,2,6],2,5,1},
{2,3,4,[2,6,2],5,1},{2,3,4,2,[6,2,5],1},{2,3,4,2,6,[2,5,1]}.
12、給你一根長度為n的繩子,請把繩子剪成m段(m、n都是整數,n>1并且m>每段繩了的長度記為k[0],k[1]…k[m]。請問k[0]xk[1]x…xk[m]可能的最大乘積是多少?例如,當繩子的長度是8時。我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。