您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页2022年安徽工业大学公共课《C语言》科目期末试卷B(有答案)

2022年安徽工业大学公共课《C语言》科目期末试卷B(有答案)

来源:华佗健康网
2022年安徽工业大学公共课《C语言》科目期末试卷B(有答案)

一、填空题

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

a+=_______;b=a-_______;a-=_______;

2、C语言的源程序必须通过【 】和【 】后,才能被计算机执行。 3、一个C语言源程序由若干函数组成,其中至少应含有一个________

4、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。

5、C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______和_______。

6、请读以下函数:

getbits(unsigned x,unsigned p,unsigned n)' {x=((x<<(p+1-n))&((unsigned)~0>>n)); return(x); }

假设机器的无符号整数字长为16位。若调用此函数时x=0115032,p=7,n=4,则函数返回值的八进制数是_______。

7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。请填空。

for(x=0;x<=30;x++) {y=30一x;

if(_______)printf(\"%d,%d\\n\",x,y);

}

8、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。 9、下面程序段将输出computer。请填空。

char c[]=\"It is a computer\"; for(i=0;_______;i++) {_______;printf(\"%c\",c[j]);}

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.'\\\"' B.'\\1011 ' C.'\\0ll' D.'\\abe'

\\\\ '\\' '\\f' '\\0ll'

\\xf' ' \\a' '\\]' 'xlf'

12、下面4个选项中,是C语言关键字的选项是( )。 A.auto B. switch C. signed D. if Enum typedef union struct include continue scanf type

13、C语言规定:在一个源程序中,main函数的位置( ) A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 14、以下叙述正确的是

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

D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误15、以下对二维数组a的正确说明是( )。

A.inta[3][];B.float a(3,4);C.double a[ ][4];D.float a(3)(16、设有如下程序:

4); #include int main()

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

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

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

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

17、设有以下程序段:

char str[4][10]={first\",\"second\",\"third\",\"fourth\"), *strp[4];int n; for(n=0;n<4;n++) strp[n]=str[n];

若k为int型变量且0≤k<4,则对字符串的不正确引用是( )。 A.strp B.str[k] C.strp[k] D.*strp

18、以下程序有语法性错误,有关错误原因的正确说法是( )。

#include

int main() {int G=5,k; void prt_char(); -----

k=prt_char(G); ---

}

A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线

19、若i为整型变量,则以下循环执行次数是( )。 for(i=2;i==0;)printf(\"%d\",i--); A.无限次 B.0次 C.1次 D.2次 20、下面有关for循环的正确描述是( )。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break 语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 21、以下程序的运行结果是( )。

#include

int main() {int a,b,d=241; a=d/100%9;

b=(-1)8&.8&(-1); printf(\"%d,%d\",a,B.; return0; }

A.6,1 B.2,1 C.6,0 D.2,0 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、当运行以下程序时,从键盘输入:AhaMA Aha<回车>,则下面程序的运行结果是( )

#include int main()

{char s[80],c='a';int i=0; scanf(\"%s\ while(s[i]!= '\\0') {if(s[i]==c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32:

i++; } puts(s); return 0;

}

A)ahAMa B)AhAMa C)AhAMa ahA D)ahAMa ahA

24、以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空( )。

#include int sub(int k,int n) {int al,a2;a2= k/10; al=k-【】;

if((k%3==0&&a2==5)|l(k%3==0&&al==5)) {printf(\"%d\",k); n++; return n; }

else return-1; }

int main(){int i,k,n,m; for(k=10 ;k<=99;k++)

{m=sub(k,n); if(m!=-1)n=m; }

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

A.a2*10 B.a2 C.a2/10 D.a2%10

25、下面程序的功能是计算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

三、读程序填空

)。

26、已有定义float d1=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); 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、下面程序的功能是:从键盘输入一个整数m(4≤m≤20),输出如下的整数方阵(存入二维数组aa)。例如,若输入4和5,则分别输出:

请改正程序中的错误语句,使它能得出正确的结果。改正后的语句是_______和_______。(注意:不得增行或删行,也不得更改程序的结构。)

#include #define M20

void aMatrix(int n,int xx[][M]) {int i,j;for(j=0;j{for(j=0;jxx[i][j]=xx[i-1][j+1]; xx[i][n一1]=xx[i-1][0]; }

int main()

{int aa[M][M],i,j,m;

printf(\"\\nPlease enter an integer number between 4 and 20:\"); scanf(\"%d\",8&.m); aMatrix(m,aa);

printf(\"\\nThe%d*%d matrix generated:\",m,m); for(i=0;iprintf(\"%4f\",aa[i][j]);/*错误语句_______*/

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、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。请填空。

#include int main()

{int day=0,x1=1020,x2;

while(_______){x2=_______;x1=x2;day++;} printf(\"day=%d\\n\",day); return 0; }

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

#include int main()

{int i=0;char a[]=\"abm\",b[]=\"aqid\",c[10]; while(a[i]!='\\o'&&b[i]!='\\o') {if(a[i]>=b[i])c[i]=a[i]-32; else c[i]=b[i]-32; ++i; } c[i]= '\\o'; puts(c);

return 0; }

32、以下程序的功能是:根据输入的三角形的三条边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请填空。

#include main()

{float a,b,c;float s,area;

scanf(\"%f%f%f”,8&.a,8&b,8.c); if(_______)

{s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)): printf(\"%f,area); if(_______)

printf(“等边三角形”); else if(_______)

printf(\"等腰三角形”);

else if((a*a+b*b==c*c)||(a*a+cxc==b*b)||(b*b+c*c==a*a)) printf(\"直角三角形”); else printf(“一般三角形”): else printf(“不能组成三角形”); return 0;

}

33、若有定义:int m[10][6];则在程序中引用数组元素m[i][j]的4种形式是:_______、_______、_______和*(*(m+i)+j)。(假设i、j已正确说明并赋值。)

四、编程题

34、编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。

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、【1】b【2】b【3】b 2、【1】编译【2】连接 3、主函数(或main函数) 4、【1】10【2】6

5、【1】整型【2】字符型【3】枚举型 6、0120000或120000 7、2*x+4*y==90 8、double a[M][M]={0}; 9、【1】i<=7【2】j=i+8

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

二、选择题

11、B 12、B

13、C 14、C

15、C 16、B 17、A

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

三、读程序填空

26、*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

(注:答案中的囗代表空格) 27、55,,A

28、【1】for(j=0;j32、【1】a+b>c&&b+c>a &&a+c>b 【2】a==b&&b==c 【3】a==b||a==c||b==c

33、【1】(*(m+i))[j]【2】*(m[i]+j)【3】*(&m[0][0]+6*i+j)

四、编程题

34、#include #include

void cipystr(char*pl,char*p2,int m); int main() {int m,1;

char strl[80],str2[80]; printf(\"Input a string:\\n\"); gets(str2);

printf(\"Input m:\\n\"); scanf(\"%d\",&.m); 1=strlen(str2) if(1printf(\"Err input!\\n\"); else{copystr(str1,str2,m); printf(\"Rsult is:%s\\n\",strl); } return 0; }

void copystr(char*pl.char*p2,int m)

{int n=0;while(n35、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- huatuo0.com 版权所有 湘ICP备2023021991号-1

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

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