18、下面的函數有什么問題:
int square(volatile int *ptr){
return *ptr * *ptr;
}
19、中斷是嵌入式系統中重要的組成部分,這導致了許多編譯開發商提供一種擴展:讓標準C支持中斷,產生了一個新的關鍵字__interrupt。下面的代碼就使用了__interrupt關鍵字去定義了一個中斷服務子程序(ISR),請評論以下這段代碼。
__interrupt double compute_area(double radius)
{
double area = PI * radius *radius;
printf("nArea = %f", area);
return area;
}
20、請問下面程序有什么錯誤?
int a[60][250][1000],i,j,k;
for(k=0;k <=1000;k++)
for(j=0;j <250;j++)
for(i=0;i <60;i++)
a[i][j][k]=0;
21、設有以下說明和定義:
typedef union {
long i;
int k[5];
char c;
} DATA;
struct data {
int cat;
DATA cow;
double dog;
} too;
DATA max;
則語句 printf("%d",sizeof(struct data)+sizeof(max)); 的執行結果是:________
22、下面的一段C 程序中,循環體語句執行_________次退出循環。
int i = 100;
int sum;
do {
sum+=i;
}while(i--);
23、冒泡排序算法的時間復雜度是_________。
24、嵌入式系統經常具有要求程序員去訪問某特定的內存位置的特點。在某工程中,要求設置一絕對地址為0x67a9的整型變量的值為0xaa66。編譯器是一個純粹的ANSI編譯器。寫代碼去完成這一任務。(5分)
25、寫一個高性能的函數把一個int乘以9。
26、請用C語言寫出能將一個字符串逆序函數。
27、請編寫一個C 函數,該函數在給定的內存區域搜索給定的字符,并返回該字符所在位置索引值。