《C 语言程序设计A 》试卷(B 卷)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计A》试卷(B卷)
班级学号姓名
一、选择题:(每题1分,共计20分)
1、C语言规定:在一个源程序中,main函数的位置(C)。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
2、设a为5,执行下列语句后,b的值不为2的是(C)。A)
b=a/2B)b=6-(--a)
C)b=a%2
D)b=a>3?2:1
3、若a=-14,b=3,则条件表达式a<=""p="">
A)-14
B)-13
C)3
D)4
4、已知:intn,i=1,j=2;执行语句n=i的值是(="")。<=""p="">
A)1,2
B)1,3
C)2,2
D)2,3
5、函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,
实参的个数为
()。A)1B)2C)4D)5
6、以下正确的描述是()。
A)函数的定义可以嵌套,但函数的调用不可以嵌套。
B)函数的定义不可以嵌套,但函数的调用可以嵌套。
C)函数的定义和函数的调用均不可以嵌套。D)函数的定义和函
数的调用均可以嵌套。
7、在C语言中,下面对函数不正确的描述是()。
A)当用数组名作形参时,形参数组值的改变可以使实参数组之值
相应改变。B)允许函数递归调用。
C)函数形参的作用范围只是局限于所定义的函数内。
D)子函数必须位于主函数之前。
8、如果在一个函数中的复合语句中定义了一个变量,则以下正
确的说法是()。
A)该变量只在该复合语句中有效
B)该变量在该函数中有效
C)该变量在本程序范围内均有效D)该变量为非法变量
9、若x=4,则x*=x+2的值为()。
A)36
B)
24C)18D)20
10、下列能正确定义整型变量a、b和c并为其赋的值1的语
句是()。
A)inta=b=c=1;
B)inta,b,c=1
C)a=b=c=1;
D)inta=1,b=1,c=1
11、以下关于宏替换的叙述不正确的是()。
A)宏替换只是字符替换
B)宏名无类型
C)宏替换不占用运行时间
D)
宏替换不占用编译时间
12、有以下程序段int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的
值是()。A)5B)6C)8D)9
13、以下程序中调用scanf函数给变量a输入数值的方法是错
误的,其错误原因是()。
main()
{
int*p,*q,a,b;
p=&a;
printf("inputa:");scanf("%d",*p);
}
A)*p表示的是指针变量p的地址
B)*p表示的是变量a的值,而不是变量a的地址
C)*p表示的是指针变量p的值
D)*p只能用来说明p是一个指针变量
14、若num、a、b和c都是int型变量,则执行表达式
num=(a=4,b=16,c=32);后num的值为()。
A)4
B)16
C)32
D)52
15、假设指针p已经指向某个整型变量x,则*p相当于()。
A)&x
B)&p
C)x
D)*x
16、若有说明:inta[10];则对a数组元素的正确引用是()。
A)a[10]
B)a[3.5]
C)a[5-3]
D)a[-1]
17、在C语言中,一维数组的定义方式为:类型说明符数组
名();
A)[整型常量表达式]
B)[表达式]
C)[整型常量]
D)[整型表达式]
18、以下能对一维数组a进行正确初始化的语句是()。
A)ina[10]=(0,0.0,0,0);
B)inta[10]={};
C)inta[]={0};
D)inta[10]={10*1};
19、假设指针p1已经指向了某个整型变量,要使指针p2也指向
同一个变量,则下面各项中
正确的是()。
A)p2=**p1
B)p2=*&p1
C)p2=*p1
D)p2=&*p1
20、以下关于do-while循环的不正确描述是()。
A)do-while的循环体至少执行一次
B)do-while循环由do开始,用while结束,在while(表达
式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的
值变为零("假")的操作。
D)do-while的循环体可以是复合语句。
二、判断题(每题1分,共计10分)
1、在一个函数内部的复合语句中定义的变量,只在该复合语句
范围内有效。()
2、字符串作为一维数组存放在内存中。()
3、字符数组中的一个元素存放一个字符。()
4、字符数组中的最后一个字符必须是'\0'。()
5、形参为指针变量时,实参必须是数组名。()
6、用数组名作函数参数时传递的是数组的值。()
7、全局变量可以被任何一个函数中的任何一个表达式使用。
()
8、一个函数可以带回一个整型值、字符值、实型值等,也可以
带回指针型的数据。()
9、表达式i++与++i在任何场合功能完全相同。()10、
赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类
型可以不相同。()
三、填空题:(每空2分,共40分)
1、在C语言中,一个float型数据在内存中所占的字节数为4
个字节,C源程序的基本
单位是函数.
2、算法表示的时候使用的三种基本结构是顺序,选择,循环
(3)。
3、以下程序运行后的输出结果是___252137__。
main(){inta,b,c;a=25;b=025;c=0x25;
printf("%d%d%d\n",a,b,c);}
4、以下程序运行后的输出结果是gae。
main()
{chara[]="Language",b[]="Programe";char*p1,*p2;int
k;p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
5、已有定义:intm;floatn,k;charchl,ch2;
为使m=3,n=6.5,k=12.6,ch1='a',ch2='A',输入数据的格
式为:36.512.6aA则对应的scanf语


scanf("%d%f%f%c%c",&m,&n,&k,&ch1,&ch2)
6、计算sum=1+1/2+1/4+...+1/50的值,并显示出来。
#includemain(){
inti=2;
floatsum=1.0;while(i<=50)
{
sum+=1/(float)I;i+=2;}
printf("sum=%f\n",sum);}
7、下面程序的功能是把以下给定的字符按其矩阵格式读入数组
str1中,并输出行列号之和是3的数组元素。voidmain(void)
{
char
str1[4][3]={'A','b','C','d','E','f','G','h','I','j','K
','i'};
intx,y,z;
for(x=0;x<4;x++)
for(y=0;y<3;y++){
z=x+y;if(z==3)printf("%c\n",str1[x][y]);
}
}
8、通过函数求f(x)的累加和,其中f(x)=x2+1
main(){
printf("Thesum=%d\n",SunFun(10));}
SunFun(intn){
intx,s=0;
for(x=0;x<=n;x++)s+=F(____x____);returns;}
F(intx)
{return______x*x+1______;}
9、以下程序运行后的输出结果是__1*3*5*7*9____。
main()
{chara[]="123456789",*p;inti=1;p=a;while(*p)
{if(i%2==0)*p='*’;p++;i++;}
puts(a);}
10、若有以下定义和语句:int*p[3],a[9],i;
for(i=0;i<3;i++)p[i]=&a[3*i];
则*p[0]引用的是数组元素a[0];*(p[1]+1)引用的是数组元素
a[4]。
11、以下程序输入整数a,b的值,然后交换a,b的值,并输出
交换后的结果。voidswap(int*a,int*b){intt;t=*a;
_______*a=*b_____________*b=t;_______}main()
{inta,b;
scanf(″%d,%d″,&a,&b);swap(&a,&b)
printf(″a=%d,b=%d″,a,b);}
12、下面程序的功能是用函数递归方法计算菲波那契数列,请填
空完善之。main(){intn,m;
scanf(″%d″,&n);
m=________fibo(n)_______;printf(″%d″,m);}
intfibo(n);intn;
{if(n==1)_____return(o)________;elseif(n==2)
return(1);
elsereturn(______fibo(n-2)+fibo(n-1)_______);}
四、编程题(每题10分,共30分)
1、打印出以下的杨辉三角形(要求打印出10行)(10分)
1111
211
3311
46411
51010511
615201561.....................
main()
{inti,j,row=0,colum=0,max,temp;inta[4][4];for
(i=0;i<=3;i++)for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);(2分)
for(i=0;i<=3;i++)for(j=0;j<=3;j++)
{printf("%5d",a[i][j]);
if(j==3)printf("\n");}(2分)
max=a[0][0];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];

相关文档
最新文档