第八章单元测试
以下程序有错,错误原因是 _。
int main()
{int *p,i;
char *q,ch;
p=&i; q=&ch; *p=40; *p=*q;
┆
}
已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是 。
void print_value(int *x)
{printf(“%d\n”,++*x); }
下面程序的运行结果是 。
#include <stdio.h>
int main()
{ static char a[]=”Language”,b[]=”programe”;
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));
}
下面程序的运行结果是 。
#include <stdio.h>
#include <string.h>
main()
{char *p1,*p2,str[50]=”abc”;
p1=”abc”;p2=”abc”;
strcpy(str+1,strcat(p1,p2));
printf(“%s\n”,str);
}
若有说明:char *language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};
则表达式*language[1]>*language[3]比较的是 。
若有说明语句
char a[]=”It is mine”; char *p=”It is mine”;
则以下不正确的叙述是_ 。
以下程序调用fun函数求数组中最大值所在元素的下标。
#include <stdio.h>
void fun(int *s,int n, int *k)
{ int i;
for(i=0,*k=i;i<n;i++)
if(s[i]>s[*k]) _
}
int main()
{ int a[5]={1,8,3,6,9},k;
fun(a,5,&k);
printf(“%d,%d\n”,k,a[k]);
return 0;
}
有以下程序:
#include <stdio.h>
void fun(int *p, int *q)
{ int *t;
t=p; p=q; q=t;
}
int main()
{ int a=0,b=9;
fun(&a,&b);
printf(“%d,%d\n”,a,b);
return 0;
}
程序的输出结果是 。
以下正确的定义语句和赋值语句是_ 。
A:p和q的类型不一致,不能执行*p=*q;语句 B:q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;
语句
答案:p和q的类型不一致,不能执行*p=*q;语句
A:26 B:25 C:24 D:23
A:gae B:有语法错 C:ga D:Language
A:abcabcabc B:cabcabc C:aabcabc D:bcabcabc
A:字符B和字符J B:字符F和字符P C:字符串BASIC和字符串JAVA D:字符串FORTRAN和字符串PASCAL
A:p变量中存放的地址值可以改变 B:a+1表示的是字符t的地址 C:a中只能存放10个字符 D:p指向另外的字符串时,字符串的长度不受限制
A:k=i-s; B:*k=i; C:*k=i-s; D:k=i;
A:9,0 B:0,9 C:9,9 D:0,0
A: double b[3][5],s[5][3],*q; q=b; s=q; B: int b[10],*q; char *s; q=b; s=b; C:int b[3][5],(*p)[3],(*q)[5]; p=b; q=b; D:char b[3][5],*p[3]; p[0]=b[0]; p[2]=*b+4;
A:*p1=*p2; B:*p1=p2; C:p1=p2; D:p1=*p2;