⑴ c語言中如何用子函數調用結構體中的變數實現數據的輸入與輸出。
用子函數實現結構體數據的輸入與輸出:對於多數子函數的輸入與輸出,有一定規律性可言。
方法1:void型不傳值傳址調用與聲明。main中聲明void date_in(),void date_pout()。函數定義前一定在main()前先定義結構體變數(全局變數),然後定義輸入或輸出程序段。此時再main()調用即可。
如下:
struct student
{
char name[20];
int old;
char sex;
}stu;
void date_in();
void main()
{ date_in();
}
void date_in()
{ scanf("%s%d/c,"stu.name,stu.old,stu.sex);
}時間問題程序有點簡潔,有問題請追問,很樂意與你分享。
⑵ c語言中 如何單獨運行一個子函數啊或者說怎樣驗證一個子函數的正確性、以及其功能啊求助···
我寫了八年的C語言,竟不知道如何回答你的問題。
要單獨運行一個函數,只需直接調用就可以了。為了驗證子函數的正確性,可以先生成一些數據與期望的結果(包括邊界條件),測試子函數的輸出是否滿足期望。
或者你說的是軟體工程的東西?有白盒測試和黑盒測試兩種,像上面那種就是黑盒測試。白盒測試需要逐句審查語句,有多種方法,書里講得很明白。
⑶ 在C語言中怎麼將子函數中的數組和函數調用出來
來傳送子函數中的數組有多種方法——可以通過函數返回值返回地址傳遞數組;也可以通過函數輸入參數來傳遞數組;還可以通過全局變數來傳遞數組。
子函數本身可以直接在作用域中進行調用。
1、通過函數返回值返回地址傳遞數組。
聲明函數時需要聲明函數返回值類型為對應數組的地址,此時可以返回數組的地址,結合數組元素的地址關系可以傳遞整個數組,同時可以根據數組的特性傳遞多個參數。
注意:子函數是C語言模塊化編程思想的核心,其方法是通過輸入介面和輸出介面實現對黑盒的調用,故對其內部數據的輸入和調用也需要通過輸入介面、輸出介面和程序的公共區域實現。
⑷ C語言中如何調用一個函數的子函數
要知道 C語言是由MAIN函數開始也由它結束。
每調用一次分函數,只要運行完畢後就會回到調用分函數的地方繼續往後執行。
C語言主要靠函數調用和return在函數之間切換,很難做到在多層調用中直接返回主函數。雖然goto語句可以無條件跳轉,但是必須在同一個函數中使用。
因此解決的方法也是用一個特殊的值作為需要返回的標志,然後在兩層調用函數中都遇到該值就返回,但是這個方法也有兩個前提:
1)你的兩個子函數都是由返回值的函數
2)你選擇的特殊值和函數正常的返回的取值不會沖突,不會引起二義性。
同樣的操作,C++可以通過異常處理的throw和catch來實現從子函數的子函數直接返回主函數,匯編語言可以用jmp指令跳轉實現這個需求。因此建議你的這個問題還是用C++ 的異常去解決比較好。
⑸ C語言中一個子函數怎麼調用另一個子函數的運算
方法很多。
主要是要將不同類型傳遞給fun2處理。
最簡單float類型最大,fun2的參數類型就定義為float,然後運算結果返回float類型。在main函數用a3,b3,c3接收的時候強轉型。
另一種方法,把變數都轉換成一種類型傳遞。這里用union共用體類型就比較適合。還方便擴展,如果想添加其他類型還可以在union里添加。
我這里代碼就用第二種方法寫。
#include <stdio.h>
typedef union data{
char c;
int i;
float f;
}DA;
void fun1(void);
DA fun2(DA n1,DA n2,int nType);//nType=1:char類型。nType=2:int類型。nType=3:float類型。
int main()
{
fun1();
return 0;
}
void fun1(void)
{
char a1=1,a2=2;
int b1=100,b2=300;
float c1=5.1,c2=6.8;
DA n1,n2;
n1.c=a1,n2.c=a2;
char a3=fun2(n1,n2,1).c;
n1.i=b1,n2.i=b2;
int b3=fun2(n1,n2,2).i;
n1.f=c1,n2.f=c2;
float c3=fun2(n1,n2,3).f;
printf("a3=%c b3=%d c3=%.2f ",a3,b3,c3);
}
DA fun2(DA n1,DA n2,int nType)//nType=1:char類型。nType=2:int類型。nType=3:float類型。
{
DA n3;
switch(nType)
{
case 1:n3.c=n1.c+n2.c;break;
case 2:n3.i=n1.i+n2.i;break;
case 3:n3.f=n1.f+n2.f;break;
}
return n3;
}
⑹ C語言中的子函數和主函數有什麼聯系啊它們是怎麼編寫的
在C語言中主函數調用子函數,子函數被主函數調用,這就是它們之間的聯系。編寫函數主要有以下步驟,首先對函數進行定義,語法格式為:
類型說明符 函數名 (含類型說明的形式參數表)
{
語句序列
}
形式參數的作用是實現主函數和被調函數之間的聯系。通常將函數所處理的數據、影響函數功能的因素或函數處理的結果作為形參。
然後還要確定函數的返回值及類型,格式為:
return 表達式;
這個語句的另一個作用是結束當前函數的執行。一個函數可以不將任何值返回主函數,此時它的類型標識符為void,可以不寫return語句,也可以寫一個不帶表達式的return;語句。
(6)c語言一個子函數怎麼用擴展閱讀
C語言編程書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。