
2022年阜阳师范大学公共课《C语言》科目期末试卷A(有答案)
一、填空题
1、请读程序段:
intx=1;
printf("%dn",~x);
上面程序段的输出结果是_______。
2、结构化程序由________、________、________3种基本结构组成。
3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为
_______。
5、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的
是_______。
6、以下程序段通过指针变量q,给如图所示连续动态存储单元赋值(在此过程中鸡肉炒什么好吃
不能移动q)。请填空。(假设程序段中的所有变量均已正确说明。)
_______scanf("%d",q+k);
7、下面程序段中循环体的执行次数是_______。
a=10;b=0;
do{b+=2;a-=2+b;}while(a>=0);
8、已有定义inta;floatb,x;charcl,c2;为使a=3、b=6.5、x=12.6、
cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为
_______。
9、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交
换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、
b=20、c=30;交换后,a=20、b=30、c=10。请填空。
_______;a=b;b=c;_______;
10、下面程序wdm的运行结果是_______。
inti,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};
for(i=0;i<10;i++)y[x[i]]++;
printf("%dn",y[3]);
二、选择题
11、下面不正确的字符串常量是()
A.'abe'B."12'12"C."o"D.""
12、以下正确的叙述是()。
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
13、阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果
#include
intmain()
{intx,y,z;
scanf("%d%d%d”,8.x.&y,&z);
printf("x+y+z=%dn",x+y+z);
return0;
}
A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值
14、已知ch是字符型变量,下面正确的赋值语句是()
='123';='xff';='08';=";
15、有两个字符数组a、b,则以下正确的输人格式是()。
(a,B.;("%s%s",a,B.;
C)scanf("%s%s",&a,&b);D)gets("a"),gets("b");
16、一个C语言程序由()。
A.一个主程序和若干子程序组成B.函数组成
C.若干过程组成D.若干子程序组成
17、设有程序段:
intk=10美好生活英文 ;while(k=0)k=k-1;
则下面描述中正确的是()。
循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
18、以下程序有语法性错误,有关错误原因的正确说法是()。
#include
intmain()
{intG=5,k;
voidprt_char();
-----
k=prt_char(G);
---
}
A.语句voidprt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
19、若有说明语句,则以下不正确的叙述是()。
chara[]="Itismine";char*p="Itismine";
A.a+1表示的是字符t所在存储单元的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
20、下面程序段的运行结果是()。
char*format="%s,a=%d,b=%dn";
inta=1,b=10;
a+=b;
printf(format,"a+=b",a,B.;
,"a+=b",abB..format,"a+=b"
C.a+=b,a=11,b=10D.以上结果都不对
21、折半查找法的思路是:先确七大洲地图 定待查元素的范围,将其分成两半,然后测试位
于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测
试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作
用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,
返回其下标值;反之,返回-1。请选择填空。
intbi交通安全教案小班 nary(inta[10],intm)
{intlow=0,high=9,mid;
while(low<=high)
{mid=(low+high)/2;
elif(m>a[mid])【】;
elreturn(miD.;
return(一1);
}
==mid+=mid+=mid-1
22、下面程序的运行结果是()。
#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;
}
***
23、当运行以下程序时,从键盘输入:
aabb<回车>
ccdd<回车>
则下面程序的运行结果是()。
#include
intmain()
{charal[5],a2[5],a3[5],a4[5];
scanf("%s%s",al,a2);
gets(a3);gets(a4);
puts(a1);puts(a2);
puts(a餐具摆放 3);puts(a4);
return0;
}
A)aaB)aaC)aaD)aabb
bbbbbbcc
ccccdddd
ccddddee
24、以下程序()。
#include
intmain()
{inta=5,b=0,c=0;
if(a=b+("***n");
elprintf("$$$n");
return0;
}
A.有语法错不能通过编译B.可以通过编译但不能通过连接
C.输出***D.输出$$$
25、若运行以下程序时,从键盘输入Total<回车>,则下面程序的运行结果是
()。
#include
intmain()
{charc;intvl=0,v2=0;
do
{switch(c=getchar())
{ca'a':v1+=1;
ca't':ca'T':v2+=1;
default:v1+=1;v2+=1;
}
while(c!='n');
printf("v1=%d,v2=%dn",v1,v2);
return0;
}
A.v1=3,v2=4B.v1=4,v2=4C.v1=6,v2=8D.v1=7,v2=9
三、读程序填空
26、有以下程序:
#include
intmain()
{intk=0;
charc1='a',
c2='b';
scanf("%d%c中国第四大岛 %c”,&k,&c1,&c2);
printf("%d,%c,%cn",k,c1,c2);
return0;
}
若运行时从键盘输入:55AB<回车>,则输出结果是_______。
27、已有定义floatd1=3.5,d2=-3.5;执行以下语句后的输出结果是_______。
printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*n",dl,dl,d1);
printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*n",d2,d2,d2);
28、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段。
请填空。
含有switch语句的程序段:
Intx,y,m;
y=(int)(x/10);
switch(y)
{ca10:m=5;break;
ca9:m=4;break;
ca8:m=3;break;
ca7:m=2;break;
ca6;m=1;break;
default:m=0;
}
含有非嵌套if语句的程序段:
intx,m;
if(_______)m=5;
if(x<100)&&(x=90))m=4;
if(x<90)&&(x>=80))m=3;
if(<80)&&(x>=70))m=2;
if(x政治书 <70)&&(x=60))m=1;
if(_______)_______;
29、以下程序的运行结果是_______。
#include
intmain()
{intx,y=-2,z=0;
if((z=y)<0)x=4;
elif(y==0)x=5;
elx=6;
printf("t%dt%dn",x,z);
if(z=(y==0))x=5;
x=4;
printf("t%dt%dn",x,z);
if(x=z=y)x=4;
printf("t%dt%dn",x,z);
return0;
}
30、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空。
intn=0,c;
c=getchar();
while(_______)
{if(_______)n++;
c=getchar();
}
31、以下程序的功能是根据输入的y(Y)与n(N),在屏幕上分别显示出Thisis
YES.与ThisisNO.。请填空。
#include
voidYesNo(charch)
{switch(ch)
{ca'y':
ca'Y':printf("nThisisYES.n");_______;
ca'n':
ca'N':
printf("nThisisNO.n");
}
intmain()
{charch;
printf("nEnterachar'y','Y"or'n','N':");
ch=[2];
printf("ch:%c",ch);
YesNo(ch);
return(0);
}
32、下面程序的运行结果是_______。
#include
intmain()
{inta[9]={0,6,12,18,42,44,52,67,94}
intx=52,i,n=9,m;
i=n/2+1;
m=n/2;
while(m!=0)
{i=i-m/2-1;m=m/2;}
elif(x>a[i])
{i=i+m/2+1;m=m/2;}
elbreak;
printf("Theindexis:%dn",i);
return0;
}
33、若从键盘输入:2<回车>,则下面程序的运行结果是_______。
#include
intmain()
{char*b[]={"English","Physics","Maths","Pascal","Chemistry","End",
"Error"};intnum;
printf("Enteraintegerthatshouldbebetween0to9n");
scanf("%d”,&.num);
if(num>=0&&num<=9)
if(num>=1&&num<=5)
printf("Thechonclassis:%s.n",b[num-1]);
el
printf("Noclassischon.%s!!n",b[5]);
el
printf("Yourinputis:%s!!n",b[6]);
return(0);
}
四、编程题
34、编写程序实现功能:输入一个复数,输出其共扼复数。例如,输入2+3i<回
车>时,输出2-3i;输入2-3i<回车>时,输出2+3i。
35、编写程序实现功能:读入两个运算数(datal和data2)及一个运算符(op),
计算表达式datalopdata2的值,其中op可以为十、一、*、/四个符号中的任一
种(用switch语句实现)。
参考答案
一、填空题
1、-2
2、【1】顺序结构【2】选择结构【3】循环结构
3、【1】编译【2】连接
4、【1】63【2】73【3】171
5、【1】按位与【2】地址与
6、for(k=0;k<10;k++)
7、3
8、【1】scanf("%d%f%f%c%c”,&a,&.b,8.c1,8.c2);
【2】3囗6.5囗12.6aA<回车>
(注:答案中的囗代表空格)
9、【1】t=a【2】c=t
10、4
二、选择题
11、A
12、D
13、D
14、B
15、B
16、B
17、C
18、C
19、D
20、C
21、C
22、B
23、A
24、D
25、D
三、读程序填空
26、55,,A
27、*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=囗3.500e+00*
*d(4)=一3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00囗x
(注:答案中的囗代表空格)
28、【1】1【2】2【3】2
29、4-2
40
4-2
30、[1]c!='n'[2]c>=1018&&c<='9'
31、【1】break【2】getchar()
32、Theindexis:6
33、Thechonclassis:Physics.
四、编程题
34、#include
intmain()
{inta,b;
charsymbol;
printf("Pleaenter:");
scanf("%d%c%din",&.a,&.symbol,&.b);
printf("Originalvalue:%d%c%din",a,symbol,b);
if(symbol=='-')
symbol='+';
elsymbol='-';
printf("Newvalue:%d%c%din",a,symbol,b);
return0;
}
35、#include
#include
intmain()
{floatdatal,data2,data3;
charop;
printf("nTypeinyourexpression:");
scanf("%f%c%f",,,&.data2);switch(op)
{ca'+':data3=datal+data2;
break;
ca'-':data3=datal-data2;
break;
ca'*':data3=datal*data2;
break;
ca'/':i
f(data2==0)
{printf("nDivisionbyzero!");
exit(1);}
data3=data增添造句 l/data2;
break;
printf("Thisis%6.2f%c%6.2f=%6.2fn",datal,op,data2,data3);
return0;
}
本文发布于:2023-03-19 16:46:37,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167921559837431.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:阜师院.doc
本文 PDF 下载地址:阜师院.pdf
| 留言与评论(共有 0 条评论) |