2022年山东工艺美术学院公共课《C语言》科目期末试卷A(有答案)
一、填空题
1、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。
2、结构化程序由________、________、________3种基本结构组成。
3、C语言源程序的基本单位是________
4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。
5、表达式x=6应当读做_______
6、下面程序段的运行结果是_______。
chars[20]="abcd";
char*sp=s;
sp++;
puts(strcat(sp,"ABCD"));
7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素
交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是
_______。
a[0]=1;a[1]=2;swap(a,2);
8、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值
的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;
10、设有如下定义:
#defineSWAP(T,X,Y){T=X;X=Y;Y=T;}
以下程序段将通过调用宏实现变量x和y内容的交换,请填空。
Doublex=2.5,y=6.4,z;SWAP(_______);
二、选择题
11、下面4个选项中,是正确的八进制数或十六进制数的选项是()。
12、sizeof(float)是()。
A.一个双精度型表达式B.一个整型表达式
C.一种函数调用D.一个不合法的表达式
13、设有以下程序:
#include
intmain()
{inta=201,b=012;
printf("%2d,%2dn",a,B.;
return0;
.}
程序执行后的输出结果是()。
A.01,12B.201,10C.01,10D.20,01
14、设有以下程序:
#include
intmain()
{charcl,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);。
putchar(c2);
printf("%c%cn",c5,c6);
return0;
}
若运行时从键盘输入数据:
abc<回车>
defg<回车>,则输出结果是()。
15、以下不能对二维数组a进行正确初始化的语句是()。
[2][3]={0};
[][3]={{1,2},{0}};
[2][3]={{1,2},{3,4},{5,6}};
[][3]={1,2,3,4,5,6);
16、以下叙述不正确的是()
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
17、以下正确的描述是()。
ue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
18、以下程序有语法性错误,有关错误原因的正确说法是()。
#include
intmain()
{intG=5,k;
voidprt_char();
-----
k=prt_char(G);
---
}
A.语句voidprt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
19、已有定义int(*p)();指针p可以()。
A.代表函数的返回值B.指向函数的入口地址
C.表示函数的类型D.表示函数返回值的类型
20、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",
"JAVA","C");则表达式*language[1]>*language[3]比较的是()。
A.字符F和字符PB.字符串BASIC和字符串JAVA
C.字符B和字符JD.字符串FORTRAN和字符串PASCAL
21、以下程序的正确运行结果是()。
#include
intf(intA.;
intmain()
{inta=2,i;for(i=0;i<3;i++)
printf("%4d",f(A.);
return(0);
}
intf(intA.
{intb=0;staticintc=3;
b++;c++;
return(a+b+C.;
}
A.777B.71013C.7911D.789
22、下面程序的运行结果是()。
#include
intmain()
{charch[7]={"12ab56"};inti,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]-'o';
printf("%dn",s);
return0;
}
A.1B.1256C.12ab56D.15
23、下面程序的运行结果是()。
#include
intmain()
{charstr[]="SSSWLIA",c;intk;
for(k=2;(c=str[k])!=o';k++)
{switch(C.
{ca'I':++k;break;
ca'L':continue;
default:putchar(C.;continue;
putchar('*’);
}
return0;
}
***
24、以下程序的输出是()。
#include
intmain()
{intx=1;
if(x=2)
printf("OK");
elif(x<2)printf("%dn",x);
elprintf("Quit");
return0;
}
.1D.无输出结果
25、下面程序的运行结果是()。
#include
intmain()
{inti,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0)k++;
}
printf("%d,%d",k,b):
return0;
}
A)3,-1B)8,-1C)3,0D)8,-2
三、读程序填空
26、已知字母A的ASCII码值为65。以下程序的输出结果是_______。
#include
intmain()
{chara,b;
a='A'+'4'-'3';
b='A'+'6'-2';
printf("a=%d,b=%cn",a,b);
return0;
}
27、以下程序的输出结果是_______。
#include
intmain()
{inta=325;
doublex=3.1415926;
printf("a=%+06dx=%+en",a,x);
return0;
}
28、若有以下程序段,且grade的值为C,则输出结果是_______。
switch(grade)
{ca'A':printf("85~100n");
ca'B':printf("70~84n");
ca'C':printf("60~69n");
ca'D':printf("(60n");
default:printf("error!n");
}
29、若运行以下程序时输入:1605<回车>,则程序的运行结果是_______。
#include
intmain()
{intt,h,m;
scanf("%d”,8&t);
h=(t/100)%12;
if(h==0)h=12;
printf("%d:",h);m=t%100;
if(m<10)printf("o);
printf("%d',m);
if(t<1200||t==2400)
printf("AM");
elprintf("PM");
return0;
}
30、等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能
被4整除的所有数的和。请填空。
#include
intmain()
{inta=2,d=3,sum=0;
do
{sum+=a;
a+=d;
if(_______)printf("%dn",sum);
}while(sum<200);
return0;
}
31、下面程序的功能是:从键盘输入一个整数m(4≤m≤20),输出如下的整数
方阵(存入二维数组aa)。例如,若输入4和5,则分别输出:
请改正程序中的错误语句,使它能得出正确的结果。改正后的语句是_______和
_______。(注意:不得增行或删行,也不得更改程序的结构。)
#include
#defineM20
voidaMatrix(intn,intxx[][M])
{inti,j;for(j=0;j
xx[o][i]=(n-j)*(n-j);
for(i=1;i
{for(j=0;j
xx[i][j]=xx[i-1][j+1];
xx[i][n一1]=xx[i-1][0];
}
intmain()
{intaa[M][M],i,j,m;
printf("nPleaenteranintegernumberbetween4and20:");
scanf("%d",8&.m);
aMatrix(m,aa);
printf("nThe%d*%dmatrixgenerated:",m,m);
for(i=0;i
{printf(n");
for(j=0;j
printf("%4f",aa[i][j]);/*错误语句_______*/
return(0);
}
}
32、下面程序段的功能是将字符数组a[6]={'a',b','c','d','e','f)变为
a[6]={'f','a','b','c','d','e'}。请填空。
chart,a[6]={'a','b','c','d','e','f');inti;
_______;
for(i=0;i<5;i++)
{_______;for(i=0;i<=5;i++)printf("%c",a[i]);
33、下面程序的功能是求矩阵A的转置矩阵B,并按矩阵形式打印出两个矩阵。请
填空。
#include
intmain()
{inta[2][3]={1,2,3,4,5,6},b[3][2];
int(*p)[3],(*q)[2],i,j;
p=a;
q=b;
for(i=0;i<2;i++)for(j=0;j<3;j++)
_______;
p=a;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)printf("%4d",_______);
printf("n");
q=b;
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%4d",_______);
printf("n");
return(0);
}
四、编程题
34、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,
然后计算并输出其平均成绩。
35、编写程序实现功能:对于给定的一个百分制成绩,改用相应的五级分成绩表
示。设:90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下
为E(要求用switch语句实现)。
参考答案
一、填空题
1、a&040或a&0×20或a&32
2、【1】顺序结构【2】选择结构【3】循环结构
3、函数
4、整型(或int型)
5、将常量6赋给变量x
6、bedABCD
7、【1】a[0]=2a[1]=1
【2】因实参是地址,已对指定地址中的内容进行了交换。
8、【1】格式控制符与变量类型不匹配。
scanf语句的正确形式应该是:scanf("%f",8.k);
【2】未指明变量k的地址。
9、【1】b【2】b【3】b
10、z,x,y或z,y,x
二、选择题
11、C
12、B
13、B
14、B
15、C
16、D
17、B
18、C
19、B
20、C
21、B
22、A
23、B
24、A
25、D
三、读程序填空
26、a=66,b=E
27、a=+00325囗囗囗x=+3.14159e+00
(注:答案中的囗代表空格)
28、【1】mark/10
【2】ca0:ca1:ca2:ca3:ca4:ca5:
【3】ca9:ca10:
29、4:05PM
30、sum%4==0
31、【1】for(j=0;j
【2】printf("%4d",aa[i][j]);
32、【1】t=a[5]【2】a[i]=a[i-1]
33、【1】*(*(q+j)+i)=*(*(p+i)+j)【2】*(*(p+i)+j)【3】*(*
(q+i)+j)
四、编程题
34、#include
intmain()
{structstudyintmid;
intend;
intaverage;
}math;
scanf("%d%d",&,&.);
e=(+)/2;
printf("average=%dn",e);
return0;
}
35、#include
intmain()
{intscore,temp,log;
chargrade;
log=1;
while(log)
{printf("enterscore:");
scanf("%d”,);
if((score>100)|l(score<0))
printf("nerror,tryagain!n");
ellog=0;
if(score==100)temp=9;
eltemp=(score-score%10)/10;switch(temp)
{ca0:ca1:ca2:
ca3:ca4:
ca5:grade='E';break;
ca6:grade='D';break;
ca7:grade='C';break;
ca8:grade='B';break;
ca9:grade='A';
printf("score=%d,grade=%cn",score,grade);
return0;
}
本文发布于:2023-01-03 12:59:48,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/84575.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |