0910二级C语言笔试不懂的Word文档格式.docx
《0910二级C语言笔试不懂的Word文档格式.docx》由会员分享,可在线阅读,更多相关《0910二级C语言笔试不懂的Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
=0;
i--)fun{&
a};
for(i=0;
i<
10;
i++)printf(“&
d”,a);
(14)下列程序的运行结果为【14】1001,ChangRong,1098.0
string.h>
structA
{inta;
charb[10];
double
c;
};
void
f(struct
A
*t);
{structAa=(1001,”ZhangDa”,1098,0);
f(&
a);
printf(“&
d,&
s,&
6,if\n”,a.a,a.b,a.c);
voidf(struct
*t)
{strcpy(t->
b,”ChangRong”);
(15)以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空
structnode
{intdata;
structnode*next;
typedefstructnodeNODETYPE;
{NODETYPEa,b,c,*h,*p;
a.
data=10;
b.data=20;
c.data=30;
h=&
a;
b.
next=&
b;
b.next=&
c.next=’\0’;
p=h;
while(p){printf(“&
d”,p->
data);
【15】p=p—>
next;
C(24)有以下程序
#include
void fun(int p)
{ int d=2;
p=d++;
printf("
%d"
p);
}
main()
{ int a=1;
fun(a);
%d\n"
a);
程序运行后的输出结果是
A)32
B)12
C)21
D)22
D(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,
但程序中有错导致不能实现预定功能
#define MIN -
int findmax(int x[],int n)
{ int i,max;
for(i=0;
i { max=MIN;
if(max }
return max;
造成错误的原因是
A)定义语句int i,max中max未赋值
B)赋值语句max=MIN;
中,不应该给max赋MIN值
C)语句if(maxD)赋值语句max=MIN;
放错了位置
A(27)若有定义语句:
int a[4][10],*p,*q[4];
且0<
=i<
4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&
a[2][1]
A(33)设有以下函数:
void fun(int n,char *s){……}
则下面对函数指针的定义和赋值均正确的是
A)void (*pf)();
pf=fun;
B)void *pf();
pf=fun;
C)void *pf();
*pf=fun;
D)void (*pf)(int,char);
pf=&
fun;
C(34)有以下程序
int f(int n);
{ int a=3,s;
s=f(a);
s=s+f(a);
printf("
s);
int f(int n)
{ static int a=1;
n+=a++;
return n;
A)7
B)8
C)9
D)10
B(36)下面结构体的定义语句中,错误的是
A)struct ord {int x;
int y;
int z;
struct ord a;
B)struct ord {int x;
} struct ord a;
C)struct ord {int x;
} n;
D)struct {int x;
} a;
D(38)有以下程序
struct A
{ int a;
char b[10];
double c;
struct A f(struct A t);
{ struct A a={1001,"
ZhangDa"
1098.0};
a=f(a);
printf("
%d,%s,%6.1f\n"
a.a,a.b,a.c);
struct A f(struct A t)
{ t.a=1002;
strcpy(t.b,"
ChangRong"
);
t.c=1202.0;
return t;
A)1001,ZhangDa,1098.0
B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0
D)1002,ChangRong,1202.0
(8)以下程序运行后的输出结果是【8】
{ int x=20;
%d "
0 printf("
0}
输入答案,中间不含空格:
(9)以下程序运行后的输出结果是【9】
{ int a=1,b=7;
do{
b=b/2;
a+=b;
} while (b>
1);
(10)有一下程序
{ int f,f1,f2,i;
f1=0;
f2=1;
%d %d "
f1,f2);
for(i=3;
=5;
i++)
{ f=f1+f2;
f);
f1=f2;
f2=f;
}
\n"
程序运行后的输出结果是【10】
(11)有以下程序
int a=5;
void fun(int b)
{ int a=10;
a+=b;
{ int c=20;
fun(c);
a+=c;
程序运行后的输出结果是【11】
(12)设有定义
struct person
{ int ID;
char name[12];
} p;
请将scanf("
【12】);
语句补充完整,使其能够为结构体变量p的
成员ID正确读入数据。
(14)有以下程序
typedef struct
{ int num;
double s;
} REC;
void fun1(REC x){ x.num=23;
x.s=88.5;
}
{ REC a={16,90.0};
fun1(a);
printf("
a.num);
(15)有以下程序
fun(int x)
{ if(x/2>
0) fun(x/2);
6,3,
x);
{ fun(6);
程序运行后的输出结果是【15】
(36)有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x+=1;
returnx;
}
main()
{inti;
s=1;
for(i=1;
=5;
i++)s+=fun();
printf(”%d\n”,s);
程序运行后的输出结果是
A)11
B)21
C)6
D)120(37)有以下程序
#inctude<stdio.h>
#include<stdlib.h>
Main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;
*b=2,*c=3;
a=b;
printf(“%d,%d,%d\n”,*a,*b,*c);
A)3,3,3B)2,2,3C)1,2,3D)1,1,3
(38)有以下程序
#include<stdio.h>
{ints,t,A=10;
doubleB=6;
s=sizeof(A);
t=sizeof(B);
printf(“%d,%d\n”,s,t);
在VC6平台上编译运行,程序运行后的输出结果是
A)2,4B)4,4C)4,8D)10,6
(39)若有以下语句
TypedefstructS
{intg;
charh;
}T;
以下叙述中正确的是
A)可用S定义结构体变量
B)可用T定义结构体变量
C)S是struct类型的变量
D)T是structS类型的变量
(40)有以下程序
{shortc=124;
c=c_______;
printf(“%d\n”、C);
若要使程序的运行结果为248,应在下划线处填入的是
A)>
>
2B)|248C)&0248D)<
<
I二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
(1)一个栈的初始状态为空。
首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】
(2)在长度为n的线性表中,寻找最大项至少需要比较【2】次。
(3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有【3】个结点(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。
(5)数据库设计的四个阶段是:
需求分析,概念设计,逻辑设计【5】。
(6)以下程序运行后的输出结果是【6】。
{inta=200,b=010;
printf(”%d%d\n”,a,b);
(7)有以下程序
{intx,Y;
scanf(”%2d%ld”,&x,&y);
printf(”%d\n”,x+y);
程序运行时输入:
程序的运行结果是【7】。
(8)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为【8】时表示逻辑值“真”。
有以下程序
{inti,n[]={0,0,0,0,0};
for(i=1;
=4;
i++)
{n[i]=n[i-1]*3+1;
printf(”%d"
n[i]);
}
}
程序运行后的输出结果是【9】。
(10)以下fun函数的功能是:
找出具有N个元素的一维数组中的最小值,并作为函数值返回。
请填空。
(设N已定义)
intfun(intx[N])
{inti,k=0;
for(i=0;
N;
if(x[i]<
x[k])k=【10】;
returnx[k];
(11)有以下程序
#include<stdio.h>
int*f(int*p,int*q);
{intm=1,n=2,*r=&
m;
r=f(r,&n);
printf(”%d\n”,*r);
int*f(int*p,int*q)
{return(*p>
*q)?
p:
q;
程序运行后的输出结果是【11】
(12)以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。
(设M,.N已定义)
intfun(inta[N][M))
{inti,j,row=0,col=0;
for(j=0;
j<
M;
j++)
if(a[i][j]>a[row][col]){row=i;
col=j;
return(【12】):
}(13)有以下程序
{intn[2],i,j;
2;
i++)n[i]=0;
i<2;
j++)n[j]=n「i」+1;
printf(”%d\n”,n[1]);
程序运行后的输出结果是【13】
(14)以下程序的功能是:
借助指针变量找出数组元素中最大值所在的位置并输出该最大值。
请在输出语句中填写代表最大值的输出项。
{inta〔10],*p,*s;
for(p=a;
p-a<
10;
p++)scanf(”%d”,p);
for(p=a,s=a;
p++)if(*p>
*s)S=P;
max=%d\n”,【14】);
(15)以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。
#include<stdio.h>
{【15】*fp;
chara[5]={’1’,’2’,’3’,’4’,’5’},i;
fp=fopen(”f.txt”,”w”);
5;
i++)fputc(a[i],fp);
fclose(fp);