青海大学昆仑学院C语言期末考试试卷带答案.doc
《青海大学昆仑学院C语言期末考试试卷带答案.doc》由会员分享,可在线阅读,更多相关《青海大学昆仑学院C语言期末考试试卷带答案.doc(4页珍藏版)》请在冰点文库上搜索。
青海大学昆仑学院试卷(A)
班级:
学号:
姓名:
考试课程:
程序设计语言(C)考试日期:
2011X年7月日
注:
所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回
一.填空题(每空1分,共15分)
1.一个C程序总是从主函数(或main)开始执行的。
2.表达式2/3+7%4+3.5/7的值是3.5。
3.在函数内部定义只在本函数内有效的变量叫内部变量(或局部变量)。
4.C语言中用1(或非零)表示逻辑值“真”,用0表示逻辑值“假”。
5.将数学式改写成C语言表达式为sqrt(a+b*b)。
6.有程序段:
intf=-1;printf(“%d,%u”,f,f);则输出结果为-1、65535。
7.数组在内存中占连续的存储区,用数组名代表其首地址。
8.有定义staticinta[5]={2,4,6,8,10},*p;p=&a[0];
与p=&a[0]等价的语句是p=a,*(p+1)的值是4,*(a+2)的值是6。
9.有结构体和共用体的变量定义如下:
structaa{inta;charc;floatx;}b1;
unionbb{inta;charc;floatx;}b2;
则变量b1和b2占用的内存空间的字节数分别为7和4。
二.选择题(每小题2分,共计40分)
1.下列变量名合法的是(B)。
A.B.C.TOMB._testC.3a6bD.ab$
2.C语言中运算对象必须是整型的运算符是(B)。
A./B.%C.!
D.*
3.以下程序的输出结果是(D)。
A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=%d,b=%d
main()
{inta=4,b=9;printf(“a=%%d,b=%%d\n”,a,b);}
4.下列程序的输出结果是(C)。
A.18B.9C.-18D.-9
main(){inta=9;a+=a-=a+a;printf(“%d\n”,a);}
5.为表示关系a≥b≥c,应使用的C语言表达式是(A)。
A.(a>=b)&&(b>=c)B.(a>=b)AND(b>=c)C.(a>=b>=c)D.(a>=b)&(b>=c)
6.字符型常量在内存中存放的是(B)。
A.BCD代码B.ASCII代码C.内部码D.十进制码
7.对下面程序段描述正确的是(D)。
A.while循环执行了10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句只执行一次
{intx=10;do{x=x-1;}while(x==0);}
8.下面选项中,与if(a)等价的是(D)。
A.if(a==0)B.if(a!
=0)C.if(a=0)D.if(a==1)
9.有程序段:
intn=1;do{++n;n=n*5;}while(n=10);(B)
A.执行一次B.执行2次C.不执行D.执行无限次
10.若有声明语句:
intb[2][4];则对a数组元素的正确引用是(A)。
A.b[1][3]B.b[1][4]C.b[2][4]D.b[0][4]
11.欲将字符串“kunluncollege”赋给字符数组str,正确的语句是(D)。
A.str=“kunluncollege”;B.str=“kunluncollege\n”;
C.strcpy(“kunluncollege”,str);D.strcpy(str,“kunluncollege”);
12.语句printf(“%d\n”,strlen(“xining”));的输出结果是(B)。
A.7B.6C.存在语法错误D.不定值
13.以下函数的类型是(C)。
A.与参数x的类型相同B.void类型C.int类型D.无法确定
ff(floatx)
{printf(“%d\n”,x*x);}
14.若用数组名作为函数调用的实参,传递给形参的是( A)
A.数组的首地址 B.数组第一个元素的值
C.数组中全部元素的值 D.数组元素的个数
15.以下不正确的说法是(C)。
A.在C语言中允许函数递归调用
B.函数值类型与返回值类型出现矛盾时,以函数值类型为准
C.形参可以是常量、变量或表达式
D.C语言规定,实参变量对形参变量的数据传递是“值传递”
16.以下程序的输出结果是(D)。
A.15B.100C.10D.150
#defineMAX(x,y)(x)>(y)?
(x):
(y)
main()
{inti=10,j=15,k;k=10*MAX(i,j);
printf(“%d\n”,k);}
17.函数直接或间接地自己调用自己,被称为函数的(A)。
A.递归调用B.主函数调用C.自定义调用D.嵌套调用
18.下列说法中错误的是(D)。
A.枚举类型中的枚举元素是常量B.一个整数不能直接赋给一个枚举变量
C.枚举类型中枚举元素的值都是从0开始以1为步长递增
D.typedef可以用来定义新的数据类型
19.在C语言中,对文件的存取是以(A)为单位的。
A.字节B.函数C.记录D.模块
20.当fclose函数正确执行后,函数的返回值是(A )。
A.0B.-1C.1D.非零值
三.阅读下列程序,按题意填空(每空2分,共计16分)
1.有以下程序(求20以内的偶数和,包括20)。
请填空:
#include
main(){intn=0,sum=0;
do{n++;if(①n%2==0);sum+=n;}while(②n<=20);printf(“%d\n”,sum);}
2.以下程序判断输入的一个整数m是否既能被4又能被6整除,若能整除,输出“YES”,若不能整除,输出“NO”。
请填空:
#include
main(){intm;
printf(“Enteraintnumber:
”);scanf(“%d”,③&m);
if(④m%4==0&&m%6==0)printf(“YES\n”);
elseprintf(“NO\n”);}
3.以下程序的功能是输出杨辉三角形。
请填空:
#include
main(){inta[10][10],inti,j;for(i=0;i<10;i++)a[i][0]=1;
for(i=1(或i=0);i<10;i++)a[i][i]=1;
for(i=2;i<10;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)printf(“%4d”,a[i][j]);printf(“\n”);}}
四.程序阅读题(每题3分,共计9分)
1.#include输出结果:
8。
main(){intk=5,m=1;
switch(k){case1:
m++;
case5:
m*=4;
case9:
m+=4;break;
default:
m+=3;}
printf(“%d”,m);}
2.#include输出结果:
12。
main()
{inti,j,a[3][3]={{1,3,5},{2,4,6},{9,8,7}};intsum=0;
for(i=0;i<=2;i++)sum+=a[i][i];
printf(“%d\n”,sum);}
3.inta=9,b=5;输出结果:
3。
intmin(inta,intb)
{intc;c=a
a:
b;return(c);}
main(){inta=3;printf(“min=%d”,min(a,b));}
五.编程题(共计20分)
1.(8分)利用循环求12+22+32+42+52。
#include
main()
{inti,sum=0;
for(i=1;i<=5;i++)
sum+=i*i;
printf(“%d\n”,sum);}
2.(6分)从键盘输入8个任意整数,计算数组中所有的负数之和(用一维数组)。
#include
main()
{inti,j,a[8],sum=0;
printf(“Pleaseinput8numbers:
\n”);
for(i=0;i<8;i++)
scanf(“%d”,&a[i]);
for(i=0;i<8;i++)
if(a[i]<0)sum=sum+a[i];
printf(“%d\n”,sum);}
3.(6分)利用函数编写求两数相乘的函数xc()。
#include
floatxc(floatx,floaty)
{return(x*y);}
main()
{floata,b,c;
scanf(“%f,%f”,&a,&b);
c=xc(a,b);
printf(“c=%f\n”,c);}
第4页共4页