第八章测试1.
下列语句组中,正确的是
A:char *s;s= " Olympic "; B:char s[7];s={"Olympic"}; C:char s[7]; s="Olympic"; D:char *s;s={"Olympic"};
答案:A
2.
void fun(char *c,int d)
{ *c=*c+1; d=d+1;
printf(“%c,%c,”,*c,d);
}
main()
{ char b=‘a’,a=‘A’;
fun(&b,a); printf(“%c,%c”,b,a);
}
程序运行后的输出结果是
A:b,B,B,A B:a,B,a,B C:a,B,B,a D:b,B,b,A 3.
设有定义double a[10],*s=a;以下能够代表数组元索a[3]的是
A:*s+3 B:*s[3] C:*(s+3) D:(*s)[3] 4.
#include<stdio.h>
#define N 8
void fun(int *x,int i)
{
*x=*x+i;
}
main()
{int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<N/2;i++)
{ printf(“%d”,a[i]);}
printf(“”);
}
程序运行后的输山结果是
A:1313 B:3234 C:1234 D:2234 5.
#include <stdio.h>
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d",m,n,*p,*q);
}
程序运行后的输出结果是
A:1,2,2,1 B:2,1,1,2 C:2,1,2,1 D:1,2,1,2 6.
#include <stdio.h>
#include <string.h>
main()
{char str[][20]={"One*World","One*Dream!"};
char *p=str[1];
printf(“%d,”,strlen(p));
printf("%s",p); }
程序运行后的输出结果是
A:10,One*Dream! B:9,One*World C:9,One*Dream! D:10,One*Wor 7.
下列函数的功能是
fun(char *a,char *b)
{ while((*b=*a)!=''){a++;b++;}
}
A:使指针b指向a所指字符串 B:将a所指字符串赋给b所指空间 C:将a所指字符串和b所指字符串进行比较 D:检查a和b所指字符串中是否有'' 8.
#include<stdio.h>
main()
{char *s=“ABC”;
do
{printf(“%d”,*s%10);s++;}
while(*s);
}
字母A的ASCII码值为65.程序的输出结果是
A:ABC B:656667 C:567 D:5670 9.
#include<stdio.h>
void fun(char *s)
{ while(*s)
{ if(*s%2==0) printf("%c",*s);s++; }
}
main()
{ char a[]={"abcd"};
fun(a);printf("");}
字母a的ASCⅡ码值为97,程序的输出结果是
A:ab B:bd C:abcd D:cd 10.
#include <stdio.h>
void f(int *p,int *q);
main()
{ int m=1,n=2,*r=&m;
f(r,&n); printf(“%d,%d”,m,n);
}
void f(int *p,int *q)
{p=p+1;*q=*q+1;}
程序运行后输出的结果是
A:2,3 B:1,4 C:1,2 D:1,3 11.
#include <stdio.h>
main()
{ char *a[ ]={"abcd","ef","gh","ijk"};
int i;
for(i=0;i<4;i++)
printf("%c",*a[i]); }
程序运行后输出的结果是
A:abcdefghijk B:dfhk C:aegi D:abcd 12.
#include <stdio.h>
int b=2;
int fun(int *k)
{
b=*k+b;return(b);
}
main()
{ int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++) {b=fun(a)+b;printf("%3d",b);}
}
程序运行后输出的结果是
A:10 16 B:8 10 C:10 12 D:6 14 13.
以下程序的输出结果是________
#include<stdio.h>
void swap(int *a,int *b)
{ int *t;
{ t=a; a=b; b=t; }
}
main()
{ int i=3,j=5,*p=&i,*q=&j;
swap(p,q); printf(“%d %d ”,*p,*q);
}
A:3 5 B:5 3 C:3 5 53 14.
以下程序的输出结果是__________
#include<stdio.h>
main()
{ int a[5]={2,4,6,8,10}, *p;
p=a; p++;
printf(“%d”,*p);
}
A:5 B:6 C:4 D:2 15.
有以下程序
void f( int y,int *x)
{y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf(“%d %d ”,x,y);
} 执行后输出的结果是
A:4 2 B:2 4 C:8 4 D:4 8 16.
以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{
while(*s++=______);
}
main( )
{ char str1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s ”,str1);
}
A:*t B:*s C:*t++ D:*s++