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