19.下列程序的輸出結(jié)果是( C )。
main()
{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
A) 非法
B) a[4]的地址
C) 5
D) 3
20.下列程序的運行結(jié)果是( B )。
void fun(int *a, int *B)
{int *k;
k=a; a=b; b=k;
}
main()
{int a=3, b=6, *x=&a, *y=&b;
fun(x, y);
printf("%d %d", a, B);
}
A) 6 3
B) 3 6
C) 編譯出錯
D) 0 0
21.下面程序的輸出結(jié)果是( C )。
main()
{int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);
}
A) 0
B) 1
C) 10
D) 9
22.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG . EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROG ABCD EFGH IJKL<回車>,則輸出結(jié)果為( D )。
main( int argc, char *argv[ ])
{while(--argc>0) printf("%s", argv[argc]);
printf("\n");
}
A) ABCDEFGH
B) IJHL
C) ABCDEFGHIJKL
D) IJKLEFGHABCD
23.對于基類型相同的兩個指針變量之間,不能進行的運算是( C )。
A) <
B) =
C) +
D) -
24.有以下函數(shù):
char * fun (char *p)
{return p;}
該函數(shù)的返回值是( B )。
A) 無確切的值 B) 形參p中存放的地址值
C) 一個臨時存儲單元的地址
D) 形參p自身的地址值
25.若有以下說明和定義
fun(int *C){…}
main()
{int (*a)()=fun,*b(),w[10],c;
┆
}
在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是( B )。
A) a=a(w);
B) (*a)(&C);
C) b=*b(w);
D) fun (B);
26.有如下說明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數(shù)值為9的表達式是( B )。
A) *p+9
B) *(p+8)
C) *p+=9
D) p+8
27.有如下程序:
main()
{char ch[2][5]={“6937”,“8254”},*p[2];
int i,j,s=0;
for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>‘\0’;j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%d\n”,s);
}
該程序的輸出結(jié)果是( C )。
A) 69825
B 63825
C) 6385
D) 693825
28.若有以下定義和語句:
char *s1=“12345”,*s2=“1234”;
printf(“%d\n”, strlen(strcpy (s1, s2)));
則輸出結(jié)果是( A )。
A) 4
B) 5
C) 9
D) 10
29.下面程序的輸出結(jié)果是( C )。
main( )
{char *s=“121”;
int k=0, a=0, b=0;
do
{k++;
if(k%2= =0) {a=a+s[k]-‘0’; continue;}
b=b+s[k]-‘0’; a=a+s[k]-‘0’;
}
while(s[k+1]);
printf(“k=%d a=%d b=%d\n”, k, a, B);
}
A) k=3 a=2 b=3
B) k=3 a=3 b=2
C) k=2 a=3 b=2
D) k=2 a=2 b=3
30.若有以下的定義:
int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a;
則值為3的表達式是( A )。
A) p+=2,*(p++)
B) p+=2,*++p
C) p+=3,*p++
D) p+=2,++*p
31.以下程序的輸出結(jié)果是( A )。
#include
sub1(char a, char B) {char c; c=a; a=b; b=c;}
sub2(char *a, char B) {char c; c=*a; *a=b; b=c;}
sub3(char *a, char *B) {char c; c=*a; *a=*b; *b=c;}
main()
{char a, b;
a=‘A’; b=‘B’; sub3 (&a, &B); putchar(a); putchar(B);
a=‘A’; b=‘B’; sub2 (&a, B); putchar(a); putchar(B);
a=‘A’; b=‘B’; sub1 (a, B); putchar(a); putchar(B);
}
A) BABBAB
B) ABBBBA
C) BABABA
D) BAABBA
32.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是( B )。
A) k=*p1+*p2;
B) p2=k;
C) p1=p2;
D) k=*p1*(*p2);
33.設(shè)有如下定義:
int arr[ ]={6, 7, 8, 9, 10}; int *ptr;
則下列程序段的輸出結(jié)果是( D )。
ptr=arr;
*(ptr+2)+=2;
printf(“%d, %d\n”, *ptr, *(ptr+2));
A) 8,10
B) 6,8
C) 7,9
D) 6,10
34.以下程序的輸出結(jié)果是( D )。
main()
{char a[ ]=“programming”, b[ ]= “l(fā)anguage”;
char *p1, *p2;
int i;
p1=a; p2=b;
for(i=0; i<7; i++)
if(*(p1+i)= =*(p2+i)) printf(“%c”, *(p1+i));
}
A) gm
B) rg
C) or
D) ga
35.以下程序運行后,輸出結(jié)果是( C )。
main()
{char *s=“abcde”;
s+=2;
printf(“%ld\n”, s);
}
A) cde
B) 字符c的ASCII碼值
C) 字符c的地址
D) 出錯
36.以下程序運行后,如果從鍵盤上輸入ABCDE<回車>,則輸出結(jié)果為( D )。
#include
#include
func(char str[ ])
{int num=0;
while(*(str+num)!=’\0’) num++;
return(num);
}
main()
{char str[10], *p=str;
gets (p);
printf(“%d\n”, func (p));
}
A) 8
B) 7
C) 6
D) 5
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |