您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页2022年保险职业学院公共课《C语言》科目期末试卷A(有答案)

2022年保险职业学院公共课《C语言》科目期末试卷A(有答案)

来源:宝玛科技网
2022年保险职业学院公共课《C语言》科目期末试卷A(有答案)

一、填空题

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

2、下面程序段中循环体的执行次数是_______。 a=10;b=0;

do{b+=2;a-=2+b;}while(a>=0);

3、函数swap(int x,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。 a[o]=1;a[1]=2; swap(a[o],a[1]);

4、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union

{int n;doublex;}num; num.n=10; num.x=10.5;

printf(\"_______\",_______);

5、执行以下程序时,若从第一列开始输入数据,为使变量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; }

6、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。

(1)x=(a=4,6*2)(2)x=a=4,6*2

7、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。

8、已有一维数组a,n为元素的个数,且各元素均有值;函数void process(float*p,int n,float(*fun)(float*,int))为一个可完成下面各种计算的通用函数。请分别写出用于以下计算的各函数中的调用语句_______、_______和_______。

(1)float arr_add(float*arr,int n)计算数组元素值之和。 (2)float odd_add(float*p,int n)计算下标为奇数的元素之和。 (3)float arr_ave(float*p,int n)计算各元素的平均值。

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

char s[80],*sp=\"HELLO!\"; sp=strcpy(s,sp); s[0]='h';puts(sp);

10、与表达式x^=y-2等价的另一书写形式是_______。

二、选择题

11、下面4个选项中,是合法转义字符的选项是( )。 A.’\\\" B. '\\ ' C. ' \\018' D. '\\\\o' '\\\\ ' ' \\017' '\\f' '\\10l' '\\n' '\\ \" ' xab' ' xlf' 12、若有说明语句:charc='\\72';则变量c( )。 A.包含1个字符 B.包含2个字符

C.包含3个字符 D.说明不合法,c的值不确定 13、以下叙述不正确的是( )

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

D.在C程序中,注释说明只能位于一条语句的后面 14、一个C程序的执行是从( )

A.本程序的main函数开始,到main函数结束

B.本程序的第一个函数开始,到本程序文件的最后一个函数结束

C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序的第一个函数开始,到本程序main函数结束

15、若用数组名作为函数调用的实参,则传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 16、设有如下程序:

#include int main()

{char ch1='A',ch2='a';

printf(\"%c\\n\",(chl,ch2)); return 0; }

则以下叙述中正确的是( )。 A.程序的输出结果为大写字母A B.程序的输出结果为小写字母a C.运行时产生错误信息

D.格式说明符的个数少于输出项的个数,编译出错

17、以下描述中正确的是( )

A.while、do-while、for循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略

C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作 D.do-while 循环中,根据情况可以省略 while

18、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。(假设a[0][0]位于数组的第一个位置上)( ) A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1

19、若有函数max(a,B.,并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是( )

A.(*p)max(a,B.; B.*pmax(a,B.; C.(*p)(a,B.; D.*p(a,B.;

20、已有变量定义和函数调用语句:int a=25;print_value(&A.;下面函数的正确输出结果是。 void print_value(int*x) {printf(\"%d\\n\",++*x); }

A.23 B.24 C.25 D.26 21、以下程序( )。

#include int main()

{int a=5,b=0,c=0; if(a=b+C.printf(\"***\\n\"); else printf(\"$$$\\n\");

return 0; }

A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$

22、下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空( )。

charx[]=\"programming\"; char y[]=\"Fortran\"; int i=0;

while(x[i]!='\\o'&&.y[i]!='\\o') if(x[i]==y[i])printf(\"%c\",【】); else i++;

A.x[i++] B.y[++i] C.x[i] D.y[i] 23、下面程序的运行结果是( )。

#include int main()

{chara[]=\"morming\",t;int i,j=0; for(i=1;i<7;i++) if(a[j]}

A)mogninr B)mo C)morning D)mornin

24、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请选择填空( )。

#include int main() {char c;

while((c=getchar())!=\\n') { if(c>='a'8.&.c<='z/) c=c-32+2: if(c>'Z)【】; }

printf(\"%c\",C.; return 0; }

A.c='B' B.c='A' C.c-=26 D.c=c+26 25、以下程序的正确运行结果是( )。

#include #define MAX10

void sub2(),sub1(),sub3(int*A.; int a[MAX],i; int main()

{printf(\"\\n\");subl();sub3(a);sub2();sub3(a); return(O); void sub2( ) {int a[MAX],i,max; max=5;

for(i=0;ivoid subl()

{for(i=0;iA)0 2 4 6 8 10 12 14 16 18 0 1 2 3 4 B)0 1 2 3 4

0 2 4 6 8 10 12 1416 18 C)0 1 2 3 4 5 6 7 8 9 0 1 2 3 4

D)0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18

三、读程序填空

26、以下程序的输出结果为_______。

#include int main() {charc='x';

printf(\"c:dec=%d,oct=%o,hex=%x,ASCIl=%c\\n\",c,c,c,c); return 0; }

27、已有定义int d=-2;执行以下语句后的输出结果是_______。

printf(\"*d(1)=%d*d(2)=%3d*d(3)=%-3d*\\n\",d,d,d); printf(\"*d(4)=%o*d(5)=%7o*d(6)=% 7o*\\n\",d,d,d); 28、以下函数fun的功能是:将输入的大写字母,先转换为与其对应的小写字母,然后再转换成该小写字母后的第3个字母,返回后输出。例如,若输入的字母为E,输出的字母则为h;若输入的字母为Y,输出的字母则为b。请填空。

#include #include char fun(charc) {!c=_______:

if(c>=1a1&&c<='w')c=c+3; else if(c>='x'/&&c<='z')_______:

return c; }

int main() {char c; c=getchar(); c=fun(e); putchar(c); return(0); }

29、下面函数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); }

30、以下程序的功能是:输入3个整数,按从大到小的顺序进行输出。请填空。

#include int main() {int x,y,z,c;

scanf(\"%d%d%d\",8.x,&y,8.z); if(_______) {c=y;y=z;z=c;) if(_______) {c=x;x=z;z=c;} if ( [3] ) {c=x;x=y;y=c;}

printf(\"%d,%d,%d\ return 0; }

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

#include int main()

{char a[2][6]={\"Sun\",\"Moon\");int i,j,len[2]; for(i=0;i<2;i++) {for(j=0;j<6;j++) if(a[i][j]=='\\o') {1en[i]=j;break;}

printf(\"%6s:%d\\n\",a[i],len[i]); }

return 0;

}

32、下面程序的功能是输出1~100之间满足每位数的乘积大于每位数的和的数。请填空。

#include int main()

{int n,k=1,s=0,m; for(n=1;n<=100;n++) {k=1;s=0; _______; while(_______) {k*=m%10;

s+=m%10; _______; }

if(k>s)printf(\"%d\",n); }

return 0; }

33、以下程序的功能是_______,运行结果是_______。

#include void fib(int n,int*s); int main()

{intx;fib(7,&x); printf(\"\\nx=%d\\n\",x); return(0);

void fib(int n,int*s) {int fl,f2;

if(n==1lin==2)*s=1; else{fib(n一1,&f1); fib(n一2,8.f2); *s=f1+f2; }

}

四、编程题

34、从键盘输入一个字符串a,并在a串中的最大元素后边插入字符串b(b[]= \"ab\")。试编程。

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

一、填空题

1、【1】.c【2】.obj【3】.exe 2、3

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

【2】单向值传递,不能返回交换后的值。 4、【1】%If【2】num.x

5、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车> (注:答案中的囗代表空格) 6、【1】12【2】4 7、【1】15【2】60

8、【1】process(a,n,arr_add); 【2】process(a.n,odd_add); 【3】process(a,n,arr_ave); 9、hELLO!

10、x=xy-2或x=x*(y-2)

二、选择题

11、A 12、A

13、D 14、A

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

三、读程序填空

26、c:dec=120,oct=170,hex=78,ASCII=x

27、*d(1)=-2*d(2)=囗-2*d(3)=-2囗**d(4)=177776*d(5)=囗177776*d(6)=177776囗* (注:答案中的囗代表空格)

28、【1】tolower(c)或c=c+32【2】c=c-23 29、【1】n=1【2】2.0*s 30、【1】y32、【1】m=n【2】m【3】m/=10

33、【1】计算要波拉契级数第七项的值【2】x=13

四、编程题

34、#include #include int main()

{char a[80],b[]=\"ab\",max; int i=1,j;

printf(\"Input a string\\n\"); gets(a); puts(a);

max=a[0];while(a[i]!='\\o') {if(a[i]>max) {max=a[];j=i;} i++; }

for(i=strlen(a)+2;i>j;i--) a[i]=a[i-2]; a[i+1]='a'; a[i+2]='b'; puts(a);

return 0; }

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

#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; }

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

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

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

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