您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页2022年潍坊学院公共课《C语言》科目期末试卷B(有答案)

2022年潍坊学院公共课《C语言》科目期末试卷B(有答案)

来源:小侦探旅游网
2022年潍坊学院公共课《C语言》科目期末试卷B(有答案)

一、填空题

1、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。

#include int main() {int a,b; float x,y; char cl,c2;

scanf(\"a=%d b=%d\",&.a,&.b); scanf(\"x=%f y=%\",8.x,8.y); scanf(\"c1=%cc2=%c”,8.cl,8.c2);

printf(\"a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c\",a,b,x,y,cl,c2);

return0; }

2、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是

3、在C语言源程序中,一个变量代表【 】。

4、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。

5、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。

6、设x为无符号整数。表达式x^(~(~0<7、函数swap(int x,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。 a[o]=1;a[1]=2; swap(a[o],a[1]);

8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。

9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。

10、定义语句int*f();int(*f)();的含义分别为_______和_______。

二、选择题

11、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( )

12、在C语言中,char型数据在内存中的存储形式是( )。 A.补码B.反码C.原码D.ASCII码

13、以下叙述正确的是

A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 14、以下叙述不正确的是( )

A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

15、下面程序段(每行代码前面的数字表示行号)( )。

1 float a[10]={0.0}; 2 int i;

3 for(i=0;i<3;i++)scanf(\"%d\",&a[i]); 4 for(i=1;i<10;i++)a[0]=a[0]+a[i]; 5 printf(\"%f\\n\",a[o]);

A.没有错误 B.第1行有错误 C.第3行有错误 D.第5行有错误 16、以下C程序的运行结果是( )。(注:口表示空格)

#include int main() {long y=23456;

printf(\"y=%3x\\n\",y); printf(\"y=%8x\\n\",y); printf(\"y=%#8x\\n\",y); return 0; }

A.y=5ba0 B.y=囗囗囗5ba0

y=囗囗囗囗5ba0 y=囗囗囗囗囗囗05ba0y=囗囗0x5ba0 y=囗囗0x5ba0 C) y=5ba0 D.y=5ba0 y=5ba0 y=囗囗囗囗5ba0 y=0x5ba0 y=####5ba0 17、若有定义:int*p[4];则标识符p。 A.是一个指向整型变量的指针 B.是一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组 D.定义不合法

18、若用数组名作为函数调用的实参,则传递给形参的是(A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 19、以下for循环的执行次数是( )。

for(x=0,y=0;(y=123)&&(x<4);x++);

) A.是无限循环 B.循环次数不定 C.执行4次 D.执行3次

20、以下不是无限循环的语句为( )。 A.for(y=0,x=1;x>++y;x=i++)i=x; B.for(;;x++=i): C.while(1){x++;}

D.for(i=10;;i-一)sum+=i;

21、以下程序的输出是( )。

#include int main()

{int a=5,b=8,c=3,max; max=a; if(c>B. if(c>A. max=c; else if(b>A.

max=b;

printf(\"max=%d\\n\",max); return 0; }

A.max=8 B.max=5 C.max=3 D.无输出结果

22、对两个数组a和b进行如下初始化:

char a[]=\"ABCDEF\";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是( )。

A.a与b数组完全相同 B.a与b长度相同 C.a和b中都存放字符串 D.a的长度比b长 23、下面程序的运行结果是( )。

#include #include int main()

{char a[80]=\"AB',b[80]=\"LMNP\";inti=0; strcat(a,B.;

while(a[i++]!=‘\\o’)b[i]=a[i]; puts(B.; return 0; }

A.LB B.ABLMNP C.AB D.LBLMNP

24、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

#include #include float f(float,float); int main()

{floatx,y,z,sum;

scanf(\"%f%1%f\",8.x,&y,8.z); sum=f(【】)+f(z+y,z-y); printf(\"sum=%fNn\",sum); return(0); }

float f(float a,float B. {float value; value=a/b; return(value); }

A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y

25、下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空(#include #include int main() {int a,b,c,d; scanf(\"%d\",&.A.; for(b=3;b<=a/2;b+=2) {for(c=2;c<=sqrt(B.;c++)

if(b%c==0)break;

if(c>sqrt(B.)d=【】; else break;

for(c=2;c<=sqrt(D.;c++)

if(d%c==0)break;

if(c>sqrt(D.)printf(\"%d=%d+%d\\n\",a,b,D.; }

return 0; }

A.a+b B.a-b C.a*b D.a/b

三、读程序填空

26、以下程序的输出结果为_______。 #include int main() {short i; i=一4;

printf(\"\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n\",i,i,i,i); return 0;

}

27、有以下程序:

#include int main()

{int k=0; char c1='a', c2='b';

scanf(\"%d%c%c”,&k,&c1,&c2); printf(\"%d,%c,%c\\n\",k,c1,c2); return 0; }

若运行时从键盘输入:55AB<回车>,则输出结果是_______。

28、下面函数pi的功能是:根据以下公式,返回满足精度(0.0005)要求的x的值。 请填空。

𝜋112123

=1++∗+∗∗+⋯ 2335357# include # include # include double pi(double eps) { double s=0.0,t=1.0; int n; for(_______;t>eps;n++) {s+=t; t=n*t/(2*n+1); }

return(_______);

}

int main()

{ double x=0.0005;

printf(\"\\ neps=% lf, 𝜋 =% If\ return(0); }

29、以下函数fun的功能是:统计一个数中位值为零的个数,以及位值为1的个数。若输入111001,则输出位值为零的个数为2,位值为1的个数为4,请填空。

void fun(long n)

{int coun0=0,counl=0,m; do

{m=_______;

if(m==0)coun0++;

if(m==1)counl++;n=_______; }while(n);

printf(\"coun0=%d,coun1=%d\\n\",coun0,counl); int main() {long n;

printf(\"\\ninput n:\\n\");scanf(\"%ld\",8.n);printf(\"n=%ld\\n\",n);fun(n); return(0);

}

30、下面程序的功能是统计用数字0~9可以组成多少个没有重复的3位偶数。请填空。

#include int main() {int n=0,i,j,k; for(i=1;i<=9;i++)

for(k=0;k<=8;_______) if(k!=i)

for(j=0;j<=9;j++) if(_______)

n++;

printf(\"n=%d\\n\",n); return 0; }

31、下面程序的功能是给一维数组a输入6个任意整数,假设为: 7 4 8 9 1 5

然后建立一个具有以下内容的方阵并打印。请填空。 5 7 4 8 9 1 1 5 7 4 8 9 9 1 5 7 4 8

8 9 1 5 7 4 4 8 9 1 5 7 7 4 8 9 1 5

#include int main()

{int a[6],i,j,k,m; for(i=0;i<6;i++) scanf(\"%d\",&.a[i]); for(i=5;i>=0;i--)

{k=a[5];for(_______;j>=0;j-一) a[j+1]=a[j]; _______;

for(m=0;m<6;m++)

printf(\"%d\",a[m]); printf(\"\\n\"); } return 0; }

32、某个自动加油站有a、b、c三种汽油,单价分别为1.50、1.35、1.18(元/千克),也提供了“自己加”或“协助加”两个服务等级,以便用户可得到5%或10%的优惠。以下程序的功能是:针对用户输入加油量a,汽油品种b和服务类型c(f——自动,m——自己,e——协助),输出应付款m。请填空。

#include int main()

{float a,r1,r2,m; char b,c;

scanf(\"%f%c%c\",&a,&b,&c); switch(b)

{case'a':r1=1.5;break; case'b':_______;break; case'c':rl=1.18;break; switch(c)

{case'f':r2=0;break; case'm':r2=0.05;break; case_______:r2=0.1;break; m=_______;printf(\"%f\",m); return 0; }

33、下面程序的运行结果是_______。 #include int main()

{char*a[]={\"Pascal\",\"C language\",\"dBase\",\"Coble\; char**p;

int j; p=a+3;

for(j=3;j>=0;j--) printf(\"%s\\n\",*(p--)); return(0); }

四、编程题

34、定义一个带参的宏,用以判断整数n是否能被x整除。编写程序,从终端输入一个整数,调用宏验证其是否能同时被3和7整除。

35、以下程序的功能是应用下面的近似公式计算e的n次方。函数fl用来计算每项分子的值,函数f2用来计算每项分母的值。请编写f1和f2函数。

𝑥

ex=1+x+

2

2!

+…(前20项的和)

3!

𝑥3

#include float f2(int n) {

}

float fl(int x,int n) { }

int main()

{float exp=1.0;int n,x; printf(\"Input a number:\"); scanf(\"%d',&x); printf(\"%d\\n\",x); exp=exp+x;

for(n=2;n<=19;n++) exp=exp+f1(x,n)/f2(n);

printf(\"\\nThe is exp(%d)=%8.4f\\n\",x,exp); return(0); }

运行结果:

Input a number:3

The is exp(3)=20.0855

一、填空题

1、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车> (注:答案中的囗代表空格) 2、【1】.c【2】.obj【3】.exe 3、内存中的一个存储单元 4、【1】63【2】73【3】171 5、整型(或int型)

6、【1】~0得到一个全1的数

【2】(~0<【4】~(~0<【2】单向值传递,不能返回交换后的值。 8、【1】0【2】6

9、double a[M][M]={0};

10、【1】返回一个指向整型值的指针的函数。 【2】指向一个返回整型值的函数的指针。

二、选择题

11、C

12、D

13、C 14、D

15、C 16、A 17、B 18、A 19、C 20、A 21、B 22、D 23、D 24、B 25、B

三、读程序填空

26、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 27、55,,A

28、【1】n=1【2】2.0*s 29、【1】n%10【2】n/10

30、【1】k+=2【2】j!=i&&j!=k

31、【1】j=4【2】a[0]=k

32、【1】r1=1.35【2】'e'【3】a*rl*(1-r2) 33、Coble dBase Clanguage Pascal

四、编程题

34、/*判断整数n是否能被x整除*/

#include

#define DIV(n,x)((n%x)==0?1:0) int main() { int y;

scanf(\"%d\

if(DIV(y,3) &&DIV(y,7)) printf(\"yes!\\n\"); else printf(\"No!\\n\"); return 0; }

35、float f2(int n) {if(n==1)return 1; else return(f2(n-1)*n); }

float f1(int x,int n) {int i;float j=1;

for(i=1;i<=n;i++) j=j*x;

return j; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务