一、求下列兩個數組的長度關係數組
characX[] = "abcdefg";ide
char acY[] ={ 'a', 'b','c', 'd', 'e', 'f', 'g' };函數
解析:對於字符串來講,字符串結尾默認爲‘\0’,因此acX[]的長度爲8,而第二個數組的大小長度爲7,並且由於沒有用‘\0’結尾,因此在屏幕上輸出的值是不肯定的.ui
2、求下列程序的輸出結果spa
void example(characHello[]) 指針
{blog
printf("%d\n", sizeof(acHello));內存
return;字符串
}get
int main()
{
characHello[] = "hello,bit";
example(acHello);
system("pause");
return0;
}
解析:函數傳參時有兩種方式,一種是值傳遞,一種是址傳遞對於數組來講傳遞的是首元素的
地址。Sizeof(類型)是求內存大小的函數,好比sizeof(int)=4,sizeof(char)=1;.
一個指針變量佔有4個字節sizeof(*p)=4。
3、如下敘述不正確的是(D)
A)、在不一樣的函數中能夠使用相同變量的名字
B)、函數中的形式參數是在棧中保存
C)、在一個函數內定義的變量只在本函數範圍內有效
D)、在一個複合語句中定義的變量在本函數範圍內有效(複合語句指的是函數中的成對括弧構成的代碼)
4、設有以下定義
unsignedlongpulArray[] = { 6, 7, 8, 9, 10 };
unsignedlong*pulPtr;
pulPtr =pulArray;
*(pulPtr +3) += 3;
printf("%d,%d\n", *pulPtr, *(pulPtr + 3));
求程序輸出的結果
5、求輸出結果
void example()
{
inti;
characNew[20];
for(i = 0; i < 5; i++)
{
acNew[i]= '0';
}
printf("%d\n", strlen(acNew));
return;
}
int main()
{
example();
system("pause");
return0;
}
6、全局變量只能在一個被.C包含的頭文件中
解析:會發生變量重定義。
當一個程序要引入一個文件時 <> 表示只在當前庫中尋找,找不到就會出錯。
「」 表示先在當前庫中尋找,找不到再在系統目錄中找。
「」比<>的範圍要大。
7、有如下程序求輸出結果
int main()
{
union
{
shortk;
chari[2];
}*s,a;
s =&a;
s->i[0]= 0x39;
s->i[1]= 0x38;
printf("%x\n", a.k);
system("pause");
return0;
}
8、設有如下宏定義
#defineN4
#defineY(n)((N+2)*n)
求z = 2 * (N+ Y(5 + 1))的結果
9、int main()
{
unsignedchar a = 200;
unsignedchar b = 100;
unsignedchar c = 0;
c = a +b;
printf("%d %d\n", a + b, c);
system("pause");
return 0;
}
求程序的執行結果()300 44
10、求輸出結果
int main()
{
char c;
unsignedchar uc;
unsignedshort us;
c = 128;
uc = 128;
us = c +uc;
printf("0x%x", us);
us =(unsigned char)c + uc;
printf("0x%x", us);
us = c +(char)uc;
printf("0x%x\n",us);
system("pause");
return 0;
}
12、unsignedshort*sum(unsignedchara,unsignedcharb)
{
unsignedshorts = 0;
s = a+ b;
return&s;
}
int main()
{
unsignedshort*p = NULL;
unsignedchara = 1, b = 2;
p = sum(a,b);
printf("%u+%u", a, b);
printf("=%u\n", *p);
system("pause");
return0;
}
求程序執行結果()