while(i n=n+strlen(argv[i]); i++; } printf(\} 若该程序生成的可招待文件名为2-4.exe,运行时输入命令行: 2-4 123 45 67 则程序的运行结果是( 29 )。 29 (A) 3 (B) 5 (C) 7 5. 读程序,回答问题。 # include static int a=3; int t=0; if(n%2) { static int a=4; t+=a++; } else { static int a=5; t+=a++; } return t+a++; } void main() { int s=a,i; for(i=0;i<3;i++) s+=f(i); printf(\} 程序运行结果是( 30 )。 30 (A)26 (B) 28 (C) 29 6. 读程序,回答问题。 # include { struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}}; int total; total=st[0].a+st[1].b; (D) 11 (D) 25 四川省计算机二级考试第二十七次C与C++语言笔试试卷 共11页 第5页 printf(\} 程序的运行结果是( 31 )。 31 (A) total=5 (B) total=6 (C) total=7 (D) total=8 7. 读程序,回答问题。 # include for(k=1;k<=len;k++) putchar(c); } void main() { int i=4,j; pic(27,' '); j=i; pic(i+2*j-2,'*'); putchar('\\n'); for(j-=2;j>=0;j--) { pic(30-j,' '); pic(i+2*j,'*'); putchar('\\n'); } } 程序的运行结果是( 32 )。 32 (A) (B) (C) (D) * ********** **** ********** *** ********** ****** ******** ***** ********** ******** ****** ******* ********** ********** **** 8. 以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符集资转储到链表的各个结点中,请选择填空。 # include struct node *next; } ( 33 ) CreatList(char *s) { struct node *h,*p,*q; h=(struct node *)malloc(sizeof(struct node)); p=q=h; while(*s!=NULL) { p=(struct node *)malloc(sizeof(struct node)); 四川省计算机二级考试第二十四次C与C++语言笔试试卷 共11页 第6页 p->data=( 34 ); q->next=p; q=( 35 ); s++; } p->next=NULL; return h; } void main() { char str[]=\ struct node *head; head=CreatList(str); ………… } 33 (A) char * (B) char (C)struct node 34 (A) *s (B) s (C) *s++ 35 (A) p->next (B) p (C) s 9. 读程序并回答问题。 # include char k; k=*s; *s=*t; *t=k; s++;t--; if(*s) fun(s,t); } void main() { char str[10]=\ p=str+strlen(str)/2+1; fun(p,p-2); printf(\} 程序中的fun函数被调用的次数是( 36 )。 36 (A) 2 (B)3 (C) 4 程序的运行结果为( 37 )。 37 (A) abcdefg (B)defgabc (C) acegbdf 10. 读程序并回答问题。 # include (D) struct node * (D) *(s)++ (D) s->next (D) 5 (D) gfedcba 四川省计算机二级考试第二十七次C与C++语言笔试试卷 共11页 第7页 int m[12],k; int *p[3],sum=0; for(k=0;k<12;k++) { m[k]=2*k; if(k<3) p[k]=m+2*k*k; } for(k=0;k<3;k++) sum+=(*(p+k))[4-k]; printf(\} ① 程序的运行结果是( 38 )。 38 (A) 18 (B) 28 ② int *p[3]定义的是( 39 )。 39 (A) 指针数组 (C) 指向一维数组的指针 11. 以下程序的输出结果是( 40 )。 # include # define FUN(x,y) x int x=5,y=10,z; z=10*FUN(x+y,x*y); printf(\} 40 (A) 100 (B) 150 (C) 38 (D) 8 (B) 指向函数的指针 (D) 指向指针的指针 (C) 15 (D) 60 注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上 ② 每一个空只填一个语句或一个语句所缺的部分内容 三、程序填空 ( 每空2分,共30分 ) 1. 下面函数的功能是将一个字符串逆序存放,请填空。 # include ① ; int i,j; for(i=0,j=strlen(str); ② ;i++,j--) { m=str[i]; str[i]= ③ ; str[j-1]=m; 四川省计算机二级考试第二十四次C与C++语言笔试试卷 共11页 第8页