>>点击进入2013年9月全国计算机二级C语言程序设计预测卷4 在线考场
一、选择题(每小题1分,共40分)
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("\n");
}
程序运行后的输出结果是( )。
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]!=’\0’)
{ k++;
if(k%2=o){a=a+(s[k]-’0’+1);continue; }
a=a+(s[k]-’0’);
printf("k=%d a=%d\n",k,a);
}
程序运行后的输出结果是( )。
A. k=6 a=11
B. k=3 a=14
C. k=4 a=12
D. k=5 a=15
一、选择题(每小题1分,共40分)……
二、基本操作题(共18分)……
三、程序改错题(共24分)……
四、程序设计题(共18分)……
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |