2013年计算机等级考试二级C语言练习20
1 设变量已正确定义,则以下能正确计算f=n!的程序是()。
A. f=0; for(i=1;i<=n;i++)f*=i;
B. f=1;for(i=1;i C. f=1;for(i=n;i>1;i++)f*=i; D. f=1;for(i=n;i>=2;i--)f*=i; 2 有以下程序: #include void fun(int*s) { static int i=0; do{s[J]=s[J]+s[j+I];}while(++j<2); } main() { int k.a[l0]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)pfintf("%d",a[k]); printf("
"); } 程序运行后的输出结果是()。 A. 12345 B. 23445 C. 34756 D. 35745 3 有下列程序: fun(int X,int y){return(x+y);) main() { int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d\n",sum); } 执行后的输出结果是()。 A. 6 B. 7 C. 8 D. 9 4 现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。 struct node {har data; struct node*next;)*P,*q,*r; 现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。 A. q-:>next=r->next;p--:>next=r;rm:>next=q; B. q-:>next=r;q->next=r->next;r->next=q; C. q-:>next=r->next;r->next=q;p->next=r; D. q-:>next=q;p->next=r;q->next=r->next; 5 有以下程序: #include main() { char*s="[2]34";int k=0,a=0; whil(s[k+1]!=’ ’) { k++; if(k%2=o){a=a+(s[k]-’0’+1);continue; } a=a+(s[k]-’0’); printf("k=%d a=%d
",k,a); } 程序运行后的输出结果是()。 A. k=6 a=11 B. k=3 a=14 C. k=4 a=12 D. k=5 a=15