第八章测试1.
下列语句组中,正确的是
A:char s[7];s={"Olympic"}; B:char *s;s= " Olympic "; C:char s[7]; s="Olympic"; D:char *s;s={"Olympic"};
答案:B
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:3234 B:1313 C:2234 D:1234 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:2,1,1,2 B:1,2,2,1 C:1,2,1,2 D:2,1,2,1 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*Wor B:9,One*World C:9,One*Dream! D:10,One*Dream! 7.
下列函数的功能是
fun(char *a,char *b)
{ while((*b=*a)!=''){a++;b++;}
}
A:检查a和b所指字符串中是否有'' B:将a所指字符串和b所指字符串进行比较 C:将a所指字符串赋给b所指空间 D:使指针b指向a所指字符串 8.
#include<stdio.h>
main()
{char *s=“ABC”;
do
{printf(“%d”,*s%10);s++;}
while(*s);
}
字母A的ASCII码值为65.程序的输出结果是
A:656667 B:567 C:5670 D:ABC 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:abcd C:cd D:bd 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:1,3 B:2,3 C:1,4 D:1,2 11.
#include <stdio.h>
main()
{ char *a[ ]={"abcd","ef","gh","ijk"};
int i;
for(i=0;i<4;i++)
printf("%c",*a[i]); }
程序运行后输出的结果是
A:aegi B:dfhk C:abcd D:abcdefghijk 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:6 14 B:8 10 C:10 16 D:10 12 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 53 B:3 5 C:5 3 14.
以下程序的输出结果是__________
#include<stdio.h>
main()
{ int a[5]={2,4,6,8,10}, *p;
p=a; p++;
printf(“%d”,*p);
}
A:5 B:2 C:6 D:4 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:8 4 C:4 8 D:2 4 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