二级C语言笔试
二级C语言笔试
(50)有以下结构体说明和变量定义三个连续结点。
,如图所示,指针p、q、r分别指向一个链表中的
struct node
{ int data;
struct node *next;
} *p, *q, *r;
_______________________________
| data next data next
data next |
| →□□ → □□ →
□□→ |
| ↑p ↑q
↑r |
|___________________
___________|
现要将q和r所指结点的先后位置交换
,同时要保持链表的连续,以下错误的程序段是
A)r->next=q; q->nex
t=r->next; p->next=r;
B)q->next=r->next;
p->next=r; r->next=q;
C)p->next=r; q->nex
t=r->next; r->next=q;
(资料来源:东方教育网 http://ww
w.eastedu.com.cn)
D)q->next=r->next;
r->next=q; p->next=r;
二、填空题(每空2分
,共40分)
(1)计算机软件分为
系统软件与应用软件,UNIX属于
〖1〗 。
(2)假设在当前盘的
接到文件A.TXT的后面。若
当前目录下有两个文件A.TXT和B
使用TYPE命令,则完整的命令为
.TXT,现要将文件B.TXT合并连
〖2〗 。
(3)Internet的信息
服务方式分为基本服务和扩展服
务,电子邮件属于 〖3〗 。
(4)在Windows环境下,利用菜单命
要删除的文件与文件夹移动到 〖4〗 文
令删除固定硬盘上的文件与文件夹,实际上是将需
件夹中。
(5)在Windows环境下,为了进行"
击其中的相应图标。
添加/删除程序"操作,首先打开 〖5〗 ,然后双
(6)以下程序运行后
的输出结果是 〖6〗 。
main()
{ int p=30;
printf("%d ",(p/3>0 ? p/10 : p%
3));
}
(7)以下程序运行后的输出结果是
〖7〗 。
main()
{ char m;
m= B +32; printf("%c ",m);
}
(8)以
下程序运行后的输出结果是〖8〗 。
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes ");
else printf("no ");
}
(9)以下程序运行后的输出结果是
〖9〗 。
main()
{ int i,m=0,n=0,k=0;
for(i=9; i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++;
}
printf("%d %d %d ",m,n,k);
}
(10)执行以下程序后
,输出 # 号的个数是 〖10〗
。
#include
main()
{ int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++) putchar( # )
;
}
(11)以下程序的功能是调用函数fu
。
n计算:m=1-2+3-4+…+9-10,并输出结果。请填空
int fun( int n)
{ int m=0,f=1,i;
for(i=1; i<=n; i++)
{ m+=i*f;
f= 〖11〗 ;
}
return m;
}
main()
{ printf("m=%d ", 〖12〗 ); }
(12)以下程序运行后的输出结果是
〖13〗
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}
(13)以下程序运行后
的输出结果是 〖14〗
main()
{ int i,j,a[][3]={1,
2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a
[j][i]=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) p
rintf("%d ",a[i][j]);
printf(" ");
}
}
(14)以下程序运行后
的输出结果是 〖15〗
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d ",a);
}
(15)请在以下程序第一行的下划线
处填写适当内容,使程序能正确运行。
〖16〗 ( double,doub
le);
main()
{ double x,y;
scanf("%lf%lf",&x,&y
);
printf("%lf ",max(x
,y));
}
double max(double a,double b)
{ return(a>b ? a:b);
}
(16)以下程序运行后
输入:3,abcde<回车>,则输出
结果是 〖17〗
#include
move(char *str, int n)
{ char temp; int i;
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-
1];
str[0]=temp;
}
main()
{ char s[50]; int n,
i, z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1; i<=n; i++)
move(s, z);
(资料来源:东方教育网 http://ww
w.eastedu.com.cn)
printf("%s ",s);
}
(17)以下程序运行后的输出结果是
〖18〗
fun(int x)
{ if(x/2>0) fun(x/2)
;
printf("%d ",x);
}
main()
{ fun(6); }
(18)已有定义如下:
struct node
{ int data;
struct node *next;
} *p;
以下语句调用malloc函
填空。
数,使指针p指向一个具有struc
t node类型的动态存储空间。请
p = (struct node *)m
alloc( 〖19〗 );
(19)以下程序的功能是将字符串s
。例如,输入字符串:abc123edf456gh,
中的数字字符放入d数组中,最后输出d中的字符串
执行程序后输出:123456。请填空。
#include
#include
main()
{ char s[80], d[80];
int i,j;
gets(s);
for(i=j=0;s[i]!= ;i++)
if( 〖20〗 ) { d[j]=s[i]; j++; }
d[j]= ;
puts(d);
}
2003年9月全国计算机等级考试二级C语言笔试试卷参考答案
一、选择题
(1) C (2) A (3) B (4) A (5) D
(6) C (7) B (8) A (9) C (10)D
(11)A (12)C (13)D (14)B (15)D
(16)C (17)A (18)D (19)C (20)C
(21)B (22)B (23)C (24)C (25)A
(26)D (27)C (28)A (29)D (30)A
(31)C (32)D (33)B (34)B (35)D
(36)C (37)B (38)A (39)D (40)B
(41)B (42)B (43)C (44)C (45)A
(46)D (47)A (48)D (49)B (50)A
二、填空题
(1) 〖1〗 系统软件
(2) 〖2〗 TYPE B.TXT >> A.TXT
(3) 〖3〗 基本服务
(4) 〖4〗 回收站
(5) 〖5〗 控制面板
(6) 〖6〗 3
(7) 〖7〗 b
(8) 〖8〗 yes
(9) 〖9〗 1 3 2
(10) 〖10〗 6
(11) 〖11〗 -f
〖12〗 fun(10)
(12) 〖13〗 1 3 7 15
(13) 〖14〗 1 2 3
0 5 6
0 0 9
(14) 〖15〗 30 25
(15) 〖16〗 double max
(16) 〖17〗 cdeab
(17) 〖18〗 1 3 6
(18) 〖19〗 sizeof(struct node)
(19) 〖20〗 s[i]>= 0 && s[i]<= 9
更多相关的笔试题目,大家敬请关注笔试栏目!