37.以下程序执行后,a的值是( C )。
main()
{int a, k=4, m=6, *p1=&k, *p2=&m;
a=p1= =&m;(等于运算符==优先级高于赋值运算符=,即为a=(p1==&m))
printf(“%d\n”, a);
}
A) 4
B) 1
C) 0
D) 运行时出错,a无定值
38.以下程序运行后,如果从键盘上输入:
book<回车>
book<空格><回车>
则输出结果是( B )。
#include
main()
{char a1[80], a2[80], *s1=a1, *s2=a2;
gets(s1); gets(s2);
if(!strcmp(s1, s2)) printf(“*”);
else printf(“#”);
printf(“%d\n”, strlen(strcat(s1, s2)));
}
A) *8
B) #9
C) #6
D) *9
39.若有以下调用语句,则不正确的fun函数的首部是( D )。
main()
{ …
int a[50], n;
…
fun (n, &a[9]);
…
}
A) void fun(int m,int x[ ])
B) void fun(int s,int h[41])
C) void fun(int p,int *s) D) void fun(int n,int a)
40.假定下列程序的可执行文件名为prg . exe,则在该程序所在的子目录下输入命令行:
prg hello good<回车>后,程序的输出结果是( B )。
main(int argc, char *argv[ ])
{int i;
if(argc<=0) return;
for(i=1; i } A) hello good B) hg C) hel D) hellogood 41.以下程序的输出结果是( D )。 main( ) {char s[ ]=”ABCD”, *p; for(p=s+1; p } A) ABCD BCD CD D B) A B C D C) B C D D) BCD CD D 42.若已定义:int a[9], *p=a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( C )。 A) p+1 B) a+1 C) a++ D) ++p 43.执行以下程序后,y的值是( C )。 main( ) {int a[ ]={2, 4, 6, 8, 10}; int y=1, x, *p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\n”, y); } A) 17 B) 18 C) 19 D) 20 44.下列程序的输出结果是( C )。 main( ) {int a[5]={2, 4, 6, 8, 10}, *p, **k; p=a; k=&p; printf(“%d ”, *(p++)); printf(“%d\n”, **k); } A) 4 4 B) 2 2 C) 2 4 D) 4 6 45.下列程序的输出结果是( D )。 #include main( ) {char *p1,*p2,str[50]="xyz"; p1="abcd";p2="ABCD"; strcpy(str+2, strcat(p1+2,p2+1)); printf("%s",str); } A) xyabcAB B) abcABz C) ABabcz D) xycdBCD 46.设有以下定义: int a[4][3]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int (*prt)[3]=a, *p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是( D )。 A) *((*prt+1)[2]) B) *(*(p+5)) C) (*prt+1)+2 D) *(*(a+1)+2) 47.阅读程序: main( ) {int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; p=a; printf("%x\n",p); printf("%x\n",p+9); } 该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是( D )。 A) 203 B) 204 C) 1a4 D) 1a6 48.以下程序的输出结果是( C )。 #include #include void fun(char *w, int m) {char s, *p1, *p2; p1=w; p2=w+m-1; while(p1 {s=*p1++; *p1=*p2--; *p2=s;} } main( ) {char a[ ]="ABCDEFG"; fun(a, strlen(a)); puts(a); } A) GEFDCBA B) AGADAGA C) AGAAGAG D) GAGGAGA 49.以下程序的输出结果是( C )。 #include void fun(int *s) {static int j=0; www.Examda.CoM do s[j]+=s[j+1]; while (++j<2); } main( ) {int k, a[10]={1, 2, 3, 4, 5}; for(k=1; k<3; k++) fun (a); for(k=0; k<5; k++) printf (“%d”, a[k]); } A) 34756 B) 23445 C) 35745 D) 12345 50.请读程序: #include char fun(char *C) {if(*c<=‘Z’&&*c>=‘A’) *c-=‘A’-‘a’; return *c; } main( ) {char s[81], *p=s; gets (s); while(*p) {*p=fun(p); putchar(*p); p++;} putchar(‘\n’); } 若运行时从键盘上输入OPEN THE DOOR<回车>,则上面程序的输出结果为(B )。 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door 51.以下程序的输出结果是( B )。 #include main( ) {char *s1="AbCdEf",*s2="aB"; s1++;s2++; printf("%d\n",strcmp(s1, s2)); } A) 正数 B) 负数 C) 零 D) 不确定的值 52.下面各语句行中,能正确进行赋字符串操作的语句行是( C )。 A) char st[4][5]={“ABCDE”}; B) char s[5]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’}; C) char *s; s= “ABCDE”; D) char *s; scanf(“%s”,s); 53.以下程序的输出结果是( C )。 fun(int *s, int n1, int n2) {int i, j, t; i=n1; j=n2; while(i {t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } } main( ) {int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, i, *p=a; fun (p, 0, 3); fun (p, 4, 9); fun (p, 0, 9); for(i=0; i<10; i++) printf("%d ", *(a+i)); printf(“\n”); } A) 0 9 8 7 6 5 4 3 2 1 B) 4 3 2 1 0 9 8 7 6 5 C) 5 6 7 8 9 0 1 2 3 4 D) 0 9 8 7 6 5 1 2 3 4 54.下面函数的功能是( B )。 sss (char *s, char *t) {while((*s)&&(*t)&&(*t= =*s)) s++, t++; return(*s-*t); } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s连接到字符串t中
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |