您好,欢迎来到微智科技网。
搜索
您的当前位置:首页2022年辽宁金融职业学院公共课《C语言》科目期末试卷B(有答案)

2022年辽宁金融职业学院公共课《C语言》科目期末试卷B(有答案)

来源:微智科技网
2022年辽宁金融职业学院公共课《C语言》科目期末试卷B(有答案)

一、填空题

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

2、下面程序段是找出整数的所有因子。请填空。

scanf(\"%d\",&x); i=1;for(;_______;)

{if(x%i==0)printf(\"%3d\",i); i++; }

3、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。

a[0]=1;a[1]=2;swap(a,2);

4、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。

5、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。 6、在C语言中的实型变量分为两种类型,它们是_______和_______。

7、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。

a+=_______;b=a-_______;a-=_______; 8、设有以下宏定义: #define WIDTH80

#define LENGTH(WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。 9、下面程序wdm的运行结果是_______。

int i,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(\"%d\\n\",y[3]);

10、下面程序可求出图中方括号内的元素之积,请填空。 # include int main()

{ int x[3][3]={7,2,1,3,4,8,9,2,6}; int s,*p; p=_______; s=*p*_______;

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

二、选择题

11、下面4个选项中,是不合法的用户标识符的选项是( )。 A.A B.float C.b-a D._123 P_01 a0 goto temp

Do A int INT

12、下列4组选项中,不是C语言关键字的选项是。( ) A.define B.getc C.include D.while

IF char scanf go

Type printf case pow 13、若有以下定义,则正确的赋值语句是( )。 int a,b;float x;

A.a=1,b=2, B.b++; C.a=b=5 D.b=int(x);

14、有定义语句int a,b;,若要通过语句scanf(\"%d,%d”,&a,&B.;使变量a得到数值6,变量b得到数值5,下面输入形式中错误的是( )。(注:口代表空格)

A.6,5<回车> B.6,囗囗5<回车> C.65<回车> D.6,<回车>5<回车> 15、一个C语言程序由( )。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成

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

1 int a[3]={3*0}; 2 int i;

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

A.第1行有错误 B.第5行有错误 C.第3行有错误 D.没有错误 17、以下正确的描述是( )。

A.continue语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break 语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句

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

19、若有以下定义和语句,则对a数组元素地址的正确引用为( )。 int a[2][3],(*p)[3]; p=a;

A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2

20、已有定义int(*p)();指针p可以( )。 A.代表函数的返回值 B.指向函数的入口地址 C.表示函数的类型 D.表示函数返回值的类型

21、若变量都已正确定义,则以下程序段的输出是( )。 a=10;b=50;c=30; if(a>B.a=b,b=c; c=a;

printf(\"a=%db=%dc=%d\\n\".a,b,C.;

A.a=10 b=30 c=10 B.a=10 b=50 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=50

22、下面程序的运行结果是( )。

#include int main()

{int k=0;charc='A'; do

{ switch(c++)

{case'A':k++;break; case'B':k--;

case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; default: k=k/3; } k++;

}while(c<'G'); printf(\"k=%d\\n\",k); return 0; }

A.k()=3 B.k=4 C.k=2 D.k=0

23、下面程序的功能是计算1~10之间的奇数之和及偶数之和。请选择填空( )。

#include int main()

{int a=0,b,c=0,i;

for(i=0;i<=10;i+=2) {a+=i; b=i+1; c+=b;

printf(\"The sum of even=%d\\n\",A.; printf(\"The sun of odd=%d\\n\",【】): return 0;

}

A.c-10 B.c C.c-11 D.c-b 24、以下程序的运行结果是( )。

#include int fun(int a,int B. {if(a>B.return(a+B.; else return(a-B.; int main()

{int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(\"%d\\n\",r);

return(0); }

A.-16 B.-17 C.17 D.16

25、下面程序的功能是将字符串s中所有的字符c删除。请选择填空( )。

#include int main() {char s[80];inti,j; gets(s);

for(i=j=0;s[i]!= '\\o';i++) if(s[i]!='c)[ ]; s[j]='\\o'; puts(s); return 0; }

A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[];j++ D)s[j]=s[i]三、读程序填空

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 a=252;

printf(\"a=%oa=%#o\\n\",a,a); printf(\"a=%xa=%#x\\n\",a,a); return 0; }

28、为使以下程序顺利运行,请在_______中填写正确的内容;当输入的数值为57时,该程序的运行结果是_______。

# include _______ int main() { double x,y;

scanf(\"%11% lf\ printf(\"% If\\n\ return(O); }

double max(double a, double b)

{return(a>b?b-a:a-b):}

29、以下函数fun的功能是:统计用数字0~9可以组成多少个位值相同的3位偶数。请填空。

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

for(k=0;k<=8;k=_______) for(j=0;j<=9;j++) if(_______)n+十; return n; int main()

{int n; n=fun();

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

30、下面程序的功能是生成并打印某数列的前20项,该数列第1、2项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存放在一维数组x中,并按每行4项的形式输出。请填空。

# include int main()

{ int x[21],i=3,j: x[1]=0;x[2]=1; do {x=[1]: x[i+1]=[2]; i=[3]:

}while(i<=20); for(i=1;i<=20;i++) { printf(\"%5d\

if(i%4==0) printf(\"\\n\"); } return 0; }

31、下面程序的功能是:根据表4-3中给定的函数关系,对输入的每个x值计算出相应的y值。请填空。

函数关系

x 2<𝑥≤10 −1<𝑥≤2 𝑥≤−1 # include int main() { intx,y;

y x(x+2) 2x x-1 scanf(\"%d\ if (_______)y=x*(x+2); else if (_______) y=2*x; else if(x<=-1) y=x-1; else(_______) ;

if(y!=-1) printf(\"%d\ else printf(\"error\"); return 0; }

32、以下程序的功能是根据公式e=1+1!+2!+3!…,求e的近似值,精度要求为10-6。请填空。

#include int main()

{int i;double e,new; _________;new=1.0; for(i=1;_______;i++) {new/=(double)i;e+=new;} printf(\"e=%f\\n\",e); return 0; }

33、下面程序的运行结果是_______。

1

1

1

#include int main()

{char a[80],b[80],*p=\"aAbcdDefgGH\"; Int i=0,j=0; while(*p!='\\0') {if(*p>='a'&&*p<='z') {a[i]=*p;i++;} else{b[j]=*p;j++;} p++; }

a[i]=b[j]= '\\o'; puts(a); puts(b); return(0); }

四、编程题

34、定义一个带参数的宏,用来判断一个字符是否为字母。编写主函数,从键盘输入一个字符,调用上述宏输出判断结果。

35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

一、填空题

1、【1】.c【2】.obj【3】.exe 2、i<=x

3、【1】a[0]=2a[1]=1

【2】因实参是地址,已对指定地址中的内容进行了交换。 4、【1】取地址【2】按位与 5、0130或88或0x58

6、【1】单精度型(或:float型)【2】双精度型(或:double型) 7、【1】b【2】b【3】b 8、2400

9、4

10、【1】&x[0][0]【2】(*(p+4))*(*(p+8))

二、选择题

11、C 12、A 13、B 14、C

15、B

16、A

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

三、读程序填空

26、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 27、a=374囗囗a=0374 a=fc囗囗a=0xfc

(注:答案中的囗代表空格)

28、【1】double max(double,double);【2】-2.000000 29、【1】k+2【2】j==i&&i==k 30、【1】x[i-1]+x[i-2]

【2】fabs((double)(x[i-1]-x[i])) 【3】i+2

31、【1】x>28.8.x<=10【2】x>-18.8.x<=2【3】y=-1 32、【1】e=1.0【2】new>=1e-6

33、abcdefg ADGH

四、编程题

34、/*判断是否是字母*/

#include #define ISALPHA(ch)

((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z '))?1:0 int main() {char c;

printf(\"Enter a letter:\"); scanf(\"%c”,8c);

if(ISAL.PHA(c))printf(\"%c is an alpha.\\n\",c); else printf(\"%cis not an alpha.\\n\",c); return 0; }

35、#include int main()

{struct study int mid; int end; int average;

}math;

scanf(\"%d%d\",&math.mid,&.math.end); math.average=(math.mid+math.end)/2; printf(\"average=%d\\n\",math.average); return 0; }

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

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

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

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