1.若有如下程序:
sub(p,n)
int (*p)[3],n;
{ int i;
for(i=0;i<=n;i++)
printf("%d",*(*(p+i)+n));}
main()
{ int s[3][3]={1,2,3,4,5,6,7,8,9};
sub(s,2);}
则程序运行后的输出结果是()
A)3 6 9
B)2 4 8
C)4 5 6
D)7 8 9
2.有以下的程序
#include <stdio.h>
void fun(char*fname,char*st)
{FILE*myf;inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{ fun("test.t","new world");fun("test.t","hello,");}
程序执行后,文件test.t中的内容是()
A)hello,
B)new worldhello,
C)new world
D)hello,rld
3.若有以下说明和定义
fun(int *c){…}
main()
{int(*a)()=fun,*b(),w[10],c;
…
}
在必要的赋值之后,对fun函数的正确调用语句是()
A)a=a(w);
B)(*a)(&c);
C)b=*b(w);
D)fun(b);
4.有以下程序
#include<stdio.h>
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
5.有以下程序
void ss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-′a′+′A′;
s++;
}
}
main()
{charstr1[100]="abcddfefdbd",c=′d′;
ss(str1,c);
printf("%s\n",str1);
}
程序运行后的输出结果是()
A)ABCDDEFEGDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
6.有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是()
A)*p+9
B)*(p+8)
C)*p+=9
D)p+8
7.下面函数的功能是()
sss(s,t)
char *s,*t;
{ while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
A)求字符串的长度
B)比较两个字符串的大小
C)将字符串s复制到字符串t中
D)将字符串s接续到字符串t中
8.设有以下定义:
typedef union
{ long i;int k[5];char c;}DATE;
struct date
{ int cat;DATE cow;double dog;} too;
DATE max;
则下列语句的执行结果是()
printf("%d",sizeof(struct date)+sizeof(max));
A)25
B)30
C)18
D)8
9.fwrite函数的一般调用形式是()
A)fwrite(buffer,count,fp,size);
B)fwrite(fp,size,count,buffer);
C)fwrite(fp,count,size,buffer);
D)fwrite(buffer,size,count,fp);
10.以下程序的输出结果是()
struct HAR
{int x,y;struct HAR*p;} h[2];
main()
{h[0].x=1;h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1];h[1].p=h;
printf("%d%d\n"h[0].p)->x,(h[1].p)->y);
}
A)12
B)23
C)14
D)2
答案:1.A 2.A 3.B 4.A 5.B 6.B 7.B 8.B 9.D 10.D