执行后输出结果是 。
A)7 7 B)8 8 C)8 10 D)10 10 (15) 有以下定义 #include
不能给数组a输入字符串的语句是 。
A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b); (16) 下列选项中正确的语句组是
A)char s[8]; s={\ B)char *s; s={\ C)char s[8]; s=\ D)char *s; s=\(17) 设有以下语句 typedef struct S
{ int g; char h;} T;
则下面叙述中正确的是 。
A) 可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量 (18) 有以下程序 main( )
{ unsigned char a,b; a=4|3; b=4&3;
printf(\; 执行后输出结果是 。
A) 7 0 B}0 7 C)1 1 D)43 0
(19) 若有定义:int *p[3];,则以下叙述中正确的是 。 A)定义了一个基类型为int的指针变量p,该变量具有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 (20) 下列关于C语言数据文件的叙述中正确的是 。 A)文件由ASCII码字符序列组成,C 语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
第二部分:简单程序(12题,共30分)
(21) 以下程序的输出结果是 。 main()
{ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a); printf(\ )
A}0,0 B)0,1 C)1,0 D)1,1 //(n=b>a)为1,不再求解(m=a) (22) 以下程序的输出结果是 。 main( )
10
{ int i,n=0;
for(i=2;i<5;i++) { do
{ if(i%3) continue; n++; } while(!i); n++; }
printf(\}
A)n=5 B)n=2 C)n=3 D) n=4 (23) 以下程序的输出结果是 。 char fun(char x , char y) { if(x main( ) { int a='9',b='8',c='7'; printf(\ } A)函数调用出错 B)8 C)9 D)7 (24) 以下程序的输出的结果是 。 void fun(char *a, char *b) { a=b; (*a)++; } main() { char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(\ } A)Ab B)aa C)Aa D)Bb (25) 以下程序的输出结果是 。 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t; } main( ) { int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]); printf(\%d %d %d\\n\} A)5 3 5 3 B) 5 3 3 5 C)3 5 3 5 D)3 5 5 3 11 (26) 以下程序的输出结果是 。 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(\ } 执行后输出结果是() A)28 B)22 C)16 D)4 (27) 以下程序的输出结果是 。 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf(\} A)10 B)9 C)7 D)8 (28) 以下程序的输出结果是 。 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf(\} 执行后的输出结果是() A)4 B)3 C)2 D)1 (29) 以下程序的输出结果是 。 void sort(int a[],int n) { int i,j,t; for(i=0;i if(a[i] main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(\ printf(\} 12 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2, (30) 以下程序的输出结果是 。 struct STU { char name[10]; int num; int Score; }; main( ) { struct STU s[5]={{\ {\ {\ int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf(\%d\\n\} A)550 550 B)680 680 C)580 550 D)580 680 (31) 有以下程序 #include main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是 。 A)14 B)12 C)8 D)6 (32) 下列程序执行后的输出结果是 。 #include struct NODE *next; }; main( ) { struct NODE *p,*q,*r; int sum=0; p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=1;q->num=2;r->num=3; 13 p->next=q;q->next=r;r->next=NULL; sum+=q->next->num;sum+=p->num; printf(\} A)3 B)4 C)5 D)6 第二卷 说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏填对得3分,两大题10个空栏,全填对得30分。 试题一 以下程序的功能是用递归的方法求Fibonacci数列:1,1,2,3,5,8…………的第N项的数。Fibonacci数列的定义如下: F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n>=3) #define N 40 long int fibo(int n) { long f1,f2,f; if( ① ) return 1; else { ② ; ③ ; ④ ; } return f; } main(0 { printf(\ ⑤ ); } 试题二 以下程序的功能是将包含n个字符的字符串的从第m个字符开始的全部字符复制到另一个字符串中。其中,函数copystr实现字符串的复制。 copystr(char *p1,char *p2,int m) { int n; n=0; while(n 14