- 相關(guān)推薦
2017年9月計(jì)算機(jī)二級(jí)c語(yǔ)言基礎(chǔ)試題
程序設(shè)計(jì)是給出解決特定問(wèn)題程序的過(guò)程,是 軟件構(gòu)造活動(dòng)中的重要組成部分。下面是小編收集的關(guān)于計(jì)算機(jī)二級(jí)c語(yǔ)言基礎(chǔ)試題,希望大家認(rèn)真閱讀!
1.下面的代碼輸出什么?為什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6)?puts(“>6”):puts(“<=6”);
}
答案:輸出值”>6”
解析:a+b在這里做了隱式的轉(zhuǎn)換,把int轉(zhuǎn)化為unsigned int.編譯器會(huì)把b當(dāng)做一個(gè)很大的正數(shù).
2.下面的代碼有什么問(wèn)題,為什么?
void foo(void)
{
char string[10], str1[10];
int i;
for (i = 0; i < 10; i++) {
str1[i] = 'a';
}
strcpy(string, str1);
printf("%s\n", string);
}
答案:運(yùn)行到strcpy的時(shí)候可能會(huì)產(chǎn)生內(nèi)存異常
解析:吟哦日str1沒(méi)有\(zhòng)0結(jié)束標(biāo)志,所以數(shù)組后面存儲(chǔ)的可能不是\0,而是隨機(jī)數(shù)據(jù),對(duì)于strcpy和printf這種需要\0判斷字符串結(jié)束的函數(shù)來(lái)說(shuō),出錯(cuò)是必然的了.
道理雖是如此,但是這段代碼我在windows和Linux下測(cè)試的結(jié)果不一樣,Linux下可以正常輸出10個(gè)a,windows下會(huì)出錯(cuò),使用的都是gcc的編譯器.
3.下面的代碼,i和j的值分別是多少?為什么?
static int j;
int k = 0;
void fun1(void)
{
static int i = 0;
i++;
}
void fun2(void)
{
j = 0;
j++;
}
int main(void)
{
for (k = 0; k < 10; k++) {
fun1();
fun2();
}
return 0;
}
答案:i=10,j=1
解析:由于被static修飾的局部變量存儲(chǔ)在靜態(tài)區(qū)內(nèi),所以即使這個(gè)函數(shù)運(yùn)行結(jié)束,這個(gè)靜態(tài)變量還是不會(huì)被銷(xiāo)毀,函數(shù)下次運(yùn)行時(shí)還能使用這個(gè)值,靜態(tài)變量只被初始化一次,函數(shù)下次運(yùn)行會(huì)直接跳過(guò)初始化,進(jìn)行++操作.而j每次都被賦0.
4.下面的代碼里,假設(shè)在32位系統(tǒng)下,各sizeof計(jì)算得結(jié)果分別是多少?
int *p = NULL;
sizeof(p)的值是
sizeof(*p)的值是
int a[100];
sizeof(a)的值是
sizeof(a[100])的值是
sizeof(&a)的值是
sizeof(&a[0])的值是
int b[100];
void fun(int b[100])
{
sizeof(b);
}
sizeof(b)的值是
答案:4,4,400,4,4,4,4
解析:沒(méi)什么好說(shuō)的吧
5.下面代碼的結(jié)果是多少?為什么?
int main(void)
{
char a[1000];
int i;
for (i = 0; i < 1000; i++)
a[i] = -1-i;
printf("%d", strlen(a));
return 0;
}
答案:255
解析:基本上算是個(gè)”輪回”的問(wèn)題,strlen遇到a[i]=0的時(shí)候就終止了,現(xiàn)在的問(wèn)題變成循環(huán)多少次a[i]=0了,那么就使用補(bǔ)碼來(lái)計(jì)算到底多少次之后char會(huì)溢出為0,我的回答是一個(gè)輪回,也就是256次,那么strlen不包含0的位置,那么長(zhǎng)度就是255了.
【9月計(jì)算機(jī)二級(jí)c語(yǔ)言基礎(chǔ)試題】相關(guān)文章:
2016年9月計(jì)算機(jī)二級(jí)C語(yǔ)言試題題庫(kù)07-02
9月計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題及答案08-20
3月計(jì)算機(jī)二級(jí)c語(yǔ)言模擬試題10-30
2017年9月計(jì)算機(jī)二級(jí)c語(yǔ)言筆試試題09-08
2017年9月計(jì)算機(jī)二級(jí)考試C語(yǔ)言考試試題06-30
下半年計(jì)算機(jī)二級(jí)c語(yǔ)言基礎(chǔ)試題07-31
2016年9月計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)沖刺試題及答案09-30
2017年9月計(jì)算機(jī)二級(jí)C語(yǔ)言檢測(cè)試題及答案07-30