6.若定义inta=6;则执行while(a>=1)a--;后的a的值是 。
7.执行下列程序段后,c的值是 。
for(a=0,b=10;a<=b;a++,b--)c=a+b;8.在函数体之外定义的变量称为 变量。
9.结构化程序设计的三种基本结构是顺序结构、分支结构和 结构。
10.已知a=16,b=25,则表达式a&b的值用10进制数表示为 。
11.若定义字符数组charch[]=”good!
”;则字符数组ch的长度是 。
12.定义:
inta[5]={1,3,5,7};后,数组a的最后一个元素a[4]的值为 。
13.已知:
int*p,a;则语句p=&a;中的运算符“&”的含义是 。
14.已知intx=10,执行x+=x后,x的值为 。
15.有以下程序段:
intk=0;while(k=1)k++;该while循环执行的次数是 。
16.若a为float类型变量,且a=4.6785,则表达式(int)(a*100+0.5)/100的值为 。
17.一个C程序总是从 函数开始执行的,并且只有一个该函数。
18.已知变量student为结构体类型,则它的store分量表示为 。
19.从磁盘上读一数据文件,在C中用 函数打开该文件。
20.设有如下宏定义,则以下程序的运行结果为:
。
#definesqr(z)(z)*(z)main()
{printf(“%d”,sqr(1+2)+3);
二、单选题(共20分,每小题2分)
1.在C语言中,正确的int类型的常数是 。
A)-2U B)059 C)3a D)0xAF2.语句if(i) i++;中的条件表达式i等价于 。
A)i==0 B)i!
=1C)i!
=0D)-i
3.以下正确的函数说明是 。
A)floatadd(intx,y) B)intadd(intx;inty)C)charadd() D)intadd(charx[][])
4.若定义:
inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为:
。
A)无确定值 B)a的地址 C)512 D)511
5.当调用函数时,实参是一个数组名,则向函数传送的是 。
A)数组的长度 B)数组的首地址
C)数组每一个元素的地址D)数组每个元素中的值
第1
页
共5页
6.以下程序的输出是 。
A)10 B)11 C)51 D)60
structst
{intx;int*y;}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};voidmain()
{p=aa;printf(“%d\n”,++(p->x));
}
7.在C语言中,形参的缺省存储类是 。
A)auto B)register C)static D)extern
8.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为 。
A)0 B)1 C)2 D)3
9.定义:
char(*p)();说明了 。
A)p是指向一维数组的指针变量 B)p是指向char型数据的指针变量
C)p是指向函数的指针,该函数返回一个char型数据
D)p是一个函数名,该函数的返回值是指向char型数据的指针
10.数组定义为"inta[3][4];",引用"a[0]+2"表示 。
A)a数组第0行第2列元素的值 B)a数组第0行第2列元素的地址
C)a数组第0行的首地址 D)a数组第2列的首地址
三、判断题:
在每题的()内打√或×。
(每小题1分,共10分)
1.C语言函数不能够嵌套定义,但可以嵌套调用。
( )2.指针的类型是由它所指向的变量的类型来定义的。
( )3.静态存储类型变量在整个程序运行期间存在。
( )4.变量名可以由字母、数字和下划线构成。
( )
5.用文件包含或TC下项目文件的方法都可以运行一个多文件的程序。
( )
6.字符数组中一定是存放字符串的。
( )
7.在主函数中,对其调用的其他函数的说明可以放在函数中的任何位置。
( )
8.数组中各元素的类型可以相同,也可以不同。
( )
9.结构体的各成员必须类型不同。
( )
10.C语言文件是不能随机存取的,只能顺序存取。
( )
四、阅读程序题(每小题3分,共30分。
)
1.下列程序的运行结果是 。
#include
voidmain()
{ charc='A';
if('0'<=c<='9')
printf("Yes");
else
printf("No");
}
2.下列程序运行的输出结果是 。
#include
voidmain()
{ floatx=1;inty;
if(x>=0)
if(x>0)y=1;else y=0;
else y=-1;printf("y=%d\n",y);
}
3.阅读以下函数,写出此函数的功能:
。
floatfun1(floata[],intn)
{ inti=1;
floatresult=a[0];for(;iif(result>a[i])result=a[i];return (result);
}
4.以下程序的运行结果是 。
#include
voidf(inta[])
{ inti=0;
while(a[i]<=10)
{ printf("%3d",a[i]);i++;}
}
voidmain()
{ inta[]={1,2,5,10,9,13,4};
f(a);
}
5.阅读以下程序,写出程序运行的结果 。
#include
main()
{char a[]=“abcde”;char*p;p=a;
printf(“%d\n”,strlen(p));
}
6.以下程序的运行结果是 。
#include
inta=2,b=7;
int fun(intx,inty)
{ intz;
z=y/x;return(z);
}
voidmain()
{ inta=4,b=5,c;c=fun(a,b);printf("%d\n",c);
7.下面程序的运行结果是 。
#includefunc(inta[][3])
{ inti,j,sum=0;for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum=sum+a[i][j];return(sum);
}
voidmain()
{ inta[3][3]={1,2,3,1,2,3,1,2,3},sum;
sum=func(a);printf("sum=%d\n",sum);
}
8.运行以下程序,若输入:
62<回车>时,写出程序的输出结果。
。
#include
voidfun(int*p1,int*p2)
{ intt;
t=*p1; *p1=*p2;*p2=t;
}
voidmain()
{ intx,y;
int*p1,*p2;
scanf("%d %d",&x,&y);p1=&x;p2=&y;
if(x>y)fun(p1,p2);
printf("x=%d,y=%d",x,y);
}
9.以下程序的输出结果是:
。
#includemain()
{ int count=0,x=3325;
while(x)
{ if(x%10==3)
count++;
x/=10; }
第1
共5页
页
printf("%d,%d",count,x);
}
10.下面程序的运行结果是 。
main()
{ inti=10;switch(i+1)
{case10:
i++;break;case11:
++i;
case12:
++i;break;default:
i=i+1;
}
printf(“%d\n”,i);
}
五、编程(共20分)
1.输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
(5分)
.
2.写两个函数,分别求两个整数的最大公约数和最小公倍数。
用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
(5分)
3.从终端上输入5个学生的姓名、性别、和年龄,然后输出。
(采用结构体类型)。
(10分)
xx学院成人教育《C语言程序设计》课程(C)卷参考答案及评分标准
一、填空。
(共20分,每空1分)
1、目标文件 2、1 3、60 4、5 5、(a=b)||(a6、0 7、10 8、外部 9、循环 10、16
11、6 12、0 13、地址运算符 14、20 15、0
16、4 17、main 18、student.store 19、fopen 20、12
二、选择填空(共20分,每小题2分)
1-5:
DCCDB
6-10:
CAACB
三、判断题:
在每题的()内打√或×。
(每小题1分,共10分)
1-5:
√√√√√
6-10:
×××××
四、阅读程序题(每小题3分,共30分。
)
1.NO
2.y=1
3.找出floata[]中的最小值,并作为函数值返回
4. 1 25 109
5.5
6.1
7.sum=6 8.x=2,y=69.2,0 10.12
五、编程:
(共20)
1、main()
{
intscore;chargrade;
printf("pleaseinputthescore:
");
scanf("%d",&score);score=score/10;switch(score)
{
case10:
case9:
grade='A';break;
case8:
grade='B';break;
case7:
grade='C';break;
case6:
grade='D';break;
default:
grade='E';
}printf("Grade=%c\n",grade);
}
2、
inthcf(intu,intv)
{intt,r;
if(v>u){t-\=u;u=v;v=t;}while((r=u%v)!
=0)
{u=v;v=r;}
return(v);
}
intlcd(intu,intv,inth)
{
return(u*v/h);
}
main()
{intu,v,h,l;};
scanf(“%d,%d”,&u,&v);h=hcf(u,v);printf(“H.C.F=%d\n”,h);l=lcd(u,v,h);
printf(L.C.D=%d\n”,l);3、#includestructman
{ charname[20];unsignedage;charsex[7];
};
main()
{structmanperson[5];data_in(person,5);data_out(person,5);
}
data_in(structman*p,intn)
{ structman*q=p+n;for(;p{printf(“age:
sex:
name”);
scanf(“%u%s”,&p->age,p->sex);gets(p->name);
}
}
data_out(structman*p,intn)
{structman*q=p+n;for(;pprintf(“%s;%u;%s\n”,p->name,p->age,p->sex);
}