大四中软实习笔记20130226
1 循環
do
{
}while(條件);
for()
{
}
題目:連續給變量a輸入5次數據,每次都打印出結果。
2 函數
2.1 自定義函數的定義
函數原型(函數名、輸入參數、返回值):
int main()
{
??? int a=20;
??? ing b=30;
??? int c=max_etc(a,b);
??? printf("2個數的最大值是:%d\n",c);
??? return 0;
}
?
int max_etc(int a,int b)
{
??? int result;
??? if(a>b)
??? {
??????? result=a;
??? }
??? else
??? {
??????? result=b;
??? }
??? return result;
}
知識點:
1 自定義函數如果放在main函數的后面,則main函數調用自定義函數時,會默認自定義函數的返回值為int,而且有告警。所以,必須修改。
??? 修改方法:
??? 方法一、將自定義函數寫在main函數的前面
??? 方法二、在main函數前面,增加1條語句----自定義函數的原型,即聲明自定義函數
??? 方法三、使用多文件的工程,包括多個.c和.h文件
2 多工程文件的使用步驟
? 1、將main函數放在a.c文件中
? 2、將max_etc函數的定義放在max_etc.c文件中
? 3、將max_ect函數的原型放在max_etc.h文件中
? 4、在main函數前增加頭文件?? #include "max_etc.h"
???
3 數組
int a[10];
char a[10];
float a[10];???
double a[10];
3.1 整型數組
怎樣定義1個整型數組
int a[5];
怎樣給數組的每個元素賦值
方法一:
int a[5]={0};
上面是特殊用法
方法二:
先定義數組,再給每個元素賦值
int a[5];
a[0]=2;
a[1]=5;
a[2]=7;
a[3]=9;
a[4]=10;
特殊用法:
使用for循環,給每個元素賦值
題目:定義1個數組,給這個數組賦值前20個奇數。賦完20個奇數后,倒序打印出來。
題目:自定義1個函數,可以對整型數組中的元素進行排序。在main函數定義1個數組,并賦5個整型數,然后調用該函數,進行排序,最后打印輸出。
5? 9?? 2?? 7? 4
5? 2?? 7?? 4?? 9?? 第1輪結束
*
代碼:
#include <stdio.h>
void sort_etc(int a[],int count)
{
??? int temp;
??? int i;
??? int j;
???
??? for(j=0;j<count-1;j++)
??? {???????
??????? for(i=0;i<count-1-j;i++)
??????? {???
??????????? if(a[i]>a[i+1])
??????????? {
??????????????? temp=a[i];
??????????????? a[i]=a[i+1];
??????????????? a[i+1]=temp;
??????????? }
??????????? else
??????????? {
??????????????? ;
??????????? }
??????? }
??? }
???
??? return;
}
?
int main()
{
??? int a[5]={5,9,2,7,4};
??? int i;
??? sort_etc(a,5);
??? for(i=0;i<5;i++)
??? {
??????? printf("%d\n",a[i]);
??? }
???
??? return 0;
}
3.2 字符型數組
3.2.1怎樣定義1個字符型數組
int a[5]={5,3,4,6,7};
char b[5]={'h','e','l','l','o'};
char b[6]="hello";
char b[]="hello";
3.2.2 字符串
就是特殊的字符型數組:最后1個字符是'\0'
題目:定義1個函數,實現字符串復制功能。
在main函數中,定義1個字符串char a[20]="hello",再定義1個字符串b為"zhangsan",調用該自定義函數,將字符串b復制并粘貼到到字符串a上,然后在main函數中打印出字符串a,進行驗證。
分析:
hello???????????????? zhangsan
a[0]=b[0];
a[1]=b[1];
while(b[i]!='\0')
{
}
a[i]='\0';
題目:定義1個函數,實現字符串連接功能。
分析:
hello???????????????? zhangsan
4 指針----地址
就是1種數據類型
四大基本數據類型
數組數據類型? int a[5];//?? 在JAVA中也可以這樣定義? int[5]? a;
地址數據類型:
int * p1;
char *p2;
float *p3;
double *p4;
4.1 整型地址
4.1.1 如何定義1個整型地址變量
int *p;
注意:p是地址變量,而且它只能存1個整型數的地址,如存的是100這個整型數的地址(0x27ff0001)
4.1.2 給整型地址變量賦值
方法一:
int a=100;
int *p=&a;??? //&是取地址 運算符
方法二:
int *p;
int a;
a=100;
p=&a;
注意:
有的項目要求,單獨定義地址變量的時候,必須賦值為NULL;
題目:自定義1個函數,可以實現2個整型數的交換。在main函數中,調用該函數,驗證結果。
知識點:
1 函數參數的傳遞方式
方式一:值傳遞(參數是4大基本數據類型)
參數是復制粘貼關系
被調用函數中的參數(形參),是復制品
方式二:地址傳遞(參數是地址類型)
參數是復制粘貼關系
被調用函數中的參數(形參),是復制品
注意:
但此時,自定義函數的函數體里,不是進行簡單的地址的四則運算,還可以進行*運算(地址就變成 整型變量,而且這個變量是main函數里的真品)
題目:自定義1個函數,可以返回2個數的和、差、積、商。在main函數,定義2個整型數,讓調用該函數,來驗證結果。
代碼:
#include <stdio.h>
void fun(int m,int n,int *a,int *b,int *c,int *d)
{
??? *a=m+n;
??? *b=m-n;
??? *c=m*n;
??? *d=m/n;
??? return;
}
int main()
{
??? int a=10;
??? int b=20;
??? int sum;
??? int sub;
??? int mulity;
??? int shang;
??? fun(a,b,&sum,&sub,&mulity,&shang);
??? printf("sum is %d\n sub is %d\n mulity is %d\n shang is %d\n",sum,sub,mulity,shang);???
??? return 0;
}
知識點:
1 如果,函數中的形參是數組名,則本質上是地址變量
如:
int fun(int a[]);??? //以后不要這樣用了,雖然符合語法規范。
int fun(int *a);????? //二者完全等價,而且理解時要用地址變量來理解。
2 數組名
數組名是常量,所以不能進行a++這樣的運算。但可以進行a+1這樣的運算
這個常量是第1個元素的地址(一維數組是這樣)
2 走讀代碼:
從main函數開始
2 怎樣調試
設置斷點
go
F10
F11
點memory
?
課后作業:自定義1個函數,可以求出某個數值范圍內的所有質數。 在main函數中調用,進行驗證。比如參數可能為100,或200
轉載于:https://www.cnblogs.com/blueswitkey/archive/2013/02/27/2934877.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的大四中软实习笔记20130226的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struts1.x心得1--struts
- 下一篇: Visual Studio 常见问题及解