C)a>10&&a<15D)!
(a<=10)&&!
(a>=15)
21、下列为合法的用户标识符为
A)_98B)P#dC)a*D)void
22、设inta=12,则执行完语句a+=a-=a*a后,a的值是
A)522B)264C)144D)-264
23、有以下程序
voidf(intv,int w)
{ intt;
t=v;v=w;w=t;
}
main()
{ intx=1,y=3,z=2;
if(x>y) f(x,y);
elseif(y>z)f(y,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是
A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1
24、下面有关for循环的正确描述是
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
25、不能正确表示ab除以cd的C语言表达式是
A)a*b/c*dB)a/(c*d)*bC)a*b/c/dD)a*b/(c*d)
二、填空题(每小题3分,共30分)
请将每一个空的正确答案写在答题纸1至10序号的右边,答在试卷上不得分。
1、以下定义了一个共用体变量stu,若在内存中:
一个字符占1个字节,一个整数占2个字节,一个实数占4个字节。
则变量stu在内存中所占的字节数是【1】
union
{
charc;
inti;
floatf;
}stu;
2、定义int(*p)();的含义是【2】
3、有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf(“%d\n”,t);
}
执行后输出结果是【3】。
4、有以下程序
main()
{intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf(“%d\n”,x);
}
执行后输出结果是【4】。
5、函数fun的功能是计算
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:
m=
+
。
实现这一计算的函数调用语句为【5】。
6、以下sum函数的功能是计算下列级数之和。
S=1+x+2x/2!
+3x/3!
+........+nx/n!
请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
a=1.0;b=1.0;
【6】
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
7、3|5的结果是【7】
8、有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是【8】
9、标识枚举类型的关键字是【9】
10、下面程序的功能是:
输出100以内能被3整除且个位数为5的所有整数,请填空。
#include
voidmain(void)
{
inti,j;
for(i=0;i<10;i++)
{
j=i*10+5;
if(【10】)continue;
printf("%5d",j);
}
}
三、程序设计题(每题10分共20分)
1、从键盘输入x的值,计算并打印下列分段函数的值。
0(x<60)
1(60<=x<70)
y=2(70<=x<80)
3(80<=x<90)
4(x>=90)
2、编程求n!
并将其结果进行输出(要求n从键盘输入)
学号姓名得分
试卷名称:
《C语言程序设计》考试试卷
(A卷共10页)
学号姓名分数
一、选择题(每小题2分,共50分)
下列各题A、B、C、D四个选项中,只有一个选项是正确的。
请将正确选项填在答题纸相应位置上,答在试卷上不得分。
1、请读程序片段:
inti=65536;printf("%d\n",i);
上面程序片段的输出结果是
A)65536B)0C)有语法错误,无输出结果D)-1
2、设inta=12,则执行完语句a+=a-=a*a后,a的值是
A)522B)264C)144D)-264
3、下面程序段的运行结果是
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)2,1,0B)1,2,0C)1,2,1D)2,1,1
4、有以下程序
main()
{intk=4,n;
for(n=0;n{
if(n%3!
=0)continue;
k--;}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是
A)1,1B)2,2C)3,3D)4,4
5、以下数组定义中不正确的是
A)inta[2][3];B)intb[][3]={1,2,3};
C)intc[100][100]={0};
D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
6、标识枚举类型的关键字是
A)structB)unionC)enumD)typedef
7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是
A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;
8、以下程序执行后sum的值是
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15B)14C)不确定D)0
9、以下不能定义为用户标识符的是
A)scanfB)VoidC)_3com_D)int
10、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
11、有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
A)fun(inty,doublem);B)k=fun(10,12.5);
C)fun(x,n);D)voidfun(n,x);
12、以下程序的输出结果是
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);}
A)31B)0C)29D)无定值
13、已定义c为字符型变量,则下列语句中正确的是
A)c='97';B)c="97";C)c=97;D)c="a";
14、以下叙述中正确的是
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
15、以下选项中可作为C语言合法整数的是
A)10110BB)0386C)0XffaD)x2a2
16、有以下程序
#defineF(X,Y)(X)*(Y)
main()
{inta=3,b=4;
printf("%d\n",F(a++,b++));
}
程序运行后的输出结果是
A)12B)15C)16D)20
17、有以下程序
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是
A)3B)6C)8D)12
18、以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在该函数内有效
19、有以下程序main()
{ints=0,a=1,n;
scanf("%d",&n);
do{s+=1;a=a-2;}while(a!
=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A)-1B)-3C)-5D)0
20、以下符合C语言语法的实型常量是
A)1.2E0.5B)3.14.159EC).5E-3D)E15
21、有以下程序
main()
{intx=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是
A)10,01B002,12C)102,10D)02,10
22、定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++)printf("%d",x[i][2-1]);
A)159B)147C)258D)369
23、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是
A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z
24、若有定义intp=30;则表达式p/3>0?
p/10:
p%3的结果是
A)3B)0C)3.0D)0.0
25、若定义intk=7,x=12;则能使值为3的表达式是
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5D)(x%=k)-(k%=5)
二、填空题(每小题3分,共30分)
请将每一个空的正确答案写在答题纸1至10序号的右边,答在试卷上不得分。
1、以下定义了一个结构体变量stu,若在内存中:
一个字符占1个字节,一个整数占2个字节,一个实数占4个字节。
则变量stu在内存中所占的字节数是【1】
structstudent
{
charname[20];
charsex;
intage;
floatscore;
}stu;
2、定义int*p();的含义是【2】
3、以下程序运行后的输出结果是【3】
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:
m++;n++;break;
case10:
n++;break;
default:
k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
4、执行以下程序后,输出'#'号的个数是【4】
#include
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
5、以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=【5】;
}
returnm;
}
main()
{printf("m=%d\n",fun(10));}
6、以下程序运行后的输出结果是【6】
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
7、3&5的结果是【7】
8、运行以下程序,当从键盘输入135后,程序输出结果是【8】
#include
voidmain(void)
{
intnum,c;
printf("请输入一个整数:
");
scanf("%d",&num);
while((num/=10)>0)
{c=num%10;
printf("%d",c);
}
printf("\n");
}
9、该程序的功能是:
输出100以内能被4整除且个位数为6的所有整数,请填空。
#include
voidmain(void)
{
inti,j;
for(i=0;i<100;i++){
j=i*10+6;
if(【9】)continue;
printf("%d",j);}
}
10、有如下函数调用语句fun(f1,f2+f3,(f4,f5));该函数调用语句中,含有的实参个数是【10】
三、程序设计题(每题10分共20分)
1、编写程序输出所有的“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3
2、写一程序,从键盘上输入1年份year(4位十进制数),判断其是否闰年。
闰年的条件是:
能被4整除、但不能被100整除,或者既能被100整除,又能被400整除。
auto:
声明自动变量break:
跳出当前case:
开关语句分char:
声明字符型变量或函数const:
声明只读变量continue:
结束当前循环,开始下一轮循环default:
开关语句中的“其它”分支do:
循环语句的循环体double:
声明双精度变量或函数else:
条件语句否定分支(与if连用)enum:
声明枚举类型extern:
声明变量是在其它文件中声明float:
声明浮点型变量或函数 for:
一种循环语句goto:
无条件跳转语句if:
条件语句int:
声明整型变量或函数long:
声明长整型变量或函数 register:
声明寄存器变量 return:
子程序返回语句(可以带参数,也可不带参数)循环条件short:
声明短整型变量或函数 signed:
声明有符号类型变量或函数sizeof:
计算数据类型长度 static:
声明静态变量 struct:
声明结构体变量或函数switch:
用于开关语句typedef:
用以给数据类型取别名unsigned:
声明无符号类型变量或函数union:
声明共用数据类型void:
声明函数无返回值或无参数,声明无类型指针volatile:
说明变量在程序执行中可被隐含地改变while:
循环语句的循环条件