c语言陷阱试题,超级经典计算机二级C语言陷阱考试题.doc
超級(jí)經(jīng)典計(jì)算機(jī)二級(jí)C語(yǔ)言陷阱考試題
超級(jí)經(jīng)典計(jì)算機(jī)二級(jí)C語(yǔ)言陷阱考試題
若有定義:int a[2][3],則對(duì)a數(shù)組的第i行j列元素地址的正確引用為_(kāi)__d___.
a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j
以下正確的程序段是_________.
a)char str[20]; b)char *p;
scanf("%s",&str); scanf("%s",p);
c)char str[20]; d)char str[20],*p=str;
scanf("%s",&str[2]); scanf("%s",p[2]);
下面程序的運(yùn)行結(jié)果是_______.
#include
#include
fun(char *w,int n)
{char t,*s1,*s2;
s1=w;s2=w+n-1;
while(s1
}
main()
{
char p[] = “1234567”;
fun(p,strlen(p));
puts(p);
}
a)7654321 b)1714171 c)1711717 d)7177171
下面程序段的運(yùn)行結(jié)果是__ hELLO!______.
char s[80],*sp="HELLO!";
sp=strcpy(s,sp);
s[0]='h';
puts(sp);
.下面程序段的運(yùn)行結(jié)果是__ef_____.
char str[]="abc\0def\0ghi",*p=str;
printf("%s",p+5);
設(shè)有如下定義:int x = 1, y = -1;,則語(yǔ)句:printf(“%d\n”, (x--&++y));的輸出結(jié)果是: B
1
0
-1
2
設(shè)有如下定義:int a, b;,則語(yǔ)句:printf("%d", (a = 5) && (b = -1));的輸出結(jié)果是: A
1
5
-1
不確定
程序執(zhí)行后的輸出結(jié)果是int i, n = 0;
for (i = 2; i < 7; i++) {
do {
if (i % 3) {
continue;
}
--n;
} while(!i);
n++;
}
printf("n = %d\n", n);
以下代碼,哪一句是非法的?____最后一句s.p[0] = 2;____
struct po_s
{
int i;
int *p;
};
int main(void)
{
struct po_s s;
int *p;
p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;
return 0;
以下代碼,輸出什么?____a3, BB(注意大小寫(xiě))____
int a[5] = {0x1a,0xa3,0xd3,0xe4,0xbb};
int *ptr;
ptr = (int *)(&a + 1);
printf("%x, %X", *(a + 1), *(ptr - 1));
下面的代碼輸出是什么,為什么?
void foo(void) { unsigned int a = 0x10;
int b = -20;
(a + b > 6) ? puts("> 6") : puts("<= 6"); }#define PS struct po_s*typedef struct po_s* PS_t;
這兩個(gè)語(yǔ)句是將PS 和 PS_t 作為一個(gè)指向結(jié)構(gòu)po_s指針。typedef更好。
因?yàn)槿缦麓a
PS p1, p2; PS_t p3, p4;
p1為一個(gè)指向結(jié)構(gòu)的指,p2為一個(gè)實(shí)際的結(jié)構(gòu),這也許不是你想要的。第二個(gè)例子正確地定義了p3 和p4 兩個(gè)指針。
下面兩段代碼一樣嗎?為什么?
int square(volatile int *ptr) { int a, b; a = *ptr; b = *ptr;
總結(jié)
以上是生活随笔為你收集整理的c语言陷阱试题,超级经典计算机二级C语言陷阱考试题.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux here用法,linux s
- 下一篇: java web 不用框架_MyShop