导航菜单
首页 >  » 正文

C语言编程试题! 我要小学五年级数学简便算法试题40道

C语言编程试题!

1. 求个位数为7且能被3整除的6位数的个数。 #include"stdio.h" main() { long int i,b=0; for(i=100002;i<999997;i+=3)/*由于这 个数是能被三整除所以起始值加三也是同样成立的*/ if(i/10*10==7) b++; printf("%ld",b); } 2. 从键盘输入四门功课成绩,求总成绩和平均成绩并输出。 #include"stdio.h" main() { float a,b,c,d,sum,aver; scanf("%f%f%f%f",&a,&b,&c,&d); sum=a+b+c+d; aver=sum/4; printf("sum=%f,aver=%f",sum,aver } 3. 写程序用于小商店卖糖售货员算帐:奶糖每斤12.5元,水果糖每斤8.5元,巧克力每斤15.7元,要求输入各类糖果的重量,打印出应付钱数,再输入顾客付款数,打印应找钱数。 #include"stdio.h" main() { float nai,shui,qiao,sum,fukuan; printf("please enter the zhongliang:"); sancf("%f%f%f",nai,shui,qiao); sum=nai*12.5+shui*8.5+qiao*15.7; printf("the whole money is:%f ",sum); Printf("input the fukuan:"); scanf("%f",fukuan); printf("zhao gei:%f",fukuan-sum); }

我要小学五年级数学简便算法试题40道

 101×82   45.2×10+52.1×10  0.125×3.2×25  4.37×99+4.37  4.2÷2÷3.5   92×25=  22×11+22+288×22= (214+43+86)+257= 578-53-92-255= 361×40×125= 199×35= 365-(247-235)= 48×125= 200×22= )(88+104)+96 24+42+76+58 25*5)*2 117*3+117*7 167*2+167*3+167*5 528-53-471、 7.5*3.1/2.5*100    =7.5/2.5*3.1*100    =3*3100    =9300 2、36.5*6.2+28*0.365+3.65    =36.5*6.2+2.8*3.65+3.65    =3.65*(6.2+2.8+1)    =3.65*1.    =36.5 3、999.9*599.9+199.9    =1000×599+0.1×599.9+200-0.1    =5990+59.9+200-0.1    =6049.9+200-0.1    =6249.9-0.1    =6249.8 999.9*599.9+199.9 =(1000-0.1)*599.9+(200-0.1) =1000*599.9-0.1*599.9+200-0.1 =599900-599.99+200-0.1 =599900-(600-0.1)+200-0.1 =599900-600+0.1+200-0.1 =599900-600+200 =599500 999.9X599.9+199.9 =(1000-0.1)X599.9+(200-0.1) =1000X599.9-0.1X599.9+200-0.1 =599900-59.99+200-0.1 =599900-(60-0.01)+200-0.1 =599900-60+0.01+200-0.1 =599900+200+0.01-60-0.1 =600039.91 999.9×599.9+199.9 = (1000-0.1)×599.9+199.9 =1000×599.9-0.1×599.9+199.9 =599900-59.9+199.9 =599900+140 545-167-145 28*225-2*225-6*225 39*8+6*39-39*4 127+133+184+240 22x98+44   54+34+(66+46) 97×95+5×97=

C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。

//如果只有成绩信息就可以用下面的代码

//如果还需要加入学号,姓名之类的信息,可以用结构体然后对成绩排序即可

#include"stdio.h"

int main()

{

int  d[10]={0},i,j,t;//数组d存放10个学生的成绩

for(i=0;i<10;i++)//输入10个成绩(空格分开)

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

for(i=0;i<9;i++)//排序 for(j=i+1;j<10;j++) if(d[i]<d[j]) {

t=d[i],d[i]=d[j],d[j]=t;

}

for(i=0;i<10;i++)//输出10个成绩

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

getch();

return 0;

}

C语言编程求素数的个数,计算1到1000000000(10亿)以内的素数个数,有多少个?附上程序

不知道有没有国际最优,但我这个算法很顶尖了:计算1亿以内的素数个数不到2秒钟!

1到10000000000(10亿)共有素数50847534个,计算时间大概20多秒!

程序如下:

#include<iostream> using namespace std; int main() {int CompositeNumFilterV3(int);  int m,c;  cin>>m;  c=CompositeNumFilterV3(m);  cout<<c<<endl; return 0; }

//求素数的程序 int CompositeNumFilterV3(int n) {  int i, j;  //素数数量统计  int count = 0;  // 分配素数标记空间,明白+1原因了吧,因为浪费了一个flag[0]  char* flag = (char*)malloc( n+1 );  // 干嘛用的,请仔细研究下文  int mpLen = 2*3*5*7*11*13;  char magicPattern[2*3*5*7*11*13]; // 奇怪的代码,why,思考无法代劳,想!   for (i=0; i<mpLen; i++)  {   magicPattern[i++] = 1;    magicPattern[i++] = 0;    magicPattern[i++] = 0;    magicPattern[i++] = 0;    magicPattern[i++] = 1;    magicPattern[i] = 0;  }  for (i=4; i<=mpLen; i+=5)    magicPattern[i] = 0;  for (i=6; i<=mpLen; i+=7)    magicPattern[i] = 0;  for (i=10; i<=mpLen; i+=11)    magicPattern[i] = 0;  for (i=12; i<=mpLen; i+=13)    magicPattern[i] = 0;

  // 新的初始化方法,将2,3,5,7,11,13的倍数全干掉   // 而且采用memcpy以mpLen长的magicPattern来批量处理   int remainder = n%mpLen;  char* p = flag+1;  char* pstop = p+n-remainder;  while (p < pstop)  {    memcpy(p, magicPattern, mpLen);    p += mpLen;  }   if (remainder > 0)   {     memcpy(p, magicPattern, remainder);   }   flag[2] = 1;   flag[3] = 1;   flag[5] = 1;   flag[7] = 1;   flag[11] = 1;   flag[13] = 1; 

  // 从17开始filter,因为2,3,5,7,11,13的倍数早被kill了    // 到n/13止的,哈哈,少了好多吧   int stop = n/13;   for (i=17; i <= stop; i++)   {     // i是合数,请歇着吧,因为您的工作早有您的质因子代劳了     if (0 == flag[i]) continue;      // 从i的17倍开始过滤    int step = i*2;    for (j=i*17; j <= n; j+=step)    {     flag[j] = 0;    }   }      // 统计素数个数   for (i=2; i<=n; i++)   {     if (flag[i]) count++;   }       // 因输出费时,且和算法核心相关不大,故略     // 释放内存,别忘了传说中的内存泄漏    free(flag);      return count; }

C语言i+=2和i=+2的区别

1、运算顺序不相同
简单说就是i=i+2 比 i+=2多了一次对变量 i 的运算。i=i+2是先用i的结果,然后在进行i=i+2的式子进行处理。i+=2是先进行i=i+2,然后得出来的结果就是i。
在表达式中,i=i+2就是先进行加法,然后在进行赋值。而i+=2就是先赋值然后在进行加法。
2、得到的结果不相同
C语言中i +=2 等同于 i = i + 2 这是简略写法,但是计算时算法不相同,i=i+2更容易得出i的赋值。如果i的值为1(i=1),i=i+2得到i的结果是i=3,而i+=2得到的结果是i=1,运算得到的值不相同。
3、运算效率不相同
i=i+2运算效率最低,因为运算时读取右i的地址i+1,读取左i的地址;将右值传给左边的i(编译器并不认为左右i的地址相同),而i+=2运算时读取右i的地址,令i=1,将得到的值传给i(因为i的地址已经读出)。

扩展资料:
i=i+2和i+=2都是运用赋值的相关知识,将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。 
很多语言都使用“等于号”(即“=”)来作为赋值号,所以可能和和平时的理解不同,在使用的时候应予以注意。
参考资料:搜狗百科-赋值