来苏嵌有一段使间了,学习的内容也从Linux 到shell编程 然后到了C语言。现在学习的C语言,压力很大。基本上是不知道如何去学习他,一天的上课强度很大,老师讲授的内容也很多。很多东西在讲授的时候弄不明白就到下一个知识点了,晚上有安排晚自习来消化白天的授课内容,可是自己在晚上的回顾的时候东看看,西看看。没有一个具体的目标性。现在的状态很糟糕。C语言有对应的作业题,我必须对应着参考方案,才能编出来。自己独立的完成一道题却是很难,甚至是毫无进展。课程每天都在往前面上,我累积 的问题也越来越多。自己也花了很多的时间去自主学习C语言,可是在学习的时候没有一个系统规划,数组看看,语句看看,思路想想,东抓一把,西抓一把。时间也花进去,可是拿到新的作业题也没有任何的突破或者说是一点点的进步。打个比方:例如一个10进制转换为8进制的程序有一条语句是这样的 :scanf("%d,&n"); 这样一个语句,我在编写的时候没有任何的概念,直到看到参考方案的时候,才意识到需要加入这样一条语句进去。现在自己真的很迷茫,不知道怎样去学C语言才能有效的进步。
作业:
1.求100以内的素数,全部打印出来
#include<stdio.h>
//输出100之内的所有素数
int main()
{
int i;
int j;
for(i = 2;i <=100;i++)
{
for(j = 2;j <= 100;j++)
{
if(i % j ==0) 如果i和j 余数为0 进入break 停止for循环 进入下面 if 判断 如果 等于的话 就输入出来。否则
{ 在返回进入for 循环 如果余数不是0 回到循环自加 直到符合 i%j取余
=0 可以进行break 为止。
break;
}
}
if(i == j)
{
printf("%d\n",i);
}
}
return 0;
}
2.编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
#include <stdio.h>
#include <math.h>
int main()
{
int i;
for (i=1000; i<10000; i++)
{
int a = i / 1000; //i除以1000 得出的数为最高为
int b = i % 1000 / 100; //i和1000取余,余下的三位数和100除 得出的数为百位
int c = i % 100 /10; // i和100取余,余下的数和10除 得出的数为十位
int d = i % 10; // 和10取余 除到最后会余下两位数 得出的数为个位
if((int)sqrt(i) == sqrt(i)) //判断是否为完全平方数
{
if ((a+c) == 10) //判断第一、三位之和是否为10
{
if ((b*d) == 12) //判断第二、四位之积是否为12
{
printf ("%d\n",i);
}
}
}
}
return 0;
}
3.快速找出一个数组中的最大数、第二大数。(笔试题)
#include<stdio.h>
int main ()
{
int i, j, temp;
for (i=0;i<6;i++)
{
for (j=0; j<6-i ; j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]= a[j+1];
a[j+1] = a[j];
}
}
}
printf ("Max=%d,SeondMax=%d\n", a[0],a[1]);
return o;
}
4.编写程序,打印出9×9乘法表
#include <stdio.h>
int main ()
{
int i,j;
for (i=1;i<10; i++)
{
for (j=1;j<10;j++)
printf(" %d * %d = %d\n," i,j,i*j)
printf("\n");
}
return 0
}
5.编写程序,将十进制转换为8进制并输出(不允许使用printf("%o"))
#include <stdio.h>
int main ()
{
int a[100];
int t;
int i;
int j;
int n;
printf ("输入10进制数:\n");
scanf ("%d,&n");
for (t=0;t<100;t++)
{
if (n!=0)
{
i=n%8;
a[t] = i;
n =n/8;
}
else
break;
}
printf ("输出8进制数: \n");
for (j=t; j>=0; j--)
{
printf ("%d",a[j]);
}
printf ("\n");
return o
}