国二c语言笔试题库(专升本会出40分的题) 下载本文

while( *s1 )

{for(t0=s1,t1=str1;(*t1!=?\\0?&& *t0=*t1 );t0++,t1++); if(*t1!=?\\0?) *s2++ = *s1++ ; else

{for(t1=str2;*t1!=?\\0?;) *s2++ = *t1++ ; s1=t0 ; } }

*s2=?\\0?; }

main()

{static char s1[]=“abcef ababcd abab.”, s2[25]; replace (s1, s2, “abc”, “XYZ”); printf(“%s\\n”, s2); }

31.以下语句的输出结果是 hELLO! 。 char s[80],*sp=“HELLO!”; sp=strcpy (s, sp); s[0]=?h?; puts(s);

第十一章 结构体与共用体 一 单项选择题

1.以下程序的输出结果是( )。 struct student {char name[20]; char sex; int age;

}stu[3]={“Li Lin”, ?M?, 18, “Zhang Fun”, ?M?, 19, “Wang Min”, ?F?, 20}; main()

{struct student *p; p=stu;

printf(“%s, %c, %d\\n”, p->name, p->sex, p->age); }

A) Wang Min,F,20 B) Zhang Fun,M,19 C) Li Lin,F,19 D) Li Lin,M,18 2.设有以下语句:

struct st{int n; struct st *next;};

static struct st a[3]={5, &a[1], 7, &a[2], 9, ?\\0?},*p; p=&a[0];

则表达式( )的值是6。

A) p++ ->n B) p->n++ C) (*p).n++ 3.以下四个程序中,( )不能对两个整型变量的值进行交换。A) #include main()

{int a=10,b=20; swap(&a,&b);

printf(“%d %d\\n”,a,b); }

swap(int *p,int *q) {int *t;

t=(int *)malloc(sizeof(int)); *t=*p; *p=*q; *q=*t; }

B) main()

{int a=10,b=20; swap(&a,&b);

printf(“%d %d\\n”,a,b); }

swap(int *p,int *q) {int t;

t=*p; *p=*q; *q=t; }

C) main()

{int *a,*b;

D) ++p->n *a=10; *b=20; swap(a,b);

printf(“%d %d\\n”,*a,*b); }

swap(int *p,int *q) {int t;

t=*p; *p=*q; *q=t; }

D) main()

{int a=10,b=20; int *x=&a,*y=&b; swap(x,y);

printf(“%d %d\\n”,a,b); }

swap(int *p,int *q) {int t;

t=*p; *p=*q; *q=t; }

4.下面程序的输出结果是( )。 struct st {int x; int *y; }*p;

int dt[4]={10, 20, 30, 40};

struct st aa[4]={50, &dt[0], 60, &dt[1], 70, &dt[2], 80, &dt[3]}; main() {p=aa;

printf(“%d ”, ++p->x); printf(“%d ”, (++p)->x); printf(“%d\\n”, ++(*p->y)); }

A) 10 20 20 B) 50 60 21 C) 51 60 21 D) 60 70 31 5.若要用下面的程序片段使指针变量p指向一个存储整型数据的动态存储单元,则应填入( )。 int *p;

p= malloc(sizeof(int));

A) int B) int * C) (* int) D) (int *)

6.若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是( )。 data next

head E F NULL p G

A) s->next=NULL; p=p->next; p->next=s; B) p=p->next; s->next=p->next; p->next=s; C) p=p->next; s->next=p; p->next=s;

D) p=(*p).next; (*s).next=(*p).next; (*p).next=s; 7.以下程序的输出结果是( )。 #include

void fun(float *p1,float *p2, float *s) {s=(float *)calloc(1, sizeof(float)); *s=*p1+*(p2++); }

main()

{float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a; fun (a, b, s);

printf(“%f\\n”, *s); }

A) 11.100000 B) 12.100000 C) 21.100000 D) 1.100000

8.字符‘0’的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是( )。 #include main() {union {int i[2]; long k; char c[4]; }r, *s=&r; s->i[0]=0x39; s->i[1]=0x38;

printf(“%c\\n”, s->c[0]); }

A) 39 B) 9 C) 38 D) 8

9.若有说明:long *p, a; 则不能通过scanf语句正确给输入项读入数据的程序段是( )。

A) *p=&a; scanf(“%ld”,p);

B) p=(long *)malloc(8); scanf(“%ld”,p); C) scanf(“%ld”,p=&a); D) scanf(“%ld”,&a);

10.以下选项中,能定义s为合法的结构体变量的是( )。